summaryrefslogtreecommitdiffstats
path: root/share/mk/suite.test.mk
diff options
context:
space:
mode:
authorjmmv <jmmv@FreeBSD.org>2015-07-04 02:37:36 +0000
committerjmmv <jmmv@FreeBSD.org>2015-07-04 02:37:36 +0000
commit6e2b0363cac9630a9152f0517e46fce2ef3c6bfc (patch)
tree2147c49b85d0ce49955632a2428b711dc2715be5 /share/mk/suite.test.mk
parent7eba87cee95ee2ca8075747c29ac79ba12e3da2f (diff)
downloadFreeBSD-src-6e2b0363cac9630a9152f0517e46fce2ef3c6bfc.zip
FreeBSD-src-6e2b0363cac9630a9152f0517e46fce2ef3c6bfc.tar.gz
Add support for TEST_METADATA
Allow Makefiles to define generic metadata settings that apply to all test programs defined by a Makefile. The generic TEST_METADATA variable extends the per-test program settings already supported via TEST_METADATA.<program>. This feature will be useful to easily apply some settings to all programs in a directory. In particular, Kyua 0.12 will support parallel execution of test programs and a bunch of them will need to be tagged as is_exclusive to indicate that they cannot be run in parallel with anything else due to their side-effects. It will be reasonable to set this setting on whole directories. MFC after: 1 week
Diffstat (limited to 'share/mk/suite.test.mk')
-rw-r--r--share/mk/suite.test.mk21
1 files changed, 16 insertions, 5 deletions
diff --git a/share/mk/suite.test.mk b/share/mk/suite.test.mk
index 5e1504c..34b3764 100644
--- a/share/mk/suite.test.mk
+++ b/share/mk/suite.test.mk
@@ -34,12 +34,19 @@ KYUAFILE?= auto
# Kyua as this is later encoded in the Kyuafile test program definitions.
#TEST_INTERFACE.<test-program>= interface-name
+# Metadata properties applicable to all test programs.
+#
+# All the variables for a test program defined in the Makefile are appended
+# to the test program's definition in the Kyuafile. This feature can be
+# used to avoid having to explicitly supply a Kyuafile in the source
+# directory, allowing the caller Makefile to rely on the KYUAFILE=auto
+# behavior defined here.
+#TEST_METADATA+= key="value"
+
# Per-test program metadata properties as a list of key/value pairs.
#
-# All the variables for a particular program are appended to the program's
-# definition in the Kyuafile. This feature can be used to avoid having to
-# explicitly supply a Kyuafile in the source directory, allowing the caller
-# Makefile to rely on the KYUAFILE=auto behavior defined here.
+# These per-test program settings _extend_ the values provided in the
+# unqualified TEST_METADATA variable.
#TEST_METADATA.<test-program>+= key="value"
# Path to the prefix of the installed Kyua CLI, if any.
@@ -61,6 +68,10 @@ FILESNAME_Kyuafile.auto= Kyuafile
CLEANFILES+= Kyuafile.auto Kyuafile.auto.tmp
+.for _T in ${_TESTS}
+_TEST_METADATA.${_T}= ${TEST_METADATA} ${TEST_METADATA.${_T}}
+.endfor
+
.NOPATH: Kyuafile.auto
Kyuafile.auto: Makefile
@{ \
@@ -72,7 +83,7 @@ Kyuafile.auto: Makefile
echo; \
} >Kyuafile.auto.tmp
.for _T in ${_TESTS}
- @echo '${TEST_INTERFACE.${_T}}_test_program{name="${_T}"${TEST_METADATA.${_T}:C/$/,/:tW:C/^/, /W:C/,$//W}}' \
+ @echo '${TEST_INTERFACE.${_T}}_test_program{name="${_T}"${_TEST_METADATA.${_T}:C/$/,/:tW:C/^/, /W:C/,$//W}}' \
>>Kyuafile.auto.tmp
.endfor
.for _T in ${TESTS_SUBDIRS:N.WAIT}
OpenPOWER on IntegriCloud