check: add support for an external file containing tests to exclude
authorTheodore Ts'o <tytso@mit.edu>
Mon, 12 May 2014 23:04:13 +0000 (09:04 +1000)
committerDave Chinner <david@fromorbit.com>
Mon, 12 May 2014 23:04:13 +0000 (09:04 +1000)
Currently the -X option is intended to specify a set of expunging
files which are stored in each test/* subdirectory.  As described in
the commit description for 0b1e8abd4, in order to exclude the test
generic/280, the -X option is used as follows:

    $ cat tests/generic/3.0-stable-avoid
    280
    $ sudo ./check -X 3.0-stable-avoid generic/280

However, it is sometimes useful to store the set of expunged tests in
a single file, outside of tests/* subdirectories.  This commit enables
the following:

    $ cat /root/conf/data_journal.exclude
    generic/068
    ext4/301
    $ sudo ./check -E /root/conf/data_journal.exclude -g auto

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
check

diff --git a/check b/check
index e7ace63d8f0c397bb5bd377343b05e05b787e222..b1eaed2620d0d993096611a07c2b61edfd183874 100755 (executable)
--- a/check
+++ b/check
@@ -81,6 +81,7 @@ testlist options
     -g group[,group...]        include tests from these groups
     -x group[,group...]        exclude tests from these groups
     -X file            exclude individual tests
     -g group[,group...]        include tests from these groups
     -x group[,group...]        exclude tests from these groups
     -X file            exclude individual tests
+    -E external_file   exclude individual tests
     [testlist]         include tests matching names in testlist
 '
            exit 0
     [testlist]         include tests matching names in testlist
 '
            exit 0
@@ -222,6 +223,11 @@ while [ $# -gt 0 ]; do
                        done
                done
                ;;
                        done
                done
                ;;
+       -E)     xfile=$2; shift ;
+               if [ -f $xfile ]; then
+                       cat "$xfile" >> $tmp.xlist
+               fi
+               ;;
        -s)     RUN_SECTION="$RUN_SECTION $2"; shift ;;
        -l)     diff="diff" ;;
        -udiff) diff="$diff -u" ;;
        -s)     RUN_SECTION="$RUN_SECTION $2"; shift ;;
        -l)     diff="diff" ;;
        -udiff) diff="$diff -u" ;;