1#!/bin/bash 2cat /data/rockchip/reboot_cnt 3test_dir=/data/rockchip/power_lost 4CNT=/data/rockchip/reboot_cnt 5total=5000 6delay=3 7no=0 8 9if [ ! -e "/data/rockchip" ]; then 10 echo "no /data/rockchip" 11 mkdir -p /data/rockchip 12fi 13 14if [ ! -e "/data/rockchip/power_lost_test.sh" ]; then 15 cp /rockchip/flash_test/power_lost_test.sh /data/rockchip/ 16fi 17 18if [ -e $CNT ] 19then 20 cnt=`cat $CNT` 21 echo -e $(date)_power_up_$cnt >> /data/rockchip/power_lost_test.log 22else 23 echo reset power lost count. 24 cnt=0 25 echo 0 > $CNT 26 rm /data/rockchip/power_lost_test.log 27 echo "$(date) power lost test begin" >> /data/rockchip/power_lost_test.log 28 mkdir -p $test_dir 29fi 30 31if [ $cnt -ge $total ] 32then 33 echo power loat test finished!!!!!!!. 34 echo "off" > $CNT 35 echo "do cleaning ..." 36 rm /data/rockchip/power_lost_test.sh 37 rm -rf /data/rockchip/power_lost 38 rm -f $CNT 39 exit 0 40fi 41 42echo "current cnt = $cnt, total cnt = $total" 43echo "You can stop reboot by: echo off > /data/rockchip/reboot_cnt" 44echo "power lost test loop $cnt" >> /data/rockchip/power_lost_test.log 45sleep $delay 46if [ $cnt != "off" ]; then 47 echo "$cnt begin dd" 48else 49 echo "power lost test is off" 50 rm /data/rockchip/power_lost_test.sh 51 rm -rf /data/rockchip/power_lost 52 rm -f $CNT 53 exit 0 54fi 55 56let "cnt=$cnt+1" 57echo $cnt > $CNT 58 59rm -rf $test_dir/* 60sync 61time dd if=/dev/random of=$test_dir/test_src bs=1M count=2 62while true; do 63 echo "power lost test, loop $cnt" 64 time dd if=$test_dir/test_src of=$test_dir/test_dst 65 sync 66 busybox diff $test_dir/test_src $test_dir/test_dst 67 echo $? 68 if [ $? -eq 0 ];then 69 echo "compare equally" 70 rm $test_dir/test_dst 71 sync 72 else 73 echo "compare not equally" >> /data/rockchip/power_lost_test.log 74 exit 75 fi 76 sleep 0.1 77done 78