1# Copyright 2004-2015 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 27 28standard_testfile .c 29 30if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { 31 untested "Couldn't compile ${srcfile}" 32 return -1 33} 34 35# get things started 36clean_restart ${binfile} 37 38# Advance to main 39if { ![runto_main] } then { 40 gdb_suppress_tests 41} 42 43# Run to the signal handler wait loop. 44set infinite_loop [gdb_get_line_number {infinite loop}] 45gdb_test "advance $infinite_loop" ".*" "advance to infinite loop" 46 47# Make the first of many signals come pending 48sleep 1 49 50# Try to step off this line 51gdb_test "next" "return 0;.*" 52