@@ -28,7 +28,6 @@ import (
2828 "path/filepath"
2929 "strconv"
3030 "strings"
31- "syscall"
3231 "testing"
3332 "time"
3433
@@ -366,78 +365,61 @@ func TestRunTTY(t *testing.T) {
366365 }
367366}
368367
369- func runSigProxy (t * testing.T , args ... string ) (string , bool , bool ) {
370- t .Parallel ()
371- base := testutil .NewBase (t )
372- testContainerName := testutil .Identifier (t )
373- defer base .Cmd ("rm" , "-f" , testContainerName ).Run ()
374-
375- fullArgs := []string {"run" }
376- fullArgs = append (fullArgs , args ... )
377- fullArgs = append (fullArgs ,
378- "--name" ,
379- testContainerName ,
380- testutil .CommonImage ,
381- "sh" ,
382- "-c" ,
383- testutil .SigProxyTestScript ,
384- )
368+ func TestRunSigProxy (t * testing.T ) {
369+ testCase := nerdtest .Setup ()
385370
386- result := base .Cmd (fullArgs ... ).Start ()
387- process := result .Cmd .Process
371+ testCase .SubTests = []* test.Case {
372+ {
373+ Description : "SigProxyDefault" ,
388374
389- // Waits until we reach the trap command in the shell script, then sends SIGINT.
390- time . Sleep ( 3 * time . Second )
391- syscall . Kill ( process . Pid , syscall . SIGINT )
375+ Cleanup : func ( data test. Data , helpers test. Helpers ) {
376+ helpers . Anyhow ( "rm" , "-f" , data . Identifier () )
377+ },
392378
393- // Waits until SIGINT is sent and responded to, then kills process to avoid timeout
394- time .Sleep (3 * time .Second )
395- process .Kill ()
379+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
380+ cmd := nerdtest .RunSigProxyContainer (os .Interrupt , true , nil , data , helpers )
381+ err := cmd .Signal (os .Interrupt )
382+ assert .NilError (helpers .T (), err )
383+ return cmd
384+ },
396385
397- sigIntRecieved := strings .Contains (result .Stdout (), testutil .SigProxyTrueOut )
398- timedOut := strings .Contains (result .Stdout (), testutil .SigProxyTimeoutMsg )
386+ Expected : test .Expects (0 , nil , test .Contains (nerdtest .SignalCaught )),
387+ },
388+ {
389+ Description : "SigProxyTrue" ,
399390
400- return result .Stdout (), sigIntRecieved , timedOut
401- }
391+ Cleanup : func (data test.Data , helpers test.Helpers ) {
392+ helpers .Anyhow ("rm" , "-f" , data .Identifier ())
393+ },
402394
403- func TestRunSigProxy (t * testing.T ) {
395+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
396+ cmd := nerdtest .RunSigProxyContainer (os .Interrupt , true , []string {"--sig-proxy=true" }, data , helpers )
397+ err := cmd .Signal (os .Interrupt )
398+ assert .NilError (helpers .T (), err )
399+ return cmd
400+ },
404401
405- type testCase struct {
406- name string
407- args []string
408- want bool
409- expectedOut string
410- }
411- testCases := []testCase {
412- {
413- name : "SigProxyDefault" ,
414- args : []string {},
415- want : true ,
416- expectedOut : testutil .SigProxyTrueOut ,
417- },
418- {
419- name : "SigProxyTrue" ,
420- args : []string {"--sig-proxy=true" },
421- want : true ,
422- expectedOut : testutil .SigProxyTrueOut ,
402+ Expected : test .Expects (0 , nil , test .Contains (nerdtest .SignalCaught )),
423403 },
424404 {
425- name : "SigProxyFalse" ,
426- args : []string {"--sig-proxy=false" },
427- want : false ,
428- expectedOut : "" ,
405+ Description : "SigProxyFalse" ,
406+
407+ Cleanup : func (data test.Data , helpers test.Helpers ) {
408+ helpers .Anyhow ("rm" , "-f" , data .Identifier ())
409+ },
410+
411+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
412+ cmd := nerdtest .RunSigProxyContainer (os .Interrupt , true , []string {"--sig-proxy=false" }, data , helpers )
413+ err := cmd .Signal (os .Interrupt )
414+ assert .NilError (helpers .T (), err )
415+ return cmd
416+ },
417+
418+ Expected : test .Expects (127 , nil , test .DoesNotContain (nerdtest .SignalCaught )),
429419 },
430420 }
431421
432- for _ , tc := range testCases {
433- tc := tc
434- t .Run (tc .name , func (t * testing.T ) {
435- stdout , sigIntRecieved , timedOut := runSigProxy (t , tc .args ... )
436- errorMsg := fmt .Sprintf ("%s failed;\n Expected: '%s'\n Actual: '%s'" , tc .name , tc .expectedOut , stdout )
437- assert .Equal (t , false , timedOut , errorMsg )
438- assert .Equal (t , tc .want , sigIntRecieved , errorMsg )
439- })
440- }
422+ testCase .Run (t )
441423}
442424
443425func TestRunWithFluentdLogDriver (t * testing.T ) {
0 commit comments