refactor: improve test infrastructure and fix OpenGL GLAD initialization

- Rename D3D12Enum.h to D3D12Enums.h for naming consistency
- Fix OpenGL unit test GLAD initialization by using gladLoadGL()
  instead of gladLoadGLLoader(wglGetProcAddress) for fallback support
- Migrate remaining tests to use gtest_discover_tests for granular
  test discovery (math, core, containers, memory, threading, debug,
  components, scene, resources, input, opengl)
- Remove obsolete TEST_RESOURCES_DIR and copy_directory commands
  from OpenGL unit test CMakeLists (minimal/Res doesn't exist)
- Update TEST_SPEC.md with performance metrics and per-module
  build/test commands for faster development workflow
- Update CMake path references to use lowercase paths
This commit is contained in:
2026-03-23 00:43:02 +08:00
parent 0f0ab8922a
commit f427699ac6
100 changed files with 1191 additions and 1136 deletions

View File

@@ -85,7 +85,7 @@ add_library(XCEngine STATIC
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/RHIEnums.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/RHIFactory.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/RHIDescriptorPool.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Enum.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Enums.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12Device.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12CommandQueue.h
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine/RHI/D3D12/D3D12CommandAllocator.h
@@ -155,7 +155,7 @@ add_library(XCEngine STATIC
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLRenderTargetView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLDepthStencilView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/OpenGL/OpenGLScreenshot.cpp
${CMAKE_SOURCE_DIR}/tests/OpenGL/package/src/glad.c
${CMAKE_SOURCE_DIR}/tests/opengl/package/src/glad.c
# RHI Factory
${CMAKE_CURRENT_SOURCE_DIR}/src/RHI/RHIFactory.cpp
@@ -283,7 +283,7 @@ target_include_directories(XCEngine PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include/XCEngine
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_CURRENT_SOURCE_DIR}/third_party
${CMAKE_SOURCE_DIR}/tests/OpenGL/package/include
${CMAKE_SOURCE_DIR}/tests/opengl/package/include
)
if(MSVC)

View File

@@ -5,7 +5,7 @@
#include <string>
#include "../RHIBuffer.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -8,7 +8,7 @@
#include "../RHICommandList.h"
#include "../RHIEnums.h"
#include "../RHITypes.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -5,7 +5,7 @@
#include "../RHICommandQueue.h"
#include "../RHIEnums.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -4,7 +4,7 @@
#include <wrl/client.h>
#include "../RHIEnums.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -6,7 +6,7 @@
#include "../RHIEnums.h"
#include "../RHITypes.h"
#include "../RHIDescriptorPool.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -9,7 +9,7 @@
#include "../RHIDevice.h"
#include "../RHIEnums.h"
#include "../RHITypes.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -293,4 +293,4 @@ inline D3D12_COMMAND_LIST_TYPE ToD3D12(CommandQueueType type) {
}
} // namespace RHI
} // namespace XCEngine
} // namespace XCEngine

View File

@@ -6,7 +6,7 @@
#include "../RHIPipelineState.h"
#include "../RHIEnums.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -4,7 +4,7 @@
#include <wrl/client.h>
#include <cstdint>
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -4,7 +4,7 @@
#include <wrl/client.h>
#include "../RHIEnums.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -5,7 +5,7 @@
#include <vector>
#include "../RHIEnums.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -4,7 +4,7 @@
#include <wrl/client.h>
#include "../RHISampler.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -6,7 +6,7 @@
#include <string>
#include "../RHIShader.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
#include "../RHITypes.h"
using Microsoft::WRL::ComPtr;

View File

@@ -4,7 +4,7 @@
#include <wrl/client.h>
#include "../RHIEnums.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -6,7 +6,7 @@
#include <vector>
#include "../RHISwapChain.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
#include "D3D12Texture.h"
using Microsoft::WRL::ComPtr;

View File

@@ -5,7 +5,7 @@
#include <string>
#include "../RHITexture.h"
#include "D3D12Enum.h"
#include "D3D12Enums.h"
using Microsoft::WRL::ComPtr;

View File

@@ -1,5 +1,5 @@
#include "XCEngine/RHI/D3D12/D3D12CommandAllocator.h"
#include "XCEngine/RHI/D3D12/D3D12Enum.h"
#include "XCEngine/RHI/D3D12/D3D12Enums.h"
namespace XCEngine {
namespace RHI {

View File

@@ -217,7 +217,9 @@ RHIBuffer* D3D12Device::CreateBuffer(const BufferDesc& desc) {
RHITexture* D3D12Device::CreateTexture(const TextureDesc& desc) {
auto* texture = new D3D12Texture();
D3D12_RESOURCE_DESC d3d12Desc = {};
d3d12Desc.Dimension = static_cast<D3D12_RESOURCE_DIMENSION>(desc.textureType);
d3d12Desc.Dimension = ToD3D12(static_cast<TextureType>(desc.textureType));
d3d12Desc.Width = desc.width;
d3d12Desc.Height = desc.height;
d3d12Desc.DepthOrArraySize = desc.depth;