xref: /OK3568_Linux_fs/debian/overlay-debug/rockchip-test/flash_test/power_lost_test.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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