[gdb/testsuite] Fix gdb.ada/tagged-lookup.exp with read1+readnow

When running test-case gdb.ada/tagged-lookup.exp with target board readnow and
make target check-read1:
...
$ ( cd build/gdb; \
    make check-read1 \
      RUNTESTFLAGS="--target_board=readnow gdb.ada/tagged-lookup.exp" )
...
I run into:
...
(gdb) PASS: gdb.ada/tagged-lookup.exp: set debug symtab-create 1
print *the_local_var^M
$1 = (n => 2)^M
(gdb) FAIL: gdb.ada/tagged-lookup.exp: only one CU expanded
...

The problem is that the corresponding gdb_test_multiple uses line-by-line
matching (using -lbl) which doesn't work well with the multiline pattern
matching both the prompt and the line before it:
...
    -re -wrap ".* = \\\(n => $decimal\\\)" {
...

Fix this by making it a one-line pattern:
...
    -re -wrap "" {
...

While we're at it, replace an if-then-pass-else-fail with a gdb_assert.

Tested on aarch64-linux.
This commit is contained in:
Tom de Vries
2024-10-08 13:45:21 +02:00
parent 5ad960fcdb
commit e232c98332

View File

@@ -51,11 +51,7 @@ gdb_test_multiple "print *the_local_var" "only one CU expanded" -lbl {
-re ".symtab-create. start_subfile: name = \[^,\]*, name_for_id = \[^\r\n\]*\r\n" {
exp_continue
}
-re -wrap ".* = \\\(n => $decimal\\\)" {
if {$found_pck + $found_pck2 <= 1} {
pass $gdb_test_name
} else {
fail $gdb_test_name
}
-re -wrap "" {
gdb_assert {$found_pck + $found_pck2 <= 1} $gdb_test_name
}
}