Test the interaction between GDBHISTSIZE and .gdbinit
authorPatrick Palka <patrick@parcs.ath.cx>
Wed, 17 Jun 2015 19:41:07 +0000 (15:41 -0400)
committerPatrick Palka <patrick@parcs.ath.cx>
Thu, 18 Jun 2015 15:51:19 +0000 (11:51 -0400)
The value inside the GDBHISTSIZE environment variable, only if valid,
should override setting the history size through one's .gdbinit file.

gdb/testsuite/ChangeLog:

* gdb.base/gdbinit-history.exp: Test the interaction between
setting GDBHISTSIZE and setting the history size via .gdbinit.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/gdbinit-history.exp

index 0f3749e..5a9a7eb 100644 (file)
@@ -1,3 +1,8 @@
+2015-06-18  Patrick Palka  <patrick@parcs.ath.cx>
+
+       * gdb.base/gdbinit-history.exp: Test the interaction between
+       setting GDBHISTSIZE and setting the history size via .gdbinit.
+
 2015-06-17  Patrick Palka  <patrick@parcs.ath.cx>
 
        PR gdb/16999
index 7bdce5f..85177f3 100644 (file)
 
 
 # Check that the history size is properly set to SIZE when reading the .gdbinit
-# file located in HOME.
+# file located in HOME with the environment variable GDBHISTSIZE optionally
+# set to GDBHISTSIZE_VAL.
 
-proc test_gdbinit_history_setting { home size } {
+proc test_gdbinit_history_setting { home size { gdbhistsize_val "-" } } {
     global env
     global INTERNAL_GDBFLAGS
     global srcdir
@@ -36,10 +37,19 @@ proc test_gdbinit_history_setting { home size } {
     # set.
     unset -nocomplain env(GDBHISTSIZE)
 
+    if { $gdbhistsize_val != "-" } {
+       set env(GDBHISTSIZE) $gdbhistsize_val
+    }
+
     set saved_internal_gdbflags $INTERNAL_GDBFLAGS
     set INTERNAL_GDBFLAGS [string map {"-nx" ""} $INTERNAL_GDBFLAGS]
 
-    with_test_prefix "home=$home" {
+    set prefix "home=$home"
+    if { $gdbhistsize_val != "-" } {
+       append prefix " gdbhistsize=$gdbhistsize_val"
+    }
+
+    with_test_prefix $prefix {
        gdb_exit
        gdb_start
 
@@ -54,6 +64,7 @@ proc test_gdbinit_history_setting { home size } {
 
     set INTERNAL_GDBFLAGS $saved_internal_gdbflags
 
+    unset -nocomplain env(GDBHISTSIZE)
     array set env [array get old_env]
 }
 
@@ -117,3 +128,9 @@ test_gdbinit_history_setting "gdbinit-history/unlimited" "unlimited"
 test_gdbinit_history_setting "gdbinit-history/zero" "0"
 
 test_no_truncation_of_unlimited_history_file
+
+# A valid GDBHISTSIZE value overrides the setting inside the .gdbinit file; an
+# invalid GDBHISTSIZE value is ignored, falling back on the setting inside the
+# .gdbinit file.
+test_gdbinit_history_setting "gdbinit-history/unlimited" "1000" "1000"
+test_gdbinit_history_setting "gdbinit-history/unlimited" "unlimited" "foo"