forked from Imagelibrary/binutils-gdb
[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:
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user