| # Copyright 2009, 2010 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 multi-exec / multi-process features that work for all configurations, |
| # even ones that cannot run multiple processes simultaneously. |
| |
| set testfile "base" |
| |
| set exec1 "hello" |
| set srcfile1 ${exec1}.c |
| set binfile1 ${objdir}/${subdir}/${exec1} |
| |
| set exec2 "hangout" |
| set srcfile2 ${exec2}.c |
| set binfile2 ${objdir}/${subdir}/${exec2} |
| |
| set exec3 "goodbye" |
| set srcfile3 ${exec3}.c |
| set binfile3 ${objdir}/${subdir}/${exec3} |
| |
| if { [prepare_for_testing ${testfile}.exp ${exec1} "${srcfile1}" {debug nowarnings}] } { |
| return -1 |
| } |
| |
| if { [prepare_for_testing ${testfile}.exp ${exec2} "${srcfile2}" {debug nowarnings}] } { |
| return -1 |
| } |
| |
| if { [prepare_for_testing ${testfile}.exp ${exec3} "${srcfile3}" {debug nowarnings}] } { |
| return -1 |
| } |
| |
| gdb_exit |
| gdb_start |
| gdb_reinitialize_dir $srcdir/$subdir |
| gdb_load ${binfile1} |
| |
| # Add an empty inferior space, switch to it, and load a main |
| # executable into it. |
| gdb_test "add-inferior" "Added inferior 2.*" |
| gdb_test "inferior 2" "Switching to inferior 2.*" |
| gdb_test "file ${binfile2}" "" |
| |
| # Add a new inferior space and load a main executable into it in one |
| # command. |
| gdb_test "add-inferior -exec ${binfile3}" |
| |
| # Check that we have multiple spaces. |
| |
| gdb_test "info inferiors" \ |
| "Executable.*${exec3}.*${exec2}.*${exec1}.*" |
| |
| # Test that we have multiple symbol tables. |
| |
| gdb_test "inferior 1" |
| gdb_test "info functions commonfun" "${srcfile1}.*" |
| |
| gdb_test "inferior 3" |
| gdb_test "info functions commonfun" "${srcfile3}.*" |
| |
| |
| gdb_test "inferior 1" |
| |
| gdb_test "set listsize 1" "" |
| |
| gdb_test "list commonfun" "from hello.*" |
| |
| gdb_test "print hglob" "1" |
| |
| gdb_test "print glob" "92" "print glob (${exec1})" |
| |
| |
| gdb_test "inferior 3" |
| |
| gdb_test "print gglob" "2" |
| |
| gdb_test "print glob" "45" "print glob (${exec3})" |
| |
| gdb_test "list commonfun" "from goodbye.*" |
| |
| |
| # Let's run the hello program. |
| gdb_test "inferior 1" |
| |
| if { ![runto_main] } then { |
| return -1 |
| } |
| |
| gdb_test "break hello" "" |
| gdb_test "continue" "Breakpoint \[0-9\].*, hello.*" |