diff options
author | jmmv <jmmv@FreeBSD.org> | 2015-07-04 02:37:36 +0000 |
---|---|---|
committer | jmmv <jmmv@FreeBSD.org> | 2015-07-04 02:37:36 +0000 |
commit | 6e2b0363cac9630a9152f0517e46fce2ef3c6bfc (patch) | |
tree | 2147c49b85d0ce49955632a2428b711dc2715be5 /share/mk/suite.test.mk | |
parent | 7eba87cee95ee2ca8075747c29ac79ba12e3da2f (diff) | |
download | FreeBSD-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.mk | 21 |
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} |