gdb/testsuite: use -wrap with gdb_test_multiple in lib/ada.exp
authorAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 25 Mar 2021 14:31:35 +0000 (14:31 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 25 Mar 2021 14:31:35 +0000 (14:31 +0000)
I ran into a new failure in gdb.base/gdb-caching-proc.exp:

  FAIL: gdb.base/gdb-caching-proc.exp: supports_memtag: initial: memory-tag check

This is a failure from the `supports_memtag` proc added recently (this
new proc is in lib/gdb.exp).

The problem here is that `supports_memtag` is hitting one of the
default error cases in gdb_test_multiple, specifically it is finding a
$gdb_prompt left unmatched from an earlier call to gdb_test_multiple.

Looking back through the test output I found that the problem is the
proc `gnat_runtime_has_debug_info` in lib/ada.exp.  This proc is not
matching the trailing $gdb_prompt.  This leaves the prompt in the
expect buffer, then when we run `supports_memtag` it sees the prompt
and thinks that the test completed with no output.

Fixed by making use of `-wrap` in `gnat_runtime_has_debug_info` to
ensure the trailing prompt gets matched.

gdb/testsuite/ChangeLog:

* lib/ada.exp (gnat_runtime_has_debug_info): Use -wrap with
gdb_test_multiple.

gdb/testsuite/ChangeLog
gdb/testsuite/lib/ada.exp

index 5bd09ce4fce7128c9502a2a15f72e34807e9627a..1bcdaeb69d5a451312834072e4494b165c89ed0b 100644 (file)
@@ -1,3 +1,8 @@
+2021-03-25  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * lib/ada.exp (gnat_runtime_has_debug_info): Use -wrap with
+       gdb_test_multiple.
+
 2021-03-24  Luis Machado  <luis.machado@linaro.org>
 
        * gdb.arch/aarch64-mte.c: New file.
index bdd0a09476ed829a956751642271f39c1cf93863..857b079b9e5d9cdfe46516b157e04e55e2bb3458 100644 (file)
@@ -188,8 +188,8 @@ gdb_caching_proc gnat_runtime_has_debug_info {
     set has_debug_info 0
 
     gdb_test_multiple "whatis __gnat_debug_raise_exception" "" {
-       -re "type = <text variable, no debug info>" { }
-       -re "type = void" {
+       -re -wrap "type = <text variable, no debug info>" { }
+       -re -wrap "type = void" {
            set has_debug_info 1
        }
        default {