diff options
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c | 25 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp | 62 |
3 files changed, 92 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 5022fe2f86f..37ed04303cf 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-08-15 Patrick Palka <patrick@parcs.ath.cx> + + * gdb.base/kill-detach-inferiors-cmd.exp: New test file. + * gdb.base/kill-detach-inferiors-cmd.c: New test file. + 2015-08-14 Doug Evans <xdje42@gmail.com> * gdb.perf/lib/perftest/utils.py (select_file): Kill any existing diff --git a/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c b/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c new file mode 100644 index 00000000000..2398f004425 --- /dev/null +++ b/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c @@ -0,0 +1,25 @@ +/* This testcase is part of GDB, the GNU debugger. + + 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/>. */ + +#include <unistd.h> + +int +main (void) +{ + sleep (600); + return 0; +} diff --git a/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp b/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp new file mode 100644 index 00000000000..c6bb11bd382 --- /dev/null +++ b/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp @@ -0,0 +1,62 @@ +# This testcase is part of GDB, the GNU debugger. +# +# 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/>. + +# Test the basic operation of the "kill inferiors" and "detach inferiors" +# commands. + +if ![can_spawn_for_attach] { + return 0 +} + +standard_testfile +set executable $testfile + +if [prepare_for_testing $testfile.exp $executable] { + return -1 +} + +runto_main + +# Add another forked inferior process. +gdb_test "add-inferior" "Added inferior 2" "add inferior 2" +gdb_test "inferior 2" "Switching to inferior 2.*" +gdb_test "file $binfile" "Reading symbols from .*done.*" "load binary" +gdb_test "start" "Temporary breakpoint.*Starting program.*" + +# Add an attached inferior process. +set test_spawn_id [spawn_wait_for_attach $binfile] +set test_pid [spawn_id_get_pid $test_spawn_id] +gdb_test "add-inferior" "Added inferior 3" "add inferior 3" +gdb_test "inferior 3" "Switching to inferior 3.*" +gdb_test "attach $test_pid" "Attaching to process.*" "attach to pid" + +# Kill the first two inferiors, and detach the third. +gdb_test_no_output "kill inferiors 1 2" +gdb_test "inferior 1" "Switching to inferior 1.*" +gdb_test "kill" "The program is not being run.*" +gdb_test "detach inferiors 3" "Detaching from program.*process $test_pid.*" + +# No inferiors should be running anymore. +gdb_test "kill inferiors 1 2 3" \ + "ID 1 is not running.*ID 2 is not running.*ID 3 is not running.*" +gdb_test "detach inferiors 1 2 3" \ + "ID 1 is not running.*ID 2 is not running.*ID 3 is not running.*" + +gdb_test "kill inferiors 10" \ + "ID 10 not known.*" + +kill_wait_spawned_process $test_spawn_id |