aboutsummaryrefslogtreecommitdiff
path: root/tcltests/test_signal2.tcl
blob: ecbb88b6a143e0417c098f19ccaa3a470da8810a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
signal ignore HUP TERM
signal handle ALRM INT

# Send both the handled signals.
# Should not exit here
alarm 1
kill -INT [pid]
sleep 2
set x 0
set signals {}
try -signal {
	# This should not execute
	incr x
} on signal {signals} {
}
check signal.1 $x 0
check signal.2 [lsort $signals] "SIGALRM SIGINT"

# Now no signals should be pending
set x 0
set signals {}
alarm 1
try -signal {
	kill -HUP [pid]
	signal throw TERM
	# Should get here
	incr x
	sleep 10
	# But not get here
	incr x
} on signal {signals} {
}

check signal.3 $x 1
check signal.4 [lsort $signals] "SIGALRM"
check signal.5 [lsort [signal check]] "SIGHUP SIGTERM"
check signal.6 [lsort [signal check SIGTERM]] "SIGTERM"
check signal.7 [lsort [signal check -clear SIGTERM]] "SIGTERM"
check signal.8 [lsort [signal check -clear]] "SIGHUP"
check signal.9 [lsort [signal check]] ""