@@ -20,15 +20,32 @@ const (
20
20
canBeTrapped = true
21
21
)
22
22
23
- func withSignal (signal syscall.Signal , trap bool ) TableEntry {
24
- expectedExitCode := int (signal )
25
- if ! trap {
26
- // 128 -> command interrupted by a signal
27
- // http://www.tldp.org/LDP/abs/html/exitcodes.html
28
- expectedExitCode += 128
29
- }
30
-
31
- return Entry (fmt .Sprintf ("with '%d'(%s) signal" , signal , syscall .Signal (signal )), signal , expectedExitCode , true )
23
+ var genericSignalMap = map [syscall.Signal ]bool {
24
+ syscall .SIGHUP : canBeTrapped ,
25
+ syscall .SIGINT : canBeTrapped ,
26
+ syscall .SIGQUIT : canBeTrapped ,
27
+ syscall .SIGILL : canBeTrapped ,
28
+ syscall .SIGTRAP : canBeTrapped ,
29
+ syscall .SIGIOT : canBeTrapped ,
30
+ syscall .SIGFPE : canBeTrapped ,
31
+ syscall .SIGUSR1 : canBeTrapped ,
32
+ syscall .SIGSEGV : canBeTrapped ,
33
+ syscall .SIGUSR2 : canBeTrapped ,
34
+ syscall .SIGPIPE : canBeTrapped ,
35
+ syscall .SIGALRM : canBeTrapped ,
36
+ syscall .SIGTERM : canBeTrapped ,
37
+ syscall .SIGCHLD : canBeTrapped ,
38
+ syscall .SIGCONT : canBeTrapped ,
39
+ syscall .SIGTSTP : canBeTrapped ,
40
+ syscall .SIGTTIN : canBeTrapped ,
41
+ syscall .SIGTTOU : canBeTrapped ,
42
+ syscall .SIGURG : canBeTrapped ,
43
+ syscall .SIGXCPU : canBeTrapped ,
44
+ syscall .SIGXFSZ : canBeTrapped ,
45
+ syscall .SIGVTALRM : canBeTrapped ,
46
+ syscall .SIGPROF : canBeTrapped ,
47
+ syscall .SIGWINCH : canBeTrapped ,
48
+ syscall .SIGIO : canBeTrapped ,
32
49
}
33
50
34
51
func withoutSignal () TableEntry {
@@ -43,6 +60,22 @@ func withSignalNotExitCode(signal syscall.Signal) TableEntry {
43
60
return Entry (fmt .Sprintf ("with '%d' (%s) signal, don't change the exit code" , signal , signal ), signal , 0 , false )
44
61
}
45
62
63
+ func withGenericSignals (signalsMap map [syscall.Signal ]bool ) []TableEntry {
64
+ var table []TableEntry
65
+ var expectedExitCode int
66
+ for signal , trap := range signalsMap {
67
+ expectedExitCode = int (signal )
68
+ if ! trap {
69
+ // 128 -> command interrupted by a signal
70
+ // http://www.tldp.org/LDP/abs/html/exitcodes.html
71
+ expectedExitCode += 128
72
+
73
+ }
74
+ table = append (table , Entry (fmt .Sprintf ("with '%d'(%s) signal" , int (signal ), signal ), signal , expectedExitCode , true ))
75
+ }
76
+ return append (table , withoutSignal (), withSignalNotExitCode (syscall .SIGSTOP ))
77
+ }
78
+
46
79
var _ = Describe ("docker kill" , func () {
47
80
var (
48
81
args []string
@@ -119,34 +152,6 @@ var _ = Describe("docker kill", func() {
119
152
Expect (err ).ToNot (HaveOccurred ())
120
153
Expect (exitCode ).To (Equal (expectedExitCode ))
121
154
},
122
- withSignal (syscall .SIGHUP , canBeTrapped ),
123
- withSignal (syscall .SIGINT , canBeTrapped ),
124
- withSignal (syscall .SIGQUIT , canBeTrapped ),
125
- withSignal (syscall .SIGILL , canBeTrapped ),
126
- withSignal (syscall .SIGTRAP , canBeTrapped ),
127
- withSignal (syscall .SIGIOT , canBeTrapped ),
128
- withSignal (syscall .SIGFPE , canBeTrapped ),
129
- withSignal (syscall .SIGUSR1 , canBeTrapped ),
130
- withSignal (syscall .SIGSEGV , canBeTrapped ),
131
- withSignal (syscall .SIGUSR2 , canBeTrapped ),
132
- withSignal (syscall .SIGPIPE , canBeTrapped ),
133
- withSignal (syscall .SIGALRM , canBeTrapped ),
134
- withSignal (syscall .SIGTERM , canBeTrapped ),
135
- withSignal (syscall .SIGSTKFLT , canBeTrapped ),
136
- withSignal (syscall .SIGCHLD , canBeTrapped ),
137
- withSignal (syscall .SIGCONT , canBeTrapped ),
138
- withSignalNotExitCode (syscall .SIGSTOP ),
139
- withSignal (syscall .SIGTSTP , canBeTrapped ),
140
- withSignal (syscall .SIGTTIN , canBeTrapped ),
141
- withSignal (syscall .SIGTTOU , canBeTrapped ),
142
- withSignal (syscall .SIGURG , canBeTrapped ),
143
- withSignal (syscall .SIGXCPU , canBeTrapped ),
144
- withSignal (syscall .SIGXFSZ , canBeTrapped ),
145
- withSignal (syscall .SIGVTALRM , canBeTrapped ),
146
- withSignal (syscall .SIGPROF , canBeTrapped ),
147
- withSignal (syscall .SIGWINCH , canBeTrapped ),
148
- withSignal (syscall .SIGIO , canBeTrapped ),
149
- withSignal (syscall .SIGPWR , canBeTrapped ),
150
- withoutSignal (),
155
+ withOSSignals (genericSignalMap )... ,
151
156
)
152
157
})
0 commit comments