@@ -361,11 +361,8 @@ func TestRunWithInvalidPortThenCleanUp(t *testing.T) {
361
361
testCase .SubTests = []* test.Case {
362
362
{
363
363
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
- },
367
364
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 )
369
366
},
370
367
Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
371
368
return & test.Expected {
@@ -518,158 +515,104 @@ func TestSharedNetworkSetup(t *testing.T) {
518
515
testCase := & test.Case {
519
516
Require : require .Not (require .Windows ),
520
517
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" ) )
525
522
},
526
523
Cleanup : func (data test.Data , helpers test.Helpers ) {
527
- helpers .Anyhow ("rm" , "-f" , data .Identifier ("- container1" ))
524
+ helpers .Anyhow ("rm" , "-f" , data .Identifier ("container1" ))
528
525
},
529
526
SubTests : []* test.Case {
530
527
{
531
528
Description : "Test network is shared" ,
532
529
NoParallel : true , // The validation involves starting of the main container: container1
533
530
Cleanup : func (data test.Data , helpers test.Helpers ) {
534
- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
531
+ helpers .Anyhow ("rm" , "-f" , data .Identifier ("container2" ))
535
532
},
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" ),
541
537
testutil .NginxAlpineImage )
542
- return cmd
538
+ data .Labels ().Set ("container2" , data .Identifier ("container2" ))
539
+ nerdtest .EnsureContainerStarted (helpers , data .Identifier ("container2" ))
543
540
},
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
+
553
548
},
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
+ },
555
566
},
556
567
},
557
568
{
558
569
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
- },
562
570
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 )
574
574
},
575
+ Expected : test .Expects (0 , nil , nil ),
575
576
},
576
577
{
577
578
Description : "Test dns is not supported" ,
578
- Cleanup : func (data test.Data , helpers test.Helpers ) {
579
- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
580
- },
581
579
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 )
599
583
},
584
+ // 1 for nerdctl, 125 for docker
585
+ Expected : test .Expects (expect .ExitCodeGenericFail , nil , nil ),
600
586
},
601
587
{
602
588
Description : "Test dns options is not supported" ,
603
- Cleanup : func (data test.Data , helpers test.Helpers ) {
604
- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
605
- },
606
589
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" )
622
593
},
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" )),
623
596
},
624
597
{
625
598
Description : "Test publish is not supported" ,
626
- Cleanup : func (data test.Data , helpers test.Helpers ) {
627
- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
628
- },
629
599
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" ),
634
602
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
- }
647
603
},
604
+ // 1 for nerdctl, 125 for docker
605
+ Expected : test .Expects (expect .ExitCodeGenericFail , nil , nil ),
648
606
},
649
607
{
650
608
Description : "Test hostname is not supported" ,
651
- Cleanup : func (data test.Data , helpers test.Helpers ) {
652
- helpers .Anyhow ("rm" , "-f" , data .Identifier ())
653
- },
654
609
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" ),
659
612
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
- }
672
613
},
614
+ // 1 for nerdctl, 125 for docker
615
+ Expected : test .Expects (expect .ExitCodeGenericFail , nil , nil ),
673
616
},
674
617
},
675
618
}
@@ -682,15 +625,15 @@ func TestSharedNetworkWithNone(t *testing.T) {
682
625
Require : require .Not (require .Windows ),
683
626
Setup : func (data test.Data , helpers test.Helpers ) {
684
627
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" ))
686
630
},
687
631
Cleanup : func (data test.Data , helpers test.Helpers ) {
688
632
helpers .Anyhow ("rm" , "-f" , data .Identifier ("container1" ))
689
- helpers .Anyhow ("rm" , "-f" , data .Identifier ("container2" ))
690
633
},
691
634
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 )
694
637
},
695
638
Expected : test .Expects (expect .ExitCodeSuccess , nil , nil ),
696
639
}
@@ -914,13 +857,14 @@ func TestNoneNetworkHostName(t *testing.T) {
914
857
nerdtest .Setup ()
915
858
testCase := & test.Case {
916
859
Require : require .Not (require .Windows ),
860
+ Cleanup : func (data test.Data , helpers test.Helpers ) {
861
+ helpers .Anyhow ("rm" , "-f" , data .Identifier ())
862
+ },
917
863
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" )
919
865
assert .Assert (helpers .T (), len (output ) > 12 , output )
920
866
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 ())
924
868
},
925
869
Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
926
870
return helpers .Command ("exec" , data .Identifier (), "cat" , "/etc/hostname" )
@@ -939,20 +883,20 @@ func TestHostNetworkHostName(t *testing.T) {
939
883
testCase := & test.Case {
940
884
Require : require .Not (require .Windows ),
941
885
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
+ })
946
891
},
947
892
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" )
949
896
},
950
897
Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
951
898
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" )),
956
900
}
957
901
},
958
902
}
@@ -963,27 +907,18 @@ func TestNoneNetworkDnsConfigs(t *testing.T) {
963
907
nerdtest .Setup ()
964
908
testCase := & test.Case {
965
909
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
- },
972
910
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
+ )),
987
922
}
988
923
testCase .Run (t )
989
924
}
@@ -992,27 +927,18 @@ func TestHostNetworkDnsConfigs(t *testing.T) {
992
927
nerdtest .Setup ()
993
928
testCase := & test.Case {
994
929
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
- },
1001
930
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
+ )),
1016
942
}
1017
943
testCase .Run (t )
1018
944
}
0 commit comments