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)