# Copyright 2015-2016 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # This file is part of the gdb testsuite. # Test the setting of "history size" via the GDBHISTSIZE environment variable # We cannot expect remote hosts to see environment variables set on the # local machine. if { [is_remote host] } { unsupported "can't set environment variables on remote host" return -1 } # Check that the history size is properly set to SIZE when the environment # variable ENV_VAR is set to GDBHISTSIZE. proc test_histsize_history_setting { histsize size { env_var "GDBHISTSIZE" } } { global env save_vars { env(GDBHISTFILE) env(GDBHISTSIZE) env($env_var) } { # These environment variables take precedence over whatever # history size is set in .gdbinit. Make sure the former is not # set. unset -nocomplain env(GDBHISTFILE) unset -nocomplain env(GDBHISTSIZE) 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" } } } } test_histsize_history_setting "" "unlimited" test_histsize_history_setting "0" "0" test_histsize_history_setting "20" "20" test_histsize_history_setting " 20 " "20" test_histsize_history_setting "-5" "unlimited" # Test defaulting to 256 upon encountering a non-numeric GDBHISTSIZE. test_histsize_history_setting "not_an_integer" "256" test_histsize_history_setting "10zab" "256" test_histsize_history_setting "-5ab" "256" # A huge number (hopefully larger than INT_MAX) test_histsize_history_setting "99999999999999999999999999999999999" "unlimited" # We no longer read HISTSIZE test_histsize_history_setting "50" "256" "HISTSIZE"