From 63c61e04bb7168f0819fc590ac44e7583b225f7b Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 17 Aug 2016 15:53:29 -0400 Subject: [PATCH] Add remove-inferiors test I noticed that the remove-inferiors command was not tested, and as I am doing some changes related to the user selection, I want to make sure I don't break it. For example, I want to make sure it's not possible to remove the current inferior. gdb/testsuite/ChangeLog: * gdb.multi/remove-inferiors.exp: New file. * gdb.multi/remove-inferiors.c: New file. --- gdb/testsuite/ChangeLog | 5 ++ gdb/testsuite/gdb.multi/remove-inferiors.c | 23 +++++++ gdb/testsuite/gdb.multi/remove-inferiors.exp | 70 ++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 gdb/testsuite/gdb.multi/remove-inferiors.c create mode 100644 gdb/testsuite/gdb.multi/remove-inferiors.exp diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d7437aad56f..6e01da285aa 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-08-17 Simon Marchi + + * gdb.multi/remove-inferiors.exp: New file. + * gdb.multi/remove-inferiors.c: New file. + 2016-08-12 Yao Qi * gdb.base/signals-state-child.c (main): Remove "i" from fprintf's diff --git a/gdb/testsuite/gdb.multi/remove-inferiors.c b/gdb/testsuite/gdb.multi/remove-inferiors.c new file mode 100644 index 00000000000..f78199f29ca --- /dev/null +++ b/gdb/testsuite/gdb.multi/remove-inferiors.c @@ -0,0 +1,23 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 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 . */ + +int +main (void) +{ + return 0; +} + diff --git a/gdb/testsuite/gdb.multi/remove-inferiors.exp b/gdb/testsuite/gdb.multi/remove-inferiors.exp new file mode 100644 index 00000000000..c49b31d4e99 --- /dev/null +++ b/gdb/testsuite/gdb.multi/remove-inferiors.exp @@ -0,0 +1,70 @@ +# Copyright 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 . + +standard_testfile + +if { [build_executable ${testfile}.exp ${binfile} "${srcfile}" {debug}] != 0 } { + return -1 +} + +proc switch_to_inferior { num message } { + gdb_test "inferior ${num}" \ + "\\\[Switching to inferior ${num} \\\[\\\] \\\(\\\)\\\]" \ + "${message}" +} + +proc add_inferior { expected_num message } { + gdb_test "add-inferior" "Added inferior ${expected_num}" "${message}" +} + +proc test_remove_inferiors { } { + global binfile + + clean_restart ${binfile} + + # Add another inferior and switch to it. + add_inferior 2 "add second inferior" + switch_to_inferior 2 "switch to second inferior" + + # Test that it is not possible to remove the current inferior. + gdb_test "remove-inferiors 2" \ + "warning: Can not remove current symbol inferior 2." \ + "can't remove current inferior" + + # Test that it is possible to remove a non-active non-current inferior. + gdb_test_no_output "remove-inferiors 1" "remove non-current inferior" + + # Load binfile and start the inferior. + set binfile_re [string_to_regexp ${binfile}] + gdb_test "file ${binfile}" \ + "Reading symbols from ${binfile_re}...done." \ + "load binary" + + if {![runto_main]} { + fail "Couldn't run to main." + return + } + + # Add another inferior and switch to it. + add_inferior 3 "add third inferior" + switch_to_inferior 3 "switch to third inferior" + + # Test that it is not possible to remove an active non-current inferior. + gdb_test "remove-inferiors 2" \ + "warning: Can not remove active inferior 2." \ + "can't remove active inferior" +} + +test_remove_inferiors -- 2.39.5