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:
@@ -1,41 +1,35 @@
|
||||
#include "fixtures/D3D12TestFixture.h"
|
||||
#include "XCEngine/RHI/D3D12/D3D12CommandAllocator.h"
|
||||
|
||||
using namespace XCEngine::RHI;
|
||||
|
||||
TEST_F(D3D12TestFixture, CommandAllocator_Reset_Basic) {
|
||||
ComPtr<ID3D12CommandAllocator> allocator;
|
||||
HRESULT hr = GetDevice()->CreateCommandAllocator(
|
||||
D3D12_COMMAND_LIST_TYPE_DIRECT,
|
||||
IID_PPV_ARGS(&allocator)
|
||||
);
|
||||
ASSERT_HRESULT_SUCCEEDED(hr);
|
||||
auto allocator = std::make_unique<D3D12CommandAllocator>();
|
||||
ASSERT_TRUE(allocator->Initialize(GetDevice()->GetDevice(), CommandQueueType::Direct));
|
||||
|
||||
hr = allocator->Reset();
|
||||
ASSERT_HRESULT_SUCCEEDED(hr);
|
||||
allocator->Reset();
|
||||
EXPECT_TRUE(allocator->IsReady());
|
||||
}
|
||||
|
||||
TEST_F(D3D12TestFixture, CommandAllocator_Reset_Multiple) {
|
||||
ComPtr<ID3D12CommandAllocator> allocator;
|
||||
HRESULT hr = GetDevice()->CreateCommandAllocator(
|
||||
D3D12_COMMAND_LIST_TYPE_DIRECT,
|
||||
IID_PPV_ARGS(&allocator)
|
||||
);
|
||||
ASSERT_HRESULT_SUCCEEDED(hr);
|
||||
auto allocator = std::make_unique<D3D12CommandAllocator>();
|
||||
ASSERT_TRUE(allocator->Initialize(GetDevice()->GetDevice(), CommandQueueType::Direct));
|
||||
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
hr = allocator->Reset();
|
||||
ASSERT_HRESULT_SUCCEEDED(hr);
|
||||
allocator->Reset();
|
||||
EXPECT_TRUE(allocator->IsReady());
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(D3D12TestFixture, CommandAllocator_Create_DifferentTypes) {
|
||||
D3D12_COMMAND_LIST_TYPE types[] = {
|
||||
D3D12_COMMAND_LIST_TYPE_DIRECT,
|
||||
D3D12_COMMAND_LIST_TYPE_COMPUTE,
|
||||
D3D12_COMMAND_LIST_TYPE_COPY
|
||||
CommandQueueType types[] = {
|
||||
CommandQueueType::Direct,
|
||||
CommandQueueType::Compute,
|
||||
CommandQueueType::Copy
|
||||
};
|
||||
|
||||
for (auto type : types) {
|
||||
ComPtr<ID3D12CommandAllocator> allocator;
|
||||
HRESULT hr = GetDevice()->CreateCommandAllocator(type, IID_PPV_ARGS(&allocator));
|
||||
ASSERT_HRESULT_SUCCEEDED(hr);
|
||||
auto allocator = std::make_unique<D3D12CommandAllocator>();
|
||||
ASSERT_TRUE(allocator->Initialize(GetDevice()->GetDevice(), type));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user