]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/testsuite] Make gdb.reverse/time-reverse.exp more robust
authorTom de Vries <tdevries@suse.de>
Fri, 2 May 2025 14:48:14 +0000 (16:48 +0200)
committerTom de Vries <tdevries@suse.de>
Fri, 2 May 2025 14:48:14 +0000 (16:48 +0200)
I noticed that test-case gdb.reverse/time-reverse.exp contains:
...
    if [supports_process_record] {
        # Activate process record/replay
        gdb_test_no_output "record" "turn on process record"
...

So I tried out forcing supports_process_record to 0, and got:
...
FAIL: gdb.reverse/time-reverse.exp: mode=syscall: info record
FAIL: gdb.reverse/time-reverse.exp: mode=syscall: reverse to marker1
FAIL: gdb.reverse/time-reverse.exp: mode=syscall: check time record
FAIL: gdb.reverse/time-reverse.exp: mode=c: info record
FAIL: gdb.reverse/time-reverse.exp: mode=c: reverse to marker1
FAIL: gdb.reverse/time-reverse.exp: mode=c: check time record
...

Fix this by requiring supports_process_record alongside supports_reverse.

I also noticed when running make-check-all.sh that there were a lot of failures
with target board dwarf5-fission-debug-types.

Fix this by not ignoring the result of "runto marker1".

Then I noticed that $srcfile is used as a regexp.  Fix this by applying
string_to_regexp.

Tested on x86_64-linux.

Approved-By: Guinevere Larsen <guinevere@redhat.com>
gdb/testsuite/gdb.reverse/time-reverse.exp

index fe191a0cad56203353fa8a1c8c5c46291f70a6e4..aa074e91530507e61ae8d3f27b45c940b49a2d76 100644 (file)
@@ -20,6 +20,7 @@
 #
 
 require supports_reverse
+require supports_process_record
 
 standard_testfile
 
@@ -38,23 +39,25 @@ proc test {mode} {
        return
     }
 
-    runto marker1
-
-    if [supports_process_record] {
-       # Activate process record/replay
-       gdb_test_no_output "record" "turn on process record"
+    if { ![runto marker1] } {
+       return
     }
 
+    # Activate process record/replay
+    gdb_test_no_output "record" "turn on process record"
+
+    set re_srcfile [string_to_regexp $::srcfile]
+
     gdb_test "break marker2" \
-       "Breakpoint $::decimal at $::hex: file .*$::srcfile, line $::decimal.*" \
+       "Breakpoint $::decimal at $::hex: file .*$re_srcfile, line $::decimal.*" \
        "set breakpoint at marker2"
 
-    gdb_continue_to_breakpoint "marker2" ".*$::srcfile:.*"
+    gdb_continue_to_breakpoint "marker2" ".*$re_srcfile:.*"
 
     # Show how many instructions we've recorded.
     gdb_test "info record" "Active record target: .*"
 
-    gdb_test "reverse-continue" ".*$::srcfile:$::decimal.*" "reverse to marker1"
+    gdb_test "reverse-continue" ".*$re_srcfile:$::decimal.*" "reverse to marker1"
 
     # If the variable was recorded properly, the old contents (-1)
     # will be remembered.  If not, new contents (current time) will be