A given target can now declare which gdb architecture it requires.
Also, we add the code to check gdb capabilities, and version.
Tests can use gdb_version.version_compare('>=X.Y') to test this.Reviewed-by: Manos Pitsidianakis <[email protected]> Tested-by: Alex Bennée <[email protected]> Signed-off-by: Pierrick Bouvier <[email protected]> --- tests/tcg/meson.build | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build index 7b51750b016..3714fe4dc0d 100644 --- a/tests/tcg/meson.build +++ b/tests/tcg/meson.build @@ -1,5 +1,11 @@ env = find_program('env') +gdb_progs = ['gdb-multiarch', 'gdb'] +if config_host.has_key('GDB') + gdb_progs = [config_host['GDB'], gdb_progs] +endif +gdb = find_program(gdb_progs, required: false) + tcg_tests = {} # tcg_tests is a dictionary with following structure: # @@ -7,6 +13,7 @@ tcg_tests = {} # 'name_of_target': { # 'cc': cross_compiler, # 'folder': 'folder_for_test_src_files', +# 'gdb_arch': 'gdb architecture requirement', # 'qemu': emulators['qemu-...'], # 'tests': [ # { @@ -34,6 +41,18 @@ tcg_tests = {} # declared using 'test_name'. # Default name is derived from src if 'exe_name' and 'test_name' are omitted. +gdb_arch_supported = {} +gdb_version = '0' +if gdb.found() + gdb_version = gdb.version() + gdb_arch = run_command(python, files('../../scripts/probe-gdb-support.py'), + gdb, + check: true) + foreach arch: gdb_arch.stdout().split() + gdb_arch_supported += {arch: true} + endforeach +endif + # plugins come first, as we need to build the list test_plugins = {} subdir('plugins') @@ -47,7 +66,7 @@ foreach target, plan: tcg_tests # return a clear error if user misspell a target entry foreach key, _ : plan - allowed = ['cc', 'folder', 'qemu', 'tests'] + allowed = ['cc', 'folder', 'gdb_arch', 'qemu', 'tests'] if key not in allowed error('unknown tcg test plan entry \'' + key + '\' for target ' + target + ' (possible: [' + ', '.join(allowed) + '])') @@ -56,6 +75,7 @@ foreach target, plan: tcg_tests cc = plan['cc'] folder = plan['folder'] + gdb_arch = plan['gdb_arch'] qemu = plan['qemu'] tests = plan['tests'] -- 2.47.3
