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
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
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.
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.
@@ -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 \
@@ -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"