Update the wslc not to fail if additional images or containers are present (#40372)

Blue committed May 1, 2026 at 11:21 UTC 7de5a64c4ecbdb50e7824b45fd0691510043c29b
2 files changed +13 -16
test/windows/wslc/e2e/WSLCE2EContainerListTests.cpp
+12 -15
@@ -149,9 +149,9 @@ class WSLCE2EContainerListTests
149
150 result = RunWslc(L"container list --all --quiet");
151 result.Verify({.Stderr = L"", .ExitCode = 0});
152 - const auto outputLine = result.GetStdoutOneLine();
152
154 - VERIFY_ARE_EQUAL(containerId, outputLine);
153 + // Verify the created container ID appears in the quiet output.
154 + VERIFY_IS_TRUE(result.StdoutContainsLine(containerId));
155 }
156
157 WSLC_TEST_METHOD(WSLCE2E_Container_List_InvalidFormatOption)
@@ -175,8 +175,13 @@ class WSLCE2EContainerListTests
175 result.Verify({.Stderr = L"", .ExitCode = 0});
176 // Parse json and verify we got the expected container information back
177 auto containers = wsl::shared::FromJson<std::vector<ContainerInformation>>(result.Stdout.value().c_str());
178 - VERIFY_ARE_EQUAL(1U, containers.size());
179 - VERIFY_ARE_EQUAL(containerId, wsl::shared::string::MultiByteToWide(containers[0].Id));
178 + VERIFY_IS_GREATER_THAN_OR_EQUAL(containers.size(), 1U);
179 +
180 + auto findContainer = [](const std::vector<ContainerInformation>& list, const std::wstring& id) {
181 + return std::ranges::any_of(list, [&](const auto& c) { return wsl::shared::string::MultiByteToWide(c.Id) == id; });
182 + };
183 +
184 + VERIFY_IS_TRUE(findContainer(containers, containerId));
185
186 // Create another container
187 result = RunWslc(std::format(L"container create --name {} {}", WslcContainerName2, DebianImage.NameAndTag()));
@@ -189,18 +194,10 @@ class WSLCE2EContainerListTests
194 result.Verify({.Stderr = L"", .ExitCode = 0});
195 // Parse json and verify we got both containers back
196 containers = wsl::shared::FromJson<std::vector<ContainerInformation>>(result.Stdout.value().c_str());
192 - VERIFY_ARE_EQUAL(2U, containers.size());
193 -
194 - // Extract container IDs
195 - std::vector<std::wstring> containerIds;
196 - for (const auto& container : containers)
197 - {
198 - containerIds.push_back(wsl::shared::string::MultiByteToWide(container.Id));
199 - }
197 + VERIFY_IS_GREATER_THAN_OR_EQUAL(containers.size(), 2U);
198
201 - // Verify both container IDs are in the list
202 - VERIFY_IS_TRUE(std::find(containerIds.begin(), containerIds.end(), containerId) != containerIds.end());
203 - VERIFY_IS_TRUE(std::find(containerIds.begin(), containerIds.end(), containerId2) != containerIds.end());
199 + VERIFY_IS_TRUE(findContainer(containers, containerId));
200 + VERIFY_IS_TRUE(findContainer(containers, containerId2));
201 }
202
203 private:
test/windows/wslc/e2e/WSLCE2EImageListTests.cpp
+1 -1
@@ -92,7 +92,7 @@ class WSLCE2EImageListTests
92
93 const auto images = wsl::shared::FromJson<std::vector<ImageInformation>>(result.Stdout.value().c_str());
94
95 - VERIFY_ARE_EQUAL(2u, images.size());
95 + VERIFY_IS_GREATER_THAN_OR_EQUAL(images.size(), 2u);
96
97 std::vector<std::wstring> imageNames;
98 for (const auto& image : images)