[PATCH][gdb/testsuite] Handle PS1 quirk in gdb.base/multi-line-starts-subshell.exp

Tom de Vries
2020-12-14T06:55:12Z

Hi,

On SLE-11, I run into:
...
(gdb) if 1^M
>shell HOME=/dev/null PS1="gdb-subshell$ " /bin/sh^M
>end^M
hostname:/dir> FAIL: gdb.base/multi-line-starts-subshell.exp: \
spawn subshell from multi-line (timeout)
...

The problem is that the PS1 setting has no effect.

Fix this by setting PS1 after spawning the subshell.

Tested on x86_64-linux.

Any comments?

Thanks,
- Tom

[gdb/testsuite] Handle PS1 quirk in gdb.base/multi-line-starts-subshell.exp

2020-12-14 Tom de Vries <tdevries@suse.de>

PR testsuite/26952
* gdb.base/multi-line-starts-subshell.exp: Set PS1 after spawning
shell.

---
gdb/testsuite/gdb.base/multi-line-starts-subshell.exp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp b/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
index 710c3916c6..dc6d70582a 100644
--- a/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
+++ b/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
@@ -27,11 +27,11 @@ set shell_prompt_re [string_to_regexp $shell_prompt]

# Point HOME nowhere to avoid the shell sourcing the user's init
# scripts.
-set shell_cmd "HOME=/dev/null PS1=\"$shell_prompt\" /bin/sh"
+set shell_cmd "HOME=/dev/null /bin/sh"

set test "spawn subshell from multi-line"
-gdb_test_multiple "if 1\nshell ${shell_cmd}\nend" $test {
- -re "$shell_prompt_re$" {
+gdb_test_multiple "if 1\nshell ${shell_cmd}\nend\nPS1=\"$shell_prompt\"" $test {
+ -re "PS1=\[^\r\n\]*\r\n$shell_prompt_re$" {
pass $test

# Now check that shell input works and that echo is enabled.