From 7bf586f6fa722c605c24ac24123c94eadea5594c Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Tue, 17 Mar 2026 12:41:29 +0800 Subject: [PATCH] Add Phase 5: SwapChain tests (3 tests) - Add SwapChain tests: Initialize, Present, Resize === OpenGL Test Suite Complete === Total: 49 tests across all phases: - Phase 1: Device, Buffer, Fence (17 tests) - Phase 2: Texture, Sampler (9 tests) - Phase 3: Shader, PipelineState, VertexArray (11 tests) - Phase 4: CommandList, RTV, DSV (9 tests) - Phase 5: SwapChain (3 tests) --- tests/RHI/OpenGL/CMakeLists.txt | 1 + tests/RHI/OpenGL/test_swap_chain.cpp | 41 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 tests/RHI/OpenGL/test_swap_chain.cpp diff --git a/tests/RHI/OpenGL/CMakeLists.txt b/tests/RHI/OpenGL/CMakeLists.txt index f9ebc58c..98ad5d3f 100644 --- a/tests/RHI/OpenGL/CMakeLists.txt +++ b/tests/RHI/OpenGL/CMakeLists.txt @@ -31,6 +31,7 @@ set(TEST_SOURCES test_command_list.cpp test_render_target_view.cpp test_depth_stencil_view.cpp + test_swap_chain.cpp ) add_executable(opengl_engine_tests ${TEST_SOURCES}) diff --git a/tests/RHI/OpenGL/test_swap_chain.cpp b/tests/RHI/OpenGL/test_swap_chain.cpp new file mode 100644 index 00000000..1a8d1c0b --- /dev/null +++ b/tests/RHI/OpenGL/test_swap_chain.cpp @@ -0,0 +1,41 @@ +#include "fixtures/OpenGLTestFixture.h" +#include "XCEngine/RHI/OpenGL/OpenGLSwapChain.h" + +using namespace XCEngine::RHI; + +TEST_F(OpenGLTestFixture, SwapChain_Initialize_Window) { + OpenGLSwapChain swapChain; + GLFWwindow* window = GetWindow(); + + bool result = swapChain.Initialize(window, 800, 600); + + ASSERT_TRUE(result); + + swapChain.Shutdown(); +} + +TEST_F(OpenGLTestFixture, SwapChain_Present) { + OpenGLSwapChain swapChain; + GLFWwindow* window = GetWindow(); + swapChain.Initialize(window, 800, 600); + + swapChain.Present(); + + GLenum error = glGetError(); + EXPECT_EQ(error, GL_NO_ERROR); + + swapChain.Shutdown(); +} + +TEST_F(OpenGLTestFixture, SwapChain_Resize_ChangesSize) { + OpenGLSwapChain swapChain; + GLFWwindow* window = GetWindow(); + swapChain.Initialize(window, 800, 600); + + swapChain.Resize(1024, 768); + + EXPECT_EQ(swapChain.GetWidth(), 1024); + EXPECT_EQ(swapChain.GetHeight(), 768); + + swapChain.Shutdown(); +}