1# Copyright 2004, 2005, 2007 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 17# The program sigrepeat.c creates a repeating timer and then waits for 18# it to fire multiple times. The objective is to create a backlog if 19# sigalrm signals and hence cause repeated signal delivery without any 20# cpu advancment. 21 22if [target_info exists gdb,nosignals] { 23 verbose "Skipping sigrepeat.exp because of nosignals." 24 continue 25} 26 27if $tracelevel then { 28 strace $tracelevel 29} 30 31set prms_id 0 32set bug_id 0 33 34set testfile sigrepeat 35set srcfile ${testfile}.c 36set binfile ${objdir}/${subdir}/${testfile} 37if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { 38 untested "Couldn't compile ${srcfile}" 39 return -1 40} 41 42# get things started 43gdb_exit 44gdb_start 45gdb_reinitialize_dir $srcdir/$subdir 46gdb_load ${binfile} 47 48# Advance to main 49if { ![runto_main] } then { 50 gdb_suppress_tests; 51} 52 53# Run to the signal handler wait loop. 54set infinite_loop [gdb_get_line_number {infinite loop}] 55gdb_test "advance $infinite_loop" "" "advance to infinite loop" 56 57# Make the first of many signals come pending 58sleep 1 59 60# Try to step off this line 61gdb_test "next" "return 0;.*" 62