1# Copyright 2003, 2007, 2008, 2009, 2010, 2011 2# Free Software Foundation, Inc. 3 4# This program is free software; you can redistribute it and/or modify 5# it under the terms of the GNU General Public License as published by 6# the Free Software Foundation; either version 3 of the License, or 7# (at your option) any later version. 8# 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13# 14# You should have received a copy of the GNU General Public License 15# along with this program. If not, see <http://www.gnu.org/licenses/>. */ 16 17# Test running a program from the GDB prompt and then detaching it. 18# NOTE: This test could be much more thorough. 19 20if $tracelevel then { 21 strace $tracelevel 22} 23 24 25# Only GNU/Linux is known to support this. 26if { ! [istarget "*-*-linux*"] } { 27 return 0 28} 29 30# Are we on a target board? 31if [is_remote target] then { 32 return 0 33} 34 35set testfile "attach" 36set srcfile ${testfile}.c 37set binfile ${objdir}/${subdir}/${testfile} 38set escapedbinfile [string_to_regexp ${objdir}/${subdir}/${testfile}] 39 40if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { 41 untested detach.exp 42 return -1 43} 44 45proc do_detach_tests {} { 46 global srcdir 47 global binfile 48 global escapedbinfile 49 global subdir 50 global pass 51 52 runto_main 53 gdb_test_no_output "set should_exit = 1" "set should_exit, $pass" 54 gdb_test "detach" "Detaching from program: .*$escapedbinfile, .*" "detach, $pass" 55} 56 57# Start with a fresh gdb 58gdb_exit 59gdb_start 60gdb_reinitialize_dir $srcdir/$subdir 61gdb_load ${binfile} 62 63global pass 64set pass "one" 65do_detach_tests 66 67# Wait a moment and do it again. 68exec sleep 1 69 70set pass "two" 71do_detach_tests 72 73return 0 74