gdb/testsuite: relax filename restriction in some gdb.btrace tests

Message ID 20231214101935.2231336-1-blarsen@redhat.com
State New
Headers
Series gdb/testsuite: relax filename restriction in some gdb.btrace tests |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 success Testing passed

Commit Message

Guinevere Larsen Dec. 14, 2023, 10:19 a.m. UTC
  The test gdb.btrace/tailcall.exp has multiple tests that include the
filename in the output. When testing with gcc, only a relative path is
printed, but when using clang, the full file path is printed instead.
This makes most of those tests fail, with the exception of "record goto
4" which allows for more characters before the file name. The test
gdb.btrace/recod_goto.exp suffers with the same issue

This commit changes all relevant tests in both files to work like that,
so that the test stops failing with clang.
---
 gdb/testsuite/gdb.btrace/record_goto.exp | 22 ++++++++---------
 gdb/testsuite/gdb.btrace/tailcall.exp    | 30 ++++++++++++------------
 2 files changed, 26 insertions(+), 26 deletions(-)
  

Comments

Andreas Schwab Dec. 14, 2023, 10:37 a.m. UTC | #1
On Dez 14 2023, Guinevere Larsen wrote:

>  # let's see if we can go back in history
> -gdb_test "record goto 19" ".*fun4 \\(\\) at record_goto.c:43.*"
> +gdb_test "record goto 19" ".*fun4 \\(\\) at .*record_goto.c:43.*"

That would allow to extend the match across multiple lines, since "."
can match a newline.
  
Guinevere Larsen Dec. 14, 2023, 10:49 a.m. UTC | #2
On 14/12/2023 11:37, Andreas Schwab wrote:
> On Dez 14 2023, Guinevere Larsen wrote:
>
>>   # let's see if we can go back in history
>> -gdb_test "record goto 19" ".*fun4 \\(\\) at record_goto.c:43.*"
>> +gdb_test "record goto 19" ".*fun4 \\(\\) at .*record_goto.c:43.*"
> That would allow to extend the match across multiple lines, since "."
> can match a newline.
>
You're right, but since there was already one test like that (in 
gdb.btrace/tailcall.exp:76) I figured it was alright.

If you prefer, I can make a tighter regexp anyway, and 'fix' that one.
  

Patch

diff --git a/gdb/testsuite/gdb.btrace/record_goto.exp b/gdb/testsuite/gdb.btrace/record_goto.exp
index 1817ac07f51..f7d4f5ba612 100644
--- a/gdb/testsuite/gdb.btrace/record_goto.exp
+++ b/gdb/testsuite/gdb.btrace/record_goto.exp
@@ -80,7 +80,7 @@  gdb_test "record function-call-history /ci 1, +20" [multi_line \
   ]
 
 # let's see if we can go back in history
-gdb_test "record goto 19" ".*fun4 \\(\\) at record_goto.c:43.*"
+gdb_test "record goto 19" ".*fun4 \\(\\) at .*record_goto.c:43.*"
 
 # the function call history should start at the new location
 gdb_test "record function-call-history /ci" [multi_line \
@@ -97,19 +97,19 @@  gdb_test "record instruction-history" [multi_line \
   ] "instruction-history from 19 forwards"
 
 # let's go to another place in the history
-gdb_test "record goto 27" ".*fun3 \\(\\) at record_goto.c:35.*"
+gdb_test "record goto 27" ".*fun3 \\(\\) at .*record_goto.c:35.*"
 
 # check the back trace at that location
 gdb_test "backtrace" [multi_line \
-  "#0.*fun3.*at record_goto.c:35.*" \
-  "#1.*fun4.*at record_goto.c:43.*" \
-  "#2.*main.*at record_goto.c:49.*" \
+  "#0.*fun3.*at .*record_goto.c:35.*" \
+  "#1.*fun4.*at .*record_goto.c:43.*" \
+  "#2.*main.*at .*record_goto.c:49.*" \
   "Backtrace stopped: not enough registers or memory available to unwind further" \
   ]
 
 # walk the backtrace
-gdb_test "up" ".*fun4.*at record_goto.c:43.*" "up to fun4"
-gdb_test "up" ".*main.*at record_goto.c:49.*" "up to main"
+gdb_test "up" ".*fun4.*at .*record_goto.c:43.*" "up to fun4"
+gdb_test "up" ".*main.*at .*record_goto.c:49.*" "up to main"
 
 # the function call history should start at the new location
 gdb_test "record function-call-history /ci -" [multi_line \
@@ -126,7 +126,7 @@  gdb_test "record instruction-history -" [multi_line \
   ] "instruction-history from 27 backwards"
 
 # test that we can go to the begin of the trace
-gdb_test "record goto begin" ".*main \\(\\) at record_goto.c:49.*"
+gdb_test "record goto begin" ".*main \\(\\) at .*record_goto.c:49.*"
 
 # check that we're filling up the context correctly
 gdb_test "record function-call-history /ci -" [multi_line \
@@ -143,7 +143,7 @@  gdb_test "record instruction-history -" [multi_line \
   ] "instruction-history from begin backwards"
 
 # we should get the exact same history from the first instruction
-gdb_test "record goto 2" ".*fun4 \\(\\) at record_goto.c:40.*"
+gdb_test "record goto 2" ".*fun4 \\(\\) at .*record_goto.c:40.*"
 
 # check that we're filling up the context correctly
 gdb_test "record function-call-history /ci -" [multi_line \
@@ -160,7 +160,7 @@  gdb_test "record instruction-history -" [multi_line \
   ] "instruction-history from 2 backwards"
 
 # check that we can go to the end of the trace
-gdb_test "record goto end" ".*main \\(\\) at record_goto.c:50.*"
+gdb_test "record goto end" ".*main \\(\\) at .*record_goto.c:50.*"
 
 # check that we're filling up the context correctly
 gdb_test "record function-call-history /ci" [multi_line \
@@ -177,7 +177,7 @@  gdb_test "record instruction-history" [multi_line \
   ] "instruction-history from end forwards"
 
 # we should get the exact same history from the second to last instruction
-gdb_test "record goto 39" ".*fun4 \\(\\) at record_goto.c:44.*"
+gdb_test "record goto 39" ".*fun4 \\(\\) at .*record_goto.c:44.*"
 
 # check that we're filling up the context correctly
 gdb_test "record function-call-history /ci" [multi_line \
diff --git a/gdb/testsuite/gdb.btrace/tailcall.exp b/gdb/testsuite/gdb.btrace/tailcall.exp
index 7fbcd40c077..b2548b9ba11 100644
--- a/gdb/testsuite/gdb.btrace/tailcall.exp
+++ b/gdb/testsuite/gdb.btrace/tailcall.exp
@@ -77,35 +77,35 @@  gdb_test "record goto 4" ".*bar \\(\\) at .*tailcall.c:24\r\n.*"
 
 # check the backtrace
 gdb_test "backtrace" [multi_line \
-  "#0.*bar \\(\\) at tailcall.c:24" \
-  "#1.*foo \\(\\) at tailcall.c:29" \
-  "#2.*main \\(\\) at tailcall.c:37" \
+  "#0.*bar \\(\\) at .*tailcall.c:24" \
+  "#1.*foo \\(\\) at .*tailcall.c:29" \
+  "#2.*main \\(\\) at .*tailcall.c:37" \
   "Backtrace stopped: not enough registers or memory available to unwind further" \
   ]
 
 # walk the backtrace
-gdb_test "up" "#1\[^\r\n\]*foo \\(\\) at tailcall.c:29\r\n.*" "up to foo"
-gdb_test "up" "#2\[^\r\n\]*main \\(\\) at tailcall.c:37\r\n.*" "up to main"
-gdb_test "down" "#1\[^\r\n\]*foo \\(\\) at tailcall.c:29\r\n.*" "down to foo"
+gdb_test "up" "#1\[^\r\n\]*foo \\(\\) at .*tailcall.c:29\r\n.*" "up to foo"
+gdb_test "up" "#2\[^\r\n\]*main \\(\\) at .*tailcall.c:37\r\n.*" "up to main"
+gdb_test "down" "#1\[^\r\n\]*foo \\(\\) at .*tailcall.c:29\r\n.*" "down to foo"
 
 # test stepping into and out of tailcalls.
-gdb_test "finish" "\[^\r\n\]*main \\(\\) at tailcall.c:38\r\n.*" \
+gdb_test "finish" "\[^\r\n\]*main \\(\\) at .*tailcall.c:38\r\n.*" \
     "finish.1"
-gdb_test "reverse-step" "\[^\r\n\]*bar \\(\\) at tailcall.c:24\r\n.*" \
+gdb_test "reverse-step" "\[^\r\n\]*bar \\(\\) at .*tailcall.c:24\r\n.*" \
     "reverse-step.1"
-gdb_test "reverse-finish" "\[^\r\n\]*foo \\(\\) at tailcall.c:29\r\n.*" \
+gdb_test "reverse-finish" "\[^\r\n\]*foo \\(\\) at .*tailcall.c:29\r\n.*" \
     "reverse-finish.1"
-gdb_test "reverse-step" "\[^\r\n\]*main \\(\\) at tailcall.c:37\r\n.*" \
+gdb_test "reverse-step" "\[^\r\n\]*main \\(\\) at .*tailcall.c:37\r\n.*" \
     "reverse-step.2"
 gdb_test "next" "\[^\r\n\]*38.*" \
     "next.1"
-gdb_test "reverse-next" "\[^\r\n\]*main \\(\\) at tailcall.c:37\r\n.*" \
+gdb_test "reverse-next" "\[^\r\n\]*main \\(\\) at .*tailcall.c:37\r\n.*" \
     "reverse-next.1"
-gdb_test "step" "\[^\r\n\]*foo \\(\\) at tailcall.c:29\r\n.*" \
+gdb_test "step" "\[^\r\n\]*foo \\(\\) at .*tailcall.c:29\r\n.*" \
     "step.1"
-gdb_test "finish" "\[^\r\n\]*main \\(\\) at tailcall.c:38\r\n.*" \
+gdb_test "finish" "\[^\r\n\]*main \\(\\) at .*tailcall.c:38\r\n.*" \
     "finish.2"
-gdb_test "reverse-step" "\[^\r\n\]*bar \\(\\) at tailcall.c:24\r\n.*" \
+gdb_test "reverse-step" "\[^\r\n\]*bar \\(\\) at .*tailcall.c:24\r\n.*" \
     "reverse-step.3"
-gdb_test "finish" "\[^\r\n\]*main \\(\\) at tailcall.c:38\r\n.*" \
+gdb_test "finish" "\[^\r\n\]*main \\(\\) at .*tailcall.c:38\r\n.*" \
     "finish.3"