* TODO: Add note about "handle all nostop".
* gdb.base/{sigall.c, sigall.exp}: New test. * gdb.base/Makefile.in: Add it.
This commit is contained in:
parent
3b55fbe386
commit
d71511fbd3
4 changed files with 1556 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
Wed Jan 4 11:35:19 1995 Jim Kingdon (kingdon@lioth.cygnus.com)
|
||||
|
||||
* TODO: Add note about "handle all nostop".
|
||||
|
||||
* gdb.base/{sigall.c, sigall.exp}: New test.
|
||||
* gdb.base/Makefile.in: Add it.
|
||||
|
||||
Thu Jan 5 17:34:03 1995 Stan Shebs <shebs@andros.cygnus.com>
|
||||
|
||||
* lib/gdb.exp, gdb.base/corefile.exp: Supply -nw as argument
|
||||
|
|
|
@ -183,6 +183,10 @@ compiler dependencies.
|
|||
Test more obscure wait_for_inferior cases, expanding on the tests in
|
||||
watchpoint.exp, signals.exp, etc.
|
||||
|
||||
Test "handle all nostop". Right now this is buggy--it (a) prints "?"
|
||||
for "Unknown signal", (b) prints signal zero (bug or feature?), (c)
|
||||
dumps core when it is done.
|
||||
|
||||
Test that the copyright year in the startup message matches the
|
||||
current year (would produce a single spurious FAIL on old GDB's, but
|
||||
probably still a good idea).
|
||||
|
|
1368
gdb/testsuite/gdb.base/sigall.c
Normal file
1368
gdb/testsuite/gdb.base/sigall.c
Normal file
File diff suppressed because it is too large
Load diff
177
gdb/testsuite/gdb.base/sigall.exp
Normal file
177
gdb/testsuite/gdb.base/sigall.exp
Normal file
|
@ -0,0 +1,177 @@
|
|||
# Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
if $tracelevel then {
|
||||
strace $tracelevel
|
||||
}
|
||||
|
||||
set prms_id 0
|
||||
set bug_id 0
|
||||
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
set binfile $objdir/$subdir/sigall
|
||||
|
||||
if ![file exists $binfile] then {
|
||||
perror "$binfile does not exist."
|
||||
return 0
|
||||
}
|
||||
|
||||
# Make the first signal SIGABRT because it is always supported.
|
||||
set sig_supported 1
|
||||
set thissig "ABRT"
|
||||
|
||||
proc test_one_sig {nextsig} {
|
||||
global sig_supported
|
||||
global prompt
|
||||
global thissig
|
||||
|
||||
set this_sig_supported $sig_supported
|
||||
gdb_test "handle SIG$thissig stop print" \
|
||||
"SIG$thissig\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes"
|
||||
gdb_test "b handle_$thissig" "Breakpoint \[0-9\]"
|
||||
gdb_test "b gen_$nextsig" "Breakpoint \[0-9\]"
|
||||
if $this_sig_supported then {
|
||||
if {"$thissig" == "POLL"} then {
|
||||
# If SIGIO and SIGPOLL are the same signal it gets reported
|
||||
# as SIGIO; it is a feature for GDB to always use the "preferred"
|
||||
# name (the POSIX name if there is one, etc.); I suspect that is
|
||||
# SIGIO in this case but I'm not sure.
|
||||
set pattern "(POLL|IO)"
|
||||
} else {
|
||||
set pattern $thissig
|
||||
}
|
||||
gdb_test "continue" \
|
||||
"Continuing.*Program received signal SIG$pattern" \
|
||||
"get signal $thissig"
|
||||
}
|
||||
if {"$thissig" == "IO"} then {
|
||||
# SIGIO and SIGPOLL might be the same signal.
|
||||
# If so we end up at handle_POLL because we
|
||||
# establish the handler for SIGPOLL after SIGIO.
|
||||
set pattern "Breakpoint.*handle_(POLL|IO)"
|
||||
} else {
|
||||
set pattern "Breakpoint.*handle_$thissig"
|
||||
}
|
||||
gdb_test "continue" $pattern "send signal $thissig"
|
||||
send "continue\n"
|
||||
expect {
|
||||
-re "Breakpoint.*gen_$nextsig.*kill.*$prompt $" {
|
||||
pass "advance to $nextsig"
|
||||
set sig_supported 1
|
||||
}
|
||||
-re "Breakpoint.*gen_$nextsig.*handle.*$prompt $" {
|
||||
pass "advance to $nextsig"
|
||||
set sig_supported 0
|
||||
}
|
||||
-re ".*$prompt $" { fail "advance to $nextsig" }
|
||||
default { fail "advance to $nextsig (eof or timeout)" }
|
||||
}
|
||||
set thissig $nextsig
|
||||
}
|
||||
|
||||
gdb_load $binfile
|
||||
|
||||
runto gen_ABRT
|
||||
test_one_sig HUP
|
||||
test_one_sig QUIT
|
||||
test_one_sig ILL
|
||||
test_one_sig EMT
|
||||
test_one_sig FPE
|
||||
test_one_sig BUS
|
||||
test_one_sig SEGV
|
||||
test_one_sig SYS
|
||||
test_one_sig PIPE
|
||||
test_one_sig ALRM
|
||||
test_one_sig URG
|
||||
test_one_sig TSTP
|
||||
test_one_sig CONT
|
||||
test_one_sig CHLD
|
||||
test_one_sig TTIN
|
||||
test_one_sig TTOU
|
||||
test_one_sig IO
|
||||
|
||||
# Set an extra breakpoint at handle_POLL, to deal with the fact that
|
||||
# SIGIO and SIGPOLL might be the same signal.
|
||||
|
||||
gdb_test "b handle_POLL" "Breakpoint \[0-9\]" \
|
||||
"set extra handle_POLL breakpoint"
|
||||
|
||||
test_one_sig XCPU
|
||||
test_one_sig XFSZ
|
||||
test_one_sig VTALRM
|
||||
test_one_sig PROF
|
||||
test_one_sig WINCH
|
||||
test_one_sig LOST
|
||||
test_one_sig USR1
|
||||
test_one_sig USR2
|
||||
test_one_sig PWR
|
||||
test_one_sig POLL
|
||||
test_one_sig WIND
|
||||
test_one_sig PHONE
|
||||
test_one_sig WAITING
|
||||
test_one_sig LWP
|
||||
test_one_sig DANGER
|
||||
test_one_sig GRANT
|
||||
test_one_sig RETRACT
|
||||
test_one_sig MSG
|
||||
test_one_sig SOUND
|
||||
test_one_sig SAK
|
||||
test_one_sig PRIO
|
||||
test_one_sig 33
|
||||
test_one_sig 34
|
||||
test_one_sig 35
|
||||
test_one_sig 36
|
||||
test_one_sig 37
|
||||
test_one_sig 38
|
||||
test_one_sig 39
|
||||
test_one_sig 40
|
||||
test_one_sig 41
|
||||
test_one_sig 42
|
||||
test_one_sig 43
|
||||
test_one_sig 44
|
||||
test_one_sig 45
|
||||
test_one_sig 46
|
||||
test_one_sig 47
|
||||
test_one_sig 48
|
||||
test_one_sig 49
|
||||
test_one_sig 50
|
||||
test_one_sig 51
|
||||
test_one_sig 52
|
||||
test_one_sig 53
|
||||
test_one_sig 54
|
||||
test_one_sig 55
|
||||
test_one_sig 56
|
||||
test_one_sig 57
|
||||
test_one_sig 58
|
||||
test_one_sig 59
|
||||
test_one_sig 60
|
||||
test_one_sig 61
|
||||
test_one_sig 62
|
||||
test_one_sig 63
|
||||
test_one_sig TERM
|
||||
|
||||
# The last signal (SIGTERM) gets handled slightly differently because
|
||||
# we are not setting up for another test.
|
||||
gdb_test "handle SIGTERM stop print" \
|
||||
"SIGTERM\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes"
|
||||
gdb_test "b handle_TERM" "Breakpoint \[0-9\]"
|
||||
gdb_test "continue" \
|
||||
"Continuing.*Program received signal SIGTERM" \
|
||||
"get signal TERM"
|
||||
gdb_test "continue" "Breakpoint.*handle_TERM" "send signal TERM"
|
||||
gdb_test "continue" "Program exited normally" "continue to sigall exit"
|
||||
|
||||
return 0
|
Loading…
Add table
Reference in a new issue