[gdb/testsuite] Fix gdb.python/py-cmd.exp
authorTom de Vries <tdevries@suse.de>
Fri, 10 Mar 2023 15:34:04 +0000 (16:34 +0100)
committerTom de Vries <tdevries@suse.de>
Fri, 10 Mar 2023 15:34:04 +0000 (16:34 +0100)
[ Using $pp as shorthand for the pagination prompt
"--Type <RET> for more, q to quit, c to continue without paging--". ]

The test-case gdb.python/py-cmd.exp passes, but the handling of the
test_multiline command output looks a bit odd:
...
(gdb) test_multiline
test_multiline output
  ...
test_multiline output
$ppPASS: gdb.python/py-cmd.exp: verify pagination from test_multiline
q
test_multiline
Quit
(gdb) test_multiline
test_multiline output
  ...
test_multiline output
$ppPASS: gdb.python/py-cmd.exp: verify pagination from test_multiline: q
...

What happens is:
- a test_multiline command is issued
- some output is printed, followed by a pagination prompt
- the test-case concludes that pagination occurred, and produces a PASS
- "q\n" is replied to the pagination prompt
- without waiting for response to the "q\n", another test_multiline command is
  issued
- in response to the "q\n" we get "Quit\n(gdb) "
- some output is printed, followed by a pagination prompt
- the test-case concludes that there's a valid response to the "q\n", and
  produces a PASS, consuming the second pagination prompt, but without a reply.

My conclusion is that the second test_multiline command is unintentional, so fix
this by removing it.

Without it, we have the more straightforward:
...
(gdb) test_multiline
test_multiline output
  ...
test_multiline output
$ppPASS: gdb.python/py-cmd.exp: verify pagination from test_multiline
q
Quit
(gdb) PASS: gdb.python/py-cmd.exp: verify pagination from test_multiline: q
...

This also fixes the following warning with target board native-gdbserver:
...
WARNING: Timed out waiting for EOF in server after monitor exit
...

Tested on x86_64-linux.

gdb/testsuite/gdb.python/py-cmd.exp

index 016ea445f1034974d397839c05a0cec4d1af7c2d..12b52e4fd61509f3504a695652d3b69ba5d40786 100644 (file)
@@ -291,7 +291,7 @@ gdb_test_multiple "test_multiline" $test {
 
 send_gdb "q\n"
 set test "verify pagination from test_multiline: q"
-gdb_test_multiple "test_multiline" $test {
+gdb_test_multiple "" $test {
     -re "Error occurred in Python" {
        fail $test
     }