1# sigthread.exp -- Expect script to test thread and signal interaction 2# Copyright (C) 2007 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 17set testfile sigthread 18set srcfile ${testfile}.c 19set binfile ${objdir}/${subdir}/${testfile} 20 21if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \ 22 executable { debug }] != "" } { 23 return -1 24} 25 26gdb_exit 27gdb_start 28gdb_reinitialize_dir $srcdir/$subdir 29gdb_load ${binfile} 30 31if ![runto_main] then { 32 fail "Can't run to main" 33 return 0 34} 35 36gdb_test "handle SIGUSR1 nostop noprint pass" 37gdb_test "handle SIGUSR2 nostop noprint pass" 38 39send_gdb "continue\n" 40gdb_expect { 41 -re "Continuing" { 42 pass "continue" 43 } 44 timeout { 45 fail "continue (timeout)" 46 } 47} 48 49# For this to work we must be sure to consume the "Continuing." 50# message first, or GDB's signal handler may not be in place. 51after 500 {send_gdb "\003"} 52 53# Make sure we do not get an internal error from hitting Control-C 54# while many signals are flying back and forth. 55gdb_test "" "Program received signal SIGINT.*" "stop with control-c" 56