build: Fix installation for extended names
authorJan Tulak <jtulak@redhat.com>
Mon, 11 Jul 2016 09:26:06 +0000 (11:26 +0200)
committerEryu Guan <eguan@redhat.com>
Mon, 18 Jul 2016 08:55:04 +0000 (16:55 +0800)
xfstests supports extended test names like 314-foo-bar, but
installation of these tests was skipped (not matching a regexp). So
this patch fixes the makefiles in tests/*/

The include/buildrules change was written by Dave Chinner.

Signed-off-by: Jan Tulak <jtulak@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
include/buildrules
tests/btrfs/Makefile
tests/cifs/Makefile
tests/ext4/Makefile
tests/f2fs/Makefile
tests/generic/Makefile
tests/overlay/Makefile
tests/shared/Makefile
tests/udf/Makefile
tests/xfs/Makefile

index c8a7c47..76b755e 100644 (file)
@@ -100,3 +100,35 @@ MAKEDEP := $(MAKEDEPEND) $(CFLAGS)
            cp /dev/null .dep; \
        fi
 
+# Gather files for installing into two lists:
+# TESTS with executable scripts and OUTFILES with all the test outputs.
+# Makefile has a very small matching, so we have to go this long way.
+
+# Start with all test related files:
+ALLFILES = $(wildcard [0-9]??*)
+
+# Now build a list of known output files.  Unfortunately, the
+# multiple output test files are poorly handled as makefiles don't
+# handle wildcarded multi-suffix matching. Hence we separate the
+# processing of these right now.
+EXTENDED_OUTFILES = $(wildcard [0-9]??*.out.*)
+EXTENDED_OUTFILE_CFGS = $(wildcard [0-9]??.cfg)
+BASIC_OUTFILES = $(wildcard [0-9]??*.out)
+OUTFILES = $(EXTENDED_OUTFILES) $(EXTENDED_OUTFILE_CFGS) $(BASIC_OUTFILES)
+
+# Strip suffix to get matching tests. We want to strip from the
+# first "." to the end, but makefiles don't have a built in
+# operative for that. So:
+#
+# Hack: strip the multiple segments after .out with repeated basename calls.
+EXTFILTER1 = $(basename $(EXTENDED_OUTFILES))
+EXTFILTER2 = $(basename $(EXTFILTER1))
+EXTFILTER3 = $(basename $(EXTFILTER2))
+EXTFILTER4 = $(basename $(EXTFILTER3))
+
+# final filter list
+FILTER = $(basename $(EXTFILTER4) $(BASIC_OUTFILES))
+
+# finally, select the test files by filtering against against the
+# stripped output files and sort them to remove duplicates.
+TESTS = $(sort $(filter $(ALLFILES), $(FILTER)))
index e1a5be1..2d93642 100644 (file)
@@ -12,9 +12,9 @@ include $(BUILDRULES)
 
 install:
        $(INSTALL) -m 755 -d $(TARGET_DIR)
-       $(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
        $(INSTALL) -m 644 group $(TARGET_DIR)
-       $(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+       $(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
 
 # Nothing.
 install-dev install-lib:
index 9176e5c..0c5cf3b 100644 (file)
@@ -12,9 +12,9 @@ include $(BUILDRULES)
 
 install:
        $(INSTALL) -m 755 -d $(TARGET_DIR)
-       $(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
        $(INSTALL) -m 644 group $(TARGET_DIR)
-       $(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+       $(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
 
 # Nothing.
 install-dev install-lib:
index 7a3c8e1..beb1541 100644 (file)
@@ -12,9 +12,9 @@ include $(BUILDRULES)
 
 install:
        $(INSTALL) -m 755 -d $(TARGET_DIR)
-       $(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
        $(INSTALL) -m 644 group $(TARGET_DIR)
-       $(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+       $(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
 
 # Nothing.
 install-dev install-lib:
index 4d00e9e..d13bca3 100644 (file)
@@ -13,9 +13,9 @@ include $(BUILDRULES)
 
 install:
        $(INSTALL) -m 755 -d $(TARGET_DIR)
-       $(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
        $(INSTALL) -m 644 group $(TARGET_DIR)
-       $(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+       $(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
 
 # Nothing.
 install-dev install-lib:
index 9529fb8..3878d05 100644 (file)
@@ -12,9 +12,9 @@ include $(BUILDRULES)
 
 install:
        $(INSTALL) -m 755 -d $(TARGET_DIR)
-       $(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
        $(INSTALL) -m 644 group $(TARGET_DIR)
-       $(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+       $(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
 
 # Nothing.
 install-dev install-lib:
index 63c9878..b07f892 100644 (file)
@@ -12,9 +12,9 @@ include $(BUILDRULES)
 
 install:
        $(INSTALL) -m 755 -d $(TARGET_DIR)
-       $(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
        $(INSTALL) -m 644 group $(TARGET_DIR)
-       $(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+       $(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
 
 # Nothing.
 install-dev install-lib:
index cbd87f9..8a83278 100644 (file)
@@ -12,9 +12,9 @@ include $(BUILDRULES)
 
 install:
        $(INSTALL) -m 755 -d $(TARGET_DIR)
-       $(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
        $(INSTALL) -m 644 group $(TARGET_DIR)
-       $(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+       $(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
 
 # Nothing.
 install-dev install-lib:
index 1d96658..c9c9f1b 100644 (file)
@@ -12,9 +12,9 @@ include $(BUILDRULES)
 
 install:
        $(INSTALL) -m 755 -d $(TARGET_DIR)
-       $(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
        $(INSTALL) -m 644 group $(TARGET_DIR)
-       $(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+       $(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
 
 # Nothing.
 install-dev install-lib:
index db94be0..d64800e 100644 (file)
@@ -12,9 +12,9 @@ include $(BUILDRULES)
 
 install:
        $(INSTALL) -m 755 -d $(TARGET_DIR)
-       $(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+       $(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
        $(INSTALL) -m 644 group $(TARGET_DIR)
-       $(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+       $(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
 
 # Nothing.
 install-dev install-lib: