File gdb-testsuite-make-gdb.reverse-time-reverse.exp-more.patch of Package gdb

From 5a533536994a8855e54e593ec83816e366ee35c9 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Fri, 2 May 2025 16:48:14 +0200
Subject: [PATCH 2/6] [gdb/testsuite] Make gdb.reverse/time-reverse.exp more
 robust

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 | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/gdb/testsuite/gdb.reverse/time-reverse.exp b/gdb/testsuite/gdb.reverse/time-reverse.exp
index 35415a0fe1f..98085f0ebc9 100644
--- a/gdb/testsuite/gdb.reverse/time-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/time-reverse.exp
@@ -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
-- 
2.43.0

openSUSE Build Service is sponsored by