Skip to content

Commit 929c2b3

Browse files
Surayya Huseyn ZadaSurayya Huseyn Zada
authored andcommitted
go back to running containers by image and not imageId for multi-arch tests
1 parent 2e6adab commit 929c2b3

File tree

2 files changed

+18
-47
lines changed

2 files changed

+18
-47
lines changed

src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/ContainerCli.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,6 @@ public static RunExeCommand LoadCommand(ITestOutputHelper log, params string[] a
3636
public static RunExeCommand PortCommand(ITestOutputHelper log, string containerName, int port)
3737
=> CreateCommand(log, "port", containerName, port.ToString());
3838

39-
public static RunExeCommand ImagesCommand(ITestOutputHelper log, params string[] args)
40-
=> CreateCommand(log, "images", args);
41-
4239
private static RunExeCommand CreateCommand(ITestOutputHelper log, string command, params string[] args)
4340
{
4441
string commandPath = IsPodman ? "podman" : "docker";

src/Tests/Microsoft.NET.Build.Containers.IntegrationTests/EndToEndTests.cs

Lines changed: 18 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -745,18 +745,14 @@ public void EndToEndMultiArch_LocalRegistry()
745745
.WithWorkingDirectory(newProjectDir.FullName)
746746
.Execute();
747747

748-
// Check that the app was published for each RID,
749-
// one image was created locally
748+
// Check that the app was published for each RID, one image was created locally
750749
commandResult.Should().Pass()
751750
.And.HaveStdOutContaining(GetPublishArtifactsPath(newProjectDir.FullName, "linux-x64"))
752751
.And.HaveStdOutContaining(GetPublishArtifactsPath(newProjectDir.FullName, "linux-arm64"))
753752
.And.HaveStdOutContaining($"Building image '{imageName}' for runtime identifier 'linux-x64'")
754753
.And.HaveStdOutContaining($"Building image '{imageName}' for runtime identifier 'linux-arm64'")
755754
.And.HaveStdOutContaining($"Pushed image '{image}' to local registry");
756755

757-
//Multi-arch oci tarballs that are loaded to docker can only be run by their image id
758-
string imageId = GetImageId(image);
759-
760756
// Check that the containers can be run
761757
CommandResult processResultX64 = ContainerCli.RunCommand(
762758
_testOutput,
@@ -765,7 +761,7 @@ public void EndToEndMultiArch_LocalRegistry()
765761
"linux/amd64",
766762
"--name",
767763
$"test-container-{imageName}-x64",
768-
imageId)
764+
image)
769765
.Execute();
770766
processResultX64.Should().Pass().And.HaveStdOut("Hello, World!");
771767

@@ -776,27 +772,14 @@ public void EndToEndMultiArch_LocalRegistry()
776772
"linux/arm64",
777773
"--name",
778774
$"test-container-{imageName}-arm64",
779-
imageId)
775+
image)
780776
.Execute();
781777
processResultArm64.Should().Pass().And.HaveStdOut("Hello, World!");
782778

783779
// Cleanup
784780
newProjectDir.Delete(true);
785781
}
786782

787-
private string GetImageId(string image)
788-
{
789-
CommandResult commandResult = ContainerCli.ImagesCommand(_testOutput, "--format", "\"{{.ID}}\"", image)
790-
.Execute();
791-
commandResult.Should().Pass();
792-
793-
var output = commandResult.StdOut.Split("\n").Select(s => s.Trim('"')).ToList();
794-
795-
output.Should().NotBeNullOrEmpty().And.OnlyContain(s => s == output[0]);
796-
797-
return output[0];
798-
}
799-
800783
[DockerAvailableFact]
801784
public void MultiArchStillAllowsSingleRID()
802785
{
@@ -948,26 +931,22 @@ public void EndToEndMultiArch_ArchivePublishing()
948931
.WithWorkingDirectory(newProjectDir.FullName)
949932
.Execute();
950933

951-
// Check that the app was published for each RID,
952-
// one image was created in local archive
934+
// Check that the app was published for each RID, one image was created in local archive
953935
commandResult.Should().Pass()
954936
.And.HaveStdOutContaining(GetPublishArtifactsPath(newProjectDir.FullName, "linux-x64"))
955937
.And.HaveStdOutContaining(GetPublishArtifactsPath(newProjectDir.FullName, "linux-arm64"))
956938
.And.HaveStdOutContaining($"Building image '{imageName}' for runtime identifier 'linux-x64'")
957939
.And.HaveStdOutContaining($"Building image '{imageName}' for runtime identifier 'linux-arm64'")
958940
.And.HaveStdOutContaining($"Pushed image '{image}' to local archive at '{imageTarball}'");
959941

960-
// Check that tarballs were created
942+
// Check that tarball were created
961943
File.Exists(imageTarball).Should().BeTrue();
962944

963945
// Load the multi-arch image from the tarball
964946
ContainerCli.LoadCommand(_testOutput, "--input", imageTarball)
965947
.Execute()
966948
.Should().Pass();
967949

968-
//Multi-arch oci tarballs that are loaded to docker can only be run by their image id
969-
string imageId = GetImageId(image);
970-
971950
// Check that the containers can be run
972951
CommandResult processResultX64 = ContainerCli.RunCommand(
973952
_testOutput,
@@ -976,7 +955,7 @@ public void EndToEndMultiArch_ArchivePublishing()
976955
"linux/amd64",
977956
"--name",
978957
$"test-container-{imageName}-x64",
979-
imageId)
958+
image)
980959
.Execute();
981960
processResultX64.Should().Pass().And.HaveStdOut("Hello, World!");
982961

