From patchwork Wed Aug 12 12:47:07 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Palka X-Patchwork-Id: 8149 Received: (qmail 127812 invoked by alias); 12 Aug 2015 12:47:59 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 127803 invoked by uid 89); 12 Aug 2015 12:47:59 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL, BAYES_00, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 X-HELO: mail-qg0-f51.google.com Received: from mail-qg0-f51.google.com (HELO mail-qg0-f51.google.com) (209.85.192.51) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 12 Aug 2015 12:47:57 +0000 Received: by qgj62 with SMTP id 62so9262586qgj.2 for ; Wed, 12 Aug 2015 05:47:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=p4MaJJxbAFmYw+D09lFe+idkrjI0Zyk2ESQExKobTO4=; b=hFOka8f6P3CAH5ifRWgg0fPHWvkoiRnCoUJ/AAJLew73PmGyTWEujrPZvAwaAb09zT gZRww8yLlvnjYyWs/abX6ZN9IeWUX8ggIYJAANBleDKJ+16ZZUjYCBJjSCupFJG6DjTV xEfCQqA6lrC2ht9lOJ/U5P9rX2nRkTOV5LbQD3DOaYGvmZgPyILCkByjz/IAhBIyNKcr yRVKn+k5rWXam7zAn61fn4Hk3TsaD1VxHVrfAeJQFq/Q9+vHrA4ZQ8rTbYui7FYWApJK dONIXUTsMsbgMwFKiCHlzfs++48/pTS92vSwAIr6YFiWebS3tLknrmo2K6Brs3xBY4bs 8KeA== X-Gm-Message-State: ALoCoQkO5D/11/qIyTEYcpC54ZQ0w0sn9dJSktbO1VEi3wqFH/Hk6cu2T0zXfWBohm1SAgimi546 X-Received: by 10.140.238.195 with SMTP id j186mr6281839qhc.21.1439383675551; Wed, 12 Aug 2015 05:47:55 -0700 (PDT) Received: from localhost.localdomain (ool-4353acd8.dyn.optonline.net. [67.83.172.216]) by smtp.gmail.com with ESMTPSA id y11sm3076197qky.42.2015.08.12.05.47.54 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 12 Aug 2015 05:47:55 -0700 (PDT) From: Patrick Palka To: gdb-patches@sourceware.org Cc: Patrick Palka Subject: [PATCH] Use save_vars to replace existing manipulation of globals in tests Date: Wed, 12 Aug 2015 08:47:07 -0400 Message-Id: <1439383627-22886-1-git-send-email-patrick@parcs.ath.cx> [ The diff is rather ugly for what amounts to relatively simple changes :( ] 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/gdb.base/gdbhistsize-history.exp | 41 ++++---- gdb/testsuite/gdb.base/gdbinit-history.exp | 124 +++++++++++-------------- gdb/testsuite/gdb.base/readline.exp | 94 ++++++++----------- 3 files changed, 109 insertions(+), 150 deletions(-) diff --git a/gdb/testsuite/gdb.base/gdbhistsize-history.exp b/gdb/testsuite/gdb.base/gdbhistsize-history.exp index 0c3f93f..75d98e1 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 85177f3..85ef12f 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 f0490a2..a605c80 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