[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
This commit is contained in:
Tom de Vries
2023-04-29 10:47:46 +02:00
parent e0f4b3ec5f
commit 8f29f8e1ae

View File

@@ -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"
}
}
}