_require_scratch
+checkopts=""
+[ "$USE_BIG_LOOPFS" = yes ] && checkopts=-t
+
echo "*** init FS"
rm -f $seq.full
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
}
# real QA test starts here
+_require_nobigloopfs
_require_scratch
DSIZE="-dsize=100m"
# real QA test starts here
#
+_require_nobigloopfs
_require_scratch
MKFSV1="-p $tmp.proto -n version=1"
# real QA test starts here
#
+_require_nobigloopfs
_require_scratch
echo "Silence is golden."
}
# real QA test starts here
+_require_nobigloopfs
_require_scratch
# devzero blows away 512byte blocks, so make 512byte inodes (at least)
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
_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
[ "$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()
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
}
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()
}
-# 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()
fi
[ "$FSTYP" != xfs ] && return 0
+ testoption=""
+ [ "$USE_BIG_LOOPFS" = yes ] && testoption=-t
type=`_fs_type $device`
ok=1
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)"
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 <<EOF
TEST: DIR=$TEST_DIR DEV=$TEST_DEV rt=[$TEST_RTDEV] log=[$TEST_LOGDEV]
TAPE: dev=[$TAPE_DEV] rmt=[$RMT_TAPE_DEV] rmtirix=[$RMT_TAPE_USER@$RMT_IRIXTAPE_DEV]
SCRATCH: MNT=$SCRATCH_MNT DEV=$SCRATCH_DEV rt=[$SCRATCH_RTDEV] log=[$SCRATCH_LOGDEV]
-VARIABLES: external=$USE_EXTERNAL largeblk=$USE_LBD_PATCH fstyp=$FSTYP
+VARIABLES: external=$USE_EXTERNAL largeblk=$USE_LBD_PATCH fstyp=$FSTYP bigloopfs=$USE_BIG_LOOPFS
EOF
[ "$USE_EXTERNAL" = yes -a ! -z "$TEST_LOGDEV" ] && \
TEST_OPTIONS="$TEST_OPTIONS -llogdev=$TEST_LOGDEV"
_sudo /sbin/mkfs.xfs -f $TEST_OPTIONS $MKFS_OPTIONS $* $TEST_DEV
+ mkfs_status=$?
+ [ "$USE_BIG_LOOPFS" = yes ] && \
+ _sudo $QADIR/tools/ag-wipe -c $TEST_DEV >/dev/null
+ return $mkfs_status
}
_test_mount()