From 9162a27c5f5828240b53379d735679e2a69a9f41 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 13 Nov 2018 11:59:03 -0700 Subject: [PATCH] Change gdb test suite's TERM setting This changes the gdb test suite to set TERM to "dumb" by default. This setting disables terminal styling, so that the existing tests do not need to be updated. gdb/testsuite/ChangeLog 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. --- gdb/testsuite/ChangeLog | 7 ++ gdb/testsuite/gdb.base/readline.exp | 102 +++++++++++++++------------- gdb/testsuite/lib/gdb.exp | 7 +- 3 files changed, 63 insertions(+), 53 deletions(-) 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,