@@ -20,15 +20,32 @@ const (
2020 canBeTrapped = true
2121)
2222
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 ,
3249}
3350
3451func withoutSignal () TableEntry {
@@ -43,6 +60,22 @@ func withSignalNotExitCode(signal syscall.Signal) TableEntry {
4360 return Entry (fmt .Sprintf ("with '%d' (%s) signal, don't change the exit code" , signal , signal ), signal , 0 , false )
4461}
4562
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+
4679var _ = Describe ("docker kill" , func () {
4780 var (
4881 args []string
@@ -119,34 +152,6 @@ var _ = Describe("docker kill", func() {
119152 Expect (err ).ToNot (HaveOccurred ())
120153 Expect (exitCode ).To (Equal (expectedExitCode ))
121154 },
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 )... ,
151156 )
152157})
0 commit comments