[PATCH 04/16] Change gdb test suite's TERM setting

Tom Tromey
2018-11-28T00:14:43Z

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-11-27 Tom Tromey <tom@tromey.com>

* 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 | 94 +++++++++++++++--------------
gdb/testsuite/lib/gdb.exp | 7 +--
3 files changed, 59 insertions(+), 49 deletions(-)

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
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir

-if { ![readline_is_used] } {
- unsupported "readline isn't used."
- return -1
-}
+ 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
+ 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.
+ # 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"
+ set env(GDBHISTFILE) "${srcdir}/${subdir}/gdb_history"
+ set env(GDBHISTSIZE) "10"

- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
+ 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"
+ operate_and_get_next "Simple operate-and-get-next" \
+ "p 7" ".* = 7" \
+ "p 8" ".* = 8" \
+ "p 9" ".* = 9"
+ }
}
-
-return 0
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 5a5713b114..7eed7b5190 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -4719,10 +4719,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,
--
2.17.2