@samitouri / QOSAMI-WSL / commits / 8af1856f

Invalid the TestImageRegistry cache after running prune --all (#41442)

Blue committed Aug 26, 2026 at 18:07 UTC 8af1856f86f09aa099de169932ef95f7a88466c8
3 files changed +13 -1
test/windows/wslc/e2e/TestImageRegistry.cpp
+6
@@ -83,6 +83,12 @@ void TestImageRegistry::Restore(const TestImage& image, const std::wstring& sess
83 Load(image, sessionName);
84 }
85
86 +void TestImageRegistry::InvalidateSession(const std::wstring& sessionName)
87 +{
88 + std::erase_if(m_loaded, [&](const auto& image) { return image.SessionName == sessionName; });
89 + m_seededSessions.erase(sessionName);
90 +}
91 +
92 void TestImageRegistry::Load(const TestImage& image, const std::wstring& sessionName)
93 {
94 auto result = RunWslc(FormatCommand(sessionName, std::format(L"image load --input \"{}\"", image.Path.wstring())));
test/windows/wslc/e2e/TestImageRegistry.h
+3
@@ -44,6 +44,9 @@ public:
44 // through Delete, such as those exercising image prune, call this to restore the session.
45 void Restore(const TestImage& image, const std::wstring& sessionName = L"");
46
47 + // Discards cached image state for a session after an operation that can remove multiple images.
48 + void InvalidateSession(const std::wstring& sessionName = L"");
49 +
50 private:
51 TestImageRegistry() = default;
52
test/windows/wslc/e2e/WSLCE2EImagePruneTests.cpp
+4 -1
@@ -93,7 +93,10 @@ class WSLCE2EImagePruneTests
93
94 WSLC_TEST_METHOD(WSLCE2E_Image_Prune_AllFlag)
95 {
96 - auto cleanup = wil::scope_exit_log(WI_DIAGNOSTICS_INFO, [&]() { TestImageRegistry::Instance().Restore(DebianImage); });
96 + auto cleanup = wil::scope_exit_log(WI_DIAGNOSTICS_INFO, [&]() {
97 + TestImageRegistry::Instance().InvalidateSession();
98 + TestImageRegistry::Instance().Restore(DebianImage);
99 + });
100
101 // --all should prune unused images (not just dangling)
102 const auto result = RunWslc(L"image prune --all");