# Copyright 2016-2020 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}( on connection .*)?" "${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 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}" \ [multi_line "Reading symbols from ${binfile_re}\.\.\.(" \ "Expanding full symbols from ${binfile_re}\.\.\.)?" ] \ "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 |