We add possibility to duplicate a test executable for a given source file. This is needed when different cflags need to be used (like vectorized vs non-vectorized for instance, like sve tests in aarch64).
Signed-off-by: Pierrick Bouvier <[email protected]> --- tests/tcg/meson.build | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build index 72d1a9f8986..2c6d85c586a 100644 --- a/tests/tcg/meson.build +++ b/tests/tcg/meson.build @@ -11,6 +11,7 @@ tcg_tests = {} # 'tests': [ # { # 'src_file': { +# 'exe_name': ['provide an alternative binary name'], # } # }, # ... @@ -18,10 +19,10 @@ tcg_tests = {} # } # } # -# Every test executable, is built only once. +# Every test executable, identified by 'exe_name' is built only once. # Tests for a given src use the same executable by default, and their definition # is guaranteed to be unique also. -# Default name is derived from src. +# Default name is derived from src if 'exe_name' is omitted. # plugins come first, as we need to build the list subdir('plugins') @@ -47,11 +48,23 @@ foreach target, plan: tcg_tests foreach t : tests foreach src, setup: t + # return a clear error if user mispell a setup entry + foreach key, _ : setup + if key not in [ + 'exe_name', + ] + error('unknown tcg setup entry \'' + key + '\' for test ' + src) + endif + endforeach + # meson '/' operator drops left operand if right is an absolute path src = folder / src file = files(src) test = fs.name(file) exe_name = fs.stem(src) + if 'exe_name' in setup + exe_name = setup['exe_name'] + endif exe_name = target + '-' + exe_name test_name = exe_name -- 2.43.0
