@@ -361,11 +361,8 @@ func TestRunWithInvalidPortThenCleanUp(t *testing.T) {
361361 testCase .SubTests = []* test.Case {
362362 {
363363 Description : "Run a container with invalid ports, and then clean up." ,
364- Cleanup : func (data test.Data , helpers test.Helpers ) {
365- helpers .Anyhow ("rm" , "--data-root" , data .Temp ().Path (), "-f" , data .Identifier ())
366- },
367364 Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
368- return helpers .Command ("run" , "--data-root" , data .Temp ().Path (), "--rm" , "--name" , data . Identifier (), "- p" , "22200-22299:22200-22299" , testutil .CommonImage )
365+ return helpers .Command ("run" , "--data-root" , data .Temp ().Path (), "--rm" , "-p" , "22200-22299:22200-22299" , testutil .CommonImage )
369366 },
370367 Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
371368 return & test.Expected {
@@ -518,158 +515,104 @@ func TestSharedNetworkSetup(t *testing.T) {
518515 testCase := & test.Case {
519516 Require : require .Not (require .Windows ),
520517 Setup : func (data test.Data , helpers test.Helpers ) {
521- data .Labels ().Set ("containerName1 " , data .Identifier ("- container1" ))
522- containerName1 := data .Labels (). Get ( "containerName1" )
523- helpers . Ensure ( "run" , "-d " , "--name" , containerName1 ,
524- testutil . NginxAlpineImage )
518+ data .Labels ().Set ("container1 " , data .Identifier ("container1" ))
519+ helpers . Ensure ( "run" , "-d" , "--name" , data .Identifier ( "container1" ),
520+ testutil . CommonImage , "sleep " , "inf" )
521+ nerdtest . EnsureContainerStarted ( helpers , data . Identifier ( "container1" ) )
525522 },
526523 Cleanup : func (data test.Data , helpers test.Helpers ) {
527- helpers .Anyhow ("rm" , "-f" , data .Identifier ("- container1" ))
524+ helpers .Anyhow ("rm" , "-f" , data .Identifier ("container1" ))
528525 },
529526 SubTests : []* test.Case {
530527 {
531528 Description : "Test network is shared" ,
532529 NoParallel : true , // The validation involves starting of the main container: container1
533530 Cleanup : func (data test.Data , helpers test.Helpers ) {
534- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
531+ helpers .Anyhow ("rm" , "-f" , data .Identifier ("container2" ))
535532 },
536- Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
537- containerName2 := data .Identifier ()
538- cmd := helpers .Command ()
539- cmd .WithArgs ("run" , "-d" , "--name" , containerName2 ,
540- "--network=container:" + data .Labels ().Get ("containerName1" ),
533+ Setup : func (data test.Data , helpers test.Helpers ) {
534+ helpers .Ensure (
535+ "run" , "-d" , "--name" , data .Identifier ("container2" ),
536+ "--network=container:" + data .Labels ().Get ("container1" ),
541537 testutil .NginxAlpineImage )
542- return cmd
538+ data .Labels ().Set ("container2" , data .Identifier ("container2" ))
539+ nerdtest .EnsureContainerStarted (helpers , data .Identifier ("container2" ))
543540 },
544- Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
545- return & test.Expected {
546- Output : func (stdout string , info string , t * testing.T ) {
547- containerName2 := data .Identifier ()
548- assert .Assert (t , strings .Contains (helpers .Capture ("exec" , containerName2 , "wget" , "-qO-" , "http://127.0.0.1:80" ), testutil .NginxAlpineIndexHTMLSnippet ), info )
549- helpers .Ensure ("restart" , data .Labels ().Get ("containerName1" ))
550- helpers .Ensure ("stop" , "--time=1" , containerName2 )
551- helpers .Ensure ("start" , containerName2 )
552- assert .Assert (t , strings .Contains (helpers .Capture ("exec" , containerName2 , "wget" , "-qO-" , "http://127.0.0.1:80" ), testutil .NginxAlpineIndexHTMLSnippet ), info )
541+ SubTests : []* test.Case {
542+ {
543+ NoParallel : true ,
544+ Description : "Test network is shared" ,
545+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
546+ return helpers .Command ("exec" , data .Labels ().Get ("container2" ), "wget" , "-qO-" , "http://127.0.0.1:80" )
547+
553548 },
554- }
549+ Expected : test .Expects (0 , nil , expect .Contains (testutil .NginxAlpineIndexHTMLSnippet )),
550+ },
551+ {
552+ NoParallel : true ,
553+ Description : "Test network is shared after restart" ,
554+ Setup : func (data test.Data , helpers test.Helpers ) {
555+ helpers .Ensure ("restart" , data .Labels ().Get ("container1" ))
556+ helpers .Ensure ("stop" , "--time=1" , data .Labels ().Get ("container2" ))
557+ helpers .Ensure ("start" , data .Labels ().Get ("container2" ))
558+ nerdtest .EnsureContainerStarted (helpers , data .Labels ().Get ("container2" ))
559+ },
560+ Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
561+ return helpers .Command ("exec" , data .Labels ().Get ("container2" ), "wget" , "-qO-" , "http://127.0.0.1:80" )
562+
563+ },
564+ Expected : test .Expects (0 , nil , expect .Contains (testutil .NginxAlpineIndexHTMLSnippet )),
565+ },
555566 },
556567 },
557568 {
558569 Description : "Test uts is supported in shared network" ,
559- Cleanup : func (data test.Data , helpers test.Helpers ) {
560- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
561- },
562570 Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
563- containerName2 := data .Identifier ()
564- cmd := helpers .Command ()
565- cmd .WithArgs ("run" , "-d" , "--name" , containerName2 , "--uts" , "host" ,
566- "--network=container:" + data .Labels ().Get ("containerName1" ),
567- testutil .AlpineImage )
568- return cmd
569- },
570- Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
571- return & test.Expected {
572- ExitCode : 0 ,
573- }
571+ return helpers .Command ("run" , "--rm" , "--uts" , "host" ,
572+ "--network=container:" + data .Labels ().Get ("container1" ),
573+ testutil .CommonImage )
574574 },
575+ Expected : test .Expects (0 , nil , nil ),
575576 },
576577 {
577578 Description : "Test dns is not supported" ,
578- Cleanup : func (data test.Data , helpers test.Helpers ) {
579- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
580- },
581579 Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
582- containerName2 := data .Identifier ()
583- cmd := helpers .Command ()
584- cmd .WithArgs ("run" , "-d" , "--name" , containerName2 , "--dns" , "0.1.2.3" ,
585- "--network=container:" + data .Labels ().Get ("containerName1" ),
586- testutil .AlpineImage )
587- return cmd
588- },
589- Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
590- if nerdtest .IsDocker () {
591- return & test.Expected {
592- ExitCode : 125 ,
593- }
594-
595- }
596- return & test.Expected {
597- ExitCode : 1 ,
598- }
580+ return helpers .Command ("run" , "--rm" , "--dns" , "0.1.2.3" ,
581+ "--network=container:" + data .Labels ().Get ("container1" ),
582+ testutil .CommonImage )
599583 },
584+ // 1 for nerdctl, 125 for docker
585+ Expected : test .Expects (expect .ExitCodeGenericFail , nil , nil ),
600586 },
601587 {
602588 Description : "Test dns options is not supported" ,
603- Cleanup : func (data test.Data , helpers test.Helpers ) {
604- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
605- },
606589 Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
607- containerName2 := data .Identifier ()
608- cmd := helpers .Command ()
609- cmd .WithArgs ("run" , "--name" , containerName2 , "--dns-option" , "attempts:5" ,
610- "--network=container:" + data .Labels ().Get ("containerName1" ),
611- testutil .AlpineImage , "cat" , "/etc/resolv.conf" )
612- return cmd
613- },
614- Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
615- // The Option doesnt throw an error but is never inserted to the resolv.conf
616- return & test.Expected {
617- ExitCode : 0 ,
618- Output : func (stdout string , info string , t * testing.T ) {
619- assert .Assert (t , ! strings .Contains (stdout , "attempts:5" ), info )
620- },
621- }
590+ return helpers .Command ("run" , "--rm" , "--dns-option" , "attempts:5" ,
591+ "--network=container:" + data .Labels ().Get ("container1" ),
592+ testutil .CommonImage , "cat" , "/etc/resolv.conf" )
622593 },
594+ // The Option doesn't throw an error but is never inserted to the resolv.conf
595+ Expected : test .Expects (0 , nil , expect .DoesNotContain ("attempts:5" )),
623596 },
624597 {
625598 Description : "Test publish is not supported" ,
626- Cleanup : func (data test.Data , helpers test.Helpers ) {
627- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
628- },
629599 Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
630- containerName2 := data .Identifier ()
631- cmd := helpers .Command ()
632- cmd .WithArgs ("run" , "-d" , "--name" , containerName2 , "--publish" , "80:8080" ,
633- "--network=container:" + data .Labels ().Get ("containerName1" ),
600+ return helpers .Command ("run" , "--rm" , "--publish" , "80:8080" ,
601+ "--network=container:" + data .Labels ().Get ("container1" ),
634602 testutil .AlpineImage )
635- return cmd
636- },
637- Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
638- if nerdtest .IsDocker () {
639- return & test.Expected {
640- ExitCode : 125 ,
641- }
642-
643- }
644- return & test.Expected {
645- ExitCode : 1 ,
646- }
647603 },
604+ // 1 for nerdctl, 125 for docker
605+ Expected : test .Expects (expect .ExitCodeGenericFail , nil , nil ),
648606 },
649607 {
650608 Description : "Test hostname is not supported" ,
651- Cleanup : func (data test.Data , helpers test.Helpers ) {
652- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
653- },
654609 Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
655- containerName2 := data .Identifier ()
656- cmd := helpers .Command ()
657- cmd .WithArgs ("run" , "-d" , "--name" , containerName2 , "--hostname" , "test" ,
658- "--network=container:" + data .Labels ().Get ("containerName1" ),
610+ return helpers .Command ("run" , "--rm" , "--hostname" , "test" ,
611+ "--network=container:" + data .Labels ().Get ("container1" ),
659612 testutil .AlpineImage )
660- return cmd
661- },
662- Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
663- if nerdtest .IsDocker () {
664- return & test.Expected {
665- ExitCode : 125 ,
666- }
667-
668- }
669- return & test.Expected {
670- ExitCode : 1 ,
671- }
672613 },
614+ // 1 for nerdctl, 125 for docker
615+ Expected : test .Expects (expect .ExitCodeGenericFail , nil , nil ),
673616 },
674617 },
675618 }
@@ -682,15 +625,15 @@ func TestSharedNetworkWithNone(t *testing.T) {
682625 Require : require .Not (require .Windows ),
683626 Setup : func (data test.Data , helpers test.Helpers ) {
684627 helpers .Ensure ("run" , "-d" , "--name" , data .Identifier ("container1" ), "--network" , "none" ,
685- testutil .NginxAlpineImage )
628+ testutil .CommonImage , "sleep" , "inf" )
629+ nerdtest .EnsureContainerStarted (helpers , data .Identifier ("container1" ))
686630 },
687631 Cleanup : func (data test.Data , helpers test.Helpers ) {
688632 helpers .Anyhow ("rm" , "-f" , data .Identifier ("container1" ))
689- helpers .Anyhow ("rm" , "-f" , data .Identifier ("container2" ))
690633 },
691634 Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
692- return helpers .Command ("run" , "-d" , "--name" , data . Identifier ( "container2" ) ,
693- "--network=container:" + data .Identifier ("container1" ), testutil .NginxAlpineImage )
635+ return helpers .Command ("run" , "--rm" ,
636+ "--network=container:" + data .Identifier ("container1" ), testutil .CommonImage )
694637 },
695638 Expected : test .Expects (expect .ExitCodeSuccess , nil , nil ),
696639 }
@@ -914,13 +857,14 @@ func TestNoneNetworkHostName(t *testing.T) {
914857 nerdtest .Setup ()
915858 testCase := & test.Case {
916859 Require : require .Not (require .Windows ),
860+ Cleanup : func (data test.Data , helpers test.Helpers ) {
861+ helpers .Anyhow ("rm" , "-f" , data .Identifier ())
862+ },
917863 Setup : func (data test.Data , helpers test.Helpers ) {
918- output := helpers .Capture ("run" , "-d" , "--name" , data .Identifier (), "--network" , "none" , testutil .NginxAlpineImage )
864+ output := helpers .Capture ("run" , "-d" , "--name" , data .Identifier (), "--network" , "none" , testutil .CommonImage , "sleep" , "inf" )
919865 assert .Assert (helpers .T (), len (output ) > 12 , output )
920866 data .Labels ().Set ("hostname" , output [:12 ])
921- },
922- Cleanup : func (data test.Data , helpers test.Helpers ) {
923- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
867+ nerdtest .EnsureContainerStarted (helpers , data .Identifier ())
924868 },
925869 Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
926870 return helpers .Command ("exec" , data .Identifier (), "cat" , "/etc/hostname" )
@@ -939,20 +883,20 @@ func TestHostNetworkHostName(t *testing.T) {
939883 testCase := & test.Case {
940884 Require : require .Not (require .Windows ),
941885 Setup : func (data test.Data , helpers test.Helpers ) {
942- data .Labels ().Set ("containerName1" , data .Identifier ())
943- },
944- Cleanup : func (data test.Data , helpers test.Helpers ) {
945- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
886+ helpers .Custom ("cat" , "/etc/hostname" ).Run (& test.Expected {
887+ Output : func (stdout , info string , t * testing.T ) {
888+ data .Labels ().Set ("hostHostname" , stdout )
889+ },
890+ })
946891 },
947892 Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
948- return helpers .Custom ("cat" , "/etc/hostname" )
893+ return helpers .Command ("run" , "--rm" ,
894+ "--network" , "host" ,
895+ testutil .AlpineImage , "cat" , "/etc/hostname" )
949896 },
950897 Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
951898 return & test.Expected {
952- Output : func (stdout string , info string , t * testing.T ) {
953- hostname := stdout
954- assert .Assert (t , strings .Compare (strings .TrimSpace (helpers .Capture ("run" , "--name" , data .Identifier (), "--network" , "host" , testutil .AlpineImage , "cat" , "/etc/hostname" )), strings .TrimSpace (hostname )) == 0 , info )
955- },
899+ Output : expect .Equals (data .Labels ().Get ("hostHostname" )),
956900 }
957901 },
958902 }
@@ -963,27 +907,18 @@ func TestNoneNetworkDnsConfigs(t *testing.T) {
963907 nerdtest .Setup ()
964908 testCase := & test.Case {
965909 Require : require .Not (require .Windows ),
966- Setup : func (data test.Data , helpers test.Helpers ) {
967- data .Labels ().Set ("containerName1" , data .Identifier ())
968- },
969- Cleanup : func (data test.Data , helpers test.Helpers ) {
970- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
971- },
972910 Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
973- return helpers .Command ("run" , "-d" , "--name" , data .Identifier (), "--network" , "none" , "--dns" , "0.1.2.3" , "--dns-search" , "example.com" , "--dns-option" , "timeout:3" , "--dns-option" , "attempts:5" , testutil .NginxAlpineImage )
974- },
975- Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
976- return & test.Expected {
977- Output : func (stdout string , info string , t * testing.T ) {
978- out := helpers .Capture ("exec" , data .Identifier (), "cat" , "/etc/resolv.conf" )
979- assert .Assert (t , strings .Contains (out , "0.1.2.3" ), info )
980- assert .Assert (t , strings .Contains (out , "example.com" ), info )
981- assert .Assert (t , strings .Contains (out , "attempts:5" ), info )
982- assert .Assert (t , strings .Contains (out , "timeout:3" ), info )
983-
984- },
985- }
986- },
911+ return helpers .Command ("run" , "--rm" ,
912+ "--network" , "none" ,
913+ "--dns" , "0.1.2.3" , "--dns-search" , "example.com" , "--dns-option" , "timeout:3" , "--dns-option" , "attempts:5" ,
914+ testutil .CommonImage , "cat" , "/etc/resolv.conf" )
915+ },
916+ Expected : test .Expects (0 , nil , expect .Contains (
917+ "0.1.2.3" ,
918+ "example.com" ,
919+ "attempts:5" ,
920+ "timeout:3" ,
921+ )),
987922 }
988923 testCase .Run (t )
989924}
@@ -992,27 +927,18 @@ func TestHostNetworkDnsConfigs(t *testing.T) {
992927 nerdtest .Setup ()
993928 testCase := & test.Case {
994929 Require : require .Not (require .Windows ),
995- Setup : func (data test.Data , helpers test.Helpers ) {
996- data .Labels ().Set ("containerName1" , data .Identifier ())
997- },
998- Cleanup : func (data test.Data , helpers test.Helpers ) {
999- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
1000- },
1001930 Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
1002- return helpers .Command ("run" , "-d" , "--name" , data .Identifier (), "--network" , "host" , "--dns" , "0.1.2.3" , "--dns-search" , "example.com" , "--dns-option" , "timeout:3" , "--dns-option" , "attempts:5" , testutil .NginxAlpineImage )
1003- },
1004- Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
1005- return & test.Expected {
1006- Output : func (stdout string , info string , t * testing.T ) {
1007- out := helpers .Capture ("exec" , data .Identifier (), "cat" , "/etc/resolv.conf" )
1008- assert .Assert (t , strings .Contains (out , "0.1.2.3" ), info )
1009- assert .Assert (t , strings .Contains (out , "example.com" ), info )
1010- assert .Assert (t , strings .Contains (out , "attempts:5" ), info )
1011- assert .Assert (t , strings .Contains (out , "timeout:3" ), info )
1012-
1013- },
1014- }
1015- },
931+ return helpers .Command ("run" , "--rm" ,
932+ "--network" , "host" ,
933+ "--dns" , "0.1.2.3" , "--dns-search" , "example.com" , "--dns-option" , "timeout:3" , "--dns-option" , "attempts:5" ,
934+ testutil .CommonImage , "cat" , "/etc/resolv.conf" )
935+ },
936+ Expected : test .Expects (0 , nil , expect .Contains (
937+ "0.1.2.3" ,
938+ "example.com" ,
939+ "attempts:5" ,
940+ "timeout:3" ,
941+ )),
1016942 }
1017943 testCase .Run (t )
1018944}
0 commit comments