diff options
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.multi/remove-inferiors.c | 23 | ||||
-rw-r--r-- | gdb/testsuite/gdb.multi/remove-inferiors.exp | 70 |
3 files changed, 98 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d7437aa..6e01da2 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-08-17 Simon Marchi <simon.marchi@ericsson.com> + + * gdb.multi/remove-inferiors.exp: New file. + * gdb.multi/remove-inferiors.c: New file. + 2016-08-12 Yao Qi <yao.qi@linaro.org> * 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 0000000..f78199f --- /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 <http://www.gnu.org/licenses/>. */ + +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 0000000..c49b31d --- /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 <http://www.gnu.org/licenses/>. + +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} \\\[<null>\\\] \\\(<noexec>\\\)\\\]" \ + "${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 |