#!/bin/bash 
 | 
cat /userdata/rockchip/reboot_cnt 
 | 
test_dir=/userdata/rockchip/power_lost 
 | 
CNT=/userdata/rockchip/reboot_cnt 
 | 
total=5000 
 | 
delay=3 
 | 
no=0 
 | 
  
 | 
if [ ! -e "/userdata/rockchip" ]; then 
 | 
    echo "no /userdata/rockchip" 
 | 
    mkdir -p /userdata/rockchip 
 | 
fi 
 | 
  
 | 
if [ ! -e "/userdata/rockchip/power_lost_test.sh" ]; then 
 | 
    cp /rockchip/flash_test/power_lost_test.sh /userdata/rockchip/ 
 | 
fi 
 | 
  
 | 
if [ -e $CNT ] 
 | 
then 
 | 
    cnt=`cat $CNT` 
 | 
    echo -e $(date)_power_up_$cnt >> /userdata/rockchip/power_lost_test.log 
 | 
else 
 | 
    echo reset power lost count. 
 | 
    cnt=0 
 | 
    echo 0 > $CNT 
 | 
    rm /userdata/rockchip/power_lost_test.log 
 | 
    echo "$(date) power lost test begin" >> /userdata/rockchip/power_lost_test.log 
 | 
    mkdir -p $test_dir 
 | 
fi 
 | 
  
 | 
if [ $cnt -ge $total ] 
 | 
then 
 | 
    echo power loat test finished!!!!!!!. 
 | 
    echo "off" > $CNT 
 | 
    echo "do cleaning ..." 
 | 
    rm /userdata/rockchip/power_lost_test.sh 
 | 
    rm -rf /userdata/rockchip/power_lost 
 | 
    rm -f $CNT 
 | 
    exit 0 
 | 
fi 
 | 
  
 | 
echo "current cnt = $cnt, total cnt = $total" 
 | 
echo "You can stop reboot by: echo off > /userdata/rockchip/reboot_cnt" 
 | 
echo "power lost test loop $cnt" >> /userdata/rockchip/power_lost_test.log 
 | 
sleep $delay 
 | 
if [ $cnt != "off" ]; then 
 | 
    echo "$cnt begin dd" 
 | 
else 
 | 
    echo "power lost test is off" 
 | 
    rm /userdata/rockchip/power_lost_test.sh 
 | 
    rm -rf /userdata/rockchip/power_lost 
 | 
    rm -f $CNT 
 | 
    exit 0 
 | 
fi 
 | 
  
 | 
let "cnt=$cnt+1" 
 | 
echo $cnt > $CNT 
 | 
  
 | 
rm -rf $test_dir/* 
 | 
sync 
 | 
time dd if=/dev/random of=$test_dir/test_src bs=1M count=2 
 | 
while true; do 
 | 
    echo "power lost test, loop $cnt" 
 | 
    time dd if=$test_dir/test_src of=$test_dir/test_dst 
 | 
    sync 
 | 
    busybox diff $test_dir/test_src $test_dir/test_dst 
 | 
    echo $? 
 | 
    if [ $? -eq 0 ];then 
 | 
        echo "compare equally" 
 | 
        rm $test_dir/test_dst 
 | 
        sync 
 | 
    else 
 | 
        echo "compare not equally" >> /userdata/rockchip/power_lost_test.log 
 | 
        exit 
 | 
    fi 
 | 
    sleep 0.1 
 | 
done 
 |