Test the setting of "history size" via $HOME/.gdbinit
Commit Message
Hi Pedro,
How does this look?
(When it is OK, I will squash this commit with the main commit before
pushing it.)
gdb/testsuite/ChangeLog:
PR gdb/17820
* gdb.base/gdbinit-history.exp: New test.
* gdb.base/gdbinit-history/unlimited/.gdbinit: New file.
* gdb.base/gdbinit-history/zero/.gdbinit: New file.
---
gdb/testsuite/gdb.base/gdbinit-history.exp | 41 ++++++++++++++++++++++
.../gdb.base/gdbinit-history/unlimited/.gdbinit | 1 +
.../gdb.base/gdbinit-history/zero/.gdbinit | 1 +
3 files changed, 43 insertions(+)
create mode 100644 gdb/testsuite/gdb.base/gdbinit-history.exp
create mode 100644 gdb/testsuite/gdb.base/gdbinit-history/unlimited/.gdbinit
create mode 100644 gdb/testsuite/gdb.base/gdbinit-history/zero/.gdbinit
Comments
On 05/12/2015 02:07 PM, Patrick Palka wrote:
> Hi Pedro,
>
> How does this look?
>
> (When it is OK, I will squash this commit with the main commit before
> pushing it.)
>
> gdb/testsuite/ChangeLog:
>
> PR gdb/17820
> * gdb.base/gdbinit-history.exp: New test.
> * gdb.base/gdbinit-history/unlimited/.gdbinit: New file.
> * gdb.base/gdbinit-history/zero/.gdbinit: New file.
> ---
> gdb/testsuite/gdb.base/gdbinit-history.exp | 41 ++++++++++++++++++++++
> .../gdb.base/gdbinit-history/unlimited/.gdbinit | 1 +
> .../gdb.base/gdbinit-history/zero/.gdbinit | 1 +
> 3 files changed, 43 insertions(+)
> create mode 100644 gdb/testsuite/gdb.base/gdbinit-history.exp
> create mode 100644 gdb/testsuite/gdb.base/gdbinit-history/unlimited/.gdbinit
> create mode 100644 gdb/testsuite/gdb.base/gdbinit-history/zero/.gdbinit
>
> diff --git a/gdb/testsuite/gdb.base/gdbinit-history.exp b/gdb/testsuite/gdb.base/gdbinit-history.exp
> new file mode 100644
> index 0000000..194f2df
> --- /dev/null
> +++ b/gdb/testsuite/gdb.base/gdbinit-history.exp
> @@ -0,0 +1,41 @@
> +# Copyright 2015 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 <http://www.gnu.org/licenses/>.
> +
> +# This file is part of the gdb testsuite.
> +
> +# Test the setting of "history size" via $HOME/.gdbinit
> +
> +proc test_gdbinit_history_setting { home size } {
> + global env
> + global INTERNAL_GDBFLAGS
> + global srcdir
> + global subdir
> +
> + set old_home $env(HOME)
> + set env(HOME) "$srcdir/$subdir/$home"
> + set saved_internal_gdbflags $INTERNAL_GDBFLAGS
> + set INTERNAL_GDBFLAGS [string map {"-nx" ""} $INTERNAL_GDBFLAGS]
> +
> + gdb_exit
> + gdb_start
> +
> + gdb_test "show history size" "The size of the command history is $size."
> +
> + set INTERNAL_GDBFLAGS $saved_internal_gdbflags
> + set $env(HOME) $old_home
> +}
> +
> +test_gdbinit_history_setting "gdbinit-history/unlimited" "unlimited"
> +test_gdbinit_history_setting "gdbinit-history/zero" "0"
Great.
I think that doesn't really cover the bug yet fully though, because
with an unfixed gdb, "show history unlimited" shows "unlimited",
but the readline history still ends up disabled. So I think we
should try a "show commands" after the "show history size". For the
unlimited case, we could test that the history contains a few
commands and that the last couple were what we just issued.
And for size==0, make sure that history really is empty.
Something like:
gdb_test "show history size" "The size of the command history is $size."
if {$home == "unlimited"} {
gdb_test "show comands" " show history size\r\n[ \t]+show commands"
} else {
gdb_test_no_output "show commands"
}
(FYI: to run a command without having it enter the command history,
prefix it with "server". That may be useful for testing.)
Thanks,
Pedro Alves
new file mode 100644
@@ -0,0 +1,41 @@
+# Copyright 2015 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 <http://www.gnu.org/licenses/>.
+
+# This file is part of the gdb testsuite.
+
+# Test the setting of "history size" via $HOME/.gdbinit
+
+proc test_gdbinit_history_setting { home size } {
+ global env
+ global INTERNAL_GDBFLAGS
+ global srcdir
+ global subdir
+
+ set old_home $env(HOME)
+ set env(HOME) "$srcdir/$subdir/$home"
+ set saved_internal_gdbflags $INTERNAL_GDBFLAGS
+ set INTERNAL_GDBFLAGS [string map {"-nx" ""} $INTERNAL_GDBFLAGS]
+
+ gdb_exit
+ gdb_start
+
+ gdb_test "show history size" "The size of the command history is $size."
+
+ set INTERNAL_GDBFLAGS $saved_internal_gdbflags
+ set $env(HOME) $old_home
+}
+
+test_gdbinit_history_setting "gdbinit-history/unlimited" "unlimited"
+test_gdbinit_history_setting "gdbinit-history/zero" "0"
new file mode 100644
@@ -0,0 +1 @@
+set history size unlimited
new file mode 100644
@@ -0,0 +1 @@
+set history size 0