diff options
author | Tom de Vries <tdevries@suse.de> | 2025-08-14 22:31:06 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2025-08-14 22:31:06 +0200 |
commit | 7d6d4f69fe59b1102cbbd64ffaec33f8d18b642b (patch) | |
tree | 9a2ef15b15984f7f003a9c46f8a726fae619c3a0 | |
parent | 2e917d2873a4ebffb1b7e8a8c043af65dfb5b708 (diff) | |
download | binutils-7d6d4f69fe59b1102cbbd64ffaec33f8d18b642b.zip binutils-7d6d4f69fe59b1102cbbd64ffaec33f8d18b642b.tar.gz binutils-7d6d4f69fe59b1102cbbd64ffaec33f8d18b642b.tar.bz2 |
[gdb/testsuite] Fix gdb.base/dlmopen.exp on native-gdbserver
With test-case gdb.base/dlmopen.exp and target board native-gdbserver, I get:
...
(gdb) info breakpoints 3^M
Num Type Disp Enb Address What^M
3 breakpoint keep y 0x00007ffff7fc8000 ^M
stop only if (0) (target evals)^M
(gdb) FAIL: $exp: test_solib_unmap_events: check b/p status
...
The problem is that the regexp doesn't allow for the "(target evals)" part:
...
-re -wrap "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+$::hex\\s*\[^\r\n\]+\r\n\\s+stop o
nly if \\(0\\)" {
...
Fix this by updating the regexp.
While we're at it:
- rewrite the regexp using multiline, string_to_regexp, join and string cat to
make it more readable, and
- remove the redundant failure clause from the same gdb_test_multiple.
Tested on x86_64-linux using make-check-all.sh.
Approved-By: Tom Tromey <tom@tromey.com>
-rw-r--r-- | gdb/testsuite/gdb.base/dlmopen.exp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/gdb/testsuite/gdb.base/dlmopen.exp b/gdb/testsuite/gdb.base/dlmopen.exp index da17002..e7bf6f3 100644 --- a/gdb/testsuite/gdb.base/dlmopen.exp +++ b/gdb/testsuite/gdb.base/dlmopen.exp @@ -358,15 +358,19 @@ proc_with_prefix test_solib_unmap_events { } { # dynamic linker as pending when some instances of the library were # unloaded, despite there really only being one copy of the dynamic # linker actually loaded into the inferior's address space. - gdb_test_multiple "info breakpoints $bpnum" "check b/p status" { - -re -wrap "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+<PENDING>\\s+\\*$::hex\\s*\r\n\\s+stop only if \\(0\\)" { - fail $gdb_test_name - } - - -re -wrap "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+$::hex\\s*\[^\r\n\]+\r\n\\s+stop only if \\(0\\)" { - pass $gdb_test_name - } - } + set hs {[^\r\n]} + set re_pass \ + [multi_line \ + "" \ + [join \ + [list \ + "$bpnum" "breakpoint" "keep" "y" "$::hex$hs+"] \ + {\s+}] \ + [string cat \ + {\s+} \ + [string_to_regexp "stop only if (0)"] \ + ([string_to_regexp " (target evals)"])?]] + gdb_test "info breakpoints $bpnum" $re_pass "check b/p status" # With all the dlclose calls now complete, we should be back to a # single copy of the dynamic linker. |