Skip to content

Commit

Permalink
tests: Add IDXGIVkInteropFactory mock
Browse files Browse the repository at this point in the history
  • Loading branch information
jp7677 committed Aug 22, 2023
1 parent 5e3bb2f commit 26452ea
Show file tree
Hide file tree
Showing 11 changed files with 20 additions and 17 deletions.
4 changes: 2 additions & 2 deletions tests/mock_factory.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class MockFactory : public dxvk::ResourceFactory {

public:
MockFactory(
std::unique_ptr<DXGIFactory1Mock> dxgiFactory1Mock,
std::unique_ptr<DXGIDxvkFactoryMock> dxgiFactory1Mock,
std::unique_ptr<VulkanMock> vulkanMock,
std::unique_ptr<NvmlMock> nvmlMock,
std::unique_ptr<LfxMock> lfxMock)
Expand Down Expand Up @@ -41,7 +41,7 @@ class MockFactory : public dxvk::ResourceFactory {
}

private:
std::unique_ptr<DXGIFactory1Mock> m_dxgiFactoryMock;
std::unique_ptr<DXGIDxvkFactoryMock> m_dxgiFactoryMock;
std::unique_ptr<VulkanMock> m_vulkanMock;
std::unique_ptr<NvmlMock> m_nvmlMock;
std::unique_ptr<LfxMock> m_lfxMock;
Expand Down
2 changes: 1 addition & 1 deletion tests/nvapi_d3d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ TEST_CASE("D3D methods succeed", "[.d3d]") {

TEST_CASE("D3D Reflex/LatencyFleX depending methods succeed", "[.d3d]") {
UnknownMock unknown;
auto dxgiFactory = std::make_unique<DXGIFactory1Mock>();
auto dxgiFactory = std::make_unique<DXGIDxvkFactoryMock>();
auto vulkan = std::make_unique<VulkanMock>();
auto nvml = std::make_unique<NvmlMock>();
auto lfx = std::make_unique<LfxMock>();
Expand Down
2 changes: 1 addition & 1 deletion tests/nvapi_d3d11.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ TEST_CASE("D3D11 methods succeed", "[.d3d11]") {
}

TEST_CASE("D3D11 MultiGPU methods succeed", "[.d3d11]") {
auto dxgiFactory = std::make_unique<DXGIFactory1Mock>();
auto dxgiFactory = std::make_unique<DXGIDxvkFactoryMock>();
auto vulkan = std::make_unique<VulkanMock>();
auto nvml = std::make_unique<NvmlMock>();
auto lfx = std::make_unique<LfxMock>();
Expand Down
2 changes: 1 addition & 1 deletion tests/nvapi_d3d12.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ TEST_CASE("D3D12 methods succeed", "[.d3d12]") {
}

SECTION("GetGraphicsCapabilities succeeds") {
auto dxgiFactory = std::make_unique<DXGIFactory1Mock>();
auto dxgiFactory = std::make_unique<DXGIDxvkFactoryMock>();
auto vulkan = std::make_unique<VulkanMock>();
auto nvml = std::make_unique<NvmlMock>();
auto lfx = std::make_unique<LfxMock>();
Expand Down
4 changes: 2 additions & 2 deletions tests/nvapi_sysinfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ TEST_CASE("GetErrorMessage returns OK", "[.sysinfo]") {
}

TEST_CASE("Initialize succeeds", "[.sysinfo]") {
auto dxgiFactory = std::make_unique<DXGIFactory1Mock>();
auto dxgiFactory = std::make_unique<DXGIDxvkFactoryMock>();
auto vulkan = std::make_unique<VulkanMock>();
auto nvml = std::make_unique<NvmlMock>();
auto lfx = std::make_unique<LfxMock>();
Expand Down Expand Up @@ -84,7 +84,7 @@ TEST_CASE("Initialize succeeds", "[.sysinfo]") {
}

TEST_CASE("Sysinfo methods succeed", "[.sysinfo]") {
auto dxgiFactory = std::make_unique<DXGIFactory1Mock>();
auto dxgiFactory = std::make_unique<DXGIDxvkFactoryMock>();
auto vulkan = std::make_unique<VulkanMock>();
auto nvml = std::make_unique<NvmlMock>();
auto lfx = std::make_unique<LfxMock>();
Expand Down
2 changes: 1 addition & 1 deletion tests/nvapi_sysinfo_hdr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ using namespace trompeloeil;
using namespace Catch::Matchers;

TEST_CASE("HDR related sysinfo methods succeed", "[.sysinfo-hdr]") {
auto dxgiFactory = std::make_unique<DXGIFactory1Mock>();
auto dxgiFactory = std::make_unique<DXGIDxvkFactoryMock>();
auto vulkan = std::make_unique<VulkanMock>();
auto nvml = std::make_unique<NvmlMock>();
auto lfx = std::make_unique<LfxMock>();
Expand Down
5 changes: 4 additions & 1 deletion tests/nvapi_sysinfo_mocks.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
#include "../src/sysinfo/vulkan.h"
#include "../src/sysinfo/nvml.h"

class DXGIFactory1Mock final : public trompeloeil::mock_interface<IDXGIFactory1> {
class IDXGIDxvkFactoryMock : public IDXGIFactory1, public IDXGIVkInteropFactory {};

class DXGIDxvkFactoryMock final : public trompeloeil::mock_interface<IDXGIDxvkFactoryMock> {
MAKE_MOCK2(QueryInterface, HRESULT(REFIID, void**), override);
MAKE_MOCK0(AddRef, ULONG(), override);
MAKE_MOCK0(Release, ULONG(), override);
Expand All @@ -20,6 +22,7 @@ class DXGIFactory1Mock final : public trompeloeil::mock_interface<IDXGIFactory1>
IMPLEMENT_MOCK2(CreateSoftwareAdapter);
IMPLEMENT_MOCK2(EnumAdapters1);
IMPLEMENT_MOCK0(IsCurrent);
IMPLEMENT_MOCK2(GetVulkanInstance);
};

class IDXGIDxvkAdapter : public IDXGIAdapter1, public IDXGIVkInteropAdapter {};
Expand Down
2 changes: 1 addition & 1 deletion tests/nvapi_sysinfo_nvml.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ using namespace trompeloeil;
using namespace Catch::Matchers;

TEST_CASE("NVML related sysinfo methods succeed", "[.sysinfo-nvml]") {
auto dxgiFactory = std::make_unique<DXGIFactory1Mock>();
auto dxgiFactory = std::make_unique<DXGIDxvkFactoryMock>();
auto vulkan = std::make_unique<VulkanMock>();
auto nvml = std::make_unique<NvmlMock>();
auto lfx = std::make_unique<LfxMock>();
Expand Down
2 changes: 1 addition & 1 deletion tests/nvapi_sysinfo_topo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ using namespace trompeloeil;
using namespace Catch::Matchers;

TEST_CASE("Topology methods succeed", "[.sysinfo-topo]") {
auto dxgiFactory = std::make_unique<DXGIFactory1Mock>();
auto dxgiFactory = std::make_unique<DXGIDxvkFactoryMock>();
auto vulkan = std::make_unique<VulkanMock>();
auto nvml = std::make_unique<NvmlMock>();
auto lfx = std::make_unique<LfxMock>();
Expand Down
6 changes: 3 additions & 3 deletions tests/resource_factory_util.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ using namespace trompeloeil;
using namespace dxvk;

void SetupResourceFactory(
std::unique_ptr<DXGIFactory1Mock> dxgiFactory,
std::unique_ptr<DXGIDxvkFactoryMock> dxgiFactory,
std::unique_ptr<VulkanMock> vulkan,
std::unique_ptr<NvmlMock> nvml,
std::unique_ptr<LfxMock> lfx) {
Expand All @@ -24,7 +24,7 @@ void ResetGlobals() {
}

[[nodiscard]] std::array<std::unique_ptr<expectation>, 18> ConfigureDefaultTestEnvironment(
DXGIFactory1Mock& dxgiFactory,
DXGIDxvkFactoryMock& dxgiFactory,
VulkanMock& vulkan,
NvmlMock& nvml,
LfxMock& lfx,
Expand Down Expand Up @@ -84,7 +84,7 @@ void ResetGlobals() {
}

[[nodiscard]] std::array<std::unique_ptr<expectation>, 33> ConfigureExtendedTestEnvironment(
DXGIFactory1Mock& dxgiFactory,
DXGIDxvkFactoryMock& dxgiFactory,
VulkanMock& vulkan,
NvmlMock& nvml,
LfxMock& lfx,
Expand Down
6 changes: 3 additions & 3 deletions tests/resource_factory_util.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,23 @@
#include "mock_factory.h"

void SetupResourceFactory(
std::unique_ptr<DXGIFactory1Mock> dxgiFactory,
std::unique_ptr<DXGIDxvkFactoryMock> dxgiFactory,
std::unique_ptr<VulkanMock> vulkan,
std::unique_ptr<NvmlMock> nvml,
std::unique_ptr<LfxMock> lfx);

void ResetGlobals();

[[nodiscard]] std::array<std::unique_ptr<trompeloeil::expectation>, 18> ConfigureDefaultTestEnvironment(
DXGIFactory1Mock& dxgiFactory,
DXGIDxvkFactoryMock& dxgiFactory,
VulkanMock& vulkan,
NvmlMock& nvml,
LfxMock& lfx,
DXGIDxvkAdapterMock& adapter,
DXGIOutput6Mock& output);

[[nodiscard]] std::array<std::unique_ptr<trompeloeil::expectation>, 33> ConfigureExtendedTestEnvironment(
DXGIFactory1Mock& dxgiFactory,
DXGIDxvkFactoryMock& dxgiFactory,
VulkanMock& vulkan,
NvmlMock& nvml,
LfxMock& lfx,
Expand Down

0 comments on commit 26452ea

Please sign in to comment.