@@ -28,7 +28,6 @@ import (
2828 "path/filepath"
2929 "strconv"
3030 "strings"
31- "syscall"
3231 "testing"
3332 "time"
3433
@@ -328,78 +327,61 @@ func TestRunTTY(t *testing.T) {
328327 assert .Equal (t , 0 , res .ExitCode , res )
329328}
330329
331- func runSigProxy (t * testing.T , args ... string ) (string , bool , bool ) {
332- t .Parallel ()
333- base := testutil .NewBase (t )
334- testContainerName := testutil .Identifier (t )
335- defer base .Cmd ("rm" , "-f" , testContainerName ).Run ()
336-
337- fullArgs := []string {"run" }
338- fullArgs = append (fullArgs , args ... )
339- fullArgs = append (fullArgs ,
340- "--name" ,
341- testContainerName ,
342- testutil .CommonImage ,
343- "sh" ,
344- "-c" ,
345- testutil .SigProxyTestScript ,
346- )
330+ func TestRunSigProxy (t * testing.T ) {
331+ testCase := nerdtest .Setup ()
347332
348- result := base .Cmd (fullArgs ... ).Start ()
349- process := result .Cmd .Process
333+ testCase .SubTests = []* test.Case {
334+ {
335+ Description : "SigProxyDefault" ,
350336
351- // Waits until we reach the trap command in the shell script, then sends SIGINT.
352- time . Sleep ( 3 * time . Second )
353- syscall . Kill ( process . Pid , syscall . SIGINT )
337+ Cleanup : func ( data test. Data , helpers test. Helpers ) {
338+ helpers . Anyhow ( "rm" , "-f" , data . Identifier () )
339+ },
354340
355- // Waits until SIGINT is sent and responded to, then kills process to avoid timeout
356- time .Sleep (3 * time .Second )
357- process .Kill ()
341+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
342+ cmd := nerdtest .RunSigProxyContainer (os .Interrupt , true , nil , data , helpers )
343+ err := cmd .Signal (os .Interrupt )
344+ assert .NilError (helpers .T (), err )
345+ return cmd
346+ },
358347
359- sigIntRecieved := strings .Contains (result .Stdout (), testutil .SigProxyTrueOut )
360- timedOut := strings .Contains (result .Stdout (), testutil .SigProxyTimeoutMsg )
348+ Expected : test .Expects (0 , nil , test .Contains (nerdtest .SignalCaught )),
349+ },
350+ {
351+ Description : "SigProxyTrue" ,
361352
362- return result .Stdout (), sigIntRecieved , timedOut
363- }
353+ Cleanup : func (data test.Data , helpers test.Helpers ) {
354+ helpers .Anyhow ("rm" , "-f" , data .Identifier ())
355+ },
364356
365- func TestRunSigProxy (t * testing.T ) {
357+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
358+ cmd := nerdtest .RunSigProxyContainer (os .Interrupt , true , []string {"--sig-proxy=true" }, data , helpers )
359+ err := cmd .Signal (os .Interrupt )
360+ assert .NilError (helpers .T (), err )
361+ return cmd
362+ },
366363
367- type testCase struct {
368- name string
369- args []string
370- want bool
371- expectedOut string
372- }
373- testCases := []testCase {
374- {
375- name : "SigProxyDefault" ,
376- args : []string {},
377- want : true ,
378- expectedOut : testutil .SigProxyTrueOut ,
364+ Expected : test .Expects (0 , nil , test .Contains (nerdtest .SignalCaught )),
379365 },
380366 {
381- name : "SigProxyTrue" ,
382- args : []string {"--sig-proxy=true" },
383- want : true ,
384- expectedOut : testutil .SigProxyTrueOut ,
385- },
386- {
387- name : "SigProxyFalse" ,
388- args : []string {"--sig-proxy=false" },
389- want : false ,
390- expectedOut : "" ,
367+ Description : "SigProxyFalse" ,
368+
369+ Cleanup : func (data test.Data , helpers test.Helpers ) {
370+ helpers .Anyhow ("rm" , "-f" , data .Identifier ())
371+ },
372+
373+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
374+ cmd := nerdtest .RunSigProxyContainer (os .Interrupt , true , []string {"--sig-proxy=false" }, data , helpers )
375+ err := cmd .Signal (os .Interrupt )
376+ assert .NilError (helpers .T (), err )
377+ return cmd
378+ },
379+
380+ Expected : test .Expects (127 , nil , test .DoesNotContain (nerdtest .SignalCaught )),
391381 },
392382 }
393383
394- for _ , tc := range testCases {
395- tc := tc
396- t .Run (tc .name , func (t * testing.T ) {
397- stdout , sigIntRecieved , timedOut := runSigProxy (t , tc .args ... )
398- errorMsg := fmt .Sprintf ("%s failed;\n Expected: '%s'\n Actual: '%s'" , tc .name , tc .expectedOut , stdout )
399- assert .Equal (t , false , timedOut , errorMsg )
400- assert .Equal (t , tc .want , sigIntRecieved , errorMsg )
401- })
402- }
384+ testCase .Run (t )
403385}
404386
405387func TestRunWithFluentdLogDriver (t * testing.T ) {
0 commit comments