FSTYP=xfs
xfile=""
-SUPPORTED_TESTS="[0-9][0-9][0-9] [0-9][0-9][0-9][0-9]"
-SRC_GROUPS="generic shared"
-export SRC_DIR="tests"
-export RESULT_BASE=${RESULT_BASE:="results"}
-
-# generic initialization
+# start the initialisation work now
iam=check
+export MSGVERB="text:action"
export QA_CHECK_FS=${QA_CHECK_FS:=true}
-# by default don't output timestamps
-timestamp=${TIMESTAMP:=false}
-
# number of diff lines from a failed test, 0 for whole output
export DIFF_LENGTH=${DIFF_LENGTH:=10}
# by default don't output timestamps
timestamp=${TIMESTAMP:=false}
+rm -f $tmp.list $tmp.tmp $tmp.grep $here/$iam.out $tmp.xlist
+
+# Autodetect fs type based on what's on $TEST_DEV
+if [ "$HOSTOS" == "Linux" ]; then
+ FSTYP=`blkid -c /dev/null -s TYPE -o value $TEST_DEV`
+fi
+export FSTYP
+
+# we need common.config
+if ! . ./common/config
+then
+ echo "$iam: failed to source common/config"
+ exit 1
+fi
+
+SUPPORTED_TESTS="[0-9][0-9][0-9] [0-9][0-9][0-9][0-9]"
+SRC_GROUPS="generic shared"
+export SRC_DIR="tests"
+export RESULT_BASE=${RESULT_BASE:="$here/results"}
+
usage()
{
echo "Usage: $0 [options] [testlist]"'
exit 0
}
-_setenvironment()
-{
- MSGVERB="text:action"
- export MSGVERB
-}
-
get_group_list()
{
grp=$1
echo -n " [$now]"
}
-# start the initialisation work now
-_setenvironment
-
-rm -f $tmp.list $tmp.tmp $tmp.grep $here/$iam.out $tmp.xlist
-
-# Autodetect fs type based on what's on $TEST_DEV
-if [ "$HOSTOS" == "Linux" ]; then
- FSTYP=`blkid -c /dev/null -s TYPE -o value $TEST_DEV`
-fi
-export FSTYP
-
-# we need common.config
-if ! . ./common/config
-then
- echo "$iam: failed to source common/config"
- exit 1
-fi
-
# Process command arguments first.
while [ $# -gt 0 ]; do
case "$1" in
#
touch $TEST_DIR/syscalltest
chacl -l $TEST_DIR/syscalltest > $TEST_DIR/syscalltest.out 2>&1
- cat $TEST_DIR/syscalltest.out >> $RESULT_DIR/$seq.full
+ cat $TEST_DIR/syscalltest.out >> $seqres.full
if grep -q 'Function not implemented' $TEST_DIR/syscalltest.out; then
_notrun "kernel does not support ACLs"
#
touch $TEST_DIR/syscalltest
attr -s "user.xfstests" -V "attr" $TEST_DIR > $TEST_DIR/syscalltest.out 2>&1
- cat $TEST_DIR/syscalltest.out >> $RESULT_DIR/$seq.full
+ cat $TEST_DIR/syscalltest.out >> $seqres.full
if grep -q 'Function not implemented' $TEST_DIR/syscalltest.out; then
_notrun "kernel does not support attrs"
_extent_count()
{
$FILEFRAG_PROG $1 | awk '{print $2}'
- $FILEFRAG_PROG -v $1 >> $RESULT_DIR/$seq.full 2>&1
+ $FILEFRAG_PROG -v $1 >> $seqres.full 2>&1
}
# Defrag file, check it, and remove it.
_extent_count $1
CSUM_BEFORE=`md5sum $1`
STAT_BEFORE=`stat -c "a: %x m: %y c: %z" $1`
- $DEFRAG_PROG -v $1 >> $RESULT_DIR/$seq.full 2>&1
+ $DEFRAG_PROG -v $1 >> $seqres.full 2>&1
_scratch_remount
STAT_AFTER=`stat -c "a: %x m: %y c: %z" $1`
CSUM_AFTER=`md5sum $1`
#
# --- initializations ---
-rm -f $RESULT_DIR/$seq.full
+rm -f $seqres.full
if [ -n "$DEBUGDUMP" ]; then
_dump_debug=-v4
_limit=10
i=0
while [ $i -lt $_limit ]; do
- echo "Checking online..." >>$RESULT_DIR/$seq.full
+ echo "Checking online..." >>$seqres.full
if _mt status >$tmp.status 2>&1; then
break;
else
_wait_tape()
{
- echo "Wait for tape, $dumptape, ..." >>$RESULT_DIR/$seq.full
+ echo "Wait for tape, $dumptape, ..." >>$seqres.full
i=0
while [ $i -lt 20 ]; do
- echo "Checking status..." >>$RESULT_DIR/$seq.full
- if _mt status 2>&1 | tee -a $RESULT_DIR/$seq.full | egrep -i "onl|ready" >/dev/null; then
+ echo "Checking status..." >>$seqres.full
+ if _mt status 2>&1 | tee -a $seqres.full | egrep -i "onl|ready" >/dev/null; then
break;
else
sleep 1
#
_rewind()
{
- echo "Initiate rewind..." >>$RESULT_DIR/$seq.full
+ echo "Initiate rewind..." >>$seqres.full
_wait_tape
_mt rewind >/dev/null
_wait_tape
#
_erase_soft()
{
- echo "Erasing tape" | tee -a $RESULT_DIR/$seq.full
+ echo "Erasing tape" | tee -a $seqres.full
_rewind
_mt weof 3
_rewind
_erase_hard()
{
- echo "Erasing tape" | tee -a $RESULT_DIR/$seq.full
+ echo "Erasing tape" | tee -a $seqres.full
_mt erase
}
if [ -z "$dumptape" -o "@" == "$dumptape" ]; then
echo "This test requires a dump tape - none was specified"
- echo "No dump tape specified" >$RESULT_DIR/$seq.notrun
+ echo "No dump tape specified" >$seqres.notrun
status=$NOTRUNSTS
exit
fi
{
_require_scratch
- _scratch_mkfs_xfs >>$RESULT_DIR/$seq.full || _fail "mkfs failed"
- _scratch_mount >>$RESULT_DIR/$seq.full || _fail "mount failed"
+ _scratch_mkfs_xfs >>$seqres.full || _fail "mkfs failed"
+ _scratch_mount >>$seqres.full || _fail "mount failed"
}
#
# save it for inspection
for dir in /var/xfsdump/inventory /var/lib/xfsdump/inventory; do
[ -d $dir ] || continue
- tar -cvf $RESULT_DIR/$seq.inventory.tar $dir
- ls -nR $dir >$RESULT_DIR/$seq.inventory.ls
+ tar -cvf $seqres.inventory.tar $dir
+ ls -nR $dir >$seqres.inventory.ls
done
fi
_stable_fs()
{
_saveddir=`pwd`; cd /
- umount $SCRATCH_MNT >>$RESULT_DIR/$seq.full || _fail "unmount failed"
- _scratch_mount >>$RESULT_DIR/$seq.full || _fail "mount failed"
+ umount $SCRATCH_MNT >>$seqres.full || _fail "unmount failed"
+ _scratch_mount >>$seqres.full || _fail "mount failed"
cd $_saveddir
}
echo "-----------------------------------------------"
if ! $here/ltp/fsstress $_param -s 1 $FSSTRESS_AVOID -n $_count -d $dump_dir >$tmp.out 2>&1
then
- echo " fsstress (count=$_count) returned $? - see $RESULT_DIR/$seq.full"
+ echo " fsstress (count=$_count) returned $? - see $seqres.full"
- echo "--------------------------------------" >>$RESULT_DIR/$seq.full
- echo "output from fsstress:" >>$RESULT_DIR/$seq.full
- echo "--------------------------------------" >>$RESULT_DIR/$seq.full
- cat $tmp.out >>$RESULT_DIR/$seq.full
+ echo "--------------------------------------" >>$seqres.full
+ echo "output from fsstress:" >>$seqres.full
+ echo "--------------------------------------" >>$seqres.full
+ cat $tmp.out >>$seqres.full
status=1
fi
echo "Dumping to tape..."
opts="$_dump_debug$dump_args -s $dump_sdir -f $dumptape -M $media_label -L $session_label $SCRATCH_MNT"
echo "xfsdump $opts" | _dir_filter
- $XFSDUMP_PROG $opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter
+ $XFSDUMP_PROG $opts 2>&1 | tee -a $seqres.full | _dump_filter
}
#
echo "Dumping to tape..."
opts="$_dump_debug$dump_args -f $dumptape -M $media_label -L $session_label $SCRATCH_MNT"
echo "xfsdump $opts" | _dir_filter
- $XFSDUMP_PROG $opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter
+ $XFSDUMP_PROG $opts 2>&1 | tee -a $seqres.full | _dump_filter
}
onemeg=1048576
opts="$_dump_debug$dump_args -m -b $onemeg -l0 -f $dumptape -M $media_label -L $session_label $SCRATCH_MNT"
echo "xfsdump $opts" | _dir_filter
- $XFSDUMP_PROG $opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter
+ $XFSDUMP_PROG $opts 2>&1 | tee -a $seqres.full | _dump_filter
}
echo "Dumping to file..."
opts="$_dump_debug$dump_args -f $dump_file -M $media_label -L $session_label $SCRATCH_MNT"
echo "xfsdump $opts" | _dir_filter
- $XFSDUMP_PROG $opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter
+ $XFSDUMP_PROG $opts 2>&1 | tee -a $seqres.full | _dump_filter
}
#
echo "Dumping to files..."
opts="$_dump_debug$dump_args $multi_args -L $session_label $SCRATCH_MNT"
echo "xfsdump $opts" | _dir_filter
- $XFSDUMP_PROG $opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter
+ $XFSDUMP_PROG $opts 2>&1 | tee -a $seqres.full | _dump_filter
}
echo "Restoring from tape..."
opts="$_restore_debug$restore_args -f $dumptape -L $session_label $restore_dir"
echo "xfsrestore $opts" | _dir_filter
- $XFSRESTORE_PROG $opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter
+ $XFSRESTORE_PROG $opts 2>&1 | tee -a $seqres.full | _dump_filter
}
#
onemeg=1048576
opts="$_restore_debug$restore_args -m -b $onemeg -f $dumptape -L $session_label $restore_dir"
echo "xfsrestore $opts" | _dir_filter
- $XFSRESTORE_PROG $opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter
+ $XFSRESTORE_PROG $opts 2>&1 | tee -a $seqres.full | _dump_filter
}
#
echo "Restoring from file..."
opts="$_restore_debug$restore_args -f $dump_file -L $session_label $restore_dir"
echo "xfsrestore $opts" | _dir_filter
- $XFSRESTORE_PROG $opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter
+ $XFSRESTORE_PROG $opts 2>&1 | tee -a $seqres.full | _dump_filter
}
#
echo "Restoring cumumlative from file..."
opts="$_restore_debug$restore_args -f $dump_file -r $restore_dir"
echo "xfsrestore $opts" | _dir_filter
- $XFSRESTORE_PROG $opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter
+ $XFSRESTORE_PROG $opts 2>&1 | tee -a $seqres.full | _dump_filter
}
_do_restore_toc()
opts="$_restore_debug$restore_args -f $dump_file -t"
echo "xfsrestore $opts" | _dir_filter
cd $SCRATCH_MNT # for IRIX which needs xfs cwd
- $XFSRESTORE_PROG $opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter_main |\
+ $XFSRESTORE_PROG $opts 2>&1 | tee -a $seqres.full | _dump_filter_main |\
_check_quota_file |\
_check_quota_entries |\
$AWK_PROG 'NF != 1 { print; next }
echo "Restoring from file..."
opts="$_restore_debug$restore_args $multi_args -L $session_label $restore_dir"
echo "xfsrestore $opts" | _dir_filter
- $XFSRESTORE_PROG $opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter
+ $XFSRESTORE_PROG $opts 2>&1 | tee -a $seqres.full | _dump_filter
}
#
restore_opts="$_restore_debug$restore_args - $restore_dir"
dump_opts="$_dump_debug$dump_args -s $dump_sdir - $SCRATCH_MNT"
echo "xfsdump $dump_opts | xfsrestore $restore_opts" | _dir_filter
- $XFSDUMP_PROG $dump_opts 2>$tmp.dump.mlog | $XFSRESTORE_PROG $restore_opts 2>&1 | tee -a $RESULT_DIR/$seq.full | _dump_filter
+ $XFSDUMP_PROG $dump_opts 2>$tmp.dump.mlog | $XFSRESTORE_PROG $restore_opts 2>&1 | tee -a $seqres.full | _dump_filter
_dump_filter <$tmp.dump.mlog
}
# verify we got back what we dumped
#
echo "Comparing listing of dump directory with restore directory"
- ls -nR $dump_dir | tee -a $RESULT_DIR/$seq.full | _ls_filter >$tmp.dump_dir
- ls -nR $restore_dir/$dump_sdir | tee -a $RESULT_DIR/$seq.full | _ls_filter \
+ ls -nR $dump_dir | tee -a $seqres.full | _ls_filter >$tmp.dump_dir
+ ls -nR $restore_dir/$dump_sdir | tee -a $seqres.full | _ls_filter \
| sed -e "s#$restore_sdir\/##" >$tmp.restore_dir
diff -bcs $tmp.dump_dir $tmp.restore_dir | sed -e "s#$tmp#TMP#g"
# verify we got back what we dumped
#
echo "Comparing listing of dump directory with restore directory"
- ls -nR $dump_dir | tee -a $RESULT_DIR/$seq.full | _ls_filter | _ls_nodate_filter >$tmp.dump_dir
- ls -nR $restore_dir/$dump_sdir | tee -a $RESULT_DIR/$seq.full | _ls_filter \
+ ls -nR $dump_dir | tee -a $seqres.full | _ls_filter | _ls_nodate_filter >$tmp.dump_dir
+ ls -nR $restore_dir/$dump_sdir | tee -a $seqres.full | _ls_filter \
| _ls_nodate_filter | sed -e "s#$restore_sdir\/##" >$tmp.restore_dir
diff -bcs $tmp.dump_dir $tmp.restore_dir | sed -e "s#$tmp#TMP#g"
echo "Comparing dump directory with restore directory"
echo "Looking at the extended attributes (EAs)"
echo "EAs on dump"
- _get_eas_on_path $dump_dir | tee $RESULT_DIR/$seq.ea1 | _dir_filter
+ _get_eas_on_path $dump_dir | tee $seqres.ea1 | _dir_filter
echo "EAs on restore"
_get_eas_on_path $restore_dir/$dump_sdir \
| sed -e "s#$restore_sdir\/##" \
- | tee $RESULT_DIR/$seq.ea2 \
+ | tee $seqres.ea2 \
| _dir_filter
- diff -s $RESULT_DIR/$seq.ea1 $RESULT_DIR/$seq.ea2
+ diff -s $seqres.ea1 $seqres.ea2
}
#
_dump_inventory()
{
- $XFSDUMP_PROG $_dump_debug -I | tee -a $RESULT_DIR/$seq.full | _dump_filter_main
+ $XFSDUMP_PROG $_dump_debug -I | tee -a $seqres.full | _dump_filter_main
}
#
_do_invutil()
{
host=`hostname`
- echo "xfsinvutil $_invutil_debug -M $host:$SCRATCH_MNT \"$middate\" $*" >$RESULT_DIR/$seq.full
+ echo "xfsinvutil $_invutil_debug -M $host:$SCRATCH_MNT \"$middate\" $*" >$seqres.full
$XFSINVUTIL_PROG $_invutil_debug $* -M $host:$SCRATCH_MNT "$middate" \
- | tee -a $RESULT_DIR/$seq.full | _invutil_filter
+ | tee -a $seqres.full | _invutil_filter
}
#
$here/src/feature -P $SCRATCH_DEV && pquota=1
$AWK_PROG -v uquota=$uquota -v gquota=$gquota -v pquota=$pquota \
- -v full=$RESULT_DIR/$seq.full -v usermsg="$usermsg" \
+ -v full=$seqres.full -v usermsg="$usermsg" \
-v groupmsg="$groupmsg" -v projectmsg="$projectmsg" '
$0 ~ projectmsg {
print "Found project quota:", $0 >>full
for this_num_two in $num_str_two; do
if [ "$this_num_one" == "$this_num_two" ]; then
echo "duplicate AG $this_num_one found" \
- >> $RESULT_DIR/$seq.full
+ >> $seqres.full
return 1
fi
done
stream_index=1
while [ $stream_index -le $stream_count ]; do
this_stream_ags=`_get_stream_ags stream${stream_index}-dir`
- echo "stream $stream_index AGs: $this_stream_ags" >> $RESULT_DIR/$seq.full
+ echo "stream $stream_index AGs: $this_stream_ags" >> $seqres.full
_check_for_dupes "$ags_seen" "$this_stream_ags"
if [ $? -ne 0 ]; then
# this stream is not in seperate AGs to previous streams
# Created by dxm@sgi.com & tes@sgi.com
#
-fulldir=$RESULT_DIR/$seq.fulldir
+fulldir=$seqres.fulldir
rm -rf $fulldir
_cleanup_logfiles()
_full()
{
- echo "" >>$RESULT_DIR/$seq.full
- echo "*** $* ***" >>$RESULT_DIR/$seq.full
- echo "" >>$RESULT_DIR/$seq.full
+ echo "" >>$seqres.full
+ echo "*** $* ***" >>$seqres.full
+ echo "" >>$seqres.full
}
_echofull()
{
- echo "" | tee -a $RESULT_DIR/$seq.full
- echo "*** $* ***" | tee -a $RESULT_DIR/$seq.full
- echo "" | tee -a $RESULT_DIR/$seq.full
+ echo "" | tee -a $seqres.full
+ echo "*** $* ***" | tee -a $seqres.full
+ echo "" | tee -a $seqres.full
}
# Handle the operations which get split over Log Record
_check_log()
{
_full "clean_log : xfs_logprint"
- _scratch_xfs_logprint -t | tee -a $RESULT_DIR/$seq.full \
+ _scratch_xfs_logprint -t | tee -a $seqres.full \
| head | grep -q "<CLEAN>" || _fail "DIRTY LOG"
}
_print_logstate()
{
- _scratch_xfs_logprint -t | tee -a $RESULT_DIR/$seq.full >$tmp.logprint
+ _scratch_xfs_logprint -t | tee -a $seqres.full >$tmp.logprint
if grep -q "<DIRTY>" $tmp.logprint; then
echo "dirty log"
fi
# mkfs options to append to log size otion can be specified ($*)
export MKFS_OPTIONS="-l size=2000b -l lazy-count=1 $*"
_full "mkfs"
- _scratch_mkfs_xfs >>$RESULT_DIR/$seq.full 2>&1
+ _scratch_mkfs_xfs >>$seqres.full 2>&1
if [ $? -ne 0 ] ; then
_echofull "Cannot mkfs for this test using option specified: $MKFS_OPTIONS"
return 1
{
# mount the FS
_full "mount"
- _scratch_mount >>$RESULT_DIR/$seq.full 2>&1
+ _scratch_mount >>$seqres.full 2>&1
if [ $? -ne 0 ] ; then
_echofull "mount failed: $MOUNT_OPTIONS"
return 1
# unmount the FS
_full "umount"
- umount $SCRATCH_DEV >>$RESULT_DIR/$seq.full 2>&1
+ umount $SCRATCH_DEV >>$seqres.full 2>&1
if [ $? -ne 0 ] ; then
_echofull "umount failed"
return 1
{
# mount the FS
_full " mount"
- _scratch_mount >>$RESULT_DIR/$seq.full 2>&1
+ _scratch_mount >>$seqres.full 2>&1
if [ $? -ne 0 ] ; then
_echofull "mount failed: $MOUNT_OPTIONS"
return 1
# unmount the FS
_full "umount"
- umount $SCRATCH_DEV >>$RESULT_DIR/$seq.full 2>&1
+ umount $SCRATCH_DEV >>$seqres.full 2>&1
if [ $? -ne 0 ] ; then
_echofull "umount failed"
return 1
{
# test out mkfs to see if it supports "-l version=2"
export MKFS_OPTIONS="-l version=2"
- if ! _scratch_mkfs_xfs >>$RESULT_DIR/$seq.full 2>&1; then
+ if ! _scratch_mkfs_xfs >>$seqres.full 2>&1; then
_notrun "mkfs does not support v2 logs"
fi
# test out mount to see if it mounts a v2 log fs
export MOUNT_OPTIONS="-o logbsize=32k"
- if ! _scratch_mount >>$RESULT_DIR/$seq.full 2>&1; then
+ if ! _scratch_mount >>$seqres.full 2>&1; then
_notrun "mount/kernel does not support v2 logs"
fi
# check after unmount to see if it is clean
# i.e. it is not a 6.5.25 buggy version checking kernel
touch $SCRATCH_MNT/file
- umount $SCRATCH_DEV >>$RESULT_DIR/$seq.full 2>&1
- if _scratch_xfs_logprint -t | tee -a $RESULT_DIR/$seq.full \
+ umount $SCRATCH_DEV >>$seqres.full 2>&1
+ if _scratch_xfs_logprint -t | tee -a $seqres.full \
| head | grep -q "<DIRTY>"; then
_notrun "kernel does not support v2 logs"
fi
parent=`dirname $1`
if [ $3 = p ]; then
- echo PARENT: xfs_io -r -c "chproj $2" -c "chattr +P" $parent >>$RESULT_DIR/$seq.full
- $XFS_IO_PROG -r -c "chproj $2" -c "chattr +P" $parent >>$RESULT_DIR/$seq.full 2>&1
+ echo PARENT: xfs_io -r -c "chproj $2" -c "chattr +P" $parent >>$seqres.full
+ $XFS_IO_PROG -r -c "chproj $2" -c "chattr +P" $parent >>$seqres.full 2>&1
magik='$>' # (irrelevent, above set projid-inherit-on-parent)
elif [ $3 = u ]; then
magik='$>' # perlspeak for effective uid
_notrun "broken type in call to _file_as_id in test $seq"
fi
- perl <<EOF >>$RESULT_DIR/$seq.full 2>&1
+ perl <<EOF >>$seqres.full 2>&1
\$| = 1;
$magik = $2;
if ($5 == 0) {
}
EOF
# for debugging the above euid change, try... [need write in cwd]
-# exec "dd if=/dev/zero of=$1 bs=$4 count=$5 >>$RESULT_DIR/$seq.full 2>&1";
+# exec "dd if=/dev/zero of=$1 bs=$4 count=$5 >>$seqres.full 2>&1";
if [ $3 = p ]; then
- echo PARENT: xfs_io -r -c "chproj 0" -c "chattr -P" $parent >>$RESULT_DIR/$seq.full
- $XFS_IO_PROG -r -c "chproj 0" -c "chattr -P" $parent >>$RESULT_DIR/$seq.full 2>&1
+ echo PARENT: xfs_io -r -c "chproj 0" -c "chattr -P" $parent >>$seqres.full
+ $XFS_IO_PROG -r -c "chproj 0" -c "chattr -P" $parent >>$seqres.full 2>&1
fi
}
_notrun "No quota support at mount time"
fi
- echo "Using output from '" `ls -l $seq.out` "'" >>$RESULT_DIR/$seq.full
- echo "and using type=$type id=$id" >>$RESULT_DIR/$seq.full
+ echo "Using output from '" `ls -l $seq.out` "'" >>$seqres.full
+ echo "and using type=$type id=$id" >>$seqres.full
}
#
# Ensure we have the given quota option - duplicates are fine
export MOUNT_OPTIONS="$MOUNT_OPTIONS -o $1"
- echo "MOUNT_OPTIONS = $MOUNT_OPTIONS" >>$RESULT_DIR/$seq.full
+ echo "MOUNT_OPTIONS = $MOUNT_OPTIONS" >>$seqres.full
}
_check_quota_usage()
if [ $mkfs_status -ne 0 -a ! -z "$extra_mkfs_options" ]; then
echo "** mkfs failed with extra mkfs options added to \"$MKFS_OPTIONS\" by test $seq **" \
- >>$RESULT_DIR/$seq.full
+ >>$seqres.full
echo "** attempting to mkfs using only test $seq options: $extra_mkfs_options **" \
- >>$RESULT_DIR/$seq.full
+ >>$seqres.full
# running mkfs again. overwrite previous mkfs output files
$MKFS_XFS_PROG $SCRATCH_OPTIONS $extra_mkfs_options $SCRATCH_DEV \
2>$tmp_dir.mkfserr 1>$tmp_dir.mkfsstd
fi
}
-# Do a command, log it to $RESULT_DIR/$seq.full, optionally test return status
+# Do a command, log it to $seqres.full, optionally test return status
# and die if command fails. If called with one argument _do executes the
# command, logs it, and returns its exit status. With two arguments _do
# first prints the message passed in the first argument, and then "done"
# second argument. If the command fails and the variable _do_die_on_error
# is set to "always" or the two argument form is used and _do_die_on_error
# is set to "message_only" _do will print an error message to
-# $RESULT_DIR/$seq.out and exit.
+# $seqres.out and exit.
_do()
{
status=1; exit
fi
- (eval "echo '---' \"$_cmd\"") >>$RESULT_DIR/$seq.full
+ (eval "echo '---' \"$_cmd\"") >>$seqres.full
(eval "$_cmd") >$tmp._out 2>&1; ret=$?
- cat $tmp._out | _fix_malloc >>$RESULT_DIR/$seq.full
+ cat $tmp._out | _fix_malloc >>$seqres.full
if [ $# -eq 2 ]; then
if [ $ret -eq 0 ]; then
echo "done"
-o \( $# -eq 2 -a "$_do_die_on_error" = "message_only" \) ]
then
[ $# -ne 2 ] && echo
- eval "echo \"$_cmd\" failed \(returned $ret\): see $RESULT_DIR/$seq.full"
+ eval "echo \"$_cmd\" failed \(returned $ret\): see $seqres.full"
status=1; exit
fi
#
_notrun()
{
- echo "$*" > $RESULT_DIR/$seq.notrun
+ echo "$*" > $seqres.notrun
echo "$seq not run: $*"
status=0
exit
#
_fail()
{
- echo "$*" | tee -a $RESULT_DIR/$seq.full
- echo "(see $RESULT_DIR/$seq.full for details)"
+ echo "$*" | tee -a $seqres.full
+ echo "(see $seqres.full for details)"
status=1
exit 1
}
fsck -t $FSTYP $FSCK_OPTIONS $device >$tmp.fsck 2>&1
if [ $? -ne 0 ]
then
- echo "_check_generic_filesystem: filesystem on $device is inconsistent (see $RESULT_DIR/$seq.full)"
+ echo "_check_generic_filesystem: filesystem on $device is inconsistent (see $seqres.full)"
- echo "_check_generic filesystem: filesystem on $device is inconsistent" >>$RESULT_DIR/$seq.full
- echo "*** fsck.$FSTYP output ***" >>$RESULT_DIR/$seq.full
- cat $tmp.fsck >>$RESULT_DIR/$seq.full
- echo "*** end fsck.$FSTYP output" >>$RESULT_DIR/$seq.full
+ echo "_check_generic filesystem: filesystem on $device is inconsistent" >>$seqres.full
+ echo "*** fsck.$FSTYP output ***" >>$seqres.full
+ cat $tmp.fsck >>$seqres.full
+ echo "*** end fsck.$FSTYP output" >>$seqres.full
ok=0
fi
if [ $ok -eq 0 ]
then
- echo "*** mount output ***" >>$RESULT_DIR/$seq.full
- _mount >>$RESULT_DIR/$seq.full
- echo "*** end mount output" >>$RESULT_DIR/$seq.full
+ echo "*** mount output ***" >>$seqres.full
+ _mount >>$seqres.full
+ echo "*** end mount output" >>$seqres.full
elif [ "$type" = "$FSTYP" ]
then
# was mounted ...
| tee $tmp.logprint | grep -q "<CLEAN>"
if [ $? -ne 0 -a "$HOSTOS" = "Linux" ]
then
- echo "_check_xfs_filesystem: filesystem on $device has dirty log (see $RESULT_DIR/$seq.full)"
+ echo "_check_xfs_filesystem: filesystem on $device has dirty log (see $seqres.full)"
- echo "_check_xfs_filesystem: filesystem on $device has dirty log" >>$RESULT_DIR/$seq.full
- echo "*** xfs_logprint -t output ***" >>$RESULT_DIR/$seq.full
- cat $tmp.logprint >>$RESULT_DIR/$seq.full
- echo "*** end xfs_logprint output" >>$RESULT_DIR/$seq.full
+ echo "_check_xfs_filesystem: filesystem on $device has dirty log" >>$seqres.full
+ echo "*** xfs_logprint -t output ***" >>$seqres.full
+ cat $tmp.logprint >>$seqres.full
+ echo "*** end xfs_logprint output" >>$seqres.full
ok=0
fi
fi
if [ -s $tmp.fs_check ]
then
- echo "_check_xfs_filesystem: filesystem on $device is inconsistent (c) (see $RESULT_DIR/$seq.full)"
+ echo "_check_xfs_filesystem: filesystem on $device is inconsistent (c) (see $seqres.full)"
- echo "_check_xfs_filesystem: filesystem on $device is inconsistent" >>$RESULT_DIR/$seq.full
- echo "*** xfs_check output ***" >>$RESULT_DIR/$seq.full
- cat $tmp.fs_check >>$RESULT_DIR/$seq.full
- echo "*** end xfs_check output" >>$RESULT_DIR/$seq.full
+ echo "_check_xfs_filesystem: filesystem on $device is inconsistent" >>$seqres.full
+ echo "*** xfs_check output ***" >>$seqres.full
+ cat $tmp.fs_check >>$seqres.full
+ echo "*** end xfs_check output" >>$seqres.full
ok=0
fi
$XFS_REPAIR_PROG -n $extra_log_options $extra_rt_options $device >$tmp.repair 2>&1
if [ $? -ne 0 ]
then
- echo "_check_xfs_filesystem: filesystem on $device is inconsistent (r) (see $RESULT_DIR/$seq.full)"
+ echo "_check_xfs_filesystem: filesystem on $device is inconsistent (r) (see $seqres.full)"
- echo "_check_xfs_filesystem: filesystem on $device is inconsistent" >>$RESULT_DIR/$seq.full
- echo "*** xfs_repair -n output ***" >>$RESULT_DIR/$seq.full
- cat $tmp.repair | _fix_malloc >>$RESULT_DIR/$seq.full
- echo "*** end xfs_repair output" >>$RESULT_DIR/$seq.full
+ echo "_check_xfs_filesystem: filesystem on $device is inconsistent" >>$seqres.full
+ echo "*** xfs_repair -n output ***" >>$seqres.full
+ cat $tmp.repair | _fix_malloc >>$seqres.full
+ echo "*** end xfs_repair output" >>$seqres.full
ok=0
fi
if [ $ok -eq 0 ]
then
- echo "*** mount output ***" >>$RESULT_DIR/$seq.full
- _mount >>$RESULT_DIR/$seq.full
- echo "*** end mount output" >>$RESULT_DIR/$seq.full
+ echo "*** mount output ***" >>$seqres.full
+ _mount >>$seqres.full
+ echo "*** end mount output" >>$seqres.full
elif [ "$type" = "xfs" ]
then
_mount_or_remount_rw "$extra_mount_options" $device $mountpoint
OPT_ARG="-lastvalidblock $LAST_BLOCK"
fi
- rm -f $RESULT_DIR/$seq.checkfs
+ rm -f $seqres.checkfs
sleep 1 # Due to a problem with time stamps in udf_test
- $here/src/udf_test $OPT_ARG $device | tee $RESULT_DIR/$seq.checkfs | egrep "Error|Warning" | \
+ $here/src/udf_test $OPT_ARG $device | tee $seqres.checkfs | egrep "Error|Warning" | \
_udf_test_known_error_filter | \
egrep -iv "Error count:.*[0-9]+.*total occurrences:.*[0-9]+|Warning count:.*[0-9]+.*total occurrences:.*[0-9]+" | \
- sed "s/^.*$/Warning UDF Verifier reported errors see $RESULT_DIR/$seq.checkfs./g"
+ sed "s/^.*$/Warning UDF Verifier reported errors see $seqres.checkfs./g"
}
btrfsck $device >$tmp.fsck 2>&1
if [ $? -ne 0 ]
then
- echo "_check_btrfs_filesystem: filesystem on $device is inconsistent (see $RESULT_DIR/$seq.full)"
+ echo "_check_btrfs_filesystem: filesystem on $device is inconsistent (see $seqres.full)"
- echo "_check_btrfs_filesystem: filesystem on $device is inconsistent" >>$RESULT_DIR/$seq.full
- echo "*** fsck.$FSTYP output ***" >>$RESULT_DIR/$seq.full
- cat $tmp.fsck >>$RESULT_DIR/$seq.full
- echo "*** end fsck.$FSTYP output" >>$RESULT_DIR/$seq.full
+ echo "_check_btrfs_filesystem: filesystem on $device is inconsistent" >>$seqres.full
+ echo "*** fsck.$FSTYP output ***" >>$seqres.full
+ cat $tmp.fsck >>$seqres.full
+ echo "*** end fsck.$FSTYP output" >>$seqres.full
ok=0
fi
if [ $ok -eq 0 ]
then
- echo "*** mount output ***" >>$RESULT_DIR/$seq.full
- _mount >>$RESULT_DIR/$seq.full
- echo "*** end mount output" >>$RESULT_DIR/$seq.full
+ echo "*** mount output ***" >>$seqres.full
+ _mount >>$seqres.full
+ echo "*** end mount output" >>$seqres.full
elif [ "$type" = "$FSTYP" ]
then
# was mounted ...
run_check()
{
- echo "# $@" >> $RESULT_DIR/$seq.full 2>&1
- "$@" >> $RESULT_DIR/$seq.full 2>&1 || _fail "failed: '$@'"
+ echo "# $@" >> $seqres.full 2>&1
+ "$@" >> $seqres.full 2>&1 || _fail "failed: '$@'"
}
################################################################################
let phys_exp=phys_exp+1
done
opts="sector_size=$logical physblk_exp=$phys_exp lowest_aligned=$unaligned dev_size_mb=$size"
- echo "scsi_debug options $opts" >> $RESULT_DIR/$seq.full
+ echo "scsi_debug options $opts" >> $seqres.full
modprobe scsi_debug $opts
[ $? -eq 0 ] || _fail "scsi_debug modprobe failed"
sleep 1
#
_chain()
{
- $AWK_PROG -v full_file=$here/$seqres.full -v verify=$verify <$tmp.config '
+ $AWK_PROG -v full_file=$seqres.full -v verify=$verify <$tmp.config '
BEGIN { nfile = 0 }
/^\#/ { next }
{ file[nfile] = $1
}
}
}' \
- | tee -a $here/$seqres.full | sh
+ | tee -a $seqres.full | sh
}
_check()
fi
}
-rm -f $here/$seqres.full
+rm -f $seqres.full
status=0
_cleanup
status=1
for iter in 1 2 3 4 5
do
echo -n "iter $iter chain ... "
- echo "iter $iter" >> $here/$seqres.full
+ echo "iter $iter" >> $seqres.full
_chain
_check
if [ -f $tmp.bad ]
cd $testdir
-$here/src/dbtest -l 5 -n 1000 2>&1 | tee -a $here/$seqres.full | _filter_dbtest
+$here/src/dbtest -l 5 -n 1000 2>&1 | tee -a $seqres.full | _filter_dbtest
# success, all done
exit
if ! $FSSTRESS_PROG $_param $FSSTRESS_AVOID -v -m 8 -n $_count -d $out >>$dbgoutfile 2>&1
then
echo " fsstress (count=$_count) returned $? - see $seqres.full"
- echo "--------------------------------------" >>$here/$seqres.full
- echo "$_n - output from fsstress:" >>$here/$seqres.full
- echo "--------------------------------------" >>$here/$seqres.full
- echo "<NOT LOGGED>" >>$here/$seqres.full
- #cat $tmp.out >>$here/$seqres.full
+ echo "--------------------------------------" >>$seqres.full
+ echo "$_n - output from fsstress:" >>$seqres.full
+ echo "--------------------------------------" >>$seqres.full
+ echo "<NOT LOGGED>" >>$seqres.full
+ #cat $tmp.out >>$seqres.full
status=1
fi
_setup_testdir
-rm -f $here/$seqres.full
+rm -f $seqres.full
echo "brevity is wit..."
count=1000
# real QA test starts here
-rm -f $here/$seqres.full
+rm -f $seqres.full
_supported_fs generic
_supported_os IRIX Linux
cd $out
if ! $here/ltp/fsx $_param -P $here $seq.$_n &>/dev/null
then
- echo " fsx ($_param) failed, $? - compare $seq.$_n.{good,bad,fsxlog}"
- mv $out/$seq.$_n $here/$seq.$_n.full
- od -xAx $here/$seq.$_n.full > $here/$seq.$_n.bad
- od -xAx $here/$seq.$_n.fsxgood > $here/$seq.$_n.good
+ echo " fsx ($_param) failed, $? - compare $seqres.$_n.{good,bad,fsxlog}"
+ mv $out/$seq.$_n $seqres.$_n.full
+ od -xAx $seqres.$_n.full > $seqres.$_n.bad
+ od -xAx $seqres.$_n.fsxgood > $seqres.$_n.good
status=1
exit
fi
_setup_testdir
-rm -f $here/$seqres.full
+rm -f $seqres.full
echo "brevity is wit..."
_check_test_fs
echo directory entries:
ls | grep mtab
- echo directory entries >> $here/$seqres.full
- ls -li >> $here/$seqres.full
+ echo directory entries >> $seqres.full
+ ls -li >> $seqres.full
}
# directory with only a few entries
rm -f $TEMP_DIR/$TAR_FILE
# Create the new directory structure
-_populate_fs -n $NDIRS -f $NFILES -d $DEPTH -r $POPULATED_DIR -s $SIZE >>$here/$seqres.full 2>&1
+_populate_fs -n $NDIRS -f $NFILES -d $DEPTH -r $POPULATED_DIR -s $SIZE >>$seqres.full 2>&1
# Then tar up the directory structure
-tar -cvf $TEMP_DIR/$TAR_FILE $POPULATED_DIR >>$here/$seqres.full 2>&1
+tar -cvf $TEMP_DIR/$TAR_FILE $POPULATED_DIR >>$seqres.full 2>&1
# create f/s
_require_scratch
# untar on f/s
cd $testdir
-tar -xRvf $TEMP_DIR/$TAR_FILE >>$here/$seqres.full 2>&1
+tar -xRvf $TEMP_DIR/$TAR_FILE >>$seqres.full 2>&1
cd $here
# use diff -qr to compare
-ls -R -l ${testdir}${POPULATED_DIR} >>$here/$seqres.full 2>&1
+ls -R -l ${testdir}${POPULATED_DIR} >>$seqres.full 2>&1
diff -qr $POPULATED_DIR ${testdir}${POPULATED_DIR}
cd /
if ! $here/ltp/fsx $_param -P $here $seq.$_n &>/dev/null
then
echo " fsx ($_param) returned $? - see $seq.$_n.full"
- mv $seq.$_n.fsxlog $here/$seq.$_n.full
+ mv $seq.$_n.fsxlog $seqres.$_n.full
status=1
exit
fi
_setup_testdir
-rm -f $here/$seqres.full
+rm -f $seqres.full
echo "brevity is wit..."
_check_test_fs
cd /
umount $TEST_DIR
_test_mount
-time3=`_access_time $testfile | tee -a $here/$seqres.full`
+time3=`_access_time $testfile | tee -a $seqres.full`
delta1=`expr $time2 - $time1`
delta2=`expr $time3 - $time1`
_filter_num()
{
- tee -a $here/$seqres.full |\
+ tee -a $seqres.full |\
sed -e 's/[0-9][0-9]* inodes/I inodes/g' \
-e 's/[0-9][0-9]* paths/P paths/g' \
-e 's/seed = [0-9][0-9]*/seed = S/'
count=2000
args=`_scale_fsstress_args -d $out -n $count -p 7`
- echo "fsstress $args" >> tee -a $here/$seqres.full
- if ! $FSSTRESS_PROG $args | tee -a $here/$seqres.full | _filter_num
+ echo "fsstress $args" >> tee -a $seqres.full
+ if ! $FSSTRESS_PROG $args | tee -a $seqres.full | _filter_num
then
echo " fsstress $args returned $?"
- cat $tmp.out | tee -a $here/$seqres.full
+ cat $tmp.out | tee -a $seqres.full
status=1
fi
}
_filter_num()
{
- tee -a $here/$seqres.full |\
+ tee -a $seqres.full |\
sed -e 's/[0-9][0-9]* inodes/I inodes/g' \
-e 's/[0-9][0-9]* paths/P paths/g' \
-e 's/seed = [0-9][0-9]*/seed = S/'
-f rename=10 -f fsync=2 -f write=15 -f dwrite=15 \
-n $count -d $out -p 7`
- echo "fsstress $args" >> tee -a $here/$seqres.full
- if ! su $qa_user -c "$FSSTRESS_PROG $args" | tee -a $here/$seqres.full | _filter_num
+ echo "fsstress $args" >> tee -a $seqres.full
+ if ! su $qa_user -c "$FSSTRESS_PROG $args" | tee -a $seqres.full | _filter_num
then
echo " fsstress $args returned $?"
- cat $tmp.out | tee -a $here/$seqres.full
+ cat $tmp.out | tee -a $seqres.full
status=1
fi
}
enospc_time=2
out=$SCRATCH_MNT/fsstress.$$
args=`_scale_fsstress_args -p128 -n999999999 -f setattr=1 $FSSTRESS_AVOID -d $out`
- echo "fsstress $args" >> $here/$seqres.full
+ echo "fsstress $args" >> $seqres.full
$FSSTRESS_PROG $args > /dev/null 2>&1 &
pid=$!
echo "Run dd writers in parallel"
do
# File will be opened with O_TRUNC each time
dd if=/dev/zero of=$SCRATCH_MNT/SPACE_CONSUMER bs=1M \
- >> $here/$seqres.full 2>&1
+ >> $seqres.full 2>&1
sleep $enospc_time
done
kill $pid
enospc_time=2
out=$SCRATCH_MNT/fsstress.$$
args=`_scale_fsstress_args -p128 -n999999999 -f setattr=1 $FSSTRESS_AVOID -d $out`
- echo "fsstress $args" >> $here/$seqres.full
+ echo "fsstress $args" >> $seqres.full
# Grant chown capability
cp $FSSTRESS_PROG $tmp.fsstress.bin
if [ "`whereis setcap`" == "setcap:" ]; then
# File will be opened with O_TRUNC each time
su $qa_user -c "dd if=/dev/zero \
of=$SCRATCH_MNT/SPACE_CONSUMER bs=1M " \
- >> $here/$seqres.full 2>&1
+ >> $seqres.full 2>&1
sleep $enospc_time
done
start_fail_scratch_dev()
{
echo "Force SCRATCH_DEV device failure"
- echo " echo 1 > /sys/block/$SCRATCH_BDEV/make-it-fail" >> $here/$seqres.full
+ echo " echo 1 > /sys/block/$SCRATCH_BDEV/make-it-fail" >> $seqres.full
echo 1 > /sys/block/$SCRATCH_BDEV/make-it-fail
}
stop_fail_scratch_dev()
{
echo "Make SCRATCH_DEV device operable again"
- echo " echo 0 > /sys/block/$SCRATCH_BDEV/make-it-fail" >> $here/$seqres.full
+ echo " echo 0 > /sys/block/$SCRATCH_BDEV/make-it-fail" >> $seqres.full
echo 0 > /sys/block/$SCRATCH_BDEV/make-it-fail
}
echo ""
echo "Start fsstress.."
echo ""
- echo "fsstress $args" >> $here/$seqres.full
+ echo "fsstress $args" >> $seqres.full
$FSSTRESS_PROG $args > /dev/null 2>&1 &
fs_pid=$!
echo "Start fio.."
cat $tmp-$seq.fio >> $seqres.full
- $FIO_PROG $tmp-$seq.fio >> $here/$seqres.full 2>&1 &
+ $FIO_PROG $tmp-$seq.fio >> $seqres.full 2>&1 &
fio_pid=$!
# Let's it work for awhile, and force device failure
# that so buffered write(2) may succeed, but any integrity operations
# such as (sync, fsync, fdatasync, direct-io) should fail.
dd if=/dev/zero of=$SCRATCH_MNT/touch_failed_filesystem count=1 bs=4k conv=fsync \
- >> $here/$seqres.full 2>&1 && \
+ >> $seqres.full 2>&1 && \
_fail "failed: still able to perform integrity fsync on $SCRATCH_MNT"
kill $fs_pid
# real QA test starts here
-_scratch_mkfs >> $here/$seqres.full 2>&1 || _fail "mkfs failed"
+_scratch_mkfs >> $seqres.full 2>&1 || _fail "mkfs failed"
_scratch_mount || _fail "mount failed"
allow_fail_make_request
_workout
fi
else
echo " randholes returned $? - see $seq.out.full"
- echo "--------------------------------------" >>$here/$seq.out.full
- echo "$_n - output from randholes:" >>$here/$seq.out.full
- echo "--------------------------------------" >>$here/$seq.out.full
- cat $tmp.out >>$here/$seq.out.full
- echo "--------------------------------------" >>$here/$seq.out.full
- echo "$_n - output from bmap:" >>$here/$seq.out.full
- echo "--------------------------------------" >>$here/$seq.out.full
- xfs_bmap -vvv $out >>$here/$seq.out.full
+ echo "--------------------------------------" >>$seqres.full
+ echo "$_n - output from randholes:" >>$seqres.full
+ echo "--------------------------------------" >>$seqres.full
+ cat $tmp.out >>$seqres.full
+ echo "--------------------------------------" >>$seqres.full
+ echo "$_n - output from bmap:" >>$seqres.full
+ echo "--------------------------------------" >>$seqres.full
+ xfs_bmap -vvv $out >>$seqres.full
status=1
fi
}
_setup_testdir
-rm -f $here/$seq.out.full
+rm -f $seqres.full
# Note on special numbers here.
#
echo "-----------------------------------------------"
if ! $here/src/holes $_param $out >$tmp.out
then
- echo " holes returned $? - see $seq.out.full"
+ echo " holes returned $? - see $seqres.full"
failed=1
status=1
fi
if [ $count -ne $_count ]
then
- echo " unexpected number of holes - see $seq.out.full"
+ echo " unexpected number of holes - see $seqres.full"
status=1
failed=1
fi
if [ $failed -eq 1 ]
then
- echo "--------------------------------------" >>$here/$seq.out.full
- echo "$_n - output from holes:" >>$here/$seq.out.full
- echo "--------------------------------------" >>$here/$seq.out.full
- cat $tmp.out >>$here/$seq.out.full
- echo "--------------------------------------" >>$here/$seq.out.full
- echo "$_n - output from bmap:" >>$here/$seq.out.full
- echo "--------------------------------------" >>$here/$seq.out.full
- xfs_bmap -vvv $out >>$here/$seq.out.full
- echo "--------------------------------------" >>$here/$seq.out.full
- echo "$_n - output from ls -li:" >>$here/$seq.out.full
- echo "--------------------------------------" >>$here/$seq.out.full
- ls -li $out >>$here/$seq.out.full
+ echo "--------------------------------------" >>$seqres.full
+ echo "$_n - output from holes:" >>$seqres.full
+ echo "--------------------------------------" >>$seqres.full
+ cat $tmp.out >>$seqres.full
+ echo "--------------------------------------" >>$seqres.full
+ echo "$_n - output from bmap:" >>$seqres.full
+ echo "--------------------------------------" >>$seqres.full
+ xfs_bmap -vvv $out >>$seqres.full
+ echo "--------------------------------------" >>$seqres.full
+ echo "$_n - output from ls -li:" >>$seqres.full
+ echo "--------------------------------------" >>$seqres.full
+ ls -li $out >>$seqres.full
status=1
fi
}
_setup_testdir
-rm -f $here/$seq.out.full
+rm -f $seqres.full
# small & fairly dense
_do_test 1 "-l 40960000 -b 40960 -i 10 -c 1" 100
_create_dumpdir_fill
# ensure file/dir timestamps precede dump timestamp
sleep 2
-src/bstat $SCRATCH_MNT >>$here/$seqres.full
+src/bstat $SCRATCH_MNT >>$seqres.full
_erase_hard
_do_dump
_append_dumpdir_fill
-src/bstat $SCRATCH_MNT >>$here/$seqres.full
+src/bstat $SCRATCH_MNT >>$seqres.full
_erase_hard
_do_dump -l 1
_do_restore
_scratch_mkfs_xfs | _filter_mkfs >$seqres.full 2>$tmp.mkfs
[ $? -eq 0 ] && source $tmp.mkfs
if [ "$isize" -lt 1024 ]; then
- _scratch_mkfs_xfs -i size=1024 >>$here/$seqres.full \
+ _scratch_mkfs_xfs -i size=1024 >>$seqres.full \
|| _notrun "Cannot mkfs for this test using MKFS_OPTIONS specified"
fi
-_scratch_mount >>$here/$seqres.full || _fail "mount failed"
-xfs_info $SCRATCH_MNT >>$here/$seqres.full
+_scratch_mount >>$seqres.full || _fail "mount failed"
+xfs_info $SCRATCH_MNT >>$seqres.full
cd $SCRATCH_MNT
echo ""
p=dir2/dir3/dir4/file4
touch $p
- #_print_names $p >>$here/$seqres.full
- _print_names $p | tee -a $here/$seqres.full
+ #_print_names $p >>$seqres.full
+ _print_names $p | tee -a $seqres.full
_check_paths $SCRATCH_MNT/$p
}
ln $p $x
done
- _print_names $p >>$here/$seqres.full
+ _print_names $p >>$seqres.full
echo ""
echo "print out names and check after created hardlinks"
echo ""
for x in $paths; do
- _print_names $x | tee -a $here/$seqres.full
+ _print_names $x | tee -a $seqres.full
_check_paths $SCRATCH_MNT/$x
done
echo ""
for x in $paths; do
if [ -e $x ]; then
- _print_names $x | tee -a $here/$seqres.full
+ _print_names $x | tee -a $seqres.full
_check_paths $SCRATCH_MNT/$x
fi
done
_filter_num()
{
- tee -a $here/$seqres.full |\
+ tee -a $seqres.full |\
sed -e 's/[0-9][0-9]* inodes/I inodes/g' \
-e 's/[0-9][0-9]* paths/P paths/g' \
-e 's/seed = [0-9][0-9]*/seed = S/'
if ! $FSSTRESS_PROG $args | _filter_num
then
echo " fsstress $args returned $?"
- cat $tmp.out | tee -a $here/$seqres.full
+ cat $tmp.out | tee -a $seqres.full
status=1
fi
if ! $here/src/dirstress $args >$tmp.out 2>&1 | _filter_num
then
echo " dirstress failed"
- echo "*** dirstress $args" | tee -a $here/$seqres.full
- cat $tmp.out >>$here/$seqres.full
+ echo "*** dirstress $args" | tee -a $seqres.full
+ cat $tmp.out >>$seqres.full
status=1
exit
fi
if ! $here/src/dirstress $args >$tmp.out 2>&1 | _filter_num
then
echo " dirstress failed"
- echo "*** dirstress $args" | tee -a $here/$seqres.full
- cat $tmp.out >>$here/$seqres.full
+ echo "*** dirstress $args" | tee -a $seqres.full
+ cat $tmp.out >>$seqres.full
status=1
exit
fi
_require_attrs
_need_to_be_root
-rm -f $here/$seqres.full
+rm -f $seqres.full
echo "mkfs"
-_scratch_mkfs_xfs >>$here/$seqres.full 2>&1 \
+_scratch_mkfs_xfs >>$seqres.full 2>&1 \
|| _fail "mkfs scratch failed"
-_scratch_mkfs_xfs -i parent=1 >>$here/$seqres.full 2>&1 \
+_scratch_mkfs_xfs -i parent=1 >>$seqres.full 2>&1 \
|| _notrun "parent inodes not supported"
echo "mount"
-_scratch_mount >>$here/$seqres.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
# real QA test starts here
_require_scratch
_require_attrs
-rm -f $here/$seqres.full
+rm -f $seqres.full
echo "mkfs"
-_scratch_mkfs_xfs >>$here/$seqres.full 2>&1 \
+_scratch_mkfs_xfs >>$seqres.full 2>&1 \
|| _fail "mkfs scratch failed"
-_scratch_mkfs_xfs -i paths=1 >>$here/$seqres.full 2>&1 \
+_scratch_mkfs_xfs -i paths=1 >>$seqres.full 2>&1 \
|| _notrun "i_paths not supported"
echo "mount"
-_scratch_mount >>$here/$seqres.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
# real QA test starts here
# dmapi destroy events are asyncronous, don't rely on fixed ordering of events
# in print_event output, use sort.
echo "# here comes the dmapi print_event filtered and sorted output"
-cat $tmp.print_event_out | tee -a $here/$seqres.full | _filter_dmapi_print_event | LC_COLLATE=POSIX sort
+cat $tmp.print_event_out | tee -a $seqres.full | _filter_dmapi_print_event | LC_COLLATE=POSIX sort
rm $tmp.print_event_out
status=0
_filter_inode()
{
- tee -a $here/$seqres.full | \
+ tee -a $seqres.full | \
sed -e "s/core.forkoff/forkoff/g" | \
egrep '^u.sfdir2|^a.sfattr|forkoff' | \
egrep -v 'inumber|parent'
_filter_version()
{
- tee -a $here/$seqres.full | tr ',' '\n' | grep ATTR
+ tee -a $seqres.full | tr ',' '\n' | grep ATTR
}
_print_inode()
_create_dumpdir_fill
# ensure file/dir timestamps precede dump timestamp
sleep 2
-src/bstat $SCRATCH_MNT >>$here/$seqres.full
+src/bstat $SCRATCH_MNT >>$seqres.full
echo "*** Level 0 dump, format 2"
_do_dump_file -f $tmp.l0 -K
_append_dumpdir_fill
-src/bstat $SCRATCH_MNT >>$here/$seqres.full
+src/bstat $SCRATCH_MNT >>$seqres.full
echo "*** Level 1 dump, current format"
_do_dump_file -l 1 -f $tmp.l1
_create_dumpdir_fill
# ensure file/dir timestamps precede dump timestamp
sleep 2
-src/bstat $SCRATCH_MNT >>$here/$seqres.full
+src/bstat $SCRATCH_MNT >>$seqres.full
echo "*** Level 0 dump, current format"
_do_dump_file -f $tmp.l0
_append_dumpdir_fill
-src/bstat $SCRATCH_MNT >>$here/$seqres.full
+src/bstat $SCRATCH_MNT >>$seqres.full
echo "*** Level 1 dump, format 2"
_do_dump_file -l 1 -f $tmp.l1 -K