[gdb/testsuite] Handle PS1 quirk in gdb.base/multi-line-starts-subshell.exp
authorTom de Vries <tdevries@suse.de>
Tue, 15 Dec 2020 09:18:23 +0000 (10:18 +0100)
committerTom de Vries <tdevries@suse.de>
Tue, 15 Dec 2020 09:18:23 +0000 (10:18 +0100)
commit77c8aaf716d9f93dc5850f8b2481da5eb7a53662
treeb97d2603184b88019d2b132d005f12834dacdd87
parent8a87b2791181eb7fc1533ffaeb95df8d87d41493
[gdb/testsuite] Handle PS1 quirk in gdb.base/multi-line-starts-subshell.exp

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, due to a bug on older
openSUSE/SLE version.  The mechanism there is:
- /etc/profile sets ENV=/etc/bash.bashrc
- /bin/sh is started
- /bin/sh executes ENV, in other words /etc/bash.bashrc
- during the execution of /etc/bash.bashrc, PS1 is set unconditionally

Fix this by setting PS1 after spawning the subshell.

Tested on x86_64-linux.

2020-12-15  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