1# Copyright 2004, 2005, 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 18# The program sigrepeat.c creates a repeating timer and then waits for 19# it to fire multiple times. The objective is to create a backlog if 20# sigalrm signals and hence cause repeated signal delivery without any 21# cpu advancment. 22 23if [target_info exists gdb,nosignals] { 24 verbose "Skipping sigrepeat.exp because of nosignals." 25 continue 26} 27 28if $tracelevel then { 29 strace $tracelevel 30} 31 32 33set testfile sigrepeat 34set srcfile ${testfile}.c 35set binfile ${objdir}/${subdir}/${testfile} 36if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { 37 untested "Couldn't compile ${srcfile}" 38 return -1 39} 40 41# get things started 42gdb_exit 43gdb_start 44gdb_reinitialize_dir $srcdir/$subdir 45gdb_load ${binfile} 46 47# Advance to main 48if { ![runto_main] } then { 49 gdb_suppress_tests; 50} 51 52# Run to the signal handler wait loop. 53set infinite_loop [gdb_get_line_number {infinite loop}] 54gdb_test "advance $infinite_loop" ".*" "advance to infinite loop" 55 56# Make the first of many signals come pending 57sleep 1 58 59# Try to step off this line 60gdb_test "next" "return 0;.*" 61