]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/testsuite] Fix gdb.ada/tagged-lookup.exp with read1+readnow
authorTom de Vries <tdevries@suse.de>
Tue, 8 Oct 2024 11:45:21 +0000 (13:45 +0200)
committerTom de Vries <tdevries@suse.de>
Tue, 8 Oct 2024 11:45:21 +0000 (13:45 +0200)
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.

gdb/testsuite/gdb.ada/tagged-lookup.exp

index 3803319c505fd94471dc1d869ac43a7504908b55..f1473aaf8e5cfabecc6703ef1f9f2b7b72fa3f9b 100644 (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
     }
 }