#
# creator
seq=\`basename \$0\`
+seqres=$RESULT_DIR/$seq
echo "QA output created by \$seq"
here=\`pwd\`
# optional stuff if your test has verbose output to help resolve problems
#echo
-#echo "If failure, check \$seq.full (this) and \$seq.full.ok (reference)"
+#echo "If failure, check \$seqres.full (this) and \$seqres.full.ok (reference)"
# success, all done
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_cleanup()
{
if [ $noise_pid -ne 0 ]; then
- echo "background noise kill $noise_pid" >>$seq.full
+ echo "background noise kill $noise_pid" >>$seqres.full
kill $noise_pid
noise_pid=0
wait
_require_btrfs inspect-internal
_require_command "/usr/sbin/filefrag"
-rm -f $seq.full
+rm -f $seqres.full
FILEFRAG_FILTER='if (/, blocksize (\d+)/) {$blocksize = $1; next} ($ext, '\
'$logical, $physical, $expected, $length, $flags) = (/^\s*(\d+)\s+(\d+)'\
# sample output: "1234#10#5678" -> physical 1234, length 10, logical 5678
_filter_extents()
{
- tee -a $seq.full | $PERL_PROG -ne "$FILEFRAG_FILTER"
+ tee -a $seqres.full | $PERL_PROG -ne "$FILEFRAG_FILTER"
}
_check_file_extents()
{
cmd="filefrag -v $1"
- echo "# $cmd" >> $seq.full
+ echo "# $cmd" >> $seqres.full
out=`$cmd | _filter_extents`
if [ -z "$out" ]; then
return 1
fi
- echo "after filter: $out" >> $seq.full
+ echo "after filter: $out" >> $seqres.full
echo $out
return 0
}
expect_inum=$4
file=$5
cmd="$BTRFS_UTIL_PROG inspect-internal logical-resolve -P $addr $mp"
- echo "# $cmd" >> $seq.full
+ echo "# $cmd" >> $seqres.full
out=`$cmd`
- echo "$out" >> $seq.full
+ echo "$out" >> $seqres.full
grep_expr="inode $expect_inum offset $expect_addr root"
echo "$out" | grep "^$grep_expr 5$" >/dev/null
ret=$?
snap_name=$3
mp="$SCRATCH_MNT/$snap_name"
cmd="$BTRFS_UTIL_PROG inspect-internal inode-resolve $inum $mp"
- echo "# $cmd" >> $seq.full
+ echo "# $cmd" >> $seqres.full
out=`$cmd`
- echo "$out" >> $seq.full
+ echo "$out" >> $seqres.full
grep_expr="^$file$"
cnt=`echo "$out" | grep "$grep_expr" | wc -l`
if [ $cnt -ge "1" ]; then
logical=$4
snap_name=$5
cmd="stat -c %i $file"
- echo "# $cmd" >> $seq.full
+ echo "# $cmd" >> $seqres.full
inum=`$cmd`
- echo "$inum" >> $seq.full
+ echo "$inum" >> $seqres.full
_btrfs_inspect_addr $SCRATCH_MNT $physical $logical $inum $file
ret=$?
if [ $ret -eq 0 ]; then
do_bg_noise=$5
umount $SCRATCH_DEV >/dev/null 2>&1
- echo "*** mkfs -dsize=$fsz" >>$seq.full
- echo "" >>$seq.full
- _scratch_mkfs_sized $fsz >>$seq.full 2>&1 \
+ echo "*** mkfs -dsize=$fsz" >>$seqres.full
+ echo "" >>$seqres.full
+ _scratch_mkfs_sized $fsz >>$seqres.full 2>&1 \
|| _fail "size=$fsz mkfs failed"
run_check _scratch_mount
# -w ensures that the only ops are ones which cause write I/O
if [ $do_bg_noise -ne 0 ]; then
# make background noise while backrefs are being walked
while /bin/true; do
- echo background fsstress >>$seq.full
+ echo background fsstress >>$seqres.full
run_check $FSSTRESS_PROG -d $SCRATCH_MNT/bgnoise -n 999
- echo background rm >>$seq.full
+ echo background rm >>$seqres.full
rm -rf $SCRATCH_MNT/bgnoise/
done &
noise_pid=`jobs -p %1`
- echo "background noise by $noise_pid" >>$seq.full
+ echo "background noise by $noise_pid" >>$seqres.full
fi
cnt=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here="`pwd`"
tmp=/tmp/$$
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "== QA output created by $seq"
here=`pwd`
_require_scratch
_require_scratch_dev_pool
-rm -f $seq.full
+rm -f $seqres.full
FIRST_POOL_DEV=`echo $SCRATCH_DEV_POOL | awk '{print $1}'`
LAST_POOL_DEV=`echo $SCRATCH_DEV_POOL | awk '{print $NF}'`
TOTAL_DEVS=`echo $SCRATCH_DEV $SCRATCH_DEV_POOL | wc -w`
LABEL=TestLabel.$seq
-echo "Scratch $SCRATCH_DEV First $FIRST_POOL_DEV last $LAST_POOL_DEV Total $TOTAL_DEVS" > $seq.full
+echo "Scratch $SCRATCH_DEV First $FIRST_POOL_DEV last $LAST_POOL_DEV Total $TOTAL_DEVS" > $seqres.full
-_scratch_mkfs $SCRATCH_DEV_POOL >> $seq.full 2>&1 || _fail "mkfs failed"
+_scratch_mkfs $SCRATCH_DEV_POOL >> $seqres.full 2>&1 || _fail "mkfs failed"
# These have to be done unmounted...?
echo "== Set filesystem label to $LABEL"
$BTRFS_UTIL_PROG filesystem show $LABEL | _filter_btrfs_filesystem_show $TOTAL_DEVS
UUID=`$BTRFS_UTIL_PROG filesystem show $LABEL | grep uuid: | awk '{print $NF}'`
-echo "UUID $UUID" >> $seq.full
+echo "UUID $UUID" >> $seqres.full
echo "== Show filesystem by UUID"
$BTRFS_UTIL_PROG filesystem show $UUID | _filter_btrfs_filesystem_show $TOTAL_DEVS $UUID
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_need_to_be_root
_require_scratch
-_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seq.full 2>&1
+_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1
# -onoload and EXT4_SYNC_FL on file is important becase result in
# metadata sync writes inside ext4_handle_dirty_metadata()
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo ""
echo " Start defragment activity"
echo ""
- cat $tmp-$seq.fio >> $seq.full
+ cat $tmp-$seq.fio >> $seqres.full
run_check $FIO_PROG $tmp-$seq.fio
}
_require_fio $tmp-$seq.fio
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount
if ! _workout; then
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo ""
echo " Start defragment activity"
echo ""
- cat $tmp-$seq.fio >> $seq.full
+ cat $tmp-$seq.fio >> $seqres.full
run_check $FIO_PROG $tmp-$seq.fio
}
_require_fio $tmp-$seq.fio
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount
if ! _workout; then
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo ""
echo " Start defragment activity"
echo ""
- cat $tmp-$seq.fio >> $seq.full
+ cat $tmp-$seq.fio >> $seqres.full
run_check $FIO_PROG $tmp-$seq.fio
}
_require_fio $tmp-$seq.fio
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount
if ! _workout; then
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo ""
echo " Start defragment activity"
echo ""
- cat $tmp-$seq.fio >> $seq.full
+ cat $tmp-$seq.fio >> $seqres.full
run_check $FIO_PROG $tmp-$seq.fio
}
_require_fio $tmp-$seq.fio
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount
if ! _workout; then
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
# get standard environment, filters and checks
#
_chain()
{
- $AWK_PROG -v full_file=$here/$seq.full -v verify=$verify <$tmp.config '
+ $AWK_PROG -v full_file=$here/$seqres.full -v verify=$verify <$tmp.config '
BEGIN { nfile = 0 }
/^\#/ { next }
{ file[nfile] = $1
}
}
}' \
- | tee -a $here/$seq.full | sh
+ | tee -a $here/$seqres.full | sh
}
_check()
fi
}
-rm -f $here/$seq.full
+rm -f $here/$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/$seq.full
+ echo "iter $iter" >> $here/$seqres.full
_chain
_check
if [ -f $tmp.bad ]
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
# get standard environment, filters and checks
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_setup_testdir
-rm -f $seq.full
+rm -f $seqres.full
cd $testdir
-$here/src/dbtest -l 5 -n 1000 2>&1 | tee -a $here/$seq.full | _filter_dbtest
+$here/src/dbtest -l 5 -n 1000 2>&1 | tee -a $here/$seqres.full | _filter_dbtest
# success, all done
exit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
out=""
out=$testdir/dirstress.$$
-rm -f $seq.full
+rm -f $seqres.full
_test()
{
if ! $here/src/dirstress -d $out -f $count $args >$tmp.out 2>&1
then
echo " dirstress failed"
- echo "*** TEST $test -d $out -f $count $args" >>$seq.full
- cat $tmp.out >>$seq.full
+ echo "*** TEST $test -d $out -f $count $args" >>$seqres.full
+ cat $tmp.out >>$seqres.full
status=1
fi
}
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "fsstress.$_n : $_param"
echo "-----------------------------------------------"
# -m limits number of users/groups so check doesn't fail (malloc) later
- dbgoutfile=$seq.full
+ dbgoutfile=$seqres.full
if ! $FSSTRESS_PROG $_param $FSSTRESS_AVOID -v -m 8 -n $_count -d $out >>$dbgoutfile 2>&1
then
- echo " fsstress (count=$_count) returned $? - see $seq.full"
- echo "--------------------------------------" >>$here/$seq.full
- echo "$_n - output from fsstress:" >>$here/$seq.full
- echo "--------------------------------------" >>$here/$seq.full
- echo "<NOT LOGGED>" >>$here/$seq.full
- #cat $tmp.out >>$here/$seq.full
+ 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
status=1
fi
_setup_testdir
-rm -f $here/$seq.full
+rm -f $here/$seqres.full
echo "brevity is wit..."
count=1000
_do_test 3 "-p 4 -z -f rmdir=10 -f link=10 -f creat=10 -f mkdir=10 -f rename=30 -f stat=30 -f unlink=30 -f truncate=20" $count
-# if all ok by here then probably don't need $seq.full
-rm -f $seq.full
+# if all ok by here then probably don't need $seqres.full
+rm -f $seqres.full
exit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
|| _fail "mkfs failed"
_scratch_mount || _fail "mount failed"
out=$SCRATCH_MNT/fillup.$$
-rm -f $seq.full
+rm -f $seqres.full
free0=`_free`
if [ -z "$free0" ]
echo " *** failed to get free space (0)"
exit 1
fi
-echo "free space at start $free0" >> $seq.full
+echo "free space at start $free0" >> $seqres.full
echo "fill disk:" # well, filesystem really - not disk
echo " *** failed to get free space (1)"
exit 1
fi
-echo "free space after fill $free1" >> $seq.full
+echo "free space after fill $free1" >> $seqres.full
if [ ! -e $out ]
then
echo " *** failed to get free space (2)"
exit 1
fi
-echo "free space after delete $free2" >> $seq.full
+echo "free space after delete $free2" >> $seqres.full
echo -n " !!! "
_within_tolerance "free space" $free2 $free0 1% -v
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_setup_testdir
-rm -f $seq.full
+rm -f $seqres.full
testfile=$testdir/attribute_$$
while [ $v -lt $MAX_ATTRS ]
do
- echo -n "value_$v" | attr -s "attribute_$v" $testfile >>$seq.full
+ echo -n "value_$v" | attr -s "attribute_$v" $testfile >>$seqres.full
if [ $? -ne 0 ]
then
echo "!!! failed to add \"attribute_$v\""
echo "*** check"
# don't print it all out...
getfattr --absolute-names $testfile \
- | tee -a $seq.full \
+ | tee -a $seqres.full \
| $AWK_PROG '
/^#/ { next }
/^[ ]*$/ { next }
v=0
while [ $v -lt $MAX_ATTRS ]
do
- if ! $ATTR_PROG -r "attribute_$v" $testfile >>$seq.full
+ if ! $ATTR_PROG -r "attribute_$v" $testfile >>$seqres.full
then
echo "!!! failed to remove \"attribute_$v\""
exit 1
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_require_scratch
_require_attrs
-rm -f $tmp.backup1 $tmp.backup2 $seq.full
+rm -f $tmp.backup1 $tmp.backup2 $seqres.full
# real QA test starts here
_scratch_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
{
# NB: no filtering of scratch here... (need to restore too)
$GETFATTR_PROG --absolute-names -dh -R -m '.' $SCRATCH_MNT >$1
- echo BACKUP $1 >>$seq.full
- cat $1 >> $seq.full
+ echo BACKUP $1 >>$seqres.full
+ cat $1 >> $seqres.full
[ ! -s $1 ] && echo "warning: $1 (backup file) is empty"
}
echo "*** clear out the scratch device"
rm -fr $SCRATCH_MNT/*
-echo "AFTER REMOVE" >>$seq.full
-getfattr -L -R -m '.' $SCRATCH_MNT >>$seq.full
+echo "AFTER REMOVE" >>$seqres.full
+getfattr -L -R -m '.' $SCRATCH_MNT >>$seqres.full
echo "*** reset test bed with no extended attributes"
_create_test_bed
setfattr -h --restore=$tmp.backup1
_backup $tmp.backup2
-echo "AFTER RESTORE" >>$seq.full
-getfattr -L -R -m '.' $SCRATCH_MNT >>$seq.full
+echo "AFTER RESTORE" >>$seqres.full
+getfattr -L -R -m '.' $SCRATCH_MNT >>$seqres.full
echo "*** compare before and after backups"
diff $tmp.backup1 $tmp.backup2
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "*** init FS"
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV >/dev/null 2>&1
-echo "*** MKFS ***" >>$seq.full
-echo "" >>$seq.full
-_scratch_mkfs >>$seq.full 2>&1 \
+echo "*** MKFS ***" >>$seqres.full
+echo "" >>$seqres.full
+_scratch_mkfs >>$seqres.full 2>&1 \
|| _fail "mkfs failed"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed"
touch $tmp.running
i=0
let ITERATIONS=$ITERATIONS-1
-echo | tee -a $seq.full
+echo | tee -a $seqres.full
while [ $i -le $ITERATIONS ]
do
- echo "*** iteration: $i" | tee -a $seq.full
- echo "*** freezing \$SCRATCH_MNT" | tee -a $seq.full
- xfs_freeze -f "$SCRATCH_MNT" | tee -a $seq.full
+ echo "*** iteration: $i" | tee -a $seqres.full
+ echo "*** freezing \$SCRATCH_MNT" | tee -a $seqres.full
+ xfs_freeze -f "$SCRATCH_MNT" | tee -a $seqres.full
[ $? != 0 ] && echo xfs_freeze -f "$SCRATCH_MNT" failed | \
- tee -a $seq.full
+ tee -a $seqres.full
sleep 2
- echo "*** thawing \$SCRATCH_MNT" | tee -a $seq.full
- xfs_freeze -u "$SCRATCH_MNT" | tee -a $seq.full
+ echo "*** thawing \$SCRATCH_MNT" | tee -a $seqres.full
+ xfs_freeze -u "$SCRATCH_MNT" | tee -a $seqres.full
[ $? != 0 ] && echo xfs_freeze -u "$SCRATCH_MNT" failed | \
- tee -a $seq.full
+ tee -a $seqres.full
sleep 2
- echo | tee -a $seq.full
+ echo | tee -a $seqres.full
let i=$i+1
done
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os IRIX Linux
_require_scratch
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV >/dev/null 2>&1
cd $here
wait
-ls -lh $SCRATCH_MNT >> $seq.full
-echo "*** PIDs file" >> $seq.full
-cat $SCRATCH_MNT/pids >> $seq.full
+ls -lh $SCRATCH_MNT >> $seqres.full
+echo "*** PIDs file" >> $seqres.full
+cat $SCRATCH_MNT/pids >> $seqres.full
cat $SCRATCH_MNT/pids | while read pid size
do
echo "*** checking file with $size integers"
- echo checking pid=$pid size=$size >> $seq.full
+ echo checking pid=$pid size=$size >> $seqres.full
$here/src/append_reader $SCRATCH_MNT/testfile.$pid
status=$?
[ $status -ne 0 ] && \
echo "maybe corrupt O_APPEND to $SCRATCH_MOUNT/testfile.$pid!"
- echo status: $status >> $seq.full
+ echo status: $status >> $seqres.full
done
# success, all done
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
-f attr_set=100 \
-f attr_remove=100 \
-p 1 -n 10000 -S c`
-$FSSTRESS_PROG $FSSTRESS_ARGS >$seq.full 2>&1
+$FSSTRESS_PROG $FSSTRESS_ARGS >$seqres.full 2>&1
status=$?
exit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "-----------------------------------------------"
echo "fstest.$_n : $_filter_param"
echo "-----------------------------------------------"
- if ! $here/src/fstest $_param -p $out >>$seq.full
+ if ! $here/src/fstest $_param -p $out >>$seqres.full
then
- echo " fstest ($_param) returned $? - see $seq.full"
+ echo " fstest ($_param) returned $? - see $seqres.full"
status=1
exit
fi
# real QA test starts here
-rm -f $here/$seq.full
+rm -f $here/$seqres.full
_supported_fs generic
_supported_os IRIX Linux
# can override the params here
_process_args "$@"
-echo "Params are for $param_type" >>$seq.full
-echo "Params: n = $numchildren l = $numloops f = $numfiles" >>$seq.full
+echo "Params are for $param_type" >>$seqres.full
+echo "Params: n = $numchildren l = $numloops f = $numfiles" >>$seqres.full
_setup_testdir
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# can override the params here
_process_args "$@"
-echo "Params are for $param_type" >>$seq.full
-echo "Params: n = $numops1 N = $numops2 l = $filelen" >>$seq.full
+echo "Params are for $param_type" >>$seqres.full
+echo "Params: n = $numops1 N = $numops2 l = $filelen" >>$seqres.full
_setup_testdir
-rm -f $here/$seq.full
+rm -f $here/$seqres.full
echo "brevity is wit..."
_check_test_fs
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "*** init fs"
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV >/dev/null 2>&1
-echo "*** MKFS ***" >>$seq.full
-echo "" >>$seq.full
-_scratch_mkfs >>$seq.full 2>&1 \
+echo "*** MKFS ***" >>$seqres.full
+echo "" >>$seqres.full
+_scratch_mkfs >>$seqres.full 2>&1 \
|| _fail "mkfs failed"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed"
echo "*** test concurrent block/fs access"
pid=$!
FSSTRESS_ARGS=`_scale_fsstress_args -p 2 -n 2000 $FSSTRESS_AVOID`
-echo "run fsstress with args: $FSSTRESS_ARGS" >>$seq.full
-$FSSTRESS_PROG $FSSTRESS_ARGS >>$seq.full
+echo "run fsstress with args: $FSSTRESS_ARGS" >>$seqres.full
+$FSSTRESS_PROG $FSSTRESS_ARGS >>$seqres.full
_lets_get_pidst
_check_scratch_fs
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "*** create filesystem"
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV >/dev/null 2>&1
-echo "*** MKFS ***" >>$seq.full
-echo "" >>$seq.full
+echo "*** MKFS ***" >>$seqres.full
+echo "" >>$seqres.full
SIZE=`expr 50 \* 1024 \* 1024`
-_scratch_mkfs_sized $SIZE >>$seq.full 2>&1 \
+_scratch_mkfs_sized $SIZE >>$seqres.full 2>&1 \
|| _fail "mkfs failed"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed"
mkdir $SCRATCH_MNT/subdir
echo "*** set default ACL"
setfacl -R -dm u:fsgqa:rwx,g::rwx,o::r-x,m::rwx $SCRATCH_MNT/subdir
-echo "*** populate filesystem, pass #1" | tee -a $seq.full
-cp -rf $filler $SCRATCH_MNT/subdir >$seq.full 2>&1
+echo "*** populate filesystem, pass #1" | tee -a $seqres.full
+cp -rf $filler $SCRATCH_MNT/subdir >$seqres.full 2>&1
-echo "*** populate filesystem, pass #2" | tee -a $seq.full
-cp -rf $filler $SCRATCH_MNT/subdir >$seq.full 2>&1
+echo "*** populate filesystem, pass #2" | tee -a $seqres.full
+cp -rf $filler $SCRATCH_MNT/subdir >$seqres.full 2>&1
_check_scratch_fs
echo "*** all done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
exit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_require_scratch
_require_no_large_scratch_dev
-rm -f $seq.full
+rm -f $seqres.full
workout()
{
nops=$4
umount $SCRATCH_DEV >/dev/null 2>&1
- echo "*** mkfs -dsize=$fsz,agcount=$ags" >>$seq.full
- echo "" >>$seq.full
+ echo "*** mkfs -dsize=$fsz,agcount=$ags" >>$seqres.full
+ echo "" >>$seqres.full
if [ $FSTYP = xfs ]
then
- _scratch_mkfs_xfs -dsize=$fsz,agcount=$ags >>$seq.full 2>&1 \
+ _scratch_mkfs_xfs -dsize=$fsz,agcount=$ags >>$seqres.full 2>&1 \
|| _fail "size=$fsz,agcount=$ags mkfs failed"
else
- _scratch_mkfs_sized $fsz >>$seq.full 2>&1 \
+ _scratch_mkfs_sized $fsz >>$seqres.full 2>&1 \
|| _fail "size=$fsz mkfs failed"
fi
- _scratch_mount >>$seq.full 2>&1 \
+ _scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed"
# -w ensures that the only ops are ones which cause write I/O
FSSTRESS_ARGS=`_scale_fsstress_args -d $SCRATCH_MNT -w -p $procs -n $nops $FSSTRESS_AVOID`
- $FSSTRESS_PROG $FSSTRESS_ARGS >>$seq.full
+ $FSSTRESS_PROG $FSSTRESS_ARGS >>$seqres.full
_check_scratch_fs
}
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os IRIX Linux
path=$TEST_DIR/t_access
-src/t_access_root $path | tee $seq.full | _filter
+src/t_access_root $path | tee $seqres.full | _filter
# success, all done
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
mtab_output=$TEST_DIR/mtab_output
_supported_fs generic
_supported_os Linux
-rm -f $seq.full
+rm -f $seqres.full
[ "X$TEST_DIR" = "X" ] && exit 1
cd $TEST_DIR
rm -fr test
echo directory entries:
ls | grep mtab
- echo directory entries >> $here/$seq.full
- ls -li >> $here/$seq.full
+ echo directory entries >> $here/$seqres.full
+ ls -li >> $here/$seqres.full
}
# directory with only a few entries
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_fs generic
_supported_os Linux
-rm -f $seq.full
+rm -f $seqres.full
run_fsx()
{
- echo fsx $@ | tee -a $seq.full
+ echo fsx $@ | tee -a $seqres.full
args=`echo $@ | sed -e "s/ BSIZE / $bsize /g" -e "s/ PSIZE / $psize /g"`
rm -f $TEST_DIR/junk
- $here/ltp/fsx $args $TEST_DIR/junk >>$seq.full 2>&1
+ $here/ltp/fsx $args $TEST_DIR/junk >>$seqres.full 2>&1
if [ $? -ne 0 ]; then
- cat $seq.full
+ cat $seqres.full
exit 1
fi
}
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
here=`pwd`
tmp=/tmp/$$
[ -x $runas ] || _notrun "$runas executable not found"
-rm -f $seq.full
+rm -f $seqres.full
_setup_testdir
_need_to_be_root
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# optional stuff if your test has verbose output to help resolve problems
#echo
-#echo "If failure, check $seq.full (this) and $seq.full.ok (reference)"
+#echo "If failure, check $seqres.full (this) and $seqres.full.ok (reference)"
# success, all done
status=0
# modifier
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# -> this would be done by simultaneously matching on ACEs
# -> interesting if it allows user to specify ACEs in any order
#
-rm -f $seq.full
+rm -f $seqres.full
#-------------------------------------------------------
# real QA test starts here
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
POPULATED_DIR=$TEMP_DIR/populate_root
SIZE=10
-rm -f $seq.full
+rm -f $seqres.full
# Clean up if file exist from prevous run
rm -rf $POPULATED_DIR
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/$seq.full 2>&1
+_populate_fs -n $NDIRS -f $NFILES -d $DEPTH -r $POPULATED_DIR -s $SIZE >>$here/$seqres.full 2>&1
# Then tar up the directory structure
-tar -cvf $TEMP_DIR/$TAR_FILE $POPULATED_DIR >>$here/$seq.full 2>&1
+tar -cvf $TEMP_DIR/$TAR_FILE $POPULATED_DIR >>$here/$seqres.full 2>&1
# create f/s
_require_scratch
# untar on f/s
cd $testdir
-tar -xRvf $TEMP_DIR/$TAR_FILE >>$here/$seq.full 2>&1
+tar -xRvf $TEMP_DIR/$TAR_FILE >>$here/$seqres.full 2>&1
cd $here
# use diff -qr to compare
-ls -R -l ${testdir}${POPULATED_DIR} >>$here/$seq.full 2>&1
+ls -R -l ${testdir}${POPULATED_DIR} >>$here/$seqres.full 2>&1
diff -qr $POPULATED_DIR ${testdir}${POPULATED_DIR}
cd /
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
_require_scratch
_require_acls
_acl_setup_ids
umount $SCRATCH_DEV >/dev/null 2>&1
-echo "*** MKFS ***" >>$seq.full
-echo "" >>$seq.full
-_scratch_mkfs >>$seq.full 2>&1 \
+echo "*** MKFS ***" >>$seqres.full
+echo "" >>$seqres.full
+_scratch_mkfs >>$seqres.full 2>&1 \
|| _fail "mkfs failed"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed"
cd $SCRATCH_MNT
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# can override the params here
_process_args "$@"
-echo "Params are for $param_type" >>$seq.full
-echo "Params: n = $numops1 N = $numops2 l = $filelen" >>$seq.full
+echo "Params are for $param_type" >>$seqres.full
+echo "Params: n = $numops1 N = $numops2 l = $filelen" >>$seqres.full
_setup_testdir
-rm -f $here/$seq.full
+rm -f $here/$seqres.full
echo "brevity is wit..."
_check_test_fs
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_require_scratch
_require_attrs
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV >/dev/null 2>&1
-echo "*** MKFS ***" >>$seq.full
-echo "" >>$seq.full
-_scratch_mkfs >>$seq.full 2>&1 \
+echo "*** MKFS ***" >>$seqres.full
+echo "" >>$seqres.full
+_scratch_mkfs >>$seqres.full 2>&1 \
|| _fail "mkfs failed"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed"
mkdir -p $SCRATCH_MNT/fsstress
echo Running fsstress in serial:
i=0
while [ $i -lt $ITERATIONS ]; do
- echo fsstress iteration: $i | tee -a $seq.full
+ echo fsstress iteration: $i | tee -a $seqres.full
$FSSTRESS_PROG \
-d $SCRATCH_MNT/fsstress \
- $fss_ops -S c >>$seq.full 2>&1
+ $fss_ops -S c >>$seqres.full 2>&1
let i=$i+1
done
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
-rm -f $seq.full
+rm -f $seqres.full
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_require_scratch
-_scratch_mkfs >>$seq.full 2>&1 \
+_scratch_mkfs >>$seqres.full 2>&1 \
|| _fail "mkfs scratch failed"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
echo "# creating new file for io"
| _show_wrote_and_stat_only
echo "# unmounting scratch"
-umount $SCRATCH_MNT>>$seq.full 2>&1 \
+umount $SCRATCH_MNT>>$seqres.full 2>&1 \
|| _fail "unmount failed"
echo "# mounting scratch"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
echo "# stating file to confirm correct size"
| _show_wrote_and_stat_only
echo "# unmounting scratch"
-umount $SCRATCH_MNT>>$seq.full 2>&1 \
+umount $SCRATCH_MNT>>$seqres.full 2>&1 \
|| _fail "unmount failed"
echo "# mounting scratch"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
echo "# stating file to confirm correct size"
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq - silence is golden"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
testfile=$TEST_DIR/testfile
rm -f $testfile
-rm -f $seq.full
+rm -f $seqres.full
echo test >$testfile
-time1=`_access_time $testfile | tee -a $seq.full`
+time1=`_access_time $testfile | tee -a $seqres.full`
echo "sleep for $delay"
sleep $delay # sleep to allow time to move on for access
cat $testfile
-time2=`_access_time $testfile | tee -a $seq.full`
+time2=`_access_time $testfile | tee -a $seqres.full`
cd /
umount $TEST_DIR
_test_mount
-time3=`_access_time $testfile | tee -a $here/$seq.full`
+time3=`_access_time $testfile | tee -a $here/$seqres.full`
delta1=`expr $time2 - $time1`
delta2=`expr $time3 - $time1`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "Silence is golden."
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
rm -f "$TEST_DIR/aiodio_sparse*"
$AIO_TEST "$TEST_DIR/aiodio_sparse"
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# fix the reserve block pool to a known size so that the enospc calculations
# work out correctly.
-_scratch_resvblks 1024 > $seq.full 2>&1
+_scratch_resvblks 1024 > $seqres.full 2>&1
for i in `seq 1 22500`; do
echo -n > $SCRATCH_MNT/$i
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
_cleanup()
[ -n "$XFS_IO_PROG" ] || _notrun "xfs_io executable not found"
-rm -f $seq.full
+rm -f $seqres.full
_require_xfs_io_falloc
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
_cleanup()
[ -n "$XFS_IO_PROG" ] || _notrun "xfs_io executable not found"
-rm -f $seq.full
+rm -f $seqres.full
rm -f $TEST_DIR/ouch*
_require_xfs_io_falloc
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
_cleanup()
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
test_accounting()
{
echo "### some controlled buffered, direct and mmapd IO (type=$type)"
- echo "--- initiating parallel IO..." >>$seq.full
+ echo "--- initiating parallel IO..." >>$seqres.full
# Small ios here because ext3 will account for indirect blocks too ...
# 48k will fit w/o indirect for 4k blocks (default blocksize)
$XFS_IO_PROG -F -c 'pwrite 0 48k' -c 'fsync' \
- $SCRATCH_MNT/buffer >>$seq.full 2>&1 &
+ $SCRATCH_MNT/buffer >>$seqres.full 2>&1 &
$XFS_IO_PROG -F -c 'pwrite 0 48k' -d \
- $SCRATCH_MNT/direct >>$seq.full 2>&1 &
+ $SCRATCH_MNT/direct >>$seqres.full 2>&1 &
$XFS_IO_PROG -F -c 't 48k' -c 'mm -rw 0 48k' -c 'mw 0 48k' -c 'ms -s' \
- $SCRATCH_MNT/mmap >>$seq.full 2>&1 &
+ $SCRATCH_MNT/mmap >>$seqres.full 2>&1 &
wait
- echo "--- completed parallel IO ($type)" >>$seq.full
+ echo "--- completed parallel IO ($type)" >>$seqres.full
for file in $SCRATCH_MNT/{buffer,direct,mmap}; do
$here/src/lstat64 $file | head -2 | _filter_scratch
}
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV 2>/dev/null
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount "-o usrquota,grpquota"
quotacheck -u -g $SCRATCH_MNT 2>/dev/null
quotaon $SCRATCH_MNT 2>/dev/null
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_require_scratch
_require_xfs_io_falloc
-rm -f $seq.full
+rm -f $seqres.full
BLOCKSIZE=4096
echo "=== mkfs with su $SUNIT_BLOCKS blocks x 4 ==="
export MKFS_OPTIONS=""
- _scratch_mkfs_geom $SUNIT_BYTES 4 $BLOCKSIZE >> $seq.full 2>&1
+ _scratch_mkfs_geom $SUNIT_BYTES 4 $BLOCKSIZE >> $seqres.full 2>&1
_scratch_mount
for SIZE_MULT in 1 2 8 64 256; do
for FILE in 1 2 3 4; do
xfs_io -F -f -c "falloc 0 $SIZE" \
$SCRATCH_MNT/file-$FILE-$SIZE-falloc \
- >> $seq.full 2>&1
+ >> $seqres.full 2>&1
xfs_io -F -f -c "pwrite 0 $SIZE" \
$SCRATCH_MNT/file-$FILE-$SIZE-write \
- >> $seq.full 2>&1
+ >> $seqres.full 2>&1
src/t_stripealign $SCRATCH_MNT/file-$FILE-$SIZE-falloc \
$SUNIT_BLOCKS | _filter_scratch
src/t_stripealign $SCRATCH_MNT/file-$FILE-$SIZE-write \
echo "=== Testing size 1g falloc on ${SUNIT_K}k stripe ==="
xfs_io -F -f -c "falloc 0 1g" \
- $SCRATCH_MNT/file-1g-falloc >> $seq.full 2>&1
+ $SCRATCH_MNT/file-1g-falloc >> $seqres.full 2>&1
src/t_stripealign $SCRATCH_MNT/file-1g-falloc $SUNIT_BLOCKS \
| _filter_scratch
echo "=== Testing size 1073745920 falloc on ${SUNIT_K}k stripe ==="
xfs_io -F -f -c "falloc 0 1073745920" \
- $SCRATCH_MNT/file-1073745920-falloc >> $seq.full 2>&1
+ $SCRATCH_MNT/file-1073745920-falloc >> $seqres.full 2>&1
src/t_stripealign $SCRATCH_MNT/file-1073745920-falloc \
$SUNIT_BLOCKS | _filter_scratch
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_require_scratch
# make a 1GB filesystem
-_scratch_mkfs_sized `expr 1024 \* 1024 \* 1024` > $seq.full 2>&1
-_scratch_mount >> $seq.full 2>&1
+_scratch_mkfs_sized `expr 1024 \* 1024 \* 1024` > $seqres.full 2>&1
+_scratch_mount >> $seqres.full 2>&1
# set the reserved block pool to almost empty for XFS
if [ "$FSTYP" = "xfs" ]; then
- xfs_io -x -c "resblks 4" $SCRATCH_MNT >> $seq.full 2>&1
+ xfs_io -x -c "resblks 4" $SCRATCH_MNT >> $seqres.full 2>&1
fi
FILES=1000
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_scratch_mkfs > /dev/null 2>&1
_scratch_mount > /dev/null 2>&1
-rm -f $seq.full
+rm -f $seqres.full
fiemapfile=$SCRATCH_MNT/$seq.fiemap
fiemaplog=$SCRATCH_MNT/$seq.log
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_require_scratch
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV 2>/dev/null
echo "--> mkfs 256m filesystem"
-_scratch_mkfs_sized `expr 256 \* 1024 \* 1024` >> $seq.full 2>&1
+_scratch_mkfs_sized `expr 256 \* 1024 \* 1024` >> $seqres.full 2>&1
_scratch_mount
loops=16
for I in `seq 1 $loops`; do
echo -n "$I "
xfs_io -F -f \
- -c "pwrite ${buffer} 0 64m" $SCRATCH_MNT/test >> $seq.full
+ -c "pwrite ${buffer} 0 64m" $SCRATCH_MNT/test >> $seqres.full
rm -f $SCRATCH_MNT/test
done
for I in `seq 1 $loops`; do
echo -n "$I "
xfs_io -F -f -d \
- -c "pwrite ${buffer} 0 64m" $SCRATCH_MNT/test >> $seq.full
+ -c "pwrite ${buffer} 0 64m" $SCRATCH_MNT/test >> $seqres.full
rm -f $SCRATCH_MNT/test
done
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
_cleanup()
[ -n "$XFS_IO_PROG" ] || _notrun "xfs_io executable not found"
-rm -f $seq.full
+rm -f $seqres.full
# Sanity check to see if fallocate works
_require_xfs_io_falloc
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
test_enforcement()
{
echo "### some buffered IO (type=$type)"
- echo "--- initiating IO..." >>$seq.full
+ echo "--- initiating IO..." >>$seqres.full
# Firstly fit below block soft limit
echo "Write 900k..."
su $qa_user -c "$XFS_IO_PROG -F -c 'pwrite 0 900k' -c fsync \
- $SCRATCH_MNT/file1" 2>&1 >>$seq.full | tee -a $seq.full
- repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seq.full 2>&1
+ $SCRATCH_MNT/file1" 2>&1 >>$seqres.full | tee -a $seqres.full
+ repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seqres.full 2>&1
# Secondly overcome block soft limit
echo "Rewrite 1001k..."
su $qa_user -c "$XFS_IO_PROG -F -c 'pwrite 0 1001k' -c fsync \
- $SCRATCH_MNT/file1" 2>&1 >>$seq.full | tee -a $seq.full
- repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seq.full 2>&1
+ $SCRATCH_MNT/file1" 2>&1 >>$seqres.full | tee -a $seqres.full
+ repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seqres.full 2>&1
# Now try to overcome block hardlimit
echo "Write 1000k..."
su $qa_user -c "$XFS_IO_PROG -F -c 'pwrite 0 1000k' -c fsync \
- $SCRATCH_MNT/file2" 2>&1 >>$seq.full | tee -a $seq.full
- repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seq.full 2>&1
+ $SCRATCH_MNT/file2" 2>&1 >>$seqres.full | tee -a $seqres.full
+ repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seqres.full 2>&1
# Now sleep for grace time and check that softlimit got enforced
sleep $((grace+1))
echo "Write 4096..."
su $qa_user -c "$XFS_IO_PROG -F -c 'truncate 0' -c 'pwrite 0 4096' \
- $SCRATCH_MNT/file2" 2>&1 >>$seq.full | tee -a $seq.full
- repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seq.full 2>&1
+ $SCRATCH_MNT/file2" 2>&1 >>$seqres.full | tee -a $seqres.full
+ repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seqres.full 2>&1
# And now the softlimit test for inodes
# First reset space limits so that we don't have problems with
# space reservations on XFS
setquota -$type $qa_user 0 0 3 5 $SCRATCH_MNT
echo "Touch 3+4"
su $qa_user -c "touch $SCRATCH_MNT/file3 $SCRATCH_MNT/file4" \
- 2>&1 >>$seq.full | _filter_scratch | tee -a $seq.full
- repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seq.full 2>&1
+ 2>&1 >>$seqres.full | _filter_scratch | tee -a $seqres.full
+ repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seqres.full 2>&1
# Try to exceed inode hardlimit
echo "Touch 5+6"
su $qa_user -c "touch $SCRATCH_MNT/file5 $SCRATCH_MNT/file6" \
- 2>&1 >>$seq.full | _filter_scratch | tee -a $seq.full
- repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seq.full 2>&1
+ 2>&1 >>$seqres.full | _filter_scratch | tee -a $seqres.full
+ repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seqres.full 2>&1
# Wait and check grace time enforcement
- rm -f $SCRATCH_MNT/file5 >>$seq.full 2>&1
+ rm -f $SCRATCH_MNT/file5 >>$seqres.full 2>&1
sleep $((grace+1))
echo "Touch 5"
- su $qa_user -c "touch $SCRATCH_MNT/file5" 2>&1 >>$seq.full |
- _filter_scratch | tee -a $seq.full
- repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seq.full 2>&1
- echo "--- completed IO ($type)" >>$seq.full
+ su $qa_user -c "touch $SCRATCH_MNT/file5" 2>&1 >>$seqres.full |
+ _filter_scratch | tee -a $seqres.full
+ repquota -$type $SCRATCH_MNT | grep -v "^root" >>$seqres.full 2>&1
+ echo "--- completed IO ($type)" >>$seqres.full
}
cleanup_files()
}
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
grace=2
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount "-o usrquota,grpquota"
quotacheck -u -g $SCRATCH_MNT 2>/dev/null
quotaon $SCRATCH_MNT 2>/dev/null
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "=== FSX Standard Mode, Memory Mapping, $tasks Tasks ==="
for (( i = 1; i <= $tasks; i++ )); do
SEED=$RANDOM
- echo "ltp/fsx $FSX_ARGS -S $SEED $SCRATCH_MNT/fsx_file$i" >>$seq.full
+ echo "ltp/fsx $FSX_ARGS -S $SEED $SCRATCH_MNT/fsx_file$i" >>$seqres.full
su $qa_user -c "ltp/fsx $FSX_ARGS -S $SEED \
$SCRATCH_MNT/fsx_file$i" >$tmp.output$i 2>&1 &
done
for (( i = 1; i <= $tasks; i++ )); do
if ! wait %$i; then
- cat $tmp.output$i | tee -a $seq.full
+ cat $tmp.output$i | tee -a $seqres.full
wait
return 1
fi
$XFS_IO_PROG -F -c 'fsync' $SCRATCH_MNT/fsx_file$i
- cat $tmp.output$i | tee -a $seq.full
+ cat $tmp.output$i | tee -a $seqres.full
done
return 0
}
_require_user
_need_to_be_root
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount "-o usrquota,grpquota"
chmod 777 $SCRATCH_MNT
quotacheck -u -g $SCRATCH_MNT 2>/dev/null
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_filter_num()
{
- tee -a $here/$seq.full |\
+ tee -a $here/$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/$seq.full
- if ! $FSSTRESS_PROG $args | tee -a $here/$seq.full | _filter_num
+ echo "fsstress $args" >> tee -a $here/$seqres.full
+ if ! $FSSTRESS_PROG $args | tee -a $here/$seqres.full | _filter_num
then
echo " fsstress $args returned $?"
- cat $tmp.out | tee -a $here/$seq.full
+ cat $tmp.out | tee -a $here/$seqres.full
status=1
fi
}
_require_quota
_need_to_be_root
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount "-o usrquota,grpquota"
chmod 777 $SCRATCH_MNT
quotacheck -u -g $SCRATCH_MNT 2>/dev/null
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_filter_num()
{
- tee -a $here/$seq.full |\
+ tee -a $here/$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/$seq.full
- if ! su $qa_user -c "$FSSTRESS_PROG $args" | tee -a $here/$seq.full | _filter_num
+ echo "fsstress $args" >> tee -a $here/$seqres.full
+ if ! su $qa_user -c "$FSSTRESS_PROG $args" | tee -a $here/$seqres.full | _filter_num
then
echo " fsstress $args returned $?"
- cat $tmp.out | tee -a $here/$seq.full
+ cat $tmp.out | tee -a $here/$seqres.full
status=1
fi
}
_require_user
_need_to_be_root
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount "-o usrquota,grpquota"
chmod 777 $SCRATCH_MNT
quotacheck -u -g $SCRATCH_MNT 2>/dev/null
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
idmod=200000
seed=$RANDOM
RANDOM=$seed
- echo "Starting test with procs=$procs, idmod=$idmod, and seed=$seed" >>$seq.full
+ echo "Starting test with procs=$procs, idmod=$idmod, and seed=$seed" >>$seqres.full
for (( i = 0; i < $procs; i++ )); do
( SETUCOUNT=1; SETGCOUNT=1; SETUIDS[0]=0; SETGIDS[0]=0
_need_to_be_root
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount "-o usrquota,grpquota"
quotacheck -u -g $SCRATCH_MNT 2>/dev/null
quotaon -u -g $SCRATCH_MNT 2>/dev/null
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_need_to_be_root
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount "-o usrquota,grpquota"
quotacheck -u -g $SCRATCH_MNT 2>/dev/null
quotaon $SCRATCH_MNT 2>/dev/null
#
# We work around it by editing the context out of mtab. Sigh.
sed -i "s#^$SCRATCH_DEV\(.*\),context=\"system_u:object_r:nfs_t:s0\"#$SCRATCH_DEV\1#" /etc/mtab
-mount -o remount,ro $SCRATCH_DEV 2>&1 | tee -a $seq.full | _filter_scratch
-touch $SCRATCH_MNT/failed 2>&1 | tee -a $seq.full | _filter_scratch
-mount -o remount,rw $SCRATCH_DEV 2>&1 | tee -a $seq.full | _filter_scratch
+mount -o remount,ro $SCRATCH_DEV 2>&1 | tee -a $seqres.full | _filter_scratch
+touch $SCRATCH_MNT/failed 2>&1 | tee -a $seqres.full | _filter_scratch
+mount -o remount,rw $SCRATCH_DEV 2>&1 | tee -a $seqres.full | _filter_scratch
$XFS_IO_PROG -F -c 'pwrite 0 8k' -c 'fsync' \
- $SCRATCH_MNT/testfile >>$seq.full 2>&1
+ $SCRATCH_MNT/testfile >>$seqres.full 2>&1
repquota -u -g $SCRATCH_MNT | grep -v "^root" | _filter_scratch
umount $SCRATCH_DEV 2>/dev/null
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
_cleanup()
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
[ -x $runas ] || _notrun "$runas executable not found"
-rm -f $seq.full
+rm -f $seqres.full
_setup_testdir
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "Silence is golden."
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
rm -f $TEST_DIR/aiodio_sparse
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "Silence is golden."
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
rm -rf $TEST_DIR/dbench
mkdir $TEST_DIR/dbench
-dbench -t 60 -D $TEST_DIR/dbench 4 >> $seq.full
+dbench -t 60 -D $TEST_DIR/dbench 4 >> $seqres.full
status=$?
exit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
SRC=$TEST_DIR/$seq.src
DST=$TEST_DIR/$seq.dst
-rm -f $seq.full
+rm -f $seqres.full
-$XFS_IO_PROG -F -f -c "pwrite -S 0xa5a55a5a 0 32768k" -c fsync $SRC >> $seq.full 2>&1
+$XFS_IO_PROG -F -f -c "pwrite -S 0xa5a55a5a 0 32768k" -c fsync $SRC >> $seqres.full 2>&1
[ $? -ne 0 ] && _fail "xfs_io pwrite failed"
-$XFS_IO_PROG -F -f -c "sendfile -i $SRC 0 32768k" -c fsync $DST >> $seq.full 2>&1
+$XFS_IO_PROG -F -f -c "sendfile -i $SRC 0 32768k" -c fsync $DST >> $seqres.full 2>&1
[ $? -ne 0 ] && _fail "xfs_io sendfile failed"
diff -q $SRC $DST
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_fs generic
_supported_os Linux
-rm -f $seq.full
+rm -f $seqres.full
run_fsx()
{
- echo fsx $@ | tee -a $seq.full
+ echo fsx $@ | tee -a $seqres.full
args=`echo $@ | sed -e "s/ BSIZE / $bsize /g" -e "s/ PSIZE / $psize /g"`
rm -f $TEST_DIR/junk
- $here/ltp/fsx $args $TEST_DIR/junk >>$seq.full 2>&1
+ $here/ltp/fsx $args $TEST_DIR/junk >>$seqres.full 2>&1
if [ $? -ne 0 ]; then
- cat $seq.full
+ cat $seqres.full
exit 1
fi
}
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
enospc_time=2
out=$SCRATCH_MNT/fsstress.$$
args=`_scale_fsstress_args -p128 -n999999999 -f setattr=1 $FSSTRESS_AVOID -d $out`
- echo "fsstress $args" >> $here/$seq.full
+ echo "fsstress $args" >> $here/$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/$seq.full 2>&1
+ >> $here/$seqres.full 2>&1
sleep $enospc_time
done
kill $pid
_need_to_be_root
_require_scratch
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seq.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
_scratch_mount
if ! _workout; then
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
enospc_time=2
out=$SCRATCH_MNT/fsstress.$$
args=`_scale_fsstress_args -p128 -n999999999 -f setattr=1 $FSSTRESS_AVOID -d $out`
- echo "fsstress $args" >> $here/$seq.full
+ echo "fsstress $args" >> $here/$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/$seq.full 2>&1
+ >> $here/$seqres.full 2>&1
sleep $enospc_time
done
_need_to_be_root
_require_scratch
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seq.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
_scratch_mount "-o usrquota,grpquota"
chmod 777 $SCRATCH_MNT
quotacheck -u -g $SCRATCH_MNT 2>/dev/null
#creator
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
exit
fi
- cp -r $SCRATCH_MNT/origin $SCRATCH_MNT/sub_$_suffix >>$seq.full 2>&1
+ cp -r $SCRATCH_MNT/origin $SCRATCH_MNT/sub_$_suffix >>$seqres.full 2>&1
if [ $? -ne 0 ]
then
echo "_porter $_suffix not complete"
echo "start the workload"
echo "------------------------------"
-rm -f $seq.full
+rm -f $seqres.full
_scratch_unmount 2>/dev/null
-_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seq.full 2>&1
+_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
_scratch_mount
_do_workload
#creator
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "preallocation test"
echo "------------------------------"
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV 2>/dev/null
-_scratch_mkfs_sized $((1 * 1024 * 1024 * 1024)) >>$seq.full 2>&1
+_scratch_mkfs_sized $((1 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
_scratch_mount
# Create a 4k file and Allocate 4M past EOF on that file
xfs_io -F -f -c "pwrite 0 4k" -c "falloc -k 4k 4m" $SCRATCH_MNT/test \
- >>$seq.full 2>&1 || _fail "failed to create test file"
+ >>$seqres.full 2>&1 || _fail "failed to create test file"
# Fill the rest of the fs completely
-# Note, this will show ENOSPC errors in $seq.full, that's ok.
-echo "Fill fs with 1M IOs; ENOSPC expected" >> $seq.full
-dd if=/dev/zero of=$SCRATCH_MNT/tmp1 bs=1M >>$seq.full 2>&1
-echo "Fill fs with 4K IOs; ENOSPC expected" >> $seq.full
-dd if=/dev/zero of=$SCRATCH_MNT/tmp2 bs=4K >>$seq.full 2>&1
+# Note, this will show ENOSPC errors in $seqres.full, that's ok.
+echo "Fill fs with 1M IOs; ENOSPC expected" >> $seqres.full
+dd if=/dev/zero of=$SCRATCH_MNT/tmp1 bs=1M >>$seqres.full 2>&1
+echo "Fill fs with 4K IOs; ENOSPC expected" >> $seqres.full
+dd if=/dev/zero of=$SCRATCH_MNT/tmp2 bs=4K >>$seqres.full 2>&1
sync
# Last effort, use O_SYNC
-echo "Fill fs with 4K DIOs; ENOSPC expected" >> $seq.full
-dd if=/dev/zero of=$SCRATCH_MNT/tmp3 bs=4K oflag=sync >>$seq.full 2>&1
+echo "Fill fs with 4K DIOs; ENOSPC expected" >> $seqres.full
+dd if=/dev/zero of=$SCRATCH_MNT/tmp3 bs=4K oflag=sync >>$seqres.full 2>&1
# Save space usage info
-echo "Post-fill space:" >> $seq.full
-df $SCRATCH_MNT >>$seq.full 2>&1
+echo "Post-fill space:" >> $seqres.full
+df $SCRATCH_MNT >>$seqres.full 2>&1
# Now attempt a write into all of the preallocated space -
# in a very nasty way, badly fragmenting it and then filling it in.
-echo "Fill in prealloc space; fragment at offsets:" >> $seq.full
+echo "Fill in prealloc space; fragment at offsets:" >> $seqres.full
for i in `seq 1 2 1023`; do
- echo -n "$i " >> $seq.full
+ echo -n "$i " >> $seqres.full
dd if=/dev/zero of=$SCRATCH_MNT/test seek=$i bs=4K count=1 conv=notrunc \
- >>$seq.full 2>/dev/null || _fail "failed to write to test file"
+ >>$seqres.full 2>/dev/null || _fail "failed to write to test file"
done
sync
-echo >> $seq.full
-echo "Fill in prealloc space; fill holes at offsets:" >> $seq.full
+echo >> $seqres.full
+echo "Fill in prealloc space; fill holes at offsets:" >> $seqres.full
for i in `seq 2 2 1023`; do
- echo -n "$i " >> $seq.full
+ echo -n "$i " >> $seqres.full
dd if=/dev/zero of=$SCRATCH_MNT/test seek=$i bs=4K count=1 conv=notrunc \
- >>$seq.full 2>/dev/null || _fail "failed to fill test file"
+ >>$seqres.full 2>/dev/null || _fail "failed to fill test file"
done
sync
-echo >> $seq.full
+echo >> $seqres.full
echo "done"
exit
#creator
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "write until ENOSPC test"
echo "------------------------------"
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV 2>/dev/null
-_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seq.full 2>&1
+_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
_scratch_mount
-dd if=/dev/zero of=$SCRATCH_MNT/tmp1 bs=256K count=1 >>$seq.full 2>&1
+dd if=/dev/zero of=$SCRATCH_MNT/tmp1 bs=256K count=1 >>$seqres.full 2>&1
[ $? -ne 0 ] && _fail "Error creating file"
# Attempt to completely fill fs
-dd if=/dev/zero of=$SCRATCH_MNT/tmp2 bs=1M >>$seq.full 2>&1
+dd if=/dev/zero of=$SCRATCH_MNT/tmp2 bs=1M >>$seqres.full 2>&1
sync
-dd if=/dev/zero of=$SCRATCH_MNT/tmp3 bs=4K >>$seq.full 2>&1
+dd if=/dev/zero of=$SCRATCH_MNT/tmp3 bs=4K >>$seqres.full 2>&1
sync
# Last effort, use O_SYNC
-dd if=/dev/zero of=$SCRATCH_MNT/tmp4 bs=4K oflag=sync >>$seq.full 2>&1
+dd if=/dev/zero of=$SCRATCH_MNT/tmp4 bs=4K oflag=sync >>$seqres.full 2>&1
# Save space usage info to the full file
-echo "Pre rm space:" >> $seq.full
-df $SCRATCH_MNT >>$seq.full 2>&1
+echo "Pre rm space:" >> $seqres.full
+df $SCRATCH_MNT >>$seqres.full 2>&1
# Should leave approx 256k free
rm -f $SCRATCH_MNT/tmp1
sync
-echo "Post rm space:" >> $seq.full
-df $SCRATCH_MNT >>$seq.full 2>&1
+echo "Post rm space:" >> $seqres.full
+df $SCRATCH_MNT >>$seqres.full 2>&1
_freespace=`df -k $SCRATCH_MNT | tail -n 1 | awk '{print $4}'`
[ $_freespace -gt 1024 ] && _fail "could not sufficiently fill filesystem"
# Try a write larger than available space
-dd if=/dev/zero of=$SCRATCH_MNT/tmp1 bs=1M count=1 >>$seq.full 2>&1
-echo "Bytes written until ENOSPC:" >>$seq.full
-du $SCRATCH_MNT/tmp1 >>$seq.full
+dd if=/dev/zero of=$SCRATCH_MNT/tmp1 bs=1M count=1 >>$seqres.full 2>&1
+echo "Bytes written until ENOSPC:" >>$seqres.full
+du $SCRATCH_MNT/tmp1 >>$seqres.full
# And at least some of it should succeed.
_filesize=`ls -l $SCRATCH_MNT/tmp1 | awk '{print $5}'`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
status=1 # failure is the default!
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os Linux
_supported_fs generic
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV 2>/dev/null
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount "-o usrquota,grpquota"
quotacheck -u -g $SCRATCH_MNT 2>/dev/null
quotaon $SCRATCH_MNT 2>/dev/null
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
eval "rm -f $BASE_TEST_FILE.*"
}
-$here/src/seek_sanity_test $BASE_TEST_FILE > $seq.full 2>&1 ||
+$here/src/seek_sanity_test $BASE_TEST_FILE > $seqres.full 2>&1 ||
_fail "seek sanity check failed!"
# success, all done
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
write_cmd="$write_cmd -c \"pwrite $offset 1m\""
done
- echo "*** test01() create sparse file ***" >>$seq.full
- eval ${XFS_IO_PROG} -F -f "${write_cmd}" $src >>$seq.full 2>&1 ||
+ echo "*** test01() create sparse file ***" >>$seqres.full
+ eval ${XFS_IO_PROG} -F -f "${write_cmd}" $src >>$seqres.full 2>&1 ||
_fail "create sparse file failed!"
- echo "*** test01() create sparse file done ***" >>$seq.full
- echo >>$seq.full
+ echo "*** test01() create sparse file done ***" >>$seqres.full
+ echo >>$seqres.full
$here/src/seek_copy_test $src $dest
write_cmd="$write_cmd -c \"falloc $offset 3m\" -c \"pwrite $offset 1m\""
done
- echo "*** test02() create sparse file ***" >>$seq.full
- eval ${XFS_IO_PROG} -F -f "${write_cmd}" $src >>$seq.full 2>&1 ||
+ echo "*** test02() create sparse file ***" >>$seqres.full
+ eval ${XFS_IO_PROG} -F -f "${write_cmd}" $src >>$seqres.full 2>&1 ||
_fail "create sparse file failed!"
- echo "*** test02() create sparse file done ***" >>$seq.full
- echo >>$seq.full
+ echo "*** test02() create sparse file done ***" >>$seqres.full
+ echo >>$seqres.full
$here/src/seek_copy_test $src $dest
write_cmd="$write_cmd -c \"pwrite $offset 10m\""
done
- echo "*** test03() create sparse file ***" >>$seq.full
- eval ${XFS_IO_PROG} -F -f "${write_cmd}" $src >>$seq.full 2>&1 ||
+ echo "*** test03() create sparse file ***" >>$seqres.full
+ eval ${XFS_IO_PROG} -F -f "${write_cmd}" $src >>$seqres.full 2>&1 ||
_fail "create sparse file failed!"
- echo "*** test03() create sparse file done ***" >>$seq.full
- echo >>$seq.full
+ echo "*** test03() create sparse file done ***" >>$seqres.full
+ echo >>$seqres.full
$here/src/seek_copy_test $src $dest
test $(stat --printf "%s" $src) = $(stat --printf "%s" $dest) ||
write_cmd="$write_cmd -c \"pwrite $offset 2m\""
done
- echo "*** test04() create sparse file ***" >>$seq.full
- eval ${XFS_IO_PROG} -F -f "${write_cmd}" $src >>$seq.full 2>&1 ||
+ echo "*** test04() create sparse file ***" >>$seqres.full
+ eval ${XFS_IO_PROG} -F -f "${write_cmd}" $src >>$seqres.full 2>&1 ||
_fail "create sparse file failed!"
- echo "*** test04() create sparse file done ***" >>$seq.full
- echo >>$seq.full
+ echo "*** test04() create sparse file done ***" >>$seqres.full
+ echo >>$seqres.full
$here/src/seek_copy_test $src $dest
test $(stat --printf "%s" $src) = $(stat --printf "%s" $dest) ||
cmp $src $dest || _fail "TEST04: file bytes check failed"
}
-rm -f $seq.full
+rm -f $seqres.full
test01
test02
test03
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo ""
echo "Run fio with random aio-dio pattern"
echo ""
- cat $tmp-$seq.fio >> $seq.full
+ cat $tmp-$seq.fio >> $seqres.full
run_check $FIO_PROG $tmp-$seq.fio &
pid=$!
echo "Start fallocate/truncate loop"
for ((k=1; k <= NUM_JOBS; k++))
do
fallocate -l $FILE_SIZE $SCRATCH_MNT/direct_aio.$k.0 \
- >> $seq.full 2>&1
+ >> $seqres.full 2>&1
done
for ((k=1; k <= NUM_JOBS; k++))
do
wait $pid
}
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
_scratch_mount
if ! _workout; then
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo ""
echo "Run fio with random aio-dio pattern"
echo ""
- cat $tmp-$seq.fio >> $seq.full
+ cat $tmp-$seq.fio >> $seqres.full
run_check $FIO_PROG $tmp-$seq.fio
}
_require_fio $tmp-$seq.fio
-_scratch_mkfs_sized $FS_SIZE >> $seq.full 2>&1
+_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1
_scratch_mount
if ! _workout; then
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
DEVNULL=$SCRATCH_MNT/devnull
DEVZERO=$SCRATCH_MNT/devzero
-rm -f $seq.full
-_scratch_mkfs > $seq.full 2>&1
+rm -f $seqres.full
+_scratch_mkfs > $seqres.full 2>&1
_scratch_mount
rm -f $DEVNULL $DEVZERO
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
-rm -f $seq.full
+rm -f $seqres.full
# get standard environment, filters and checks
. ./common.rc
src/devzero -n 20 $SCRATCH_DEV >/dev/null
# create a filesystem of this type
- echo "=== Creating $fs filesystem..." >>$seq.full
- echo " ( $preop mkfs -t $fs $preargs $SCRATCH_DEV $postargs )" >>$seq.full
- eval $preop mkfs -t $fs $preargs $SCRATCH_DEV $postargs >>$seq.full 2>&1
+ echo "=== Creating $fs filesystem..." >>$seqres.full
+ echo " ( $preop mkfs -t $fs $preargs $SCRATCH_DEV $postargs )" >>$seqres.full
+ eval $preop mkfs -t $fs $preargs $SCRATCH_DEV $postargs >>$seqres.full 2>&1
if [ $? -eq 0 ] ; then
# next, ensure we don't overwrite it
- echo "=== Attempting $FSTYP overwrite of $fs..." >>$seq.full
- ${MKFS_PROG}.$FSTYP $SCRATCH_DEV >>$seq.full 2>&1
+ echo "=== Attempting $FSTYP overwrite of $fs..." >>$seqres.full
+ ${MKFS_PROG}.$FSTYP $SCRATCH_DEV >>$seqres.full 2>&1
[ $? -eq 0 ] && echo "Failed - overwrote fs type ${fs}!"
else
- echo "mkfs of type ${fs} failed" >>$seq.full
+ echo "mkfs of type ${fs} failed" >>$seqres.full
fi
done
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
here=`pwd`
tmp=/tmp/$$
[ -x $runas ] || _notrun "$runas executable not found"
-rm -f $seq.full
+rm -f $seqres.full
_setup_testdir
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# Craft some fragmented files, defrag them, check the result.
-echo "zero-length file:" | tee -a $seq.full
+echo "zero-length file:" | tee -a $seqres.full
touch $fragfile
_defrag $fragfile
-echo "Sparse file (no blocks):" | tee -a $seq.full
+echo "Sparse file (no blocks):" | tee -a $seqres.full
xfs_io -F -f -c "truncate 1m" $fragfile
_defrag $fragfile
-echo "Contiguous file:" | tee -a $seq.full
+echo "Contiguous file:" | tee -a $seqres.full
dd if=/dev/zero of=$fragfile bs=4k count=4 &>/dev/null
_defrag $fragfile
-echo "Write backwards sync, but contiguous - should defrag to 1 extent" | tee -a $seq.full
+echo "Write backwards sync, but contiguous - should defrag to 1 extent" | tee -a $seqres.full
for I in `seq 9 -1 0`; do
dd if=/dev/zero of=$fragfile bs=4k count=1 conv=notrunc seek=$I oflag=sync &>/dev/null
done
_defrag $fragfile
-echo "Write backwards sync leaving holes - defrag should do nothing" | tee -a $seq.full
+echo "Write backwards sync leaving holes - defrag should do nothing" | tee -a $seqres.full
for I in `seq 31 -2 0`; do
dd if=/dev/zero of=$fragfile bs=4k count=1 conv=notrunc seek=$I oflag=sync &>/dev/null
done
_defrag $fragfile
-echo "Write forwards sync leaving holes - defrag should do nothing" | tee -a $seq.full
+echo "Write forwards sync leaving holes - defrag should do nothing" | tee -a $seqres.full
for I in `seq 0 2 31`; do
dd if=/dev/zero of=$fragfile bs=4k count=1 conv=notrunc seek=$I oflag=sync &>/dev/null
done
_defrag $fragfile
-rm -f $seq.full
+rm -f $seqres.full
status=0
exit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# Ensure that the iflags value was parsed correctly.
if [ -z ${iflags} ]; then
- echo "iFlags value was not parsed successfully." >> $seq.full
+ echo "iFlags value was not parsed successfully." >> $seqres.full
status=1
exit ${status}
fi
# Check if EOFBLOCKS_FL is set.
if ((${iflags} & 0x400000)); then
- echo "EOFBLOCK_FL bit is set." >> $seq.full
+ echo "EOFBLOCK_FL bit is set." >> $seqres.full
bit_set=1
else
- echo "EOFBLOCK_FL bit is not set." >> $seq.full
+ echo "EOFBLOCK_FL bit is not set." >> $seqres.full
bit_set=0
fi
# Check current bit state to expected value.
if [ ${bit_set} -ne ${2} ]; then
- echo "Error: Current bit state incorrect." >> $seq.full
+ echo "Error: Current bit state incorrect." >> $seqres.full
status=1
exit ${status}
fi
_require_xfs_io_falloc
# Real QA test starts here.
-rm -f $seq.full
+rm -f $seqres.full
# Remove any leftover files from last run.
rm -f ${TEST_DIR}/test_?
# Begin test cases.
echo "Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io)." \
- >> $seq.full
+ >> $seqres.full
${XFS_IO_PROG} -F -f \
-c 'falloc -k 0 40960' \
-c 'pwrite 0 4096' \
_check_ext4_eof_flag test_1 ${BIT_SET}
echo "Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io)." \
- >> $seq.full
+ >> $seqres.full
${XFS_IO_PROG} -F -f -d \
-c 'falloc -k 0 40960' \
-c 'pwrite 0 4096' \
_check_ext4_eof_flag test_2 ${BIT_SET}
echo "Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io)." \
- >> $seq.full
+ >> $seqres.full
${XFS_IO_PROG} -F -f \
-c 'falloc -k 0 40960' \
-c 'pwrite 0 40960' \
_check_ext4_eof_flag test_3 ${BIT_NOT_SET}
echo "Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io)." \
- >> $seq.full
+ >> $seqres.full
${XFS_IO_PROG} -F -f -d \
-c 'falloc -k 0 40960' \
-c 'pwrite 0 40960' \
_check_ext4_eof_flag test_4 ${BIT_NOT_SET}
echo "Test 5: Fallocate 128k, seek 256k and write 4k block (buffered io)." \
- >> $seq.full
+ >> $seqres.full
${XFS_IO_PROG} -F -f \
-c 'falloc -k 0 128k' \
-c 'pwrite 256k 4k' \
_check_ext4_eof_flag test_5 ${BIT_NOT_SET}
echo "Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io)." \
- >> $seq.full
+ >> $seqres.full
${XFS_IO_PROG} -F -f -d \
-c 'falloc -k 0 128k' \
-c 'pwrite 256k 4k' \
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
do
echo "OP write_opt: $write_opt 4M, \
-chattr_opt: $chattr_opt" >>$seq.full
+chattr_opt: $chattr_opt" >>$seqres.full
dd if=/dev/zero of=$SCRATCH_MNT/file.$idx \
bs=1M count=4 $write_opt \
- >> $seq.full 2>&1 || exit
- chattr $chattr_opt $SCRATCH_MNT/file.$idx >> $seq.full \
+ >> $seqres.full 2>&1 || exit
+ chattr $chattr_opt $SCRATCH_MNT/file.$idx >> $seqres.full \
|| exit
done
done
do
echo "OP write_opt: $write_opt ENOSPC, \
-chattr_opt: $chattr_opt" >>$seq.full
+chattr_opt: $chattr_opt" >>$seqres.full
dd if=/dev/zero of=$SCRATCH_MNT/file.$idx \
- bs=1M $write_opt >> $seq.full 2>&1
+ bs=1M $write_opt >> $seqres.full 2>&1
chattr $chattr_opt $SCRATCH_MNT/file.$idx \
- >> $seq.full || exit
+ >> $seqres.full || exit
done
sync
unlink $SCRATCH_MNT/file.$idx
_need_to_be_root
_require_scratch
-_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seq.full 2>&1
+_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1
_scratch_mount
if ! _workout; then
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os Linux
_require_scratch
-rm -f $seq.full
+rm -f $seqres.full
-_scratch_mkfs >> $seq.full 2>&1
+_scratch_mkfs >> $seqres.full 2>&1
# Get the honest truth about block counts straight from metadata on disk
TOTAL_BLOCKS=`dumpe2fs -h $SCRATCH_DEV 2>/dev/null \
BSD_F_BLOCKS=`stat -f $SCRATCH_MNT | awk '/^Blocks/{print $3}'`
umount $SCRATCH_MNT
-# Echo data to $seq.full for analysis
-echo "Overhead is $OVERHEAD blocks out of $TOTAL_BLOCKS ($FREE_BLOCKS free)" >> $seq.full
-echo "MINIX free blocks $MINIX_F_BLOCKS" >> $seq.full
-echo "BSD free blocks $BSD_F_BLOCKS" >> $seq.full
+# Echo data to $seqres.full for analysis
+echo "Overhead is $OVERHEAD blocks out of $TOTAL_BLOCKS ($FREE_BLOCKS free)" >> $seqres.full
+echo "MINIX free blocks $MINIX_F_BLOCKS" >> $seqres.full
+echo "BSD free blocks $BSD_F_BLOCKS" >> $seqres.full
# minix should be exactly equal (hence tolerance of 0)
_within_tolerance "minix f_blocks" $MINIX_F_BLOCKS $TOTAL_BLOCKS 0 -v
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
status=1 # failure is the default!
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
start_fail_scratch_dev()
{
echo "Force SCRATCH_DEV device failure"
- echo " echo 1 > /sys/block/$SCRATCH_BDEV/make-it-fail" >> $here/$seq.full
+ echo " echo 1 > /sys/block/$SCRATCH_BDEV/make-it-fail" >> $here/$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/$seq.full
+ echo " echo 0 > /sys/block/$SCRATCH_BDEV/make-it-fail" >> $here/$seqres.full
echo 0 > /sys/block/$SCRATCH_BDEV/make-it-fail
}
echo ""
echo "Start fsstress.."
echo ""
- echo "fsstress $args" >> $here/$seq.full
+ echo "fsstress $args" >> $here/$seqres.full
$FSSTRESS_PROG $args > /dev/null 2>&1 &
fs_pid=$!
echo "Start fio.."
- cat $tmp-$seq.fio >> $seq.full
- $FIO_PROG $tmp-$seq.fio >> $here/$seq.full 2>&1 &
+ cat $tmp-$seq.fio >> $seqres.full
+ $FIO_PROG $tmp-$seq.fio >> $here/$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/$seq.full 2>&1 && \
+ >> $here/$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/$seq.full 2>&1 || _fail "mkfs failed"
+_scratch_mkfs >> $here/$seqres.full 2>&1 || _fail "mkfs failed"
_scratch_mount || _fail "mount failed"
allow_fail_make_request
_workout
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# optional stuff if your test has verbose output to help resolve problems
#echo
-#echo "If failure, check $seq.full (this) and $seq.full.ok (reference)"
+#echo "If failure, check $seqres.full (this) and $seqres.full.ok (reference)"
# success, all done
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
# get standard environment, filters and checks
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_populate_scratch()
{
- echo "=== mkfs output ===" >>$seq.full
- _scratch_mkfs_xfs | tee -a $seq.full | _filter_mkfs 2>$tmp.mkfs
+ echo "=== mkfs output ===" >>$seqres.full
+ _scratch_mkfs_xfs | tee -a $seqres.full | _filter_mkfs 2>$tmp.mkfs
. $tmp.mkfs
_scratch_mount
dd if=/dev/zero of=$SCRATCH_MNT/foo count=200 bs=4096 >/dev/null 2>&1 &
_require_scratch
_require_no_large_scratch_dev
-rm -f $seq.full
+rm -f $seqres.full
_populate_scratch
eval `$DF_PROG $SCRATCH_MNT 2>&1 \
| tail -1 | $AWK_PROG '{ printf "blocks=%u used=%u avail=%u\n", $3, $4, $5 }'`
-echo "df gave: blocks=$blocks used=$used avail=$avail" >>$seq.full
-echo "blocksize from mkfs is '$dbsize'" >>$seq.full
+echo "df gave: blocks=$blocks used=$used avail=$avail" >>$seqres.full
+echo "blocksize from mkfs is '$dbsize'" >>$seqres.full
xfs_db -r -c "freesp -s" $SCRATCH_DEV >$tmp.xfs_db
-echo "xfs_db for $SCRATCH_DEV" >>$seq.full
-cat $tmp.xfs_db >>$seq.full
+echo "xfs_db for $SCRATCH_DEV" >>$seqres.full
+cat $tmp.xfs_db >>$seqres.full
eval `$XFS_IO_PROG -x -c resblks $SCRATCH_MNT 2>&1 \
| $AWK_PROG '/available/ { printf "resblks=%u\n", $5 }'`
-echo "resblks gave: resblks=$resblks" >>$seq.full
+echo "resblks gave: resblks=$resblks" >>$seqres.full
# check the 'blocks' field from freesp command is OK
# since 2.6.18, df does not report the 4 blocks per AG that cannot
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
if _scratch_mkfs_xfs -N -K $force_opts >/dev/null 2>&1; then
force_opts="-K $force_opts"
fi
- echo mkfs_xfs $force_opts $SCRATCH_DEV >>$seq.full
+ echo mkfs_xfs $force_opts $SCRATCH_DEV >>$seqres.full
_scratch_mkfs_xfs $force_opts >$tmp.mkfs0 2>&1
[ $? -ne 0 ] && \
_notrun "Cannot mkfs for this test using MKFS_OPTIONS specified"
{
f="c6c6c6c6"
echo "*** check for corruption"
- echo "expect $f..." >>$seq.full
- xfs_db -r -c "fsblock $2" -c "print" $1 | head | tee -a $seq.full | \
+ echo "expect $f..." >>$seqres.full
+ xfs_db -r -c "fsblock $2" -c "print" $1 | head | tee -a $seqres.full | \
grep -q -v "$f $f $f $f $f $f $f $f" && \
_fail "!!! block $2 corrupted!"
}
_supported_fs xfs
_supported_os Linux
-rm -f $seq.full
+rm -f $seqres.full
# mkfs sizes
log_size=2097152
_init
block=`_after_log $SCRATCH_DEV`
-echo "fsblock after log = $block" >>$seq.full
+echo "fsblock after log = $block" >>$seqres.full
_check_corrupt $SCRATCH_DEV $block
actual_log_size=`_log_size`
-echo "log size = $actual_log_size BB" >>$seq.full
+echo "log size = $actual_log_size BB" >>$seqres.full
head=`_log_head`
-echo "log position = $head" >>$seq.full
+echo "log position = $head" >>$seqres.full
lsunit=`_log_sunit`
-echo "log sunit = $lsunit" >>$seq.full
+echo "log sunit = $lsunit" >>$seqres.full
# sanity checks
[ $actual_log_size -eq $log_size_bb ] || \
# find how how many blocks per op for 100 ops
# ignore the fact that it will also include an unmount record etc...
# this should be small overall
-echo " lots of traffic for sampling" >>$seq.full
+echo " lots of traffic for sampling" >>$seqres.full
sample_size_ops=100
_log_traffic $sample_size_ops
head1=`_log_head`
num_blocks=`expr $head1 - $head`
blocks_per_op=`echo "scale=3; $num_blocks / $sample_size_ops" | bc`
-echo "blocks_per_op = $blocks_per_op" >>$seq.full
+echo "blocks_per_op = $blocks_per_op" >>$seqres.full
num_expected_ops=`echo "$log_size_bb / $blocks_per_op" | bc`
-echo "num_expected_ops = $num_expected_ops" >>$seq.full
+echo "num_expected_ops = $num_expected_ops" >>$seqres.full
num_expected_to_go=`echo "$num_expected_ops - $sample_size_ops" | bc`
-echo "num_expected_to_go = $num_expected_to_go" >>$seq.full
+echo "num_expected_to_go = $num_expected_to_go" >>$seqres.full
-echo " lots more traffic" >>$seq.full
+echo " lots more traffic" >>$seqres.full
_log_traffic $num_expected_to_go
head=`_log_head`
-echo "log position = $head" >>$seq.full
+echo "log position = $head" >>$seqres.full
# e.g. 3891
near_end_min=`echo "0.95 * $log_size_bb" | bc | sed 's/\..*//'`
-echo "near_end_min = $near_end_min" >>$seq.full
+echo "near_end_min = $near_end_min" >>$seqres.full
[ $head -gt $near_end_min -a $head -lt $log_size_bb ] || \
_fail "!!! unexpected near end log position $head"
for c in `seq 0 20`
do
- echo " little traffic" >>$seq.full
+ echo " little traffic" >>$seqres.full
_log_traffic 2
head=`_log_head`
- echo "log position = $head" >>$seq.full
+ echo "log position = $head" >>$seqres.full
_check_corrupt $SCRATCH_DEV $block
done
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "*** init FS"
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV >/dev/null 2>&1
-echo "*** MKFS ***" >>$seq.full
-echo "" >>$seq.full
-_scratch_mkfs_xfs >>$seq.full 2>&1 \
+echo "*** MKFS ***" >>$seqres.full
+echo "" >>$seqres.full
+_scratch_mkfs_xfs >>$seqres.full 2>&1 \
|| _fail "mkfs failed"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed"
echo "*** test"
do
echo " *** test $l"
FSSTRESS_ARGS=`_scale_fsstress_args -d $SCRATCH_MNT -n 1000 $FSSTRESS_AVOID`
- $FSSTRESS_PROG $FSSTRESS_ARGS >>$seq.full
+ $FSSTRESS_PROG $FSSTRESS_ARGS >>$seqres.full
_scratch_mount -o remount,ro \
|| _fail "remount ro failed"
- echo "" >>$seq.full
- echo "*** xfs_logprint ***" >>$seq.full
- echo "" >>$seq.full
- _scratch_xfs_logprint -tb | tee -a $seq.full \
+ echo "" >>$seqres.full
+ echo "*** xfs_logprint ***" >>$seqres.full
+ echo "" >>$seqres.full
+ _scratch_xfs_logprint -tb | tee -a $seqres.full \
| head | grep -q "<CLEAN>" || _fail "DIRTY LOG"
- echo "" >>$seq.full
- echo "*** XFS_CHECK ***" >>$seq.full
- echo "" >>$seq.full
- _scratch_xfs_check >>$seq.full 2>&1 \
+ echo "" >>$seqres.full
+ echo "*** XFS_CHECK ***" >>$seqres.full
+ echo "" >>$seqres.full
+ _scratch_xfs_check >>$seqres.full 2>&1 \
|| _fail "xfs_check failed"
_scratch_mount -o remount,rw \
|| _fail "remount rw failed"
echo "*** done"
# happy exit
-rm -f $seq.full
+rm -f $seqres.full
status=0
exit 0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_fs xfs
_supported_os IRIX Linux
# prelim
-rm -f $seq.full $tmp.*
+rm -f $seqres.full $tmp.*
_require_scratch
_require_v2log
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
-seqfull="$seq.full"
+seqfull="$seqres.full"
status=1 # failure is the default!
# get standard environment, filters and checks
. ./common.rc
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_require_scratch
_require_attrs
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV >/dev/null 2>&1
echo "*** mkfs"
inum_2=`ls -li $testfile.2 | $AWK_PROG '{ print $1 }'`
echo "*** unmount FS"
-umount $SCRATCH_DEV >>$seq.full 2>&1 \
+umount $SCRATCH_DEV >>$seqres.full 2>&1 \
|| _fail "umount failed"
echo "*** dump attributes (1)"
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_create_dumpdir_fill
# ensure file/dir timestamps precede dump timestamp
sleep 2
-src/bstat $SCRATCH_MNT >>$here/$seq.full
+src/bstat $SCRATCH_MNT >>$here/$seqres.full
_erase_hard
_do_dump
_append_dumpdir_fill
-src/bstat $SCRATCH_MNT >>$here/$seq.full
+src/bstat $SCRATCH_MNT >>$here/$seqres.full
_erase_hard
_do_dump -l 1
_do_restore
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
let i=$i+1
done
-echo "middate = $middate" >>$seq.full
+echo "middate = $middate" >>$seqres.full
#
# Now do the xfsinvutil and
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
-rm -f $seq.full
+rm -f $seqres.full
# get standard environment, filters and checks
. ./common.rc
_check_repair()
{
- echo "Repairing, round 0" >> $seq.full
- _scratch_xfs_repair 2>&1 | _filter_repair | tee -a $seq.full >$tmp.0
+ echo "Repairing, round 0" >> $seqres.full
+ _scratch_xfs_repair 2>&1 | _filter_repair | tee -a $seqres.full >$tmp.0
for i in 1 2 3 4
do
- echo "Repairing, iteration $i" | tee -a $seq.full
+ echo "Repairing, iteration $i" | tee -a $seqres.full
_scratch_xfs_repair 2>&1 | _filter_repair >$tmp.$i
- diff $tmp.0 $tmp.$i >> $seq.full
+ diff $tmp.0 $tmp.$i >> $seqres.full
if [ $? -ne 0 ]; then
- echo "ERROR: repair round $i differs to round 0 (see $seq.full)" | tee -a $seq.full
+ echo "ERROR: repair round $i differs to round 0 (see $seqres.full)" | tee -a $seqres.full
break
fi
# echo all interesting stuff...
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "*** init FS"
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV >/dev/null 2>&1
-echo "*** MKFS ***" >>$seq.full
-echo "" >>$seq.full
-_scratch_mkfs_xfs >>$seq.full 2>&1 \
+echo "*** MKFS ***" >>$seqres.full
+echo "" >>$seqres.full
+_scratch_mkfs_xfs >>$seqres.full 2>&1 \
|| _fail "mkfs failed"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed"
echo "*** test"
exit
fi
-if ! src/xfsctl $SCRATCH_MNT $SCRATCH_MNT/fish >>$seq.full 2>&1
+if ! src/xfsctl $SCRATCH_MNT $SCRATCH_MNT/fish >>$seqres.full 2>&1
then
echo "!!! failed to run xfsctl test program"
exit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# real QA test starts here
cd "$WORKAREA/xfstests"
echo Silence is golden.
-perl tools/srcdiff -q >$seq.full
-if ! diff $seq.full $seq.good >/dev/null; then
- echo "FAILED: srcdiff output $seq.full differs to $seq.good"
+perl tools/srcdiff -q >$seqres.full
+if ! diff $seqres.full $seq.good >/dev/null; then
+ echo "FAILED: srcdiff output $seqres.full differs to $seq.good"
exit 1
fi
set +x
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
}
_do_die_on_error=message_only
-rm -f $seq.full
+rm -f $seqres.full
agsize=32
echo -n "Make $agsize megabyte filesystem on SCRATCH_DEV and mount... "
_scratch_mkfs_xfs -dsize=${agsize}m,agcount=1 2>&1 >/dev/null || _fail "mkfs failed"
echo "done"
echo -n "Check files... "
if ! _do "src/fill2fs_check $tmp.manifest"; then
- echo "fail (see $seq.full)"
+ echo "fail (see $seqres.full)"
_do "cat $tmp.manifest"
_do "ls -altrR $SCRATCH_MNT"
_do "dd if=$SCRATCH_DEV bs=4096 count=$grow_size | gzip -9 > $seq.fsimage.gz"
set +x
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# create 3 minimum sized (16Mb) allocation groups
# xfs_repair is going to need three to verify the superblock
-rm -f $seq.full
+rm -f $seqres.full
_do_die_on_error=message_only
echo -n "Make a 48 megabyte filesystem on SCRATCH_DEV and mount... "
_do "sum $SCRATCH_MNT/fill >$tmp.fillsum2"
if ! _do "diff $tmp.fillsum1 $tmp.fillsum2"; then
echo "fail"
- echo "Fill file is corrupt/missing after fsr. Test failed see $seq.full"
+ echo "Fill file is corrupt/missing after fsr. Test failed see $seqres.full"
status=1; exit
fi
echo "done"
_do "sum $SCRATCH_MNT/fragmented >$tmp.sum2"
if ! _do "diff $tmp.sum1 $tmp.sum2"; then
echo "fail"
- echo "File is corrupt/missing after fsr. Test failed see $seq.full"
+ echo "File is corrupt/missing after fsr. Test failed see $seqres.full"
status=1; exit
fi
echo "done"
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
let i=$i+1
done
-echo "middate = $middate" >>$seq.full
+echo "middate = $middate" >>$seqres.full
# Only say No to 1st question to prune
cat >$tmp.input <<EOF
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
_cleanup()
umount -d $SCRATCH_MNT/test > /dev/null 2>&1
rm -f $tmp.*
- if [ -w $seq.full ]
+ if [ -w $seqres.full ]
then
- echo "--- mounts at end (after cleanup)" >> $seq.full
- mount >> $seq.full
+ echo "--- mounts at end (after cleanup)" >> $seqres.full
+ mount >> $seqres.full
fi
}
_log()
{
echo "--- $*"
- echo "--- $*" >> $seq.full
+ echo "--- $*" >> $seqres.full
}
_require_nonexternal
_require_loop
_require_ext2
-rm -f $seq.full
+rm -f $seqres.full
-echo "(dev=$SCRATCH_DEV, mount=$SCRATCH_MNT)" >> $seq.full
-echo "" >> $seq.full
+echo "(dev=$SCRATCH_DEV, mount=$SCRATCH_MNT)" >> $seqres.full
+echo "" >> $seqres.full
-echo "--- mounts" >> $seq.full
-mount >> $seq.full
+echo "--- mounts" >> $seqres.full
+mount >> $seqres.full
_log "Create ext2 fs on scratch"
-mkfs -t ext2 -F $SCRATCH_DEV >> $seq.full 2>&1 \
+mkfs -t ext2 -F $SCRATCH_DEV >> $seqres.full 2>&1 \
|| _fail "!!! failed to mkfs ext2"
_log "Mount ext2 fs on scratch"
-mount -t ext2 $SCRATCH_DEV $SCRATCH_MNT >> $seq.full 2>&1 \
+mount -t ext2 $SCRATCH_DEV $SCRATCH_MNT >> $seqres.full 2>&1 \
|| _fail "!!! failed to mount"
_log "Create xfs fs in file on scratch"
${MKFS_PROG}.xfs -f -dfile,name=$SCRATCH_MNT/test.xfs,size=40m \
- >> $seq.full 2>&1 \
+ >> $seqres.full 2>&1 \
|| _fail "!!! failed to mkfs xfs"
_log "Make mount points"
-mkdir $SCRATCH_MNT/test $SCRATCH_MNT/test2 >> $seq.full 2>&1 \
+mkdir $SCRATCH_MNT/test $SCRATCH_MNT/test2 >> $seqres.full 2>&1 \
|| _fail "!!! failed to make mount points"
_log "Mount xfs via loop"
-mount -t xfs -o loop $SCRATCH_MNT/test.xfs $SCRATCH_MNT/test >> $seq.full 2>&1 \
+mount -t xfs -o loop $SCRATCH_MNT/test.xfs $SCRATCH_MNT/test >> $seqres.full 2>&1 \
|| _fail "!!! failed to loop mount xfs"
_log "stress"
-$FSSTRESS_PROG -d $SCRATCH_MNT/test -n 1000 $FSSTRESS_AVOID >> $seq.full 2>&1 \
+$FSSTRESS_PROG -d $SCRATCH_MNT/test -n 1000 $FSSTRESS_AVOID >> $seqres.full 2>&1 \
|| _fail "!!! stress failed"
_log "clean"
-rm -rf $SCRATCH_MNT/test/* >> $seq.full 2>&1 \
+rm -rf $SCRATCH_MNT/test/* >> $seqres.full 2>&1 \
|| _fail "!!! clean failed"
_log "create file for ext2 fs"
-dd if=/dev/zero of=$SCRATCH_MNT/test/test.ext2 bs=1024 count=10240 >> $seq.full 2>&1 \
+dd if=/dev/zero of=$SCRATCH_MNT/test/test.ext2 bs=1024 count=10240 >> $seqres.full 2>&1 \
|| _fail "!!! create file failed"
_log "Create ext2 fs in file on looped xfs"
-echo y | mkfs -t ext2 $SCRATCH_MNT/test/test.ext2 >> $seq.full 2>&1 \
+echo y | mkfs -t ext2 $SCRATCH_MNT/test/test.ext2 >> $seqres.full 2>&1 \
|| _fail "!!! failed to mkfs ext2 on xfs"
_log "Mount ext2 on xfs via loop"
-mount -t ext2 -o loop $SCRATCH_MNT/test/test.ext2 $SCRATCH_MNT/test2 >> $seq.full 2>&1 \
+mount -t ext2 -o loop $SCRATCH_MNT/test/test.ext2 $SCRATCH_MNT/test2 >> $seqres.full 2>&1 \
|| _fail "!!! failed to loop mount xfs"
_log "stress ext2 on xfs via loop"
-$FSSTRESS_PROG -d $SCRATCH_MNT/test2 -n 1000 $FSSTRESS_AVOID >> $seq.full 2>&1 \
+$FSSTRESS_PROG -d $SCRATCH_MNT/test2 -n 1000 $FSSTRESS_AVOID >> $seqres.full 2>&1 \
|| _fail "!!! stress ext2 failed"
_log "clean"
-rm -rf $SCRATCH_MNT/test/* >> $seq.full 2>&1 \
+rm -rf $SCRATCH_MNT/test/* >> $seqres.full 2>&1 \
|| _fail "!!! clean failed"
_log "umount ext2 on xfs"
-umount -d $SCRATCH_MNT/test2 >> $seq.full 2>&1 \
+umount -d $SCRATCH_MNT/test2 >> $seqres.full 2>&1 \
|| _fail "!!! umount ext2 failed"
_log "umount xfs"
-umount -d $SCRATCH_MNT/test >> $seq.full 2>&1 \
+umount -d $SCRATCH_MNT/test >> $seqres.full 2>&1 \
|| _fail "!!! umount xfs failed"
-echo "--- mounts at end (before cleanup)" >> $seq.full
-mount >> $seq.full
+echo "--- mounts at end (before cleanup)" >> $seqres.full
+mount >> $seqres.full
-rm -f $seq.full
+rm -f $seqres.full
# success, all done
status=0
exit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os Linux IRIX
-cp /dev/null $seq.full
-chmod a+rwx $seq.full # arbitrary users will write here
+cp /dev/null $seqres.full
+chmod a+rwx $seqres.full # arbitrary users will write here
_require_scratch
_require_xfs_quota
_exercise()
{
_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
- cat $tmp.mkfs >>$seq.full
+ cat $tmp.mkfs >>$seqres.full
# keep the blocksize and data size for dd later
. $tmp.mkfs
_qsetup
- echo "Using output from '" `ls -l $seq.out` "'" >>$seq.full
- echo "and using type=$type id=$id" >>$seq.full
+ echo "Using output from '" `ls -l $seq.out` "'" >>$seqres.full
+ echo "and using type=$type id=$id" >>$seqres.full
echo
- echo "*** report no quota settings" | tee -a $seq.full
+ echo "*** report no quota settings" | tee -a $seqres.full
xfs_quota -D $tmp.projects -P $tmp.projid -x \
-c "repquota -birnN -$type" $SCRATCH_DEV |
_filter_report | LC_COLLATE=POSIX sort -ru
echo
- echo "*** report initial settings" | tee -a $seq.full
+ echo "*** report initial settings" | tee -a $seqres.full
_file_as_id $SCRATCH_MNT/initme $id $type 1024 0
- echo "ls -l $SCRATCH_MNT" >>$seq.full
- ls -l $SCRATCH_MNT >>$seq.full
+ echo "ls -l $SCRATCH_MNT" >>$seqres.full
+ ls -l $SCRATCH_MNT >>$seqres.full
xfs_quota -D $tmp.projects -P $temp.projid -x \
-c "limit -$type bsoft=${bsoft}k bhard=${bhard}k $id" \
-c "limit -$type isoft=$isoft ihard=$ihard $id" \
_filter_report | LC_COLLATE=POSIX sort -ru
echo
- echo "*** push past the soft inode limit" | tee -a $seq.full
+ echo "*** push past the soft inode limit" | tee -a $seqres.full
_file_as_id $SCRATCH_MNT/softie1 $id $type 1024 0
_file_as_id $SCRATCH_MNT/softie2 $id $type 1024 0
_qmount
_filter_report | LC_COLLATE=POSIX sort -ru
echo
- echo "*** push past the soft block limit" | tee -a $seq.full
+ echo "*** push past the soft block limit" | tee -a $seqres.full
_file_as_id $SCRATCH_MNT/softie $id $type 1024 140
_qmount
xfs_quota -D $tmp.projects -P $tmp.projid -x \
echo
# Note: for quota accounting (not enforcement), EDQUOT is not expected
- echo "*** push past the hard inode limit (expect EDQUOT)" | tee -a $seq.full
+ echo "*** push past the hard inode limit (expect EDQUOT)" | tee -a $seqres.full
for i in 1 2 3 4 5 6 7 8 9 10 11 12
do
_file_as_id $SCRATCH_MNT/hard$i $id $type 1024 0
echo
# Note: for quota accounting (not enforcement), EDQUOT is not expected
- echo "*** push past the hard block limit (expect EDQUOT)" | tee -a $seq.full
+ echo "*** push past the hard block limit (expect EDQUOT)" | tee -a $seqres.full
_file_as_id $SCRATCH_MNT/softie $id $type 1024 540
- echo "ls -l $SCRATCH_MNT" >>$seq.full
- ls -l $SCRATCH_MNT >>$seq.full
+ echo "ls -l $SCRATCH_MNT" >>$seqres.full
+ ls -l $SCRATCH_MNT >>$seqres.full
_qmount
xfs_quota -D $tmp.projects -P $tmp.projid -x \
-c "repquota -birnN -$type" $SCRATCH_DEV |
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_fs xfs
_supported_os IRIX Linux
-rm -f $seq.full
+rm -f $seqres.full
_require_scratch
_require_xfs_quota
_qmount_option uquota
_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
-cat $tmp.mkfs >>$seq.full
-chmod a+w $seq.full # arbitrary users will write here
+cat $tmp.mkfs >>$seqres.full
+chmod a+w $seqres.full # arbitrary users will write here
# keep the blocksize from mkfs ($dbsize)
. $tmp.mkfs
# cross check blks, softblks, hardblks <-> quota, xfs_db
xfs_quota -c "quota -$type -birnN $id" $SCRATCH_DEV |
- tr -d '\n' | tr -s '[:space:]' | tee -a $seq.full |
+ tr -d '\n' | tr -s '[:space:]' | tee -a $seqres.full |
perl -ne 'if (m[^\s*'$SCRATCH_DEV'\s+(\d+)\s+(\d+)\s+(\d+)]) {
print "used_blocks=", $1, "\n";
print "soft_blocks=", $2, "\n";
$next = 0;
}' | LC_COLLATE=POSIX sort >$tmp.quota
-echo ===quota output >> $seq.full
-cat $tmp.quota >> $seq.full
+echo ===quota output >> $seqres.full
+cat $tmp.quota >> $seqres.full
[ ! -s $tmp.quota ] && echo "warning: quota output file is empty"
umount $SCRATCH_MNT
# note - does (insitu) conversion from fs blocks to 1K blocks
-xfs_db -rc "dquot -$type $id" -c p $SCRATCH_DEV | tee -a $seq.full | perl -ne '
+xfs_db -rc "dquot -$type $id" -c p $SCRATCH_DEV | tee -a $seqres.full | perl -ne '
if (/^diskdq.bcount = (\d+)$/) {
print "used_blocks=", $1 * '$dbsize' / 1024, "\n";
}
print "soft_blocks=", $1 * '$dbsize' / 1024, "\n";
}' | LC_COLLATE=POSIX sort >$tmp.xfs_db
-echo ===xfs_db output >> $seq.full
-cat $tmp.xfs_db >> $seq.full
+echo ===xfs_db output >> $seqres.full
+cat $tmp.xfs_db >> $seqres.full
[ ! -s $tmp.xfs_db ] && echo "warning: xfs_db output file is empty"
echo Comparing out of xfs_quota and xfs_db
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_fs xfs
_supported_os Linux IRIX
-cp /dev/null $seq.full
-chmod ugo+rwx $seq.full
+cp /dev/null $seqres.full
+chmod ugo+rwx $seqres.full
_require_scratch
_require_xfs_quota
umount $SCRATCH_MNT 2>/dev/null
}
-_scratch_mkfs_xfs >> $seq.full 2>&1 || _fail "mkfs failed!"
+_scratch_mkfs_xfs >> $seqres.full 2>&1 || _fail "mkfs failed!"
_qmount_option "uquota,gquota"
_qmount
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_stable_fs
sleep 2
- echo "********* level $i ***********" >>$seq.full
- date >>$seq.full
+ echo "********* level $i ***********" >>$seqres.full
+ date >>$seqres.full
find $SCRATCH_MNT -exec $here/src/lstat64 {} \; | sed 's/(00.*)//' >$tmp.dates.$i
if [ $i -gt 0 ]; then
let level_1=$i-1
- diff -c $tmp.dates.$level_1 $tmp.dates.$i >>$seq.full
+ diff -c $tmp.dates.$level_1 $tmp.dates.$i >>$seqres.full
else
- cat $tmp.dates.$i >>$seq.full
+ cat $tmp.dates.$i >>$seqres.full
fi
_do_dump_file -f $tmp.df.level$i -l $i
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# set up fs for 1K inodes
isize=0
-_scratch_mkfs_xfs | _filter_mkfs >$seq.full 2>$tmp.mkfs
+_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/$seq.full \
+ _scratch_mkfs_xfs -i size=1024 >>$here/$seqres.full \
|| _notrun "Cannot mkfs for this test using MKFS_OPTIONS specified"
fi
-_scratch_mount >>$here/$seq.full || _fail "mount failed"
-xfs_info $SCRATCH_MNT >>$here/$seq.full
+_scratch_mount >>$here/$seqres.full || _fail "mount failed"
+xfs_info $SCRATCH_MNT >>$here/$seqres.full
cd $SCRATCH_MNT
echo ""
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
-rm -f $seq.full
+rm -f $seqres.full
here=`pwd`
tmp=/tmp/$$
[ `$direct` ] && flags=-d
echo "Writing $bytes bytes, offset is $words (direct=$direct)" | _filter_io
- echo "Writing $bytes bytes at $location $words (direct=$direct)" >>$seq.full
+ echo "Writing $bytes bytes at $location $words (direct=$direct)" >>$seqres.full
$XFS_IO_PROG -c "pwrite $offset 512" $flags $SCRATCH_MNT/$seq \
- 2>&1 | _filter_off $offset | tee -a $seq.full | _filter_pwrite
- xfs_bmap -v $SCRATCH_MNT/$seq >>$seq.full
+ 2>&1 | _filter_off $offset | tee -a $seqres.full | _filter_pwrite
+ xfs_bmap -v $SCRATCH_MNT/$seq >>$seqres.full
echo "Reading $bytes bytes (direct=$direct)" | _filter_io
- echo "Reading $bytes bytes at $location (direct=$direct)" >>$seq.full
+ echo "Reading $bytes bytes at $location (direct=$direct)" >>$seqres.full
$XFS_IO_PROG -c "pread $offset $bytes" $flags $SCRATCH_MNT/$seq \
- 2>&1 | _filter_off $offset | tee -a $seq.full | _filter_pread
+ 2>&1 | _filter_off $offset | tee -a $seqres.full | _filter_pread
- $XFS_IO_PROG -c "pread -v $offset $bytes" $flags $SCRATCH_MNT/$seq >>$seq.full 2>&1
+ $XFS_IO_PROG -c "pread -v $offset $bytes" $flags $SCRATCH_MNT/$seq >>$seqres.full 2>&1
- echo | tee -a $seq.full
+ echo | tee -a $seqres.full
}
# real QA test starts here
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
_cleanup()
_require_scratch
-rm -f $seq.full
+rm -f $seqres.full
umount $SCRATCH_DEV >/dev/null 2>&1
_scratch_mkfs_xfs >/dev/null || _fail "mkfs failed"
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
trap "_cleanup; exit \$status" 0 1 2 3 15
# prelim
-rm -f $seq.full $tmp.*
+rm -f $seqres.full $tmp.*
_require_scratch
_require_xfs_quota
_require_v2log
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os IRIX Linux
# prelim
-rm -f $seq.full $tmp.*
+rm -f $seqres.full $tmp.*
_require_scratch
_require_v2log
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_fs xfs
_supported_os IRIX Linux
-rm -f $seq.full
+rm -f $seqres.full
rm -f $tmp.log
_require_scratch
echo "mkfs"
-_scratch_mkfs_xfs >>$seq.full 2>&1 \
+_scratch_mkfs_xfs >>$seqres.full 2>&1 \
|| _fail "mkfs scratch failed"
echo "mount"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
echo "touch files"
touch $SCRATCH_MNT/{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}
echo "godown"
-src/godown -v -f $SCRATCH_MNT >> $seq.full
+src/godown -v -f $SCRATCH_MNT >> $seqres.full
echo "unmount"
umount $SCRATCH_MNT
fi
echo "mount with replay"
-_scratch_mount $mnt >>$seq.full 2>&1 \
+_scratch_mount $mnt >>$seqres.full 2>&1 \
|| _fail "mount failed: $mnt $MOUNT_OPTIONS"
echo "ls SCRATCH_MNT"
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_fs xfs
_supported_os IRIX Linux
-rm -f $seq.full $tmp.*
+rm -f $seqres.full $tmp.*
_require_scratch
_require_v2log
# mkfs the FS
_echofull "mkfs"
- _scratch_mkfs_xfs >>$seq.full 2>&1
+ _scratch_mkfs_xfs >>$seqres.full 2>&1
if [ $? -ne 0 ] ; then
_echofull "mkfs failed: $MKFS_OPTIONS"
continue
# mount the FS
_echofull "mount"
- if ! _scratch_mount >>$seq.full 2>&1; then
+ if ! _scratch_mount >>$seqres.full 2>&1; then
_echofull "mount failed: $MOUNT_OPTIONS"
continue
fi
ls $SCRATCH_MNT
_echofull "godown"
- src/godown -v -f $SCRATCH_MNT >> $seq.full
+ src/godown -v -f $SCRATCH_MNT >> $seqres.full
_echofull "unmount"
- umount $SCRATCH_DEV >>$seq.full 2>&1 \
+ umount $SCRATCH_DEV >>$seqres.full 2>&1 \
|| _fail "umount failed"
_echofull "logprint after going down..."
_print_logstate
_echofull "mount with replay"
- _scratch_mount >>$seq.full 2>&1 \
+ _scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
# check on what FS looks like after log recovery
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
-f rename=30 -f stat=30 -f unlink=30 -f truncate=20"
_echofull "calling fsstress $param -m8 -n $count"
FSSTRESS_ARGS=`_scale_fsstress_args $param $FSSTRESS_AVOID -m 8 -n $count -d $out`
- if ! $FSSTRESS_PROG $FSSTRESS_ARGS >>$seq.full 2>&1
+ if ! $FSSTRESS_PROG $FSSTRESS_ARGS >>$seqres.full 2>&1
then
_echofull "fsstress failed"
fi
_supported_fs xfs
_supported_os IRIX Linux
-rm -f $seq.full $tmp.*
+rm -f $seqres.full $tmp.*
_require_scratch
_require_v2log
_require_xfs_quota
# mkfs the FS
_echofull "mkfs"
- _scratch_mkfs_xfs >>$seq.full 2>&1
+ _scratch_mkfs_xfs >>$seqres.full 2>&1
if [ $? -ne 0 ] ; then
_echofull "mkfs failed: $MKFS_OPTIONS"
continue
# mount the FS
_echofull "mount"
- if ! _scratch_mount -o uquota >>$seq.full 2>&1; then
+ if ! _scratch_mount -o uquota >>$seqres.full 2>&1; then
_echofull "mount failed: $MOUNT_OPTIONS"
continue
fi
ls -RF $SCRATCH_MNT >$tmp.ls1
_echofull "godown"
- src/godown -v -f $SCRATCH_MNT >> $seq.full
+ src/godown -v -f $SCRATCH_MNT >> $seqres.full
_echofull "unmount"
- umount $SCRATCH_DEV >>$seq.full 2>&1 \
+ umount $SCRATCH_DEV >>$seqres.full 2>&1 \
|| _fail "umount failed"
_echofull "logprint after going down..."
_print_logstate
_full "logprint headers"
- _scratch_xfs_logprint -n >>$seq.full 2>&1
+ _scratch_xfs_logprint -n >>$seqres.full 2>&1
_echofull "mount with replay"
- _scratch_mount -o uquota >>$seq.full 2>&1 \
+ _scratch_mount -o uquota >>$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
# check on what FS looks like after log recovery
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
_mkfs_filter()
{
- tee -a $seq.full | \
+ tee -a $seqres.full | \
sed \
-e 's/extsz=[0-9][0-9]*[ ]*/extsz=N, /' \
-e 's/blocks=[0-9][0-9]*/blocks=N/' \
}
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
# Modify as appropriate.
_supported_fs xfs
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_create_scratch()
{
echo "*** mkfs"
- _scratch_mkfs_xfs $@ | tee -a $seq.full | _filter_mkfs 2>$tmp.mkfs
+ _scratch_mkfs_xfs $@ | tee -a $seqres.full | _filter_mkfs 2>$tmp.mkfs
. $tmp.mkfs
echo "*** mount"
# -w ensures that the only ops are ones which cause write I/O
FSSTRESS_ARGS=`_scale_fsstress_args -d $SCRATCH_MNT -w -p $procs \
-n $nops $FSSTRESS_AVOID`
- $FSSTRESS_PROG $FSSTRESS_ARGS >> $seq.full &
+ $FSSTRESS_PROG $FSSTRESS_ARGS >> $seqres.full &
}
# real QA test starts here
_supported_fs xfs
_require_scratch
-_scratch_mkfs_xfs | tee -a $seq.full | _filter_mkfs 2>$tmp.mkfs
+_scratch_mkfs_xfs | tee -a $seqres.full | _filter_mkfs 2>$tmp.mkfs
. $tmp.mkfs # extract blocksize and data size for scratch device
endsize=`expr 550 \* 1048576` # stop after growing this big
#
while [ $size -le $endsize ]; do
echo "*** stressing a ${size} byte filesystem"
- echo "*** stressing a ${sizeb} block filesystem" >> $seq.full
+ echo "*** stressing a ${sizeb} block filesystem" >> $seqres.full
_stress_scratch
sleep 1
size=`expr $size + $incsize`
sizeb=`expr $size / $dbsize` # in data blocks
echo "*** growing to a ${size} byte filesystem"
- echo "*** growing to a ${sizeb} block filesystem" >> $seq.full
+ echo "*** growing to a ${sizeb} block filesystem" >> $seqres.full
xfs_growfs -D ${sizeb} $SCRATCH_MNT \
- | tee -a $seq.full | _filter_mkfs 2>$tmp.growfs
+ | tee -a $seqres.full | _filter_mkfs 2>$tmp.growfs
. $tmp.growfs
[ `expr $size % $modsize` -eq 0 ] && wait # every 4th iteration
- echo AGCOUNT=$agcount | tee -a $seq.full
- echo && echo >> $seq.full
+ echo AGCOUNT=$agcount | tee -a $seqres.full
+ echo && echo >> $seqres.full
done
wait # stop for any remaining stress processes
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# real QA test starts here
_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
-cat $tmp.mkfs >$seq.full
+cat $tmp.mkfs >$seqres.full
. $tmp.mkfs
# setup a default run
test_quot()
{
echo "checking quot command (type=$type)" # not deterministic on blks
- xfs_quota -x -c "quot -n -$type" $SCRATCH_MNT >>$seq.full 2>&1
+ xfs_quota -x -c "quot -n -$type" $SCRATCH_MNT >>$seqres.full 2>&1
}
test_report()
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# real QA test starts here
_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
-cat $tmp.mkfs >$seq.full
+cat $tmp.mkfs >$seqres.full
. $tmp.mkfs
# setup a default run
echo "### create projects file"
rm -f $tmp.projects
target=$SCRATCH_MNT/project
-echo "6:$target" | tee -a $seq.full > $tmp.projects
+echo "6:$target" | tee -a $seqres.full > $tmp.projects
echo "### populate filesystem"
mkdir $target || exit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
test_accounting()
{
echo "### some controlled buffered, direct and mmapd IO (type=$type)"
- echo "--- initiating parallel IO..." >>$seq.full
+ echo "--- initiating parallel IO..." >>$seqres.full
$XFS_IO_PROG -c 'pwrite -b 1m 0 16m' -c 'fsync' \
- $SCRATCH_MNT/buffer >>$seq.full 2>&1 &
+ $SCRATCH_MNT/buffer >>$seqres.full 2>&1 &
$XFS_IO_PROG -c 'pwrite -b 1m 0 16m' -d \
- $SCRATCH_MNT/direct >>$seq.full 2>&1 &
+ $SCRATCH_MNT/direct >>$seqres.full 2>&1 &
$XFS_IO_PROG -c 't 16m' -c 'mm -rw 0 16m' -c 'mw 0 16m' -c 'ms -s' \
- $SCRATCH_MNT/mmap >>$seq.full 2>&1 &
+ $SCRATCH_MNT/mmap >>$seqres.full 2>&1 &
wait
- echo "--- completed parallel IO ($type)" >>$seq.full
+ echo "--- completed parallel IO ($type)" >>$seqres.full
for file in $SCRATCH_MNT/{buffer,direct,mmap}; do
$here/src/lstat64 $file | head -3 | _filter_scratch
_require_prjquota $SCRATCH_DEV
# real QA test starts here
-rm -f $tmp.projects $seq.full
+rm -f $tmp.projects $seqres.full
umount $SCRATCH_DEV 2>/dev/null
_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
-cat $tmp.mkfs >>$seq.full
+cat $tmp.mkfs >>$seqres.full
_scratch_mount
uid=1
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
umount $SCRATCH_DEV
_scratch_mkfs_xfs -dsize=160m,agcount=4 $faststart | _filter_mkfs 2>$tmp.mkfs
-cat $tmp.mkfs >>$seq.full
+cat $tmp.mkfs >>$seqres.full
_scratch_mount
populate
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
p=dir2/dir3/dir4/file4
touch $p
- #_print_names $p >>$here/$seq.full
- _print_names $p | tee -a $here/$seq.full
+ #_print_names $p >>$here/$seqres.full
+ _print_names $p | tee -a $here/$seqres.full
_check_paths $SCRATCH_MNT/$p
}
ln $p $x
done
- _print_names $p >>$here/$seq.full
+ _print_names $p >>$here/$seqres.full
echo ""
echo "print out names and check after created hardlinks"
echo ""
for x in $paths; do
- _print_names $x | tee -a $here/$seq.full
+ _print_names $x | tee -a $here/$seqres.full
_check_paths $SCRATCH_MNT/$x
done
echo ""
for x in $paths; do
if [ -e $x ]; then
- _print_names $x | tee -a $here/$seq.full
+ _print_names $x | tee -a $here/$seqres.full
_check_paths $SCRATCH_MNT/$x
fi
done
_filter_num()
{
- tee -a $here/$seq.full |\
+ tee -a $here/$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/$seq.full
+ cat $tmp.out | tee -a $here/$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/$seq.full
- cat $tmp.out >>$here/$seq.full
+ echo "*** dirstress $args" | tee -a $here/$seqres.full
+ cat $tmp.out >>$here/$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/$seq.full
- cat $tmp.out >>$here/$seq.full
+ echo "*** dirstress $args" | tee -a $here/$seqres.full
+ cat $tmp.out >>$here/$seqres.full
status=1
exit
fi
_require_attrs
_need_to_be_root
-rm -f $here/$seq.full
+rm -f $here/$seqres.full
echo "mkfs"
-_scratch_mkfs_xfs >>$here/$seq.full 2>&1 \
+_scratch_mkfs_xfs >>$here/$seqres.full 2>&1 \
|| _fail "mkfs scratch failed"
-_scratch_mkfs_xfs -i parent=1 >>$here/$seq.full 2>&1 \
+_scratch_mkfs_xfs -i parent=1 >>$here/$seqres.full 2>&1 \
|| _notrun "parent inodes not supported"
echo "mount"
-_scratch_mount >>$here/$seq.full 2>&1 \
+_scratch_mount >>$here/$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
# real QA test starts here
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_require_scratch
_require_attrs
-rm -f $here/$seq.full
+rm -f $here/$seqres.full
echo "mkfs"
-_scratch_mkfs_xfs >>$here/$seq.full 2>&1 \
+_scratch_mkfs_xfs >>$here/$seqres.full 2>&1 \
|| _fail "mkfs scratch failed"
-_scratch_mkfs_xfs -i paths=1 >>$here/$seq.full 2>&1 \
+_scratch_mkfs_xfs -i paths=1 >>$here/$seqres.full 2>&1 \
|| _notrun "i_paths not supported"
echo "mount"
-_scratch_mount >>$here/$seq.full 2>&1 \
+_scratch_mount >>$here/$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
# real QA test starts here
xfs_repair_ipaths -n $SCRATCH_MNT
}
-_do_test 2>&1 | tee $seq.full | _filter_inodes
+_do_test 2>&1 | tee $seqres.full | _filter_inodes
# success, all done
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "mkfs on scratch"
-_scratch_mkfs_xfs >$seq.full
+_scratch_mkfs_xfs >$seqres.full
echo "mount with quotas"
export MOUNT_OPTIONS="-o uquota"
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_fs xfs
_supported_os IRIX Linux
-rm -f $seq.full
+rm -f $seqres.full
rm -f $tmp.log
_require_scratch
echo "mkfs"
-_scratch_mkfs_xfs >>$seq.full 2>&1 \
+_scratch_mkfs_xfs >>$seqres.full 2>&1 \
|| _fail "mkfs scratch failed"
echo "mount"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
# num_files must be greater than 64 (XFS_AGI_UNLINKED_BUCKETS)
sleep 3
echo "godown"
-src/godown -v -f $SCRATCH_MNT >> $seq.full
+src/godown -v -f $SCRATCH_MNT >> $seqres.full
# time for multi_open_unlink to exit out after its delay
# so we have no references and can unmount
_print_logstate
echo "mount with replay"
-_scratch_mount $mnt >>$seq.full 2>&1 \
+_scratch_mount $mnt >>$seqres.full 2>&1 \
|| _fail "mount failed: $mnt $MOUNT_OPTIONS"
echo "godown"
-src/godown -v -f $SCRATCH_MNT >> $seq.full
+src/godown -v -f $SCRATCH_MNT >> $seqres.full
echo "unmount"
umount $SCRATCH_MNT
_print_logstate
echo "logprint to check for CLEAR_AGI_BUCKET..."
-if _scratch_xfs_logprint -t | tee -a $seq.full | grep CLEAR; then
+if _scratch_xfs_logprint -t | tee -a $seqres.full | grep CLEAR; then
echo 'CLEAR_AGI_BUCKET transactions found!!'
echo 'Are you running with an old xfs kernel - where the bug still exists?'
else
fi
# clean up dirty log with log recovery on mount
-_scratch_mount >> $seq.full 2>&1 \
+_scratch_mount >> $seqres.full 2>&1 \
|| _fail "mount failed"
# should now be peaches
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
cat /usr/include/xfs/xfs*.h | indent |\
_attribute_filter |\
-tee $seq.full |\
+tee $seqres.full |\
egrep '} *xfs_.*_t' |\
egrep -v -f $tmp.ignore |\
awk '{sub(/[;,]/,"",$2); print "printf(\"sizeof(", $2, ") = %d\\n\", sizeof(", $2, "));"}' \
echo 'return 0; }' >>$cprog
# create and run program
-cc -o $oprog $cprog >> $seq.full 2>&1 || \
- _notrun "Could not compile test program (see end of $seq.full)"
+cc -o $oprog $cprog >> $seqres.full 2>&1 || \
+ _notrun "Could not compile test program (see end of $seqres.full)"
$oprog | _type_size_filter | _type_name_filter > $progout
#
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
test:1
EOF
-cp /dev/null $seq.full
-chmod a+rwx $seq.full # arbitrary users will write here
+cp /dev/null $seqres.full
+chmod a+rwx $seqres.full # arbitrary users will write here
_require_scratch
_scratch_mkfs_xfs >/dev/null 2>&1
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
-rm -f $seq.full
+rm -f $seqres.full
# get standard environment, filters and checks
. ./common.rc
_check_repair()
{
- echo "Repairing, round 0" >> $seq.full
- _scratch_xfs_repair 2>&1 | _filter_repair | tee -a $seq.full >$tmp.0
+ echo "Repairing, round 0" >> $seqres.full
+ _scratch_xfs_repair 2>&1 | _filter_repair | tee -a $seqres.full >$tmp.0
for i in 1 2 3 4
do
- echo "Repairing, iteration $i" | tee -a $seq.full
+ echo "Repairing, iteration $i" | tee -a $seqres.full
_scratch_xfs_repair 2>&1 | _filter_repair >$tmp.$i
- diff $tmp.0 $tmp.$i >> $seq.full
+ diff $tmp.0 $tmp.$i >> $seqres.full
if [ $? -ne 0 ]; then
- echo "ERROR: repair round $i differs to round 0 (see $seq.full)" | tee -a $seq.full
+ echo "ERROR: repair round $i differs to round 0 (see $seqres.full)" | tee -a $seqres.full
break
fi
# echo all interesting stuff...
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
| perl -ne "if (/^sids.*[\"|\s]($i)[\"|\s].*/) {print \$1} ;"`
if [ -z "$CHECKED_SID" ] ; then
echo "ERROR: SID(s) not created"
- ${DMAPI_QASUITE1_DIR}../simple/dm_getall_sessions >>$seq.full
+ ${DMAPI_QASUITE1_DIR}../simple/dm_getall_sessions >>$seqres.full
return
fi
done
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_scratch_mkfs_xfs >/dev/null 2>&1
_dmapi_scratch_mount
-${DMAPI_QASUITE1_DIR}cmd/get_dirattrs $SCRATCH_MNT > $seq.full
-[ $? -ne 0 ] && echo "get_dirattrs failed - see $seq.full"
+${DMAPI_QASUITE1_DIR}cmd/get_dirattrs $SCRATCH_MNT > $seqres.full
+[ $? -ne 0 ] && echo "get_dirattrs failed - see $seqres.full"
status=0
exit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_filter_io()
{
- tee -a $seq.full | sed 's/ops;.*/ops/'
+ tee -a $seqres.full | sed 's/ops;.*/ops/'
}
#
{
awk '$3 ~ /hole/ { print $1, $2, $3; next }
$7 ~ /10000/ { print $1, $2, "unwritten"; next }
- {print $1, $2}' >> $seq.full
+ {print $1, $2}' >> $seqres.full
}
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_filter_io()
{
- tee -a $seq.full | _filter_xfs_io
+ tee -a $seqres.full | _filter_xfs_io
}
#
_filter_bmap()
{
awk '$3 ~ /hole/ { print $1, $2, $3; next }
- {print $1, $2}' >> $seq.full
+ {print $1, $2}' >> $seqres.full
}
# get standard environment, filters and checks
# io tests
testfile=$TEST_DIR/file.$seq
rm -f $testfile
-rm -f $seq.full
+rm -f $seqres.full
len=4
end=`expr 10 \* $len`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
-rm -f $seq.full
+rm -f $seqres.full
_cleanup()
{
rm -f $TEST_FILE
$TEST_PROG $FILE_SIZE $TEST_FILE
-xfs_bmap -vp $TEST_FILE >> $seq.full
+xfs_bmap -vp $TEST_FILE >> $seqres.full
xfs_bmap -vp $TEST_FILE | _filter_blocks
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
-rm -f $seq.full
+rm -f $seqres.full
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
nops=15000
FSSTRESS_ARGS=`_scale_fsstress_args -d $SCRATCH_MNT -p $procs -n $nops \
$FSSTRESS_AVOID`
- $FSSTRESS_PROG $FSSTRESS_ARGS >> $seq.full &
+ $FSSTRESS_PROG $FSSTRESS_ARGS >> $seqres.full &
sleep 2
}
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
-rm -f $seq.full
+rm -f $seqres.full
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
# 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/$seq.full | _filter_dmapi_print_event | LC_COLLATE=POSIX sort
+cat $tmp.print_event_out | tee -a $here/$seqres.full | _filter_dmapi_print_event | LC_COLLATE=POSIX sort
rm $tmp.print_event_out
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
-rm -f $seq.full
+rm -f $seqres.full
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
-rm -f $seq.full
+rm -f $seqres.full
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
-rm -f $seq.full
+rm -f $seqres.full
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
-rm -f $seq.full
+rm -f $seqres.full
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
-rm -f $seq.full
+rm -f $seqres.full
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
-rm -f $seq.full
+rm -f $seqres.full
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
-rm -f $seq.full
+rm -f $seqres.full
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
_cleanup()
_supported_fs xfs
_supported_os IRIX Linux
-rm -f $seq.full
+rm -f $seqres.full
rm -f $tmp.log
_require_scratch
echo "mkfs"
-_scratch_mkfs_xfs >>$seq.full 2>&1 \
+_scratch_mkfs_xfs >>$seqres.full 2>&1 \
|| _fail "mkfs scratch failed"
echo "mount"
-_scratch_mount >>$seq.full 2>&1 \
+_scratch_mount >>$seqres.full 2>&1 \
|| _fail "mount failed: $MOUNT_OPTIONS"
# num_files must be greater than 64 (XFS_AGI_UNLINKED_BUCKETS)
sleep 10
echo "godown"
-src/godown -v -f $SCRATCH_MNT >> $seq.full
+src/godown -v -f $SCRATCH_MNT >> $seqres.full
# kill the multi_open_unlink
kill $pid 2>/dev/null
_print_logstate
echo "mount with replay"
-_scratch_mount $mnt >>$seq.full 2>&1 \
+_scratch_mount $mnt >>$seqres.full 2>&1 \
|| _fail "mount failed: $mnt $MOUNT_OPTIONS"
echo "godown"
-src/godown -v -f $SCRATCH_MNT >> $seq.full
+src/godown -v -f $SCRATCH_MNT >> $seqres.full
echo "unmount"
umount $SCRATCH_MNT
_print_logstate
echo "logprint to check for CLEAR_AGI_BUCKET..."
-if _scratch_xfs_logprint -t | tee -a $seq.full | grep CLEAR; then
+if _scratch_xfs_logprint -t | tee -a $seqres.full | grep CLEAR; then
echo 'CLEAR_AGI_BUCKET transactions found!!'
echo 'Are you running with an old xfs kernel - where the bug still exists?'
else
fi
# clean up dirty log with log recovery on mount
-_scratch_mount >> $seq.full 2>&1 \
+_scratch_mount >> $seqres.full 2>&1 \
|| _fail "mount failed"
# should now be peaches
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_filter_inode()
{
- tee -a $here/$seq.full | \
+ tee -a $here/$seqres.full | \
sed -e "s/core.forkoff/forkoff/g" | \
egrep '^u.sfdir2|^a.sfattr|forkoff' | \
egrep -v 'inumber|parent'
_filter_version()
{
- tee -a $here/$seq.full | tr ',' '\n' | grep ATTR
+ tee -a $here/$seqres.full | tr ',' '\n' | grep ATTR
}
_print_inode()
_require_scratch
_require_attrs
-rm -f $seq.full
+rm -f $seqres.full
_scratch_mkfs -i attr=2,size=512 -l lazy-count=1 >/dev/null 2>&1
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_filter_version()
{
- tee -a $seq.full | tr ',' '\n' | egrep 'ATTR|MORE|LAZY'
+ tee -a $seqres.full | tr ',' '\n' | egrep 'ATTR|MORE|LAZY'
}
# get standard environment, filters and checks
_require_scratch
_require_attrs
-rm -f $seq.full
+rm -f $seqres.full
# lazysb and attr2 are in features2 and will require morebitsbit on
# So test with lazysb and without it to see if the morebitsbit is
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
fi
_require_scratch
-rm -f $seq.full
+rm -f $seqres.full
_scratch_mkfs -n version=ci >/dev/null 2>&1
_scratch_mount
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
filename=test-190
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=0 # success is the default!
-rm -f $seq.full
+rm -f $seqres.full
# get standard environment, filters and checks
. ./common.rc
_scratch_mount
fsblocksize=`xfs_info $SCRATCH_MNT|sed 's/=/ /g'|awk '/^data / { print $3 }'`
-dd if=/dev/zero of=$SCRATCH_MNT/$filename bs=1024k count=10 >> $seq.full 2>&1
+dd if=/dev/zero of=$SCRATCH_MNT/$filename bs=1024k count=10 >> $seqres.full 2>&1
# run DMAPI test using verbose output
echo Punching holes in file
-echo Punching holes in file >> $seq.full
+echo Punching holes in file >> $seqres.full
for i in $holes ; do
- echo xfs_io -c "unresvsp `echo $i |$SED_PROG 's/:/ /g'`" $SCRATCH_MNT/$filename >> $seq.full
+ echo xfs_io -c "unresvsp `echo $i |$SED_PROG 's/:/ /g'`" $SCRATCH_MNT/$filename >> $seqres.full
xfs_io -c "unresvsp `echo $i |$SED_PROG 's/:/ /g'`" $SCRATCH_MNT/$filename ;
done
echo Verifying holes are in the correct spots:
xfs_bmap=`xfs_bmap $SCRATCH_MNT/$filename`
-xfs_bmap $SCRATCH_MNT/$filename >> $seq.full
+xfs_bmap $SCRATCH_MNT/$filename >> $seqres.full
for i in $holes ; do
holeStart=$[`echo $i|$SED_PROG 's/:/ /g'|awk '{print $1}'`];
holeEnd=$[`echo $i|$SED_PROG 's/:/ /g'|awk '{print $2}'`];
#xfs_bmap prints holes in the following format
# 1: [8..15]: hole
bmap="\[$[$holeStart/512]..$[($holeEnd/512) -1]\]";
- echo $bmap >> $seq.full
+ echo $bmap >> $seqres.full
if [ $holeEnd == $holeStart ] ; then
continue #there is no hole
fi
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os Linux
_require_scratch
-_scratch_mkfs_xfs -i nfs4acl 1>$tmp.mkfs 2>$seq.full
+_scratch_mkfs_xfs -i nfs4acl 1>$tmp.mkfs 2>$seqres.full
if [ $? -ne 0 ]
then
_notrun "no mkfs support for NFS v4 ACLs"
_notrun "no kernel mount support for NFS v4 ACLs"
fi
-set_prog_path nfs4acl >>$seq.full
+set_prog_path nfs4acl >>$seqres.full
if [ $? -ne 0 ]
then
_notrun "no nfs4acl utility found"
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os IRIX Linux
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
# For this test we use block size = 1/8 page size
pgsize=`$here/src/feature -s`
_filter_bmap()
{
- tee -a $seq.full | \
+ tee -a $seqres.full | \
sed "s#$SCRATCH_MNT#SCRATCH_MNT#g" | \
awk \
'$3 ~ /hole/ { print $1 "\t" $3 "\t" ($4 * 512) / blksize; next }
# Filter out offsets, which vary by blocksize
_filter_od()
{
- tee -a $seq.full | \
+ tee -a $seqres.full | \
sed -e "s/^[0-9A-Fa-f ]\{7,8\}//"
}
-c "pwrite -S 0x11 -b `expr $pgsize / 2` 0 `expr $pgsize / 2`" \
-c "truncate `expr $blksize / 2`" \
-c "truncate $pgsize" \
--t -f $SCRATCH_MNT/testfile1 >> $seq.full
+-t -f $SCRATCH_MNT/testfile1 >> $seqres.full
# directio read of entire file
xfs_io \
-c "pread 0 $pgsize" \
--d $SCRATCH_MNT/testfile1 >> $seq.full
+-d $SCRATCH_MNT/testfile1 >> $seqres.full
xfs_bmap -v $SCRATCH_MNT/testfile1 | _filter_bmap
od -x $SCRATCH_MNT/testfile1 | _filter_od
-c "truncate `expr $blksize / 2`" \
-c "truncate $pgsize" \
-c "pwrite -S 0x22 -b $blksize `expr $blksize \* 4` $blksize" \
--t -f $SCRATCH_MNT/testfile2 >> $seq.full
+-t -f $SCRATCH_MNT/testfile2 >> $seqres.full
# directio read of entire file
xfs_io \
-c "pread 0 $pgsize" \
--d $SCRATCH_MNT/testfile2 >> $seq.full
+-d $SCRATCH_MNT/testfile2 >> $seqres.full
xfs_bmap -v $SCRATCH_MNT/testfile2 | _filter_bmap
od -x $SCRATCH_MNT/testfile2 | _filter_od
-c "truncate `expr $blksize / 2`" \
-c "truncate `expr $blksize + 1`" \
-c "pwrite -S 0x22 -b $blksize `expr $pgsize / 2` $blksize" \
--t -d -f $SCRATCH_MNT/testfile3 >> $seq.full
+-t -d -f $SCRATCH_MNT/testfile3 >> $seqres.full
xfs_bmap -v $SCRATCH_MNT/testfile3 | _filter_bmap
od -x $SCRATCH_MNT/testfile3 | _filter_od
-c "truncate `expr $blksize + 1`" \
-c "pwrite -S 0x22 -b $blksize `expr $pgsize / 2` $blksize" \
-c "pwrite -S 0x33 -b 512 `expr $blksize \* 2` 512" \
--t -d -f $SCRATCH_MNT/testfile4 >> $seq.full
+-t -d -f $SCRATCH_MNT/testfile4 >> $seqres.full
xfs_bmap -v $SCRATCH_MNT/testfile4 | _filter_bmap
od -x $SCRATCH_MNT/testfile4 | _filter_od
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
# success, all done
echo "*** done"
-rm -f $seq.full
+rm -f $seqres.full
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
}
trap "_cleanup; exit \$status" 0 1 2 3 15
-rm -f $seq.full
+rm -f $seqres.full
# get standard environment, filters and checks
. ./common.rc
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_require_scratch
-rm -f $seq.full
+rm -f $seqres.full
-_scratch_mkfs_xfs -d size=16m -b size=512 >> $seq.full 2>&1
+_scratch_mkfs_xfs -d size=16m -b size=512 >> $seqres.full 2>&1
_scratch_mount
# fix the reserve block pool to a known size so that the enospc calculations
# work out correctly.
-_scratch_resvblks 1024 >> $seq.full 2>&1
+_scratch_resvblks 1024 >> $seqres.full 2>&1
# on a 16MB filesystem, there's 32768x512byte blocks. used is:
# - 4944 in the log,
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_notrun "This test is only valid on 64 bit machines"
fi
-rm -f $seq.full
+rm -f $seqres.full
tmpfile=$TEST_DIR/fsfile.$$
tmpdir=$TEST_DIR/tmpdir.$$
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
[ "$XFS_FSR_PROG" = "" ] && _notrun "xfs_fsr not found"
-xfs_fsr -d -v $TEST_DIR > $seq.full 2>&1
+xfs_fsr -d -v $TEST_DIR > $seqres.full 2>&1
echo "--- silence is golden ---"
status=0 ; exit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os Linux
_require_scratch
-rm -f $seq.full
+rm -f $seqres.full
[ "$XFS_FSR_PROG" = "" ] && _notrun "xfs_fsr not found"
create_attrs $nattrs $target
}
-rm -f $seq.full
+rm -f $seqres.full
# use a small filesystem so we can control freespace easily
-_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seq.full 2>&1
+_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1
_scratch_mount
fragment_freespace
targ=$SCRATCH_MNT/fsr_test_file.$$
for n in `seq 4 1 12`; do
- echo "*** n == $n ***" >> $seq.full
+ echo "*** n == $n ***" >> $seqres.full
for i in `seq 5 1 15`; do
for j in `seq 5 1 20`; do
- create_target_attr_first $i $j $targ.$i.$j >> $seq.full 2>&1
+ create_target_attr_first $i $j $targ.$i.$j >> $seqres.full 2>&1
done
- xfs_bmap -vp $targ.$i.* >> $seq.full 2>&1
- FSRXFSTEST=true xfs_fsr -d -v -C $n $targ.$i.* >> $seq.full 2>&1
- xfs_bmap -vp $targ.$i.* >> $seq.full 2>&1
+ xfs_bmap -vp $targ.$i.* >> $seqres.full 2>&1
+ FSRXFSTEST=true xfs_fsr -d -v -C $n $targ.$i.* >> $seqres.full 2>&1
+ xfs_bmap -vp $targ.$i.* >> $seqres.full 2>&1
for j in `seq 5 1 20`; do
- create_target_attr_last $i $j $targ.$i.$j >> $seq.full 2>&1
+ create_target_attr_last $i $j $targ.$i.$j >> $seqres.full 2>&1
done
- xfs_bmap -vp $targ.$i.* >> $seq.full 2>&1
- FSRXFSTEST=true xfs_fsr -d -v -C $n $targ.$i.* >> $seq.full 2>&1
- xfs_bmap -vp $targ.$i.* >> $seq.full 2>&1
+ xfs_bmap -vp $targ.$i.* >> $seqres.full 2>&1
+ FSRXFSTEST=true xfs_fsr -d -v -C $n $targ.$i.* >> $seqres.full 2>&1
+ xfs_bmap -vp $targ.$i.* >> $seqres.full 2>&1
done
done
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
export MOUNT_OPTIONS="-opquota"
# make fs with no projid32bit
-_scratch_mkfs_xfs -i projid32bit=0 >> $seq.full || _fail "mkfs failed"
+_scratch_mkfs_xfs -i projid32bit=0 >> $seqres.full || _fail "mkfs failed"
_qmount
# make sure project quota is supported
_require_prjquota ${SCRATCH_DEV}
touch $dir/below16bit
# below 16bit value
$XFS_QUOTA_PROG -x -c "project -s -p $dir/below16bit 3422" $SCRATCH_DEV \
- >> $seq.full
+ >> $seqres.full
projid=$($XFS_IO_PROG -r -c "lsproj" $dir/below16bit)
if [ "projid = 3422" != "$projid" ]; then
echo "FAIL: projid32bit disabled: returned projid value ($projid)"
# 32bit value, should fail
touch $dir/over16bit
if $XFS_QUOTA_PROG -x -c "project -s -p $dir/over16bit 108545" $SCRATCH_DEV \
- >> $seq.full 2>&1; then
+ >> $seqres.full 2>&1; then
echo "FAIL: projid32bit disabled: setting 32bit projid succeeded"
echo " while it should fail"
status=1
# over 32bit value, should fail
touch $dir/over32bit
-if $XFS_QUOTA_PROG -x -c "project -s -p $dir/over32bit 5344967296" $SCRATCH_DEV >> $seq.full 2>&1; then
+if $XFS_QUOTA_PROG -x -c "project -s -p $dir/over32bit 5344967296" $SCRATCH_DEV >> $seqres.full 2>&1; then
echo "FAIL: projid32bit disabled: setting over 32bit projid succeeded"
echo " while it should fail"
status=1
# Do testing on filesystem with projid32bit feature enabled
umount $SCRATCH_DEV 2>/dev/null
-_scratch_mkfs_xfs -i projid32bit=1 >> $seq.full || _fail "mkfs failed"
+_scratch_mkfs_xfs -i projid32bit=1 >> $seqres.full || _fail "mkfs failed"
_qmount
mkdir $dir
touch $dir/below16bit
# below 16bit value, should succeed
$XFS_QUOTA_PROG -x -c "project -s -p $dir/below16bit 3422" $SCRATCH_DEV \
- >> $seq.full
+ >> $seqres.full
projid=$($XFS_IO_PROG -r -c "lsproj" $dir/below16bit)
if [ "projid = 3422" != "$projid" ]; then
echo "FAIL: projid32bit enabled: returned projid value ($projid)"
# 32bit value, should succeed
touch $dir/over16bit
if $XFS_QUOTA_PROG -x -c "project -s -p $dir/over16bit 108545" $SCRATCH_DEV \
- >> $seq.full 2>&1; then
+ >> $seqres.full 2>&1; then
projid=$($XFS_IO_PROG -r -c "lsproj" $dir/over16bit)
if [ "projid = 108545" != "$projid" ]; then
echo "FAIL: projid32bit enabled: returned projid value ($projid)"
# over 32bit value, should fail
touch $dir/over32bit
if $XFS_QUOTA_PROG -x -c "project -s -p $dir/over32bit 5344967296" $SCRATCH_DEV \
- >> $seq.full 2>&1; then
+ >> $seqres.full 2>&1; then
echo "FAIL: projid32bit enabled: setting over 32bit projid succeeded"
echo " while it should fail"
status=1
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
status=1 # failure is the default!
#
seq=$(basename $0)
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by ${seq}"
here=$(pwd)
#
seq=$(basename $0)
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by ${seq}"
here=$(pwd)
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
echo "Silence is goodness..."
# Corrupt DIR
-xfs_db -x -c "inode $DIR_INO" -c "write u.sfdir2.list[0].inumber.i4 0" $SCRATCH_DEV >> $seq.full
-xfs_db -x -c "inode $DIR_INO" -c "write u.sfdir2.list[0].name 0" $SCRATCH_DEV >> $seq.full
-xfs_db -x -c "inode $DIR_INO" -c "write u.sfdir2.list[0].offset 0" $SCRATCH_DEV >> $seq.full
-xfs_db -x -c "inode $DIR_INO" -c "write u.sfdir2.list[0].namelen 0" $SCRATCH_DEV >> $seq.full
-xfs_db -x -c "inode $DIR_INO" -c "write u.sfdir2.hdr.parent.i4 0" $SCRATCH_DEV >> $seq.full
-xfs_db -x -c "inode $DIR_INO" -c "write core.nlinkv2 0" $SCRATCH_DEV >> $seq.full
+xfs_db -x -c "inode $DIR_INO" -c "write u.sfdir2.list[0].inumber.i4 0" $SCRATCH_DEV >> $seqres.full
+xfs_db -x -c "inode $DIR_INO" -c "write u.sfdir2.list[0].name 0" $SCRATCH_DEV >> $seqres.full
+xfs_db -x -c "inode $DIR_INO" -c "write u.sfdir2.list[0].offset 0" $SCRATCH_DEV >> $seqres.full
+xfs_db -x -c "inode $DIR_INO" -c "write u.sfdir2.list[0].namelen 0" $SCRATCH_DEV >> $seqres.full
+xfs_db -x -c "inode $DIR_INO" -c "write u.sfdir2.hdr.parent.i4 0" $SCRATCH_DEV >> $seqres.full
+xfs_db -x -c "inode $DIR_INO" -c "write core.nlinkv2 0" $SCRATCH_DEV >> $seqres.full
# Corrupt SUBDIR
-xfs_db -x -c "inode $SUBDIR_INO" -c "write u.sfdir2.hdr.parent.i4 0" $SCRATCH_DEV >> $seq.full
-xfs_db -x -c "inode $SUBDIR_INO" -c "write core.nlinkv2 0" $SCRATCH_DEV >> $seq.full
+xfs_db -x -c "inode $SUBDIR_INO" -c "write u.sfdir2.hdr.parent.i4 0" $SCRATCH_DEV >> $seqres.full
+xfs_db -x -c "inode $SUBDIR_INO" -c "write core.nlinkv2 0" $SCRATCH_DEV >> $seqres.full
-echo "===== BEGIN of xfs_repair =====" >> $seq.full
-echo "" >>$seq.full
+echo "===== BEGIN of xfs_repair =====" >> $seqres.full
+echo "" >>$seqres.full
-xfs_repair $SCRATCH_DEV >> $seq.full 2>&1
-echo "===== END of xfs_repair =====" >> $seq.full
+xfs_repair $SCRATCH_DEV >> $seqres.full 2>&1
+echo "===== END of xfs_repair =====" >> $seqres.full
#if _check_scratch_fs; then
# status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_require_scsi_debug
-rm -f $seq.full
+rm -f $seqres.full
# Remove xfs signature so -f isn't needed to re-mkfs
_wipe_device()
return
fi
echo "Passed."
- cat $tmp.mkfs.full | _filter_mkfs >> $seq.full 2>$tmp.mkfs
+ cat $tmp.mkfs.full | _filter_mkfs >> $seqres.full 2>$tmp.mkfs
. $tmp.mkfs
echo "Got sector size: $sectsz"
device=`echo $@ | awk '{print $NF}'`
_check_mkfs $SCSI_DEBUG_DEV
# blocksize smaller than physical sectorsize should revert to logical sectorsize
_check_mkfs -b size=2048 -f $SCSI_DEBUG_DEV
-) | tee -a $seq.full
+) | tee -a $seqres.full
_put_scsi_debug_dev
# === 4k physical 512b logical unaligned
_check_mkfs -s size=4096 $SCSI_DEBUG_DEV
# with 4k sector specified should fall back to logical sector size with force
_check_mkfs -s size=4096 -f $SCSI_DEBUG_DEV
-) | tee -a $seq.full
+) | tee -a $seqres.full
_put_scsi_debug_dev
# === hard 4k physical / 4k logical
_check_mkfs -b size=2048 $SCSI_DEBUG_DEV
# sector size smaller than physical sector size should fail
_check_mkfs -s size=512 $SCSI_DEBUG_DEV
-) | tee -a $seq.full
+) | tee -a $seqres.full
_put_scsi_debug_dev
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_create_dumpdir_fill
# ensure file/dir timestamps precede dump timestamp
sleep 2
-src/bstat $SCRATCH_MNT >>$here/$seq.full
+src/bstat $SCRATCH_MNT >>$here/$seqres.full
echo "*** Level 0 dump, format 2"
_do_dump_file -f $tmp.l0 -K
_append_dumpdir_fill
-src/bstat $SCRATCH_MNT >>$here/$seq.full
+src/bstat $SCRATCH_MNT >>$here/$seqres.full
echo "*** Level 1 dump, current format"
_do_dump_file -l 1 -f $tmp.l1
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_create_dumpdir_fill
# ensure file/dir timestamps precede dump timestamp
sleep 2
-src/bstat $SCRATCH_MNT >>$here/$seq.full
+src/bstat $SCRATCH_MNT >>$here/$seqres.full
echo "*** Level 0 dump, current format"
_do_dump_file -f $tmp.l0
_append_dumpdir_fill
-src/bstat $SCRATCH_MNT >>$here/$seq.full
+src/bstat $SCRATCH_MNT >>$here/$seqres.full
echo "*** Level 1 dump, format 2"
_do_dump_file -l 1 -f $tmp.l1 -K
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
tmp=/tmp/$$
here=`pwd`
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
-rm -f $seq.full
+rm -f $seqres.full
# get standard environment, filters and checks
. ./common.rc
_require_projid32bit
# create xfs fs without projid32bit ability, will be gained by xfs_admin
-_scratch_mkfs_xfs -i projid32bit=0 -d size=200m >> $seq.full \
+_scratch_mkfs_xfs -i projid32bit=0 -d size=200m >> $seqres.full \
|| _fail "mkfs failed"
_qmount_option "pquota"
_qmount
inode16a=$(ls -i $dir/16bit | cut -d ' ' -f 1)
inode32a=$(ls -i $dir/32bit | cut -d ' ' -f 1)
$XFS_QUOTA_PROG -x -c "project -s -p $dir/16bit 1234" $SCRATCH_DEV \
- >> $seq.full
+ >> $seqres.full
$XFS_QUOTA_PROG -x -c "project -s -p $dir/32bit 2123456789" $SCRATCH_DEV \
- >> $seq.full 2>&1
+ >> $seqres.full 2>&1
echo "No 32bit project quotas:"
$XFS_IO_PROG -r -c "lsproj" $dir/16bit
umount $SCRATCH_MNT
# Now, enable projid32bit support by xfs_admin
-xfs_admin -p $SCRATCH_DEV >> $seq.full 2>&1 || _fail "xfs_admin failed"
+xfs_admin -p $SCRATCH_DEV >> $seqres.full 2>&1 || _fail "xfs_admin failed"
# Now mount the fs, 32bit project quotas shall be supported, now
_qmount_option "pquota"
_qmount
$XFS_QUOTA_PROG -x -c "project -s -p $dir/32bit 2123456789" $SCRATCH_DEV \
- >> $seq.full
+ >> $seqres.full
# These will be checked by $seq.out
echo "With 32bit project quota support:"
# Dump the fs to a temporary file
rm -f $tmp.dump.img
-$XFSDUMP_PROG -f $tmp.dump -L label -M media -l 0 $SCRATCH_MNT >> $seq.full \
+$XFSDUMP_PROG -f $tmp.dump -L label -M media -l 0 $SCRATCH_MNT >> $seqres.full \
|| _fail "dump failed"
# Prepare the device to restore the dumped file system
mkdir -p $SCRATCH_MNT/restore
# Restore
-$XFSRESTORE_PROG -f $tmp.dump $SCRATCH_MNT/restore >> $seq.full 2>&1 \
+$XFSRESTORE_PROG -f $tmp.dump $SCRATCH_MNT/restore >> $seqres.full 2>&1 \
|| _fail "xfsrestore failed"
# Check that they are the same
inode32b=$(ls -i $restore_dir/32bit | cut -d ' ' -f 1)
inode32v2=$(ls -i $restore_dir/32bitv2 | cut -d ' ' -f 1)
$XFS_QUOTA_PROG -x -c "project -s -p $restore_dir/32bitv2 2123456789" \
- $SCRATCH_MNT >> $seq.full
+ $SCRATCH_MNT >> $seqres.full
echo "The restored file system + one additional file:"
$XFS_IO_PROG -r -c "lsproj" $restore_dir/16bit
$XFS_IO_PROG -r -c "lsproj" $restore_dir/32bit
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os IRIX Linux
# real QA test starts here
-rm -f $seq.full
+rm -f $seqres.full
_require_scratch
-_scratch_mkfs_xfs -n size=16k -d size=128m >> $seq.full 2>&1
+_scratch_mkfs_xfs -n size=16k -d size=128m >> $seqres.full 2>&1
_scratch_mount
# First we cause very badly fragmented freespace, then
# Step 1: Cause badly fragmented free space
mkdir $SCRATCH_MNT/fragdir
for I in `seq 0 27200`; do
- (echo data > $SCRATCH_MNT/fragdir/f$I) >> $seq.full 2>&1
+ (echo data > $SCRATCH_MNT/fragdir/f$I) >> $seqres.full 2>&1
done
sync
for I in `seq 0 2 27200`; do
- rm -f $SCRATCH_MNT/fragdir/f$I >> $seq.full 2>&1
+ rm -f $SCRATCH_MNT/fragdir/f$I >> $seqres.full 2>&1
done
sync
# Soak up any remaining freespace
-xfs_io -f -c "pwrite 0 16m" -c "fsync" $SCRATCH_MNT/space_file.large >> $seq.full 2>&1
+xfs_io -f -c "pwrite 0 16m" -c "fsync" $SCRATCH_MNT/space_file.large >> $seqres.full 2>&1
# Take a look at freespace for any post-mortem on the test
_scratch_unmount
-xfs_db -c freesp $SCRATCH_DEV >> $seq.full 2>&1
+xfs_db -c freesp $SCRATCH_DEV >> $seqres.full 2>&1
_scratch_mount
# Step 2: Make a bunch of (hopefully fragmented) multiblock
_scratch_unmount
# Can xfs_repair and xfs_check cope with this monster?
-_scratch_xfs_repair >> $seq.full 2>&1 || _fail "xfs_repair failed"
-xfs_check $SCRATCH_DEV >> $seq.full 2>&1 || _fail "xfs_check failed"
+_scratch_xfs_repair >> $seqres.full 2>&1 || _fail "xfs_repair failed"
+xfs_check $SCRATCH_DEV >> $seqres.full 2>&1 || _fail "xfs_check failed"
# Yes they can! Now...
# Can xfs_metadump cope with this monster?
xfs_metadump $SCRATCH_DEV $tmp.metadump || _fail "xfs_metadump failed"
xfs_mdrestore $tmp.metadump $tmp.img || _fail "xfs_mdrestore failed"
-xfs_repair $tmp.img >> $seq.full 2>&1 || _fail "xfs_repair of metadump failed"
+xfs_repair $tmp.img >> $seqres.full 2>&1 || _fail "xfs_repair of metadump failed"
# Yes it can; success, all done
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os IRIX Linux
_require_scratch
-rm -f $seq.full
+rm -f $seqres.full
_scratch_mkfs -l size=2560b >/dev/null 2>&1
_scratch_mount
echo hello > $SCRATCH_MNT/hello; setfattr -n user.name -v value $SCRATCH_MNT/hello
_scratch_unmount
-_scratch_xfs_logprint 2>&1 >> $seq.full
+_scratch_xfs_logprint 2>&1 >> $seqres.full
# Now go for a continued transaction
# The trick here is to get a transaction which is exactly the size of a
touch $SCRATCH_MNT/tmp$I
done
_scratch_unmount
-_scratch_xfs_logprint 2>&1 >> $seq.full
+_scratch_xfs_logprint 2>&1 >> $seqres.full
# success, all done
status=0
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_supported_os Linux
_require_scratch
-rm -f $seq.full
+rm -f $seqres.full
_wipe_fs
#
seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
+seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
_require_scratch
_require_freeze
-rm -f $seq.full
+rm -f $seqres.full
_scratch_mkfs_xfs -d agcount=16,su=256k,sw=12 -l su=256k,size=2560b >/dev/null 2>&1
_scratch_mount >/dev/null 2>&1
$FSSTRESS_PROG -d $STRESS_DIR -n 100 -p 1000 $FSSTRESS_AVOID >/dev/null 2>&1 &
# Freeze/unfreeze file system randomly
-echo "Start freeze/unfreeze randomly" | tee -a $seq.full
+echo "Start freeze/unfreeze randomly" | tee -a $seqres.full
LOOP=10
while [ $LOOP -gt 0 ];do
TIMEOUT=`expr $RANDOM % 5`
sleep $TIMEOUT
- echo "* Freeze file system after sleeping $TIMEOUT seconds" >>$seq.full
+ echo "* Freeze file system after sleeping $TIMEOUT seconds" >>$seqres.full
xfs_freeze -f $SCRATCH_MNT
if [ $? -ne 0 ];then
- echo " - Error: freeze filesystem failed" | tee -a $seq.full
+ echo " - Error: freeze filesystem failed" | tee -a $seqres.full
fi
TIMEOUT=`expr $RANDOM % 3`
sleep $TIMEOUT
- echo "* Unfreeze file system after sleeping $TIMEOUT seconds" >>$seq.full
+ echo "* Unfreeze file system after sleeping $TIMEOUT seconds" >>$seqres.full
xfs_freeze -u $SCRATCH_MNT
if [ $? -ne 0 ];then
- echo " - Error: unfreeze filesystem failed" | tee -a $seq.full
+ echo " - Error: unfreeze filesystem failed" | tee -a $seqres.full
fi
let LOOP=$LOOP-1
done
-echo "Test done" | tee -a $seq.full
+echo "Test done" | tee -a $seqres.full
killall -q $FSSTRESS_PROG
wait