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"
27 df_percent=$(df | grep $MTD | sed "s_[ %] *_ _g" | cut -d" " -f 5)
34 while [ $low_water -lt $MIN_LOW_WATER ] ;
36 low_water=$(($(random_number) % 100))
37 while [[ $low_water -ge $df_percent || $low_water -gt $MAX_LOW_WATER ]] ;
39 low_water=$(($(random_number) % 100))
46 while [ $high_water -gt $MAX_HIGH_WATER ] ;
48 high_water=$(($(random_number) % 100))
49 while [[ $high_water -le $df_percent || $high_water -lt $MIN_HIGH_WATER ]] ;
51 high_water=$(($(random_number) % 100))
60 val=$(($(random_number) % 10000))
61 if [ $val -le 1 ] ; then
62 val=$(($(random_number) % 100))
63 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
64 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
65 echo "!!!!!!!!! !!!!!!!!!!!!!!!!!!!"
66 echo "!!!!!!!!! S L E E P $val"
67 echo "!!!!!!!!! !!!!!!!!!!!!!!!!!!!"
68 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
69 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
71 echo " Sleep completed "
80 val=$(($(random_number) % 10000))
81 maybe_remount_count=$(($maybe_remount_count+1))
83 if [ $val -le 1 ] ; then
84 remount_count=$(($remount_count+1))
85 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
86 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
87 echo "!!!!!!!!! !!!!!!!!!!!!!!!!!!!"
88 echo "!!!!!!!!! R E M O U N T $remount_count from $maybe_remount_count"
89 echo "!!!!!!!!! !!!!!!!!!!!!!!!!!!!"
90 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
91 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
94 mount -t yaffs2 $MTD $MOUNT_PT
108 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
109 echo "!!!!! Slowly reduce usage from $df_percent percent to $low_water percent"
110 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
112 while [ $df_percent -ge $low_water ] ; do
114 DELETE_FILE=`ls $TEST_DIR | head -n 1`
115 rm -rf "$TEST_DIR/$DELETE_FILE"
128 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
129 echo "!!!!! Quickly reduce usage from $df_percent percent to $low_water percent"
130 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
132 while [ $df_percent -ge $low_water ] ; do
134 file_prefix=$(($(random_number) % 100))
135 rm -rf $TEST_DIR/dummy $TEST_DIR/$file_prefix*
145 xx=$(($(random_number) % 100))
148 if [ $df_percent -gt $MIN_LOW_WATER ] ; then
150 if [ $xx -lt 50 ] ; then
167 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
168 echo "!!!!!!!!!!! D R O P C A C H E S"
169 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
171 echo 3 > /proc/sys/vm/drop_caches
176 x=$(($(random_number) % 10000))
177 if [ $x -eq 99 ] ; then
186 if [ $df_percent -lt $MAX_HIGH_WATER ] ; then
192 for i in $(find $TEST_DIR) ; do
193 [ -f $i ] && md5sum $i >> $SUM_FILE
196 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
197 echo "!!!!! Fill from $df_percent percent to $high_water percent"
198 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
199 chunks=$(($(random_number) % 100))
207 while [ $df_percent -le $high_water ] ; do
209 if [ $skip_file_create -lt 1 ] ; then
210 fsize=$(($(random_number)*$chunks+1))
211 echo "!!!!!! File size is $fsize"
212 dd if=/dev/urandom of=$REF_FILE bs=$fsize count=1
213 REF_SUM=$(md5sum $REF_FILE | cut -f1 -d" " )
214 skip_file_create=$(($(random_number) % 50))
216 skip_file_create=$(($skip_file_create-1))
219 if [ $skip_dir_create -lt 1 ] ; then
220 dir_name=$TEST_DIR/$(random_number)-dir
222 echo "Creating in directory $dir_name"
223 skip_dir_create=$(($(random_number) % 100))
225 skip_dir_create=$(($skip_dir_create-1))
228 FNAME=$dir_name/$(random_number)-$(random_number)-$(random_number)
230 FILE_SUM=$(md5sum $FNAME | cut -f1 -d" ")
231 md5sum $FNAME >> $SUM_FILE
233 if [ "$FILE_SUM" != "$REF_SUM" ] ; then
234 echo "File comparison between $REF_FILE and $FNAME failed $REF_SUM - $FILE_SUM"
244 if ! md5sum -c $SUM_FILE > /dev/null ; then
245 echo "File verification failed"
253 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
254 echo "!!!!!!!!!!! F I L L D I S K"
255 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
257 while [ $full -eq 0 ] ; do
258 dd if=/dev/urandom of=$TEST_DIR/$(random_number)-$(random_number)-fill bs=1000 count=50 2> /dev/null || full=1 || true
265 touch $TEST_DIR/dont-want-empty-dir
270 x=$(($(random_number) % 100))
271 if [ $x -lt 50 ] ; then
275 x=$(($(random_number) % 100))
276 if [ $x -lt 50 ] ; then
280 x=$(($(random_number) % 100))
281 if [ $x -lt 5 ] ; then
285 x=$(($(random_number) % 100))
286 if [ $x -lt 1 ] ; then