2 # Do some random operations on a yaffs2 file system
6 TEST_DIR="$MOUNT_PT/stress_dir"
7 REF_FILE="$MOUNT_PT/ref.file"
8 SUM_FILE="$MOUNT_PT/sum.file"
20 df_percent=$(df | grep $MTD | sed "s_[ %] *_ _g" | cut -d" " -f 5)
27 while [ $low_water -lt $MIN_LOW_WATER ] ;
29 let low_water=$RANDOM%100
30 while [[ $low_water -ge $df_percent || $low_water -gt $MAX_LOW_WATER ]] ;
32 let low_water=$RANDOM%100
39 while [ $high_water -gt $MAX_HIGH_WATER ] ;
41 let high_water=$RANDOM%100
42 while [[ $high_water -le $df_percent || $high_water -lt $MIN_HIGH_WATER ]] ;
44 let high_water=$RANDOM%100
54 if [ $val -le 1 ] ; then
56 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
57 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
58 echo "!!!!!!!!! !!!!!!!!!!!!!!!!!!!"
59 echo "!!!!!!!!! S L E E P $val"
60 echo "!!!!!!!!! !!!!!!!!!!!!!!!!!!!"
61 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
62 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
64 echo " Sleep completed "
72 if [ $val -le 1 ] ; then
73 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
74 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
75 echo "!!!!!!!!! !!!!!!!!!!!!!!!!!!!"
76 echo "!!!!!!!!! R E M O U N T !!!!!!!!!!!!!!!!!!!"
77 echo "!!!!!!!!! !!!!!!!!!!!!!!!!!!!"
78 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
79 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
82 mount -t yaffs2 $MTD $MOUNT_PT
96 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
97 echo "!!!!! Slowly reduce usage from $df_percent percent to $low_water percent"
98 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
100 while [ $df_percent -ge $low_water ] ; do
102 DELETE_FILE=`ls $TEST_DIR | head -n 1`
103 rm -rf "$TEST_DIR/$DELETE_FILE"
116 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
117 echo "!!!!! Quickly reduce usage from $df_percent percent to $low_water percent"
118 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
120 while [ $df_percent -ge $low_water ] ; do
122 let file_prefix=$RANDOM%100
123 rm -rf $TEST_DIR/dummy $TEST_DIR/$file_prefix*
136 if [ $df_percent -gt $MIN_LOW_WATER ] ; then
138 if [ $xx -lt 50 ] ; then
160 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
161 echo "!!!!!!!!!!! D R O P C A C H E S"
162 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
164 echo 3 > /proc/sys/vm/drop_caches
170 if [ $x -eq 99 ] ; then
179 if [ $df_percent -lt $MAX_HIGH_WATER ] ; then
185 for i in $(find $TEST_DIR) ; do
186 [ -f $i ] && md5sum $i >> $SUM_FILE
189 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
190 echo "!!!!! Fill from $df_percent percent to $high_water percent"
191 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
192 let chunks=$RANDOM%100
197 let skip_file_create=0
198 let skip_dir_create=0
200 while [ $df_percent -le $high_water ] ; do
202 if [ $skip_file_create -lt 1 ] ; then
203 let fsize=$RANDOM*$chunks+1
204 echo "!!!!!! File size is $fsize"
205 dd if=/dev/urandom of=$REF_FILE bs=$fsize count=1
206 REF_SUM=$(md5sum $REF_FILE | cut -f1 -d" " )
207 let skip_file_create=$RANDOM%50
209 let skip_file_create=$skip_file_create-1
212 if [ $skip_dir_create -lt 1 ] ; then
213 dir_name=$TEST_DIR/$RANDOM-dir
215 echo "Creating in directory $dir_name"
216 let skip_dir_create=$RANDOM%100
218 let skip_dir_create=$skip_dir_create-1
221 FNAME=$dir_name/$RANDOM-$RANDOM-$RANDOM
223 FILE_SUM=$(md5sum $FNAME | cut -f1 -d" ")
224 md5sum $FNAME >> $SUM_FILE
226 if [ "$FILE_SUM" != "$REF_SUM" ] ; then
227 echo "File comparison failed $REF_SUM - $FILE_SUM"
237 if ! md5sum -c $SUM_FILE > /dev/null ; then
238 echo "File verification failed"
246 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
247 echo "!!!!!!!!!!! F I L L D I S K"
248 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
250 while [ $full -eq 0 ] ; do
251 dd if=/dev/urandom of=$TEST_DIR/$RANDOM-$RANDOM-fill bs=1000 count=50 2> /dev/null || let full=1 || true
258 touch $TEST_DIR/dont-want-empty-dir
264 if [ $x -lt 50 ] ; then
269 if [ $x -lt 50 ] ; then
274 if [ $x -lt 5 ] ; then
279 if [ $x -lt 1 ] ; then