diff options
author | Tom de Vries <tdevries@suse.de> | 2023-04-29 10:47:46 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2023-04-29 10:47:46 +0200 |
commit | 8f29f8e1aef7e66ee73ba21857bd62cd66271307 (patch) | |
tree | e004a6fe18cc4dfb8faff89dd348b8989ec1bcd6 | |
parent | e0f4b3ec5f36ff90dbea21aab2190fb4565ca67b (diff) | |
download | gdb-8f29f8e1aef7e66ee73ba21857bd62cd66271307.zip gdb-8f29f8e1aef7e66ee73ba21857bd62cd66271307.tar.gz gdb-8f29f8e1aef7e66ee73ba21857bd62cd66271307.tar.bz2 |
[gdb/testsuite] Fix gdb.base/readline.exp with stub-termcap
When doing a build which uses stub-termcap, we run into:
...
(gdb) set width 7
<b) FAIL: gdb.base/readline.exp: set width 7 (timeout)
...
Since readline can't detect very basic terminal support, it falls back on
horizontal scrolling.
Fix this by detecting the horizontal scrolling case, and skipping the
subsequent test.
Tested on x86_64-linux.
PR testsuite/30400
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30400
-rw-r--r-- | gdb/testsuite/gdb.base/readline.exp | 57 |
1 files changed, 35 insertions, 22 deletions
diff --git a/gdb/testsuite/gdb.base/readline.exp b/gdb/testsuite/gdb.base/readline.exp index 8722527..e00ed08 100644 --- a/gdb/testsuite/gdb.base/readline.exp +++ b/gdb/testsuite/gdb.base/readline.exp @@ -219,31 +219,44 @@ save_vars { env(TERM) } { set char_total 4500 set char_sent 0 - # Adjust the terminal width. - gdb_test_no_output "set width 7" - - # Send the command prefix, then lots of additional characters - # that create a really long command that wraps over multiple - # lines. - send_gdb "help X" - gdb_test_multiple "" "send long command to GDB" { - -re "X" { - incr char_sent - if {$char_sent <= $char_total} { - send_gdb "X" - exp_continue - } + # Adjust the terminal width. Detect horizontal scrolling, which + # happens with stub-termcap.c. + set horizontal_scrolling 0 + set cmd "set width 7" + gdb_test_multiple $cmd "" { + -re "^$cmd\r\n$gdb_prompt $" { + pass $gdb_test_name } - -re "\[ \b\r\n\]" { - exp_continue + -re "^$cmd\r\n<b\\) $" { + set horizontal_scrolling 1 + pass $gdb_test_name } } - # Send the final newline so that GDB will process the command. - # Check GDB returns a suitable error. - send_gdb "\n" - gdb_test "" \ - "Undefined command: \"X+\"\\. Try \"help\"\\." \ - "All the characters transferred" + if { !$horizontal_scrolling } { + # Send the command prefix, then lots of additional characters + # that create a really long command that wraps over multiple + # lines. + send_gdb "help X" + gdb_test_multiple "" "send long command to GDB" { + -re "X" { + incr char_sent + if {$char_sent <= $char_total} { + send_gdb "X" + exp_continue + } + } + -re "\[ \b\r\n\]" { + exp_continue + } + } + + # Send the final newline so that GDB will process the command. + # Check GDB returns a suitable error. + send_gdb "\n" + gdb_test "" \ + "Undefined command: \"X+\"\\. Try \"help\"\\." \ + "All the characters transferred" + } } } |