fsx: introduce FSX_AVOID env var
authorEric Sandeen <sandeen@redhat.com>
Tue, 22 Apr 2014 00:46:49 +0000 (10:46 +1000)
committerDave Chinner <david@fromorbit.com>
Tue, 22 Apr 2014 00:46:49 +0000 (10:46 +1000)
Just like FSSTRESS_AVOID, FSX_AVOID can be used to add
options at the end of the default fsx runs in each test.
i.e. FSX_AVOID="-H -z -C" will disable punch hole, zero range,
and collapse range calls in all tests which run fsx.

This should handle Ted's concerns about buggy ext4 fallocate
code without needing to add tunables to the kernel to reject
these operations during xfstests runs.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
README
tests/generic/075
tests/generic/091
tests/generic/112
tests/generic/127
tests/generic/231
tests/generic/263

diff --git a/README b/README
index 295d67f56246b9823376ea3bff61de7d7c318156..b299c8fc783d5996ddff8b8bb76e84f1b405da91 100644 (file)
--- a/README
+++ b/README
@@ -68,6 +68,11 @@ Preparing system for tests (IRIX and Linux):
              - setenv FSTYP "the filesystem you want to test", the filesystem
                type is devised from the TEST_DEV device, but you may want to
                override it; if unset, the default is 'xfs'
+             - setenv FSSTRESS_AVOID and/or FSX_AVOID, which contain options
+               added to the end of fsstresss and fsx invocations, respectively,
+               in case you wish to exclude certain operational modes from these
+               tests.
+
         - or add a case to the switch in common/config assigning
           these variables based on the hostname of your test
           machine
index 8b4ab390b1c4ae3c043ed5a63aa52676a1197943..af4f34b2190df89c1bb5cfe46387b503d32beed1 100755 (executable)
@@ -75,7 +75,7 @@ _do_test()
 
     # This cd and use of -P gets full debug on $here (not TEST_DEV)
     cd $out
-    if ! $here/ltp/fsx $_param -P $here $seq.$_n &>/dev/null
+    if ! $here/ltp/fsx $_param -P $here $seq.$_n $FSX_AVOID &>/dev/null
     then
        echo "    fsx ($_param) failed, $? - compare $seqres.$_n.{good,bad,fsxlog}"
        mv $out/$seq.$_n $seqres.$_n.full
index bb176f13c0ca1602389b8638752215a34a65810f..e7b60fef1f3f517cab3c5566570dfd19d3c29454 100755 (executable)
@@ -46,7 +46,7 @@ run_fsx()
        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 >>$seqres.full 2>&1
+       $here/ltp/fsx $args $FSX_AVOID $TEST_DIR/junk >>$seqres.full 2>&1
        if [ $? -ne 0 ]; then
                cat $seqres.full
                exit 1
index 4918f755703f34b8755c0ef0a660f55579753854..1e34d99de7e1c07bcf546738bfaf67545c9efa97 100755 (executable)
@@ -75,7 +75,7 @@ _do_test()
 
     # This cd and use of -P gets full debug on $here (not TEST_DEV)
     cd $out
-    if ! $here/ltp/fsx $_param -P $here $seq.$_n &>/dev/null
+    if ! $here/ltp/fsx $_param -P $here $FSX_AVOID $seq.$_n &>/dev/null
     then
        echo "    fsx ($_param) returned $? - see $seq.$_n.full"
        mv $seq.$_n.fsxlog $seqres.$_n.full
index 58ca91ecf1ba5f327ada70b613608f6ea84a3fe7..f6b7f9553c7763e5ea36e948c9520e102e92ca75 100755 (executable)
@@ -51,7 +51,7 @@ _fsx_lite_nommap()
 {
     echo "=== FSX Light Mode, No Memory Mapping ==="
     dd if=/dev/zero of=$TEST_DIR/fsx_lite_nommap bs=${FSX_FILE_SIZE} count=1 > /dev/null 2>&1
-    if ! ltp/fsx $FSX_ARGS -L -R -W $TEST_DIR/fsx_lite_nommap > $tmp.output 2>&1
+    if ! ltp/fsx $FSX_ARGS -L -R -W $FSX_AVOID $TEST_DIR/fsx_lite_nommap > $tmp.output 2>&1
     then
         echo "ltp/fsx $FSX_ARGS -L -R -W $TEST_DIR/fsx_lite_nommap"
         cat $tmp.output
@@ -65,7 +65,7 @@ _fsx_lite_mmap()
 {
     echo "=== FSX Light Mode, Memory Mapping ==="
     dd if=/dev/zero of=$TEST_DIR/fsx_lite_mmap bs=${FSX_FILE_SIZE} count=1 > /dev/null 2>&1
-    if ! ltp/fsx $FSX_ARGS -L $TEST_DIR/fsx_lite_mmap > $tmp.output 2>&1
+    if ! ltp/fsx $FSX_ARGS -L $FSX_AVOID $TEST_DIR/fsx_lite_mmap > $tmp.output 2>&1
     then
        echo "ltp/fsx $FSX_ARGS -L fsx_lite_mmap"
        cat $tmp.output
@@ -78,7 +78,7 @@ _fsx_lite_mmap()
 _fsx_std_nommap()
 {
     echo "=== FSX Standard Mode, No Memory Mapping ==="
-    if ! ltp/fsx $FSX_ARGS -R -W $TEST_DIR/fsx_std_nommap > $tmp.output 2>&1
+    if ! ltp/fsx $FSX_ARGS -R -W $FSX_AVOID $TEST_DIR/fsx_std_nommap > $tmp.output 2>&1
     then
         echo "ltp/fsx $FSX_ARGS -R -W fsx_std_nommap"
         cat $tmp.output
@@ -91,7 +91,7 @@ _fsx_std_nommap()
 _fsx_std_mmap()
 {
     echo "=== FSX Standard Mode, Memory Mapping ==="
-    if ! ltp/fsx $FSX_ARGS $TEST_DIR/fsx_std_mmap > $tmp.output 2>&1
+    if ! ltp/fsx $FSX_ARGS $FSX_AVOID $TEST_DIR/fsx_std_mmap > $tmp.output 2>&1
     then
        echo "ltp/fsx $FSX_ARGS fsx_std_mmap"
        cat $tmp.output
index a7cff35a058d1f831c537dc5a30c67717902a709..df7d76c6da688770b067e205d125a9463657725e 100755 (executable)
@@ -48,7 +48,7 @@ _fsx()
                SEED=$RANDOM
                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 &
+                       $FSX_AVOID $SCRATCH_MNT/fsx_file$i" >$tmp.output$i 2>&1 &
        done
 
        for (( i = 1; i <= $tasks; i++ )); do
index bc59865edde4863a0d7290572c03d8dcb1ef4f7f..6ecb74ddffcab089125b6c8a9629fd2eb10dbb16 100755 (executable)
@@ -46,7 +46,7 @@ run_fsx()
        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 >>$seqres.full 2>&1
+       $here/ltp/fsx $args $FSX_AVOID $TEST_DIR/junk >>$seqres.full 2>&1
        if [ $? -ne 0 ]; then
                cat $seqres.full
                exit 1