1*6a54128fSAndroid Build Coastguard WorkerDESCRIPTION="direct I/O in unix_io" 2*6a54128fSAndroid Build Coastguard WorkerOUT=$test_name.log 3*6a54128fSAndroid Build Coastguard Workerif test "$(id -u)" -ne 0 ; then 4*6a54128fSAndroid Build Coastguard Worker echo "$test_name: $DESCRIPTION: skipped (not root)" 5*6a54128fSAndroid Build Coastguard Workerelif ! command -v losetup >/dev/null ; then 6*6a54128fSAndroid Build Coastguard Worker echo "$test_name: $DESCRIPTION: skipped (no losetup)" 7*6a54128fSAndroid Build Coastguard Workerelif test ! -x $DEBUGFS_EXE; then 8*6a54128fSAndroid Build Coastguard Worker echo "$test_name: $DESCRIPTION: skipped (no debugfs)" 9*6a54128fSAndroid Build Coastguard Workerelse 10*6a54128fSAndroid Build Coastguard Worker dd if=/dev/zero of=$TMPFILE bs=1M count=128 > /dev/null 2>&1 11*6a54128fSAndroid Build Coastguard Worker LOOP=$(losetup --show --sector-size 4096 -f $TMPFILE) 12*6a54128fSAndroid Build Coastguard Worker if [ ! -b "$LOOP" ]; then 13*6a54128fSAndroid Build Coastguard Worker echo "$test_name: $DESCRIPTION: skipped (no loop devices)" 14*6a54128fSAndroid Build Coastguard Worker rm -f $TMPFILE 15*6a54128fSAndroid Build Coastguard Worker exit 0 16*6a54128fSAndroid Build Coastguard Worker fi 17*6a54128fSAndroid Build Coastguard Worker echo mke2fs -F -o Linux -t ext4 -O ^metadata_csum,^uninit_bg -D \$LOOP > $OUT 18*6a54128fSAndroid Build Coastguard Worker $MKE2FS -F -o Linux -t ext4 -O ^metadata_csum,^uninit_bg -D $LOOP 2>&1 | \ 19*6a54128fSAndroid Build Coastguard Worker sed -f $cmd_dir/filter.sed >> $OUT 20*6a54128fSAndroid Build Coastguard Worker 21*6a54128fSAndroid Build Coastguard Worker echo debugfs -D -R stats \$LOOP >> $OUT 22*6a54128fSAndroid Build Coastguard Worker $DEBUGFS -D -R stats $LOOP 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT 23*6a54128fSAndroid Build Coastguard Worker 24*6a54128fSAndroid Build Coastguard Worker echo e2fsck -fn -N test_filesys \$LOOP > $OUT.new 25*6a54128fSAndroid Build Coastguard Worker $FSCK -fn -N test_filesys $LOOP >> $OUT.new 2>&1 26*6a54128fSAndroid Build Coastguard Worker echo Exit status is $? >> $OUT.new 27*6a54128fSAndroid Build Coastguard Worker sed -f $cmd_dir/filter.sed $OUT.new >> $OUT 28*6a54128fSAndroid Build Coastguard Worker rm -f $OUT.new 29*6a54128fSAndroid Build Coastguard Worker 30*6a54128fSAndroid Build Coastguard Worker losetup -d $LOOP 31*6a54128fSAndroid Build Coastguard Worker 32*6a54128fSAndroid Build Coastguard Worker echo e2fsck -fn -N test_filesys \$TMPFILE > $OUT.new 33*6a54128fSAndroid Build Coastguard Worker $FSCK -fn -N test_filesys $TMPFILE >> $OUT.new 2>&1 34*6a54128fSAndroid Build Coastguard Worker echo Exit status is $? >> $OUT.new 35*6a54128fSAndroid Build Coastguard Worker sed -f $cmd_dir/filter.sed $OUT.new >> $OUT 36*6a54128fSAndroid Build Coastguard Worker rm -f $OUT.new 37*6a54128fSAndroid Build Coastguard Worker 38*6a54128fSAndroid Build Coastguard Worker cmp -s $test_name.log $test_dir/expect 39*6a54128fSAndroid Build Coastguard Worker 40*6a54128fSAndroid Build Coastguard Worker if [ "$?" -eq 0 ]; then 41*6a54128fSAndroid Build Coastguard Worker echo "$test_name: $DESCRIPTION: ok" 42*6a54128fSAndroid Build Coastguard Worker touch $test_name.ok 43*6a54128fSAndroid Build Coastguard Worker else 44*6a54128fSAndroid Build Coastguard Worker echo "$test_name: $DESCRIPTION: failed" 45*6a54128fSAndroid Build Coastguard Worker diff $DIFF_OPTS $test_dir/expect $test_name.log >> $test_name.failed 46*6a54128fSAndroid Build Coastguard Worker fi 47*6a54128fSAndroid Build Coastguard Workerfi 48*6a54128fSAndroid Build Coastguard Worker 49*6a54128fSAndroid Build Coastguard Workerunset LOOP 50