@@ -987,7 +966,7 @@ public void EndToEndMultiArch_ArchivePublishing()
987966
"linux/arm64",
988967
"--name",
989968
$"test-container-{imageName}-arm64",
990-
imageId)
969+
image)
991970
.Execute();
992971
processResultArm64.Should().Pass().And.HaveStdOut("Hello, World!");
993972

@@ -1024,15 +1003,16 @@ public void EndToEndMultiArch_RemoteRegistry()
10241003
.Execute();
10251004

10261005
// Check that the app was published for each RID,
1027-
// images were created locally for each RID
1028-
// and image index was created
1006+
// images for each RID were pushed to remote registry
1007+
// and image index was pushed to remote registry
10291008
commandResult.Should().Pass()
10301009
.And.HaveStdOutContaining(GetPublishArtifactsPath(newProjectDir.FullName, "linux-x64"))
10311010
.And.HaveStdOutContaining(GetPublishArtifactsPath(newProjectDir.FullName, "linux-arm64"))
10321011
.And.HaveStdOutContaining($"Pushed image '{imageX64}' to registry '{registry}'.")
10331012
.And.HaveStdOutContaining($"Pushed image '{imageArm64}' to registry '{registry}'.")
10341013
.And.HaveStdOutContaining($"Pushed image index '{imageIndex}' to registry '{registry}'.");
10351014

1015+
// Check that the containers can be run
10361016
// First pull the image from the registry for each platform
10371017
ContainerCli.PullCommand(
10381018
_testOutput,
@@ -1048,8 +1028,8 @@ public void EndToEndMultiArch_RemoteRegistry()
10481028
imageFromRegistry)
10491029
.Execute()
10501030
.Should().Pass();
1051-
1052-
// Check that the containers can be run
1031+
1032+
// Run the containers
10531033
ContainerCli.RunCommand(
10541034
_testOutput,
10551035
"--rm",
@@ -1097,7 +1077,7 @@ public void EndToEndMultiArch_ContainerRuntimeIdentifiersOverridesRuntimeIdentif
10971077
.Execute();
10981078

10991079
// Check that the app was published only for RID from ContainerRuntimeIdentifiers
1100-
// images were created locally only for RID for from ContainerRuntimeIdentifiers
1080+
// images were built only for RID for from ContainerRuntimeIdentifiers
11011081
commandResult.Should().Pass()
11021082
.And.NotHaveStdOutContaining(GetPublishArtifactsPath(newProjectDir.FullName, "linux-x64"))
11031083
.And.HaveStdOutContaining(GetPublishArtifactsPath(newProjectDir.FullName, "linux-arm64"))
@@ -1148,8 +1128,6 @@ public void EndToEndMultiArch_EnvVariables()
11481128
.Execute()
11491129
.Should().Pass();
11501130

1151-
string imageId = GetImageId(image);
1152-
11531131
// Check that the env var is printed for linux/amd64 platform
11541132
string containerNameX64 = $"test-container-{imageName}-x64";
11551133
CommandResult processResultX64 = ContainerCli.RunCommand(
@@ -1159,7 +1137,7 @@ public void EndToEndMultiArch_EnvVariables()
11591137
"linux/amd64",
11601138
"--name",
11611139
containerNameX64,
1162-
imageId)
1140+
image)
11631141
.Execute();
11641142
processResultX64.Should().Pass().And.HaveStdOut("FooBar");
11651143

@@ -1172,7 +1150,7 @@ public void EndToEndMultiArch_EnvVariables()
11721150
"linux/arm64",
11731151
"--name",
11741152
containerNameArm64,
1175-
imageId)
1153+
image)
11761154
.Execute();
11771155
processResultArm64.Should().Pass().And.HaveStdOut("FooBar");
11781156

@@ -1215,8 +1193,6 @@ public void EndToEndMultiArch_Ports()
12151193
.Execute()
12161194
.Should().Pass();
12171195

1218-
string imageId = GetImageId(image);
1219-
12201196
// Check that the ports are correct for linux/amd64 platform
12211197
var containerNameX64 = $"test-container-{imageName}-x64";
12221198
CommandResult processResultX64 = ContainerCli.RunCommand(
@@ -1228,7 +1204,7 @@ public void EndToEndMultiArch_Ports()
12281204
containerNameX64,
12291205
"-P",
12301206
"--detach",
1231-
imageId)
1207+
image)
12321208
.Execute();
12331209
processResultX64.Should().Pass();
12341210

@@ -1246,7 +1222,7 @@ public void EndToEndMultiArch_Ports()
12461222
containerNameArm64,
12471223
"-P",
12481224
"--detach",
1249-
imageId)
1225+
image)
12501226
.Execute();
12511227
processResultArm64.Should().Pass();
12521228

@@ -1304,13 +1280,11 @@ public void EndToEndMultiArch_Labels()
13041280
.Execute()
13051281
.Should().Pass();
13061282

1307-
string imageId = GetImageId(image);
1308-
13091283
// Check that labels are set
13101284
CommandResult inspectResult = ContainerCli.InspectCommand(
13111285
_testOutput,
13121286
"--format={{json .Config.Labels}}",
1313-
imageId)
1287+
image)
13141288
.Execute();
13151289
inspectResult.Should().Pass();
13161290
var labels = JsonSerializer.Deserialize<Dictionary<string, string>>(inspectResult.StdOut);

0 commit comments

Comments
 (0)