[PUSHED] gdb/testsuite: use -wrap with gdb_test_multiple in lib/ada.exp

Message ID 20210325143805.1241434-1-andrew.burgess@embecosm.com
State New
Headers show
  • [PUSHED] gdb/testsuite: use -wrap with gdb_test_multiple in lib/ada.exp
Related show

Commit Message

Andrew Burgess March 25, 2021, 2:38 p.m.
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.


	* lib/ada.exp (gnat_runtime_has_debug_info): Use -wrap with
 gdb/testsuite/ChangeLog   | 5 +++++
 gdb/testsuite/lib/ada.exp | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)



diff --git a/gdb/testsuite/lib/ada.exp b/gdb/testsuite/lib/ada.exp
index bdd0a09476e..857b079b9e5 100644
--- a/gdb/testsuite/lib/ada.exp
+++ b/gdb/testsuite/lib/ada.exp
@@ -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 {