On 6/10/2026 12:17 AM, Manos Pitsidianakis wrote: > On Wed, 10 Jun 2026 00:47, Pierrick Bouvier > <[email protected]> wrote: >> We add possibility to declare a test that is based on a plugin. >> >> Signed-off-by: Pierrick Bouvier <[email protected]> >> --- >> tests/tcg/meson.build | 40 +++++++++++++++++++++++++++++++++++++++- >> 1 file changed, 39 insertions(+), 1 deletion(-) >> >> diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build >> index 5cd80f3c030..a47f1ada779 100644 >> --- a/tests/tcg/meson.build >> +++ b/tests/tcg/meson.build >> @@ -16,6 +16,10 @@ tcg_tests = {} >> # 'cflags': ['cflags to compile test', ...], >> # 'qemu_args': ['qemu command line flags', ...], >> # 'env_var': ['VAR=value', ...], >> +# 'plugin_test': { >> +# 'plugin': 'plugin_name', >> +# 'args': ['plugin_args', ...], >> +# }, >> # } >> # }, >> # ... >> @@ -57,12 +61,25 @@ foreach target, plan: tcg_tests >> # return a clear error if user mispell a setup entry >> foreach key, _ : setup >> if key not in ['cflags', 'qemu_args', >> - 'exe_name', 'test_name', 'env_var', >> + 'exe_name', 'test_name', 'env_var', >> 'plugin_test', >> ] >> error('unknown tcg setup entry \'' + key + '\' for test ' + >> src) >> endif >> endforeach >> >> + # return a clear error if user mispell a plugin entry > > misspells :D haha > >> + if 'plugin_test' in setup >> + foreach key, _ : setup['plugin_test'] >> + if key not in ['plugin', 'args'] >> + error('unknown tcg plugin entry \'' + key + '\' for test >> ' + src) >> + endif >> + endforeach >> + endif >> + >> + if 'plugin_test' in setup and not get_option('plugins') >> + continue >> + endif >> + >> # meson '/' operator drops left operand if right is an absolute >> path >> src = folder / src >> file = files(src) >> @@ -76,6 +93,12 @@ foreach target, plan: tcg_tests >> if 'test_name' in setup >> test_name = setup['test_name'] >> endif >> + if 'plugin_test' in setup >> + # remove lib prefix >> + plugin = test_plugins[setup['plugin_test']['plugin']] >> + plugin_name = fs.stem(plugin).substring(3) > > Why skip the first 3 chars? Maybe add a comment like you do elsewhere > for unclear lines (suggestion). >
The comment says it "remove 'lib' prefix", but I should move it just on next line. > Regardless of my comments: > > Reviewed-by: Manos Pitsidianakis <[email protected]> > >> + test_name = 'plugin-' + plugin_name + '-with-' + test_name >> + endif >> >> exe_name = target + '-' + exe_name >> test_name = target + '-' + test_name >> @@ -116,6 +139,21 @@ foreach target, plan: tcg_tests >> qemu_args = setup['qemu_args'] >> endif >> >> + if 'plugin_test' in setup >> + plugin_setup = setup['plugin_test'] >> + plugin = test_plugins[plugin_setup['plugin']] >> + plugin_args = [] >> + if 'args' in plugin_setup >> + # add empty arg to generate an additional comma >> + plugin_args = ['', plugin_setup['args']] >> + endif >> + plugin_args = ','.join(plugin_args) >> + >> + # since we turn plugin into a string, add dependency explicitly >> + depends += plugin >> + qemu_args = ['-plugin', plugin.full_path() + plugin_args, >> qemu_args] >> + endif >> + >> exe = built_tests[exe_name] >> cmd = [qemu, qemu_args, exe] >> >> -- >> 2.43.0 >>
