[committed][gdb/testsuite] Fix gdb.base/batch-preserve-term-settings.exp with check-read1
Tom de Vries
tdevries@suse.de
Tue Jun 8 12:51:23 GMT 2021
Hi,
With check-read1, I run into:
...
FAIL: gdb.base/batch-preserve-term-settings.exp: batch run: \
terminal settings preserved
...
This is caused by spawn_shell matching too little output, after which
things start to go out of sync.
More specifically, the regexp:
...
-re "PS1=\[^\r\n\]*\r\n.*$shell_prompt_re$" {
...
matches the first and part of the second line of this output:
...
PS1="gdb-subshell$ "^M
sh-4.4$ PS1="gdb-subshell$ "^M
gdb-subshell$
...
while it's supposed to match the entire output.
Fix this by splitting up the regexp into a part that skips the lines with PS1,
and one that reads the shell prompt.
Tested on x86_64-linux.
Committed to trunk.
Thanks,
- Tom
[gdb/testsuite] Fix gdb.base/batch-preserve-term-settings.exp with check-read1
gdb/testsuite/ChangeLog:
2021-06-08 Tom de Vries <tdevries@suse.de>
* gdb.base/batch-preserve-term-settings.exp (spawn_shell): Fix
matching of initial prompt.
---
gdb/testsuite/gdb.base/batch-preserve-term-settings.exp | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp b/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
index da39485c00d..1f042097a06 100644
--- a/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
+++ b/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
@@ -44,10 +44,20 @@ proc spawn_shell {} {
send_gdb "PS1=\"$shell_prompt_ps1\"\n"
+ # Try to match:
+ # PS1="gdb-subshell$ "^M
+ # $ gdb-subshell$
+ # or:
+ # PS1="gdb-subshell$ "^M
+ # sh-4.4$ PS1="gdb-subshell$ "^M
+ # gdb-subshell$
set gotit 0
set test "spawn shell"
gdb_expect {
- -re "PS1=\[^\r\n\]*\r\n.*$shell_prompt_re$" {
+ -re "PS1=\"$shell_prompt_re" {
+ exp_continue
+ }
+ -re "$shell_prompt_re$" {
pass $test
set gotit 1
}
More information about the Gdb-patches
mailing list