xfs
[Top] [All Lists]

[PATCH] check: add support for an external test expunging file

To: xfs@xxxxxxxxxxx
Subject: [PATCH] check: add support for an external test expunging file
From: Theodore Ts'o <tytso@xxxxxxx>
Date: Mon, 14 Apr 2014 22:52:00 -0400
Cc: Ext4 Developers List <linux-ext4@xxxxxxxxxxxxxxx>, Theodore Ts'o <tytso@xxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=simple/simple; d=thunk.org; s=ef5046eb; t=1397530323; bh=KMnYV41DAHVFHERyW6nTVP6QiBcFxdsNwb130Ok0I2M=; h=From:To:Cc:Subject:Date:From; b=RzKGzKB4GCO9eFcy2rWrZDME/HpqmRvapANoIjOvYGcJeElfMsODLTf/q32d24lwk 3djoXtl3ukdc0h/EKZKv84yLs29TQ+RFmChZC407lYvBluwqH1VhA7rODiadhK7TDq 1T6PZvhMXo7dH51XqyU3W6HG+Nn1QZw1Mqy62tdk=
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 allows
the following:

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

If the argument to the -X option is a pathname (that is, includes a
'/' character), treat it as the latter case.  If it the argument to
the -X option is just a bare filename (that is, does not include '/'
character), treat it as the former.

Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx>
---
 check | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/check b/check
index e7ace63..791a386 100755
--- a/check
+++ b/check
@@ -215,12 +215,22 @@ while [ $# -gt 0 ]; do
                ;;
 
        -X)     xfile=$2; shift ;
-               for d in $SRC_GROUPS $FSTYP; do
-                       [ -f $SRC_DIR/$d/$xfile ] || continue
-                       for f in `cat $SRC_DIR/$d/$xfile`; do
-                               echo $d/$f >> $tmp.xlist
+               case "$xfile" in
+               */*)    if [ -f "$xfile" ]; then
+                               cat "$xfile" >> $tmp.xlist
+                       else
+                               echo "Exclusion file $xfile not found"
+                               exit 1
+                       fi
+                       ;;
+               *)      for d in $SRC_GROUPS $FSTYP; do
+                               [ -f $SRC_DIR/$d/$xfile ] || continue
+                               for f in `cat $SRC_DIR/$d/$xfile`; do
+                                   echo $d/$f >> $tmp.xlist
+                               done
                        done
-               done
+                       ;;
+               esac
                ;;
        -s)     RUN_SECTION="$RUN_SECTION $2"; shift ;;
        -l)     diff="diff" ;;
-- 
1.9.0

<Prev in Thread] Current Thread [Next in Thread>