diff options
Diffstat (limited to 'tests/u_direct_io/script')
-rw-r--r-- | tests/u_direct_io/script | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/u_direct_io/script b/tests/u_direct_io/script new file mode 100644 index 0000000..b4f0775 --- /dev/null +++ b/tests/u_direct_io/script @@ -0,0 +1,49 @@ +DESCRIPTION="direct I/O in unix_io" +OUT=$test_name.log +if test "$(id -u)" -ne 0 ; then + echo "$test_name: $DESCRIPTION: skipped (not root)" +elif ! command -v losetup >/dev/null ; then + echo "$test_name: $DESCRIPTION: skipped (no losetup)" +elif test ! -x $DEBUGFS_EXE; then + echo "$test_name: $DESCRIPTION: skipped (no debugfs)" +else + dd if=/dev/zero of=$TMPFILE bs=1M count=128 > /dev/null 2>&1 + LOOP=$(losetup --show --sector-size 4096 -f $TMPFILE) + if [ ! -b "$LOOP" ]; then + echo "$test_name: $DESCRIPTION: skipped (no loop devices)" + rm -f $TMPFILE + exit 0 + fi + echo mke2fs -F -o Linux -t ext4 -O ^metadata_csum,^uninit_bg -D \$LOOP > $OUT + $MKE2FS -F -o Linux -t ext4 -O ^metadata_csum,^uninit_bg -D $LOOP 2>&1 | \ + sed -f $cmd_dir/filter.sed >> $OUT + + echo debugfs -D -R stats \$LOOP >> $OUT + $DEBUGFS -D -R stats $LOOP 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT + + echo e2fsck -fn -N test_filesys \$LOOP > $OUT.new + $FSCK -fn -N test_filesys $LOOP >> $OUT.new 2>&1 + echo Exit status is $? >> $OUT.new + sed -f $cmd_dir/filter.sed $OUT.new >> $OUT + rm -f $OUT.new + + losetup -d $LOOP + + echo e2fsck -fn -N test_filesys \$TMPFILE > $OUT.new + $FSCK -fn -N test_filesys $TMPFILE >> $OUT.new 2>&1 + echo Exit status is $? >> $OUT.new + sed -f $cmd_dir/filter.sed $OUT.new >> $OUT + rm -f $OUT.new + + cmp -s $test_name.log $test_dir/expect + + if [ "$?" -eq 0 ]; then + echo "$test_name: $DESCRIPTION: ok" + touch $test_name.ok + else + echo "$test_name: $DESCRIPTION: failed" + diff $DIFF_OPTS $test_dir/expect $test_name.log >> $test_name.failed + fi +fi + +unset LOOP |