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).
Reviewed-by: Richard Henderson <[email protected]> Tested-by: Alex Bennée <[email protected]> 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 5758c7cc0b7..697b826a382 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') @@ -49,10 +50,22 @@ foreach target, plan: tcg_tests foreach t : tests foreach src, setup: t + # return a clear error if user misspell a setup entry + foreach key, _ : setup + allowed = ['exe_name'] + if key not in allowed + error('unknown tcg setup entry \'' + key + '\' for test ' + src + + ' (possible: [' + ', '.join(allowed) + '])') + endif + endforeach + # meson '/' operator drops left operand if right is an absolute path src = folder / src file = files(src) 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.47.3
