From 4c5d7c03c4dec3dc4ae875696b20747c5a8dafb8 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Tue, 8 Jun 2021 14:50:45 +0200 Subject: [PATCH] [gdb/testsuite] Fix gdb.base/batch-preserve-term-settings.exp with check-read1 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. gdb/testsuite/ChangeLog: 2021-06-08 Tom de Vries * gdb.base/batch-preserve-term-settings.exp (spawn_shell): Fix matching of initial prompt. --- gdb/testsuite/ChangeLog | 5 +++++ .../gdb.base/batch-preserve-term-settings.exp | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index dc921257de1..cd62633f35c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2021-06-08 Tom de Vries + + * gdb.base/batch-preserve-term-settings.exp (spawn_shell): Fix + matching of initial prompt. + 2021-06-08 Tom de Vries * gdb.threads/multi-create-ns-info-thr.exp: Limit breakpoint regexp to 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 } -- 2.30.2