[gdb/testsuite] Introduce allow_dap_tests
authorTom de Vries <tdevries@suse.de>
Sun, 26 Mar 2023 11:44:58 +0000 (13:44 +0200)
committerTom de Vries <tdevries@suse.de>
Sun, 26 Mar 2023 11:44:58 +0000 (13:44 +0200)
Simon pointed out that with gdb.dap/*.exp and target board
native-gdbserver, we run into problems.

I see for each test-case:
...
+++ run
Traceback (most recent call last):
  File "startup.py", line 146, in exec_and_log
    output = gdb.execute(cmd, from_tty=True, to_string=True)
gdb.error: Don't know how to run.  Try "help target".
...

Likewise with target board native-extended-gdbserver.

Fix this by:
- adding a new proc allow_dap_tests,
- using it in all the gdb.dap tests, and
- bailing out if GDBFLAGS/INTERNAL_GDBFLAGS contains
  "set auto-connect-native-target off".

Tested on x86_64-linux.

Reported-By: Simon Marchi <simon.marchi@efficios.com>
Approved-By: Tom Tromey <tom@tromey.com>
gdb/testsuite/gdb.dap/basic-dap.exp
gdb/testsuite/gdb.dap/bt-nodebug.exp
gdb/testsuite/gdb.dap/scopes.exp
gdb/testsuite/lib/gdb.exp

index 5e6e1b5d6d4d1b61d47da59ef70cc294a6dd3c32..0026690ba447f793b7a866838e37ca3aa71d6a8a 100644 (file)
@@ -15,7 +15,7 @@
 
 # Basic DAP test.
 
-require allow_python_tests
+require allow_dap_tests
 
 load_lib dap-support.exp
 
index e365f0877d4a991a80452a22fdf940cabd7e049d..e4dcef35a67f60942799729d9d90c55b0eba61bb 100644 (file)
@@ -15,6 +15,8 @@
 
 # Test DAP 'bt' through a function without debuginfo.
 
+require allow_dap_tests
+
 load_lib dap-support.exp
 
 standard_testfile bt-main.c bt-inner.c
index 0fa9e211105ccf732114ee2d59e610a016e89045..2c4b9ed81a5c7b7564bfe705d115aaac0c9bc731 100644 (file)
@@ -15,7 +15,7 @@
 
 # Test "scopes" and "variables".
 
-require allow_python_tests
+require allow_dap_tests
 
 load_lib dap-support.exp
 
index dd392477b9a4413d73506ab76a895254f89bfd73..3cfe22b32cd52f0e05de2c738489ade50be83fc7 100644 (file)
@@ -2488,6 +2488,21 @@ gdb_caching_proc allow_python_tests {} {
     return [expr {[string first "--with-python" $output] != -1}]
 }
 
+gdb_caching_proc allow_dap_tests {} {
+    if { ![allow_python_tests] } {
+       return 0
+    }
+
+    # With set auto-connect-native-target off, we run into:
+    # +++ run
+    # Traceback (most recent call last):
+    #   File "startup.py", line <n>, in exec_and_log
+    #     output = gdb.execute(cmd, from_tty=True, to_string=True)
+    # gdb.error: Don't know how to run.  Try "help target".
+    set gdb_flags [join $::GDBFLAGS $::INTERNAL_GDBFLAGS]
+    return [expr {[string first "set auto-connect-native-target off" $gdb_flags] == -1}]
+}
+
 # Return a 1 if we should run shared library tests.
 
 proc allow_shlib_tests {} {