From 71923267e98e51543a4308630f284946b962b796 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Thu, 2 Apr 2026 22:33:04 +0800 Subject: [PATCH] test: harden rendering integration test shutdown --- .../integration/RenderingIntegrationMain.h | 25 +++++++++++++++++++ .../integration/backpack_lit_scene/main.cpp | 9 +++---- .../integration/backpack_scene/main.cpp | 9 +++---- .../integration/camera_stack_scene/main.cpp | 9 +++---- .../integration/cull_material_scene/main.cpp | 9 +++---- .../integration/depth_sort_scene/main.cpp | 9 +++---- .../integration/material_state_scene/main.cpp | 9 +++---- .../integration/offscreen_scene/main.cpp | 9 +++---- .../integration/textured_quad_scene/main.cpp | 12 +++------ .../transparent_material_scene/main.cpp | 9 +++---- 10 files changed, 52 insertions(+), 57 deletions(-) create mode 100644 tests/Rendering/integration/RenderingIntegrationMain.h diff --git a/tests/Rendering/integration/RenderingIntegrationMain.h b/tests/Rendering/integration/RenderingIntegrationMain.h new file mode 100644 index 00000000..4c7868d8 --- /dev/null +++ b/tests/Rendering/integration/RenderingIntegrationMain.h @@ -0,0 +1,25 @@ +#pragma once + +#include + +#include +#include + +#include +#include +#include + +inline int RunRenderingIntegrationTestMain(int argc, char** argv) { + using namespace XCEngine::Debug; + + Logger::Get().Initialize(); + Logger::Get().AddSink(std::make_unique()); + Logger::Get().SetMinimumLevel(LogLevel::Debug); + + testing::InitGoogleTest(&argc, argv); + const int result = RUN_ALL_TESTS(); + + Logger::Get().Shutdown(); + std::fflush(nullptr); + std::_Exit((result == 0 && !testing::UnitTest::GetInstance()->Failed()) ? 0 : 1); +} diff --git a/tests/Rendering/integration/backpack_lit_scene/main.cpp b/tests/Rendering/integration/backpack_lit_scene/main.cpp index 0ef74f0d..fc1d21cb 100644 --- a/tests/Rendering/integration/backpack_lit_scene/main.cpp +++ b/tests/Rendering/integration/backpack_lit_scene/main.cpp @@ -3,6 +3,8 @@ #include +#include "../RenderingIntegrationMain.h" + #include #include #include @@ -322,10 +324,5 @@ INSTANTIATE_TEST_SUITE_P(Vulkan, BackpackLitSceneTest, ::testing::Values(RHIType #endif GTEST_API_ int main(int argc, char** argv) { - Logger::Get().Initialize(); - Logger::Get().AddSink(std::make_unique()); - Logger::Get().SetMinimumLevel(LogLevel::Debug); - - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); + return RunRenderingIntegrationTestMain(argc, argv); } diff --git a/tests/Rendering/integration/backpack_scene/main.cpp b/tests/Rendering/integration/backpack_scene/main.cpp index c6736956..eef7b555 100644 --- a/tests/Rendering/integration/backpack_scene/main.cpp +++ b/tests/Rendering/integration/backpack_scene/main.cpp @@ -3,6 +3,8 @@ #include +#include "../RenderingIntegrationMain.h" + #include #include #include @@ -316,10 +318,5 @@ INSTANTIATE_TEST_SUITE_P(Vulkan, BackpackSceneTest, ::testing::Values(RHIType::V #endif GTEST_API_ int main(int argc, char** argv) { - Logger::Get().Initialize(); - Logger::Get().AddSink(std::make_unique()); - Logger::Get().SetMinimumLevel(LogLevel::Debug); - - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); + return RunRenderingIntegrationTestMain(argc, argv); } diff --git a/tests/Rendering/integration/camera_stack_scene/main.cpp b/tests/Rendering/integration/camera_stack_scene/main.cpp index 235256fa..43a60e96 100644 --- a/tests/Rendering/integration/camera_stack_scene/main.cpp +++ b/tests/Rendering/integration/camera_stack_scene/main.cpp @@ -3,6 +3,8 @@ #include +#include "../RenderingIntegrationMain.h" + #include #include #include @@ -440,10 +442,5 @@ INSTANTIATE_TEST_SUITE_P(Vulkan, CameraStackSceneTest, ::testing::Values(RHIType #endif GTEST_API_ int main(int argc, char** argv) { - Logger::Get().Initialize(); - Logger::Get().AddSink(std::make_unique()); - Logger::Get().SetMinimumLevel(LogLevel::Debug); - - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); + return RunRenderingIntegrationTestMain(argc, argv); } diff --git a/tests/Rendering/integration/cull_material_scene/main.cpp b/tests/Rendering/integration/cull_material_scene/main.cpp index c4db564f..957c63c2 100644 --- a/tests/Rendering/integration/cull_material_scene/main.cpp +++ b/tests/Rendering/integration/cull_material_scene/main.cpp @@ -1,5 +1,7 @@ #include +#include "../RenderingIntegrationMain.h" + #include #include #include @@ -446,10 +448,5 @@ INSTANTIATE_TEST_SUITE_P(Vulkan, CullMaterialSceneTest, ::testing::Values(RHITyp #endif GTEST_API_ int main(int argc, char** argv) { - Logger::Get().Initialize(); - Logger::Get().AddSink(std::make_unique()); - Logger::Get().SetMinimumLevel(LogLevel::Debug); - - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); + return RunRenderingIntegrationTestMain(argc, argv); } diff --git a/tests/Rendering/integration/depth_sort_scene/main.cpp b/tests/Rendering/integration/depth_sort_scene/main.cpp index 35225316..354e9afb 100644 --- a/tests/Rendering/integration/depth_sort_scene/main.cpp +++ b/tests/Rendering/integration/depth_sort_scene/main.cpp @@ -1,5 +1,7 @@ #include +#include "../RenderingIntegrationMain.h" + #include #include #include @@ -453,10 +455,5 @@ INSTANTIATE_TEST_SUITE_P(Vulkan, DepthSortSceneTest, ::testing::Values(RHIType:: #endif GTEST_API_ int main(int argc, char** argv) { - Logger::Get().Initialize(); - Logger::Get().AddSink(std::make_unique()); - Logger::Get().SetMinimumLevel(LogLevel::Debug); - - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); + return RunRenderingIntegrationTestMain(argc, argv); } diff --git a/tests/Rendering/integration/material_state_scene/main.cpp b/tests/Rendering/integration/material_state_scene/main.cpp index 664219ed..27739887 100644 --- a/tests/Rendering/integration/material_state_scene/main.cpp +++ b/tests/Rendering/integration/material_state_scene/main.cpp @@ -1,5 +1,7 @@ #include +#include "../RenderingIntegrationMain.h" + #include #include #include @@ -546,10 +548,5 @@ INSTANTIATE_TEST_SUITE_P(Vulkan, MaterialStateSceneTest, ::testing::Values(RHITy #endif GTEST_API_ int main(int argc, char** argv) { - Logger::Get().Initialize(); - Logger::Get().AddSink(std::make_unique()); - Logger::Get().SetMinimumLevel(LogLevel::Debug); - - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); + return RunRenderingIntegrationTestMain(argc, argv); } diff --git a/tests/Rendering/integration/offscreen_scene/main.cpp b/tests/Rendering/integration/offscreen_scene/main.cpp index 735ed669..fa0b4330 100644 --- a/tests/Rendering/integration/offscreen_scene/main.cpp +++ b/tests/Rendering/integration/offscreen_scene/main.cpp @@ -1,5 +1,7 @@ #include +#include "../RenderingIntegrationMain.h" + #include #include #include @@ -501,10 +503,5 @@ INSTANTIATE_TEST_SUITE_P(Vulkan, OffscreenSceneTest, ::testing::Values(RHIType:: #endif GTEST_API_ int main(int argc, char** argv) { - Logger::Get().Initialize(); - Logger::Get().AddSink(std::make_unique()); - Logger::Get().SetMinimumLevel(LogLevel::Debug); - - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); + return RunRenderingIntegrationTestMain(argc, argv); } diff --git a/tests/Rendering/integration/textured_quad_scene/main.cpp b/tests/Rendering/integration/textured_quad_scene/main.cpp index 05c022c4..e0c5bacd 100644 --- a/tests/Rendering/integration/textured_quad_scene/main.cpp +++ b/tests/Rendering/integration/textured_quad_scene/main.cpp @@ -1,5 +1,7 @@ #include +#include "../RenderingIntegrationMain.h" + #include #include #include @@ -315,13 +317,5 @@ INSTANTIATE_TEST_SUITE_P(Vulkan, TexturedQuadSceneTest, ::testing::Values(RHITyp #endif GTEST_API_ int main(int argc, char** argv) { - Logger::Get().Initialize(); - Logger::Get().AddSink(std::make_unique()); - Logger::Get().SetMinimumLevel(LogLevel::Debug); - - testing::InitGoogleTest(&argc, argv); - const int result = RUN_ALL_TESTS(); - Logger::Get().Shutdown(); - std::fflush(nullptr); - std::_Exit((result == 0 && !testing::UnitTest::GetInstance()->Failed()) ? 0 : 1); + return RunRenderingIntegrationTestMain(argc, argv); } diff --git a/tests/Rendering/integration/transparent_material_scene/main.cpp b/tests/Rendering/integration/transparent_material_scene/main.cpp index 5c9dab01..56d87911 100644 --- a/tests/Rendering/integration/transparent_material_scene/main.cpp +++ b/tests/Rendering/integration/transparent_material_scene/main.cpp @@ -1,5 +1,7 @@ #include +#include "../RenderingIntegrationMain.h" + #include #include #include @@ -398,10 +400,5 @@ INSTANTIATE_TEST_SUITE_P(Vulkan, TransparentMaterialSceneTest, ::testing::Values #endif GTEST_API_ int main(int argc, char** argv) { - Logger::Get().Initialize(); - Logger::Get().AddSink(std::make_unique()); - Logger::Get().SetMinimumLevel(LogLevel::Debug); - - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); + return RunRenderingIntegrationTestMain(argc, argv); }