1*6a54128fSAndroid Build Coastguard WorkerFSCK_OPT=-fn 2*6a54128fSAndroid Build Coastguard WorkerOUT=$test_name.log 3*6a54128fSAndroid Build Coastguard WorkerEXP=$test_dir/expect 4*6a54128fSAndroid Build Coastguard WorkerCONF=$TMPFILE.conf 5*6a54128fSAndroid Build Coastguard Worker 6*6a54128fSAndroid Build Coastguard Workercat > $CONF << ENDL 7*6a54128fSAndroid Build Coastguard Worker[fs_types] 8*6a54128fSAndroid Build Coastguard Worker ext4h = { 9*6a54128fSAndroid Build Coastguard Worker features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize,sparse_super,filetype,dir_index,ext_attr,resize_inode,64bit,metadata_csum 10*6a54128fSAndroid Build Coastguard Worker blocksize = 1024 11*6a54128fSAndroid Build Coastguard Worker inode_size = 256 12*6a54128fSAndroid Build Coastguard Worker make_hugefiles = true 13*6a54128fSAndroid Build Coastguard Worker hugefiles_dir = / 14*6a54128fSAndroid Build Coastguard Worker hugefiles_slack = 0 15*6a54128fSAndroid Build Coastguard Worker hugefiles_name = aaaaa 16*6a54128fSAndroid Build Coastguard Worker hugefiles_digits = 4 17*6a54128fSAndroid Build Coastguard Worker hugefiles_size = 1M 18*6a54128fSAndroid Build Coastguard Worker zero_hugefiles = false 19*6a54128fSAndroid Build Coastguard Worker } 20*6a54128fSAndroid Build Coastguard WorkerENDL 21*6a54128fSAndroid Build Coastguard Worker 22*6a54128fSAndroid Build Coastguard Workerecho "tune2fs ^metadata_csum test" > $OUT 23*6a54128fSAndroid Build Coastguard Worker 24*6a54128fSAndroid Build Coastguard WorkerMKE2FS_CONFIG=$CONF $MKE2FS -F -T ext4h -o Linux $TMPFILE 524288 >> $OUT 2>&1 25*6a54128fSAndroid Build Coastguard Workerrm -rf $CONF 26*6a54128fSAndroid Build Coastguard Worker 27*6a54128fSAndroid Build Coastguard Worker# dump and check 28*6a54128fSAndroid Build Coastguard Worker$DUMPE2FS $TMPFILE 2> /dev/null | grep '^Group 0:' -B99 -A20 | sed -f $cmd_dir/filter.sed > $OUT.before 29*6a54128fSAndroid Build Coastguard Worker$FSCK $FSCK_OPT -N test_filesys $TMPFILE >> $OUT 2>&1 30*6a54128fSAndroid Build Coastguard Workerstatus=$? 31*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT 32*6a54128fSAndroid Build Coastguard Worker 33*6a54128fSAndroid Build Coastguard Worker# remove mcsum 34*6a54128fSAndroid Build Coastguard Workerecho "tune2fs -O ^metadata_csum test.img" >> $OUT 35*6a54128fSAndroid Build Coastguard Worker$TUNE2FS -O ^metadata_csum $TMPFILE >> $OUT 2>&1 36*6a54128fSAndroid Build Coastguard Workerstatus=$? 37*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT 38*6a54128fSAndroid Build Coastguard Worker 39*6a54128fSAndroid Build Coastguard Worker# dump and check 40*6a54128fSAndroid Build Coastguard Worker$DUMPE2FS $TMPFILE 2> /dev/null | grep '^Group 0:' -B99 -A20 | sed -f $cmd_dir/filter.sed > $OUT.after 41*6a54128fSAndroid Build Coastguard Workerecho "Change in FS metadata:" >> $OUT 42*6a54128fSAndroid Build Coastguard Workerdiff -u $OUT.before $OUT.after | tail -n +3 >> $OUT 43*6a54128fSAndroid Build Coastguard Worker$FSCK $FSCK_OPT -N test_filesys $TMPFILE >> $OUT 2>&1 44*6a54128fSAndroid Build Coastguard Workerstatus=$? 45*6a54128fSAndroid Build Coastguard Workerecho Exit status is $status >> $OUT 46*6a54128fSAndroid Build Coastguard Worker 47*6a54128fSAndroid Build Coastguard Workerrm $TMPFILE $OUT.before $OUT.after 48*6a54128fSAndroid Build Coastguard Worker 49*6a54128fSAndroid Build Coastguard Worker# 50*6a54128fSAndroid Build Coastguard Worker# Do the verification 51*6a54128fSAndroid Build Coastguard Worker# 52*6a54128fSAndroid Build Coastguard Worker 53*6a54128fSAndroid Build Coastguard Workersed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" -e 's/test_filesys:.*//g' < $OUT > $OUT.new 54*6a54128fSAndroid Build Coastguard Workermv $OUT.new $OUT 55*6a54128fSAndroid Build Coastguard Worker 56*6a54128fSAndroid Build Coastguard Workercmp -s $OUT $EXP 57*6a54128fSAndroid Build Coastguard Workerstatus=$? 58*6a54128fSAndroid Build Coastguard Worker 59*6a54128fSAndroid Build Coastguard Workerif [ "$status" = 0 ] ; then 60*6a54128fSAndroid Build Coastguard Worker echo "$test_name: $test_description: ok" 61*6a54128fSAndroid Build Coastguard Worker touch $test_name.ok 62*6a54128fSAndroid Build Coastguard Workerelse 63*6a54128fSAndroid Build Coastguard Worker echo "$test_name: $test_description: failed" 64*6a54128fSAndroid Build Coastguard Worker diff $DIFF_OPTS $EXP $OUT > $test_name.failed 65*6a54128fSAndroid Build Coastguard Workerfi 66*6a54128fSAndroid Build Coastguard Worker 67*6a54128fSAndroid Build Coastguard Workerunset IMAGE FSCK_OPT OUT EXP CONF 68