Use save_vars to replace existing manipulation of globals in tests
authorPatrick Palka <patrick@parcs.ath.cx>
Fri, 19 Jun 2015 01:47:55 +0000 (21:47 -0400)
committerPatrick Palka <patrick@parcs.ath.cx>
Wed, 12 Aug 2015 15:43:16 +0000 (11:43 -0400)
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
gdb/testsuite/gdb.base/gdbhistsize-history.exp
gdb/testsuite/gdb.base/gdbinit-history.exp
gdb/testsuite/gdb.base/readline.exp

index 2bfa192..3324baa 100644 (file)
@@ -1,5 +1,14 @@
 2015-08-12  Patrick Palka  <patrick@parcs.ath.cx>
 
+       * 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  <patrick@parcs.ath.cx>
+
        * lib/gdb.exp (save_vars): New proc.
 
 2015-08-11  Keith Seitz  <keiths@redhat.com>
index 0c3f93f..75d98e1 100644 (file)
 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"
+           }
+        }
     }
 }
 
index 85177f3..85ef12f 100644 (file)
@@ -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"
index f0490a2..a605c80 100644 (file)
@@ -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