From b6dafabfb18e3ab207a1818ebe68e30337b5515d Mon Sep 17 00:00:00 2001 From: Patrick Palka Date: Thu, 18 Jun 2015 21:47:55 -0400 Subject: [PATCH] Use save_vars to replace existing manipulation of globals in tests gdb/testsuite/ChangeLog: * gdb.base/gdbhistsize-history.exp (test_histsize_history_setting): Use save_vars. * gdb.base/gdbinit-history.exp (test_gdbinit_history_setting): Use save_vars. (test_no_truncation_of_unlimited_history_file): Use save_vars. * gdb.base/readline.exp: Use save_vars. --- gdb/testsuite/ChangeLog | 9 ++ .../gdb.base/gdbhistsize-history.exp | 41 +++--- gdb/testsuite/gdb.base/gdbinit-history.exp | 124 ++++++++---------- gdb/testsuite/gdb.base/readline.exp | 94 ++++++------- 4 files changed, 118 insertions(+), 150 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 2bfa192139..3324baab45 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2015-08-12 Patrick Palka + + * gdb.base/gdbhistsize-history.exp + (test_histsize_history_setting): Use save_vars. + * gdb.base/gdbinit-history.exp (test_gdbinit_history_setting): + Use save_vars. + (test_no_truncation_of_unlimited_history_file): Use save_vars. + * gdb.base/readline.exp: Use save_vars. + 2015-08-12 Patrick Palka * lib/gdb.exp (save_vars): New proc. diff --git a/gdb/testsuite/gdb.base/gdbhistsize-history.exp b/gdb/testsuite/gdb.base/gdbhistsize-history.exp index 0c3f93ff21..75d98e162f 100644 --- a/gdb/testsuite/gdb.base/gdbhistsize-history.exp +++ b/gdb/testsuite/gdb.base/gdbhistsize-history.exp @@ -24,31 +24,22 @@ proc test_histsize_history_setting { histsize size { env_var "GDBHISTSIZE" } } { global env - set have_old_gdbhistsize 0 - if [info exists env($env_var)] { - set have_old_gdbhistsize 1 - set old_gdbhistsize $env($env_var) - } - set env($env_var) $histsize - - with_test_prefix "histsize=$histsize" { - gdb_exit - gdb_start - - gdb_test "show history size" "The size of the command history is $size." - - if { $size == "0" } { - gdb_test_no_output "show commands" - } elseif { $size != "1" } { - gdb_test "show commands" \ - " . show history size\r\n . show commands" - } - - if { $have_old_gdbhistsize } { - set env($env_var) $old_gdbhistsize - } else { - unset env($env_var) - } + save_vars { env($env_var) } { + set env($env_var) $histsize + + with_test_prefix "histsize=$histsize" { + gdb_exit + gdb_start + + gdb_test "show history size" "The size of the command history is $size." + + if { $size == "0" } { + gdb_test_no_output "show commands" + } elseif { $size != "1" } { + gdb_test "show commands" \ + " . show history size\r\n . show commands" + } + } } } diff --git a/gdb/testsuite/gdb.base/gdbinit-history.exp b/gdb/testsuite/gdb.base/gdbinit-history.exp index 85177f32e1..85ef12fa0a 100644 --- a/gdb/testsuite/gdb.base/gdbinit-history.exp +++ b/gdb/testsuite/gdb.base/gdbinit-history.exp @@ -28,44 +28,38 @@ proc test_gdbinit_history_setting { home size { gdbhistsize_val "-" } } { global srcdir global subdir - array set old_env [array get env] + save_vars { INTERNAL_GDBFLAGS env(GDBHISTSIZE) env(HOME) } { + set env(HOME) "$srcdir/$subdir/$home" - set env(HOME) "$srcdir/$subdir/$home" + # The GDBHISTSIZE environment variable takes precedence over whatever + # history size is set in .gdbinit. Make sure the former is not + # set. + unset -nocomplain env(GDBHISTSIZE) - # The GDBHISTSIZE environment variable takes precedence over whatever - # history size is set in .gdbinit. Make sure the former is not - # set. - unset -nocomplain env(GDBHISTSIZE) - - if { $gdbhistsize_val != "-" } { - set env(GDBHISTSIZE) $gdbhistsize_val - } + if { $gdbhistsize_val != "-" } { + set env(GDBHISTSIZE) $gdbhistsize_val + } - set saved_internal_gdbflags $INTERNAL_GDBFLAGS - set INTERNAL_GDBFLAGS [string map {"-nx" ""} $INTERNAL_GDBFLAGS] + set INTERNAL_GDBFLAGS [string map {"-nx" ""} $INTERNAL_GDBFLAGS] - set prefix "home=$home" - if { $gdbhistsize_val != "-" } { - append prefix " gdbhistsize=$gdbhistsize_val" - } + set prefix "home=$home" + if { $gdbhistsize_val != "-" } { + append prefix " gdbhistsize=$gdbhistsize_val" + } - with_test_prefix $prefix { - gdb_exit - gdb_start + with_test_prefix $prefix { + gdb_exit + gdb_start - gdb_test "show history size" "The size of the command history is $size." + gdb_test "show history size" "The size of the command history is $size." - if { $size == "0" } { - gdb_test_no_output "show commands" - } elseif { $size != "1" } { - gdb_test "show commands" " . show history size\r\n . show commands" + if { $size == "0" } { + gdb_test_no_output "show commands" + } elseif { $size != "1" } { + gdb_test "show commands" " . show history size\r\n . show commands" + } } } - - set INTERNAL_GDBFLAGS $saved_internal_gdbflags - - unset -nocomplain env(GDBHISTSIZE) - array set env [array get old_env] } # Check that the history file does not get truncated to zero when a gdbinit @@ -75,53 +69,47 @@ proc test_no_truncation_of_unlimited_history_file { } { global env global INTERNAL_GDBFLAGS - array set old_env [array get env] - - # The GDBHISTSIZE environment variable takes precedence over whatever - # history size is set in .gdbinit. Make sure the former is not - # set. - unset -nocomplain env(GDBHISTSIZE) - - set saved_internal_gdbflags $INTERNAL_GDBFLAGS - - set temp_gdbinit [standard_output_file "gdbinit-history.gdbinit"] - set temp_histfile [standard_output_file "gdbinit-history.gdb_history"] - file delete $temp_gdbinit - file delete $temp_histfile - - set fd [open $temp_gdbinit "w"] - puts $fd "set history size unlimited\n" - puts $fd "set history filename $temp_histfile\n" - puts $fd "set history save\n" - close $fd - - append INTERNAL_GDBFLAGS " -x $temp_gdbinit" - - # We have to start then exit GDB twice: the first time to test the creation - # of the initial history file, and the second time to test appending to it. - # In either case the initial "print 1" command should persist through the - # history file. - with_test_prefix "truncation" { - gdb_exit - gdb_start - gdb_test "print 1" - - with_test_prefix "creating" { + save_vars { INTERNAL_GDBFLAGS env(GDBHISTSIZE) } { + # The GDBHISTSIZE environment variable takes precedence over whatever + # history size is set in .gdbinit. Make sure the former is not + # set. + unset -nocomplain env(GDBHISTSIZE) + + set temp_gdbinit [standard_output_file "gdbinit-history.gdbinit"] + set temp_histfile [standard_output_file "gdbinit-history.gdb_history"] + file delete $temp_gdbinit + file delete $temp_histfile + + set fd [open $temp_gdbinit "w"] + puts $fd "set history size unlimited\n" + puts $fd "set history filename $temp_histfile\n" + puts $fd "set history save\n" + close $fd + + append INTERNAL_GDBFLAGS " -x $temp_gdbinit" + + # We have to start then exit GDB twice: the first time to test the creation + # of the initial history file, and the second time to test appending to it. + # In either case the initial "print 1" command should persist through the + # history file. + with_test_prefix "truncation" { + gdb_exit + gdb_start + gdb_test "print 1" + + with_test_prefix "creating" { gdb_exit gdb_start gdb_test "server show commands" " . print 1.*" - } + } - with_test_prefix "appending" { + with_test_prefix "appending" { gdb_exit gdb_start gdb_test "server show commands" " . print 1.*" - } + } + } } - - set INTERNAL_GDBFLAGS $saved_internal_gdbflags - - array set env [array get old_env] } test_gdbinit_history_setting "gdbinit-history/unlimited" "unlimited" diff --git a/gdb/testsuite/gdb.base/readline.exp b/gdb/testsuite/gdb.base/readline.exp index f0490a2426..a605c80eb6 100644 --- a/gdb/testsuite/gdb.base/readline.exp +++ b/gdb/testsuite/gdb.base/readline.exp @@ -150,68 +150,48 @@ if { ![readline_is_used] } { return -1 } -set oldtimeout1 $timeout -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. -if [info exists env(GDBHISTFILE)] { - set old_gdbhistfile $env(GDBHISTFILE) -} -if [info exists env(GDBHISTSIZE)] { - set old_gdbhistsize $env(GDBHISTSIZE) -} -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 - -operate_and_get_next "Simple operate-and-get-next" \ - "p 7" ".* = 7" \ - "p 8" ".* = 8" \ - "p 9" ".* = 9" + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir - -# Restore globals modified in this test... -if [info exists old_gdbhistfile] { - set env(GDBHISTFILE) $old_gdbhistfile -} else { - unset env(GDBHISTFILE) -} -if [info exists old_gdbhistsize] { - set env(GDBHISTSIZE) $old_gdbhistsize -} else { - unset env(GDBHISTSIZE) + operate_and_get_next "Simple operate-and-get-next" \ + "p 7" ".* = 7" \ + "p 8" ".* = 8" \ + "p 9" ".* = 9" } -set timeout $oldtimeout1 return 0 -- 2.34.1