summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJan Tulak <jtulak@redhat.com>2016-07-11 11:26:06 +0200
committerEryu Guan <eguan@redhat.com>2016-07-18 16:55:04 +0800
commitcb15a45be8cd278dc2ca3b719b9c2a836a3bfde2 (patch)
tree92d1d75756882b9676d0c0c65e5ed4236a4934f1 /include
parentb62a0b3053975d28a99627159d5059d449d00296 (diff)
build: Fix installation for extended names
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>
Diffstat (limited to 'include')
-rw-r--r--include/buildrules32
1 files changed, 32 insertions, 0 deletions
diff --git a/include/buildrules b/include/buildrules
index c8a7c474..76b755e8 100644
--- a/include/buildrules
+++ b/include/buildrules
@@ -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)))