On Wed, 10 Jun 2026 00:47, Pierrick Bouvier <[email protected]> 
wrote:
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.

Signed-off-by: Pierrick Bouvier <[email protected]>
---

Reviewed-by: Manos Pitsidianakis <[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 a47f1ada779..1496cba460c 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': [
#       {
@@ -33,6 +40,18 @@ tcg_tests = {}
# is guaranteed to be unique also. They can be duplicated by setting 
'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')
@@ -46,13 +65,14 @@ foreach target, plan: tcg_tests

  # return a clear error if user mispell a target entry
  foreach key, _ : plan
-    if key not in ['cc', 'folder', 'qemu', 'tests']
+    if key not in ['cc', 'folder', 'gdb_arch', 'qemu', 'tests']
      error('unknown tcg test plan entry \'' + key + '\' for target ' + target)
    endif
  endforeach

  cc = plan['cc']
  folder = plan['folder']
+  gdb_arch = plan['gdb_arch']
  qemu = plan['qemu']
  tests = plan['tests']

--
2.43.0


Reply via email to