diff options
author | Tom de Vries <tdevries@suse.de> | 2024-01-14 10:21:46 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2024-01-14 10:21:46 +0100 |
commit | c171609cc698a153176305ff53127d99db1f6971 (patch) | |
tree | 0ca1732c7f344f371d56682bcc6a707e45353d51 | |
parent | ef3a9d685e677e18c36a30c3d3bd7a4206b30003 (diff) | |
download | gdb-c171609cc698a153176305ff53127d99db1f6971.zip gdb-c171609cc698a153176305ff53127d99db1f6971.tar.gz gdb-c171609cc698a153176305ff53127d99db1f6971.tar.bz2 |
[gdb/testsuite] Fix gdb.mi/mi-dprintf.exp with read1
When running test-case gdb.mi/mi-dprintf.exp with check-read1, I run into:
...
(gdb) ^M
PASS: gdb.mi/mi-dprintf.exp: gdb: mi 2nd dprintf stop
-data-evaluate-expression stderr^M
^done,value="0x7ffff7e4a420 <_IO_2_1_stderr_>"^M
(gdb) FAIL: gdb.mi/mi-dprintf.exp: stderr symbol check
...
The problem is in proc mi_gdb_is_stderr_available:
...
proc mi_gdb_is_stderr_available {} {
set has_stderr_symbol false
gdb_test_multiple "-data-evaluate-expression stderr" "stderr symbol check" {
-re "\\^error,msg=\"'stderr' has unknown type; cast it to its declared type\"\r\n$::mi_gdb_prompt$" {
}
-re "$::mi_gdb_prompt$" {
set has_stderr_symbol true
}
}
...
which uses a gdb_test_multiple that is supposed to use the mi prompt, but
doesn't use -prompt to indicate this. Consequently, the default patterns use
the regular gdb prompt, which trigger earlier than the two custom patterns
which use "$::mi_gdb_prompt$".
Fix this by adding the missing -prompt "$::mi_gdb_prompt$" arguments.
While we're at it, make the gdb_test_multiple call a bit more readable by
using variables, and by using -wrap.
Tested on x86_64-linux, with:
- gcc and clang (to trigger both the has_stderr_symbol true and false cases)
- make check and make check-read1.
-rw-r--r-- | gdb/testsuite/lib/mi-support.exp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp index 86868c5..001e4ee 100644 --- a/gdb/testsuite/lib/mi-support.exp +++ b/gdb/testsuite/lib/mi-support.exp @@ -2946,13 +2946,18 @@ proc foreach_mi_ui_mode { var_name body } { # Check if GDB has information about the stderr symbol. proc mi_gdb_is_stderr_available {} { set has_stderr_symbol false - gdb_test_multiple "-data-evaluate-expression stderr" "stderr symbol check" { - -re "\\^error,msg=\"'stderr' has unknown type; cast it to its declared type\"\r\n$::mi_gdb_prompt$" { + + set cmd "-data-evaluate-expression stderr" + set test "stderr symbol check" + set msg_re {"'stderr' has unknown type; cast it to its declared type"} + gdb_test_multiple $cmd $test -prompt "$::mi_gdb_prompt$" { + -re -wrap "\\^error,msg=$msg_re" { # Default value of false is fine. } - -re "$::mi_gdb_prompt$" { + -re -wrap "" { set has_stderr_symbol true } } + return $has_stderr_symbol } |