diff --git a/017 b/017 index 065fe870..0da28fe7 100755 --- a/017 +++ b/017 @@ -60,6 +60,9 @@ trap "_cleanup; rm -f $tmp.*; exit \$status" 0 1 2 3 15 _require_scratch +checkopts="" +[ "$USE_BIG_LOOPFS" = yes ] && checkopts=-t + echo "*** init FS" rm -f $seq.full @@ -90,8 +93,8 @@ do echo "" >>$seq.full echo "*** XFS_CHECK ***" >>$seq.full echo "" >>$seq.full - xfs_check $SCRATCH_DEV >>$seq.full 2>&1 \ - || _fail "xfs_check failed" + xfs_check $checkopts $SCRATCH_DEV >>$seq.full 2>&1 \ + || _fail "xfs_check $checkopts failed" _scratch_mount -o remount,rw \ || _fail "remount rw failed" done diff --git a/030 b/030 index f5a928bd..f3c0364b 100755 --- a/030 +++ b/030 @@ -70,6 +70,7 @@ _check_ag() } # real QA test starts here +_require_nobigloopfs _require_scratch DSIZE="-dsize=100m" diff --git a/031 b/031 index a9ea2243..0194d15d 100755 --- a/031 +++ b/031 @@ -104,6 +104,7 @@ EOF # real QA test starts here # +_require_nobigloopfs _require_scratch MKFSV1="-p $tmp.proto -n version=1" diff --git a/032 b/032 index fcfd4c93..408901f5 100755 --- a/032 +++ b/032 @@ -53,6 +53,7 @@ rm -f $seq.full # real QA test starts here # +_require_nobigloopfs _require_scratch echo "Silence is golden." diff --git a/033 b/033 index 77eb1df4..5f988d0b 100755 --- a/033 +++ b/033 @@ -71,6 +71,7 @@ _check_root_inos() } # real QA test starts here +_require_nobigloopfs _require_scratch # devzero blows away 512byte blocks, so make 512byte inodes (at least) diff --git a/049 b/049 index dc6d1a6f..dd7270f4 100755 --- a/049 +++ b/049 @@ -69,12 +69,13 @@ _log() echo "--- $*" >> $seq.full } -# real QA test starts here - +_require_nobigloopfs +_require_nonexternal _require_scratch _require_loop -[ "$USE_EXTERNAL" = yes ] && _notrun "Test doesn't cope with external devices" + +# real QA test starts here rm -f $seq.full diff --git a/075 b/075 index 250ce37c..80cf9d51 100755 --- a/075 +++ b/075 @@ -112,3 +112,5 @@ _do_test 1 "-d -N 1000 -S 0 -x" _do_test 2 "-d -N 25000 -l $size10 -S 0" _do_test 3 "-d -N 25000 -l $size10 -S 0 -x" +rm -f $seq.*.fsx{good,log} +exit 0 diff --git a/common.rc b/common.rc index 3d4b81ed..0d870fca 100644 --- a/common.rc +++ b/common.rc @@ -126,6 +126,10 @@ _scratch_mkfs_xfs() [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ SCRATCH_OPTIONS="$SCRATCH_OPTIONS -llogdev=$SCRATCH_LOGDEV" /sbin/mkfs.xfs -f $SCRATCH_OPTIONS $MKFS_OPTIONS $* $SCRATCH_DEV + mkfs_status=$? + [ "$USE_BIG_LOOPFS" = yes ] && \ + ./tools/ag-wipe -c $SCRATCH_DEV >/dev/null + return $mkfs_status } _scratch_xfs_db_options() @@ -149,6 +153,7 @@ _scratch_xfs_repair() SCRATCH_OPTIONS="" [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \ SCRATCH_OPTIONS="-l$SCRATCH_LOGDEV" + [ "$USE_BIG_LOOPFS" = yes ] && SCRATCH_OPTIONS=$SCRATCH_OPTIONS" -t" /sbin/xfs_repair $SCRATCH_OPTIONS $* $SCRATCH_DEV } @@ -460,6 +465,22 @@ _require_loop() fi } +# this test requires that (large) loopback device files are not in use +# +_require_nobigloopfs() +{ + [ "$USE_BIG_LOOPFS" = yes ] && \ + _notrun "Large filesystem testing in progress, skipped this test" +} + +# this test requires that external log/realtime devices are not in use +# +_require_nonexternal() +{ + [ "$USE_EXTERNAL" = yes ] && \ + _notrun "External device testing in progress, skipped this test" +} + # check that a FS is mounted as XFS. if so, return mount point # _xfs_mounted() @@ -483,34 +504,6 @@ _xfs_mounted() } -# setup the .out file link, depending on which form of quota is -# enabled as this often influences how the test output appears. -# [NB: SCRATCH_DEV must be mounted for this to work] -# -_setup_seq_out() -{ - # this lets us phase use of this into the dump/restore tests easier... - [ -f $seq.ugquota -a -f $seq.noquota -a $seq.usrquota -a $seq.grpquota ] \ - || return - - rm -f $seq.out - if src/feature -U $SCRATCH_DEV - then - if src/feature -G $SCRATCH_DEV - then - ln $seq.ugquota $seq.out - else - ln $seq.usrquota $seq.out - fi - elif src/feature -G $SCRATCH_DEV - then - ln $seq.grpquota $seq.out - else - ln $seq.noquota $seq.out - fi -} - - # remount a FS to a new mode (ro or rw) # _remount() @@ -557,6 +550,8 @@ _check_filesystem() fi [ "$FSTYP" != xfs ] && return 0 + testoption="" + [ "$USE_BIG_LOOPFS" = yes ] && testoption=-t type=`_fs_type $device` ok=1 @@ -588,7 +583,7 @@ _check_filesystem() ok=0 fi - /usr/sbin/xfs_check $device 2>&1 | _fix_malloc >$tmp.fs_check + /usr/sbin/xfs_check $testoption $device 2>&1 | _fix_malloc >$tmp.fs_check if [ -s $tmp.fs_check ] then echo "_check_fs: filesystem on $device is inconsistent (c) (see $seq.full)" diff --git a/setup b/setup index 3f75a383..d99d0790 100755 --- a/setup +++ b/setup @@ -6,13 +6,14 @@ then exit 1 fi -[ "$USE_EXTERNAL" != yes ] && USE_EXTERNAL="no" -[ "$USE_LBD_PATCH" = yes ] || USE_LBD_PATCH="no" -[ -x "$FSTYP" ] && FSTYP="xfs" +[ "$USE_EXTERNAL" = yes ] || USE_EXTERNAL=no +[ "$USE_LBD_PATCH" = yes ] || USE_LBD_PATCH=no +[ "$USE_BIG_LOOPFS" = yes ] || USE_BIG_LOOPFS=no +[ -z "$FSTYP" ] && FSTYP="xfs" cat </dev/null + return $mkfs_status } _test_mount()