diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index b86d6257de..951ad77e99 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2018-12-28 Tom Tromey + + * lib/gdb.exp (gdb_init): Set the TERM environment variable to + "dumb". + * gdb.base/readline.exp (operate_and_get_next): Save and restore + the TERM environment variable. + 2018-12-27 Tom Tromey * gdb.python/py-cmd.exp (test_python_inline_or_multiline): Add diff --git a/gdb/testsuite/gdb.base/readline.exp b/gdb/testsuite/gdb.base/readline.exp index 49bd308197..9f0955c112 100644 --- a/gdb/testsuite/gdb.base/readline.exp +++ b/gdb/testsuite/gdb.base/readline.exp @@ -141,57 +141,61 @@ proc operate_and_get_next {name args} { return 1 } +save_vars { env(TERM) } { + # The arrow key test relies on the standard VT100 bindings, so + # make sure that an appropriate terminal is selected. The same + # bug doesn't show up if we use ^P / ^N instead. + setenv TERM vt100 -gdb_start -gdb_reinitialize_dir $srcdir/$subdir - -if { ![readline_is_used] } { - unsupported "readline isn't used." - return -1 -} - -save_vars { timeout env(GDBHISTSIZE) env(GDBHISTFILE) } { - set timeout 30 - - # A simple test of operate-and-get-next. - operate_and_get_next "Simple operate-and-get-next" \ - "p 1" ".* = 1" \ - "p 2" ".* = 2" \ - "p 3" ".* = 3" - - # Test operate-and-get-next with a secondary prompt. - operate_and_get_next "operate-and-get-next with secondary prompt" \ - "if 1 > 0" "" \ - "p 5" "" \ - "end" ".* = 5" - - # Verify that arrow keys work in secondary prompts. The control - # sequence is a hard-coded VT100 up arrow. - gdb_test "print 42" "\\\$\[0-9\]* = 42" - set msg "arrow keys with secondary prompt" - gdb_test_multiple "if 1 > 0\n\033\[A\033\[A\nend" $msg { - -re ".*\\\$\[0-9\]* = 42\r\n$gdb_prompt $" { - pass $msg - } - -re ".*Undefined command:.*$gdb_prompt $" { - fail $msg - } - } - - # Now repeat the first test with a history file that fills the entire - # history list. - - set env(GDBHISTFILE) "${srcdir}/${subdir}/gdb_history" - set env(GDBHISTSIZE) "10" - - gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir - operate_and_get_next "Simple operate-and-get-next" \ - "p 7" ".* = 7" \ - "p 8" ".* = 8" \ - "p 9" ".* = 9" -} + if { ![readline_is_used] } { + unsupported "readline isn't used." + return -1 + } -return 0 + save_vars { timeout env(GDBHISTSIZE) env(GDBHISTFILE) } { + set timeout 30 + + # A simple test of operate-and-get-next. + operate_and_get_next "Simple operate-and-get-next" \ + "p 1" ".* = 1" \ + "p 2" ".* = 2" \ + "p 3" ".* = 3" + + # Test operate-and-get-next with a secondary prompt. + operate_and_get_next "operate-and-get-next with secondary prompt" \ + "if 1 > 0" "" \ + "p 5" "" \ + "end" ".* = 5" + + # Verify that arrow keys work in secondary prompts. The control + # sequence is a hard-coded VT100 up arrow. + gdb_test "print 42" "\\\$\[0-9\]* = 42" + set msg "arrow keys with secondary prompt" + gdb_test_multiple "if 1 > 0\n\033\[A\033\[A\nend" $msg { + -re ".*\\\$\[0-9\]* = 42\r\n$gdb_prompt $" { + pass $msg + } + -re ".*Undefined command:.*$gdb_prompt $" { + fail $msg + } + } + + # Now repeat the first test with a history file that fills the entire + # history list. + + set env(GDBHISTFILE) "${srcdir}/${subdir}/gdb_history" + set env(GDBHISTSIZE) "10" + + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + + operate_and_get_next "Simple operate-and-get-next" \ + "p 7" ".* = 7" \ + "p 8" ".* = 8" \ + "p 9" ".* = 9" + } +} diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index c5fda7477e..9cd8503f7a 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -4732,10 +4732,9 @@ proc gdb_init { test_file_name } { # read from this file. setenv INPUTRC "/dev/null" - # The gdb.base/readline.exp arrow key test relies on the standard VT100 - # bindings, so make sure that an appropriate terminal is selected. - # The same bug doesn't show up if we use ^P / ^N instead. - setenv TERM "vt100" + # This disables style output, which would interfere with many + # tests. + setenv TERM "dumb" # Some tests (for example gdb.base/maint.exp) shell out from gdb to use # grep. Clear GREP_OPTIONS to make the behavior predictable,