Skip to content

Commit 44ebe80

Browse files
Move MockWddm body to WddmMock
This commit cleans the code after previously removed GMock from the MockWddm(GmockWddm) class by merging MockWddm class into WddmMock. Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
1 parent 37c78b9 commit 44ebe80

File tree

9 files changed

+131
-162
lines changed

9 files changed

+131
-162
lines changed

opencl/test/unit_test/os_interface/windows/device_command_stream_tests.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -801,6 +801,7 @@ TEST_F(WddmCommandStreamMockGdiTest, WhenFlushingThenWddmMakeResidentIsCalledFor
801801
ASSERT_NE(nullptr, commandBuffer);
802802
LinearStream cs(commandBuffer);
803803

804+
wddm->callBaseMakeResident = true;
804805
csr->makeResident(*commandBuffer);
805806

806807
EXPECT_EQ(1u, csr->getResidencyAllocations().size());
@@ -1137,6 +1138,7 @@ TEST_F(WddmCommandStreamTest, givenResidencyLoggingAvailableWhenFlushingCommandB
11371138
NEO::IoFunctions::mockFcloseCalled = 0u;
11381139

11391140
wddm->createPagingFenceLogger();
1141+
wddm->callBaseMakeResident = true;
11401142

11411143
EXPECT_EQ(1u, NEO::IoFunctions::mockFopenCalled);
11421144
EXPECT_EQ(1u, NEO::IoFunctions::mockVfptrinfCalled);

opencl/test/unit_test/os_interface/windows/wddm20_tests.cpp

Lines changed: 41 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -683,6 +683,7 @@ TEST_F(Wddm20Tests, GivenMultipleHandlesWhenMakingResidentThenAllocationListIsCo
683683
D3DKMT_HANDLE handles[2] = {ALLOCATION_HANDLE, ALLOCATION_HANDLE};
684684
gdi->getMakeResidentArg().NumAllocations = 0;
685685
gdi->getMakeResidentArg().AllocationList = nullptr;
686+
wddm->callBaseMakeResident = true;
686687

687688
bool error = wddm->makeResident(handles, 2, false, nullptr, 0x1000);
688689
EXPECT_TRUE(error);
@@ -697,6 +698,7 @@ TEST_F(Wddm20Tests, GivenMultipleHandlesWhenMakingResidentThenBytesToTrimIsCorre
697698
gdi->getMakeResidentArg().NumAllocations = 0;
698699
gdi->getMakeResidentArg().AllocationList = nullptr;
699700
gdi->getMakeResidentArg().NumBytesToTrim = 30;
701+
wddm->callBaseMakeResident = true;
700702

701703
uint64_t bytesToTrim = 0;
702704
bool success = wddm->makeResident(handles, 2, false, &bytesToTrim, 0x1000);
@@ -713,6 +715,7 @@ TEST_F(Wddm20Tests, WhenMakingNonResidentThenEvictIsCalled) {
713715
gdi->getEvictArg().hDevice = 0;
714716
gdi->getEvictArg().NumAllocations = 0;
715717
gdi->getEvictArg().NumBytesToTrim = 20;
718+
wddm->callBaseEvict = true;
716719

717720
uint64_t sizeToTrim = 10;
718721
wddm->evict(&handle, 1, sizeToTrim);
@@ -918,7 +921,7 @@ TEST_F(WddmLockWithMakeResidentTests, givenAllocationThatDoesntNeedMakeResidentB
918921

919922
TEST_F(WddmLockWithMakeResidentTests, givenAllocationThatNeedsMakeResidentBeforeLockWhenLockThenCallBlockingMakeResident) {
920923
wddm->lockResource(ALLOCATION_HANDLE, true, 0x1000);
921-
EXPECT_EQ(1u, mockTemporaryResources->makeResidentResult.called);
924+
EXPECT_EQ(1u, wddm->makeResidentResult.called);
922925
}
923926

924927
TEST_F(WddmLockWithMakeResidentTests, givenAllocationWhenApplyBlockingMakeResidentThenAcquireUniqueLock) {
@@ -934,6 +937,7 @@ TEST_F(WddmLockWithMakeResidentTests, givenAllocationWhenApplyBlockingMakeReside
934937
}
935938

936939
TEST_F(WddmLockWithMakeResidentTests, givenAllocationWhenApplyBlockingMakeResidentThenWaitForCurrentPagingFenceValue) {
940+
wddm->callBaseMakeResident = true;
937941
wddm->mockPagingFence = 0u;
938942
wddm->temporaryResources->makeResidentResource(ALLOCATION_HANDLE, 0x1000);
939943
UINT64 expectedCallNumber = NEO::wddmResidencyLoggingAvailable ? MockGdi::pagingFenceReturnValue + 1 : 0ull;
@@ -945,71 +949,71 @@ TEST_F(WddmLockWithMakeResidentTests, givenAllocationWhenApplyBlockingMakeReside
945949
TEST_F(WddmLockWithMakeResidentTests, givenAllocationWhenApplyBlockingMakeResidentAndMakeResidentCallFailsThenEvictTemporaryResourcesAndRetry) {
946950
MockWddmAllocation allocation(rootDeviceEnvironment->getGmmClientContext());
947951
allocation.handle = 0x3;
948-
MockWddm mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
949-
mockWddm.makeResidentResult = false;
952+
WddmMock mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
953+
mockWddm.makeResidentStatus = false;
950954
auto mockTemporaryResources = static_cast<MockWddmResidentAllocationsContainer *>(mockWddm.temporaryResources.get());
951955
mockWddm.temporaryResources->makeResidentResource(allocation.handle, 0x1000);
952956
EXPECT_EQ(1u, mockTemporaryResources->evictAllResourcesResult.called);
953-
EXPECT_EQ(allocation.handle, mockWddm.makeResidentParamsPassed[0].handles[0]);
954-
EXPECT_EQ(2u, mockWddm.makeResidentCalled);
957+
EXPECT_EQ(allocation.handle, mockWddm.makeResidentResult.handlePack[0]);
958+
EXPECT_EQ(2u, mockWddm.makeResidentResult.called);
955959
}
956960

957961
TEST_F(WddmLockWithMakeResidentTests, whenApplyBlockingMakeResidentAndTemporaryResourcesAreEvictedSuccessfullyThenCallMakeResidentOneMoreTime) {
958962
MockWddmAllocation allocation(rootDeviceEnvironment->getGmmClientContext());
959963
allocation.handle = 0x3;
960-
MockWddm mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
961-
mockWddm.makeResidentResult = false;
964+
WddmMock mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
965+
mockWddm.makeResidentStatus = false;
962966
auto mockTemporaryResources = static_cast<MockWddmResidentAllocationsContainer *>(mockWddm.temporaryResources.get());
963967
mockTemporaryResources->resourceHandles.push_back(allocation.handle);
964968
mockWddm.temporaryResources->makeResidentResource(allocation.handle, 0x1000);
965969
EXPECT_EQ(2u, mockTemporaryResources->evictAllResourcesResult.called);
966-
EXPECT_EQ(1u, mockWddm.evictCalled);
967-
EXPECT_EQ(allocation.handle, mockWddm.makeResidentParamsPassed[0].handles[0]);
968-
EXPECT_EQ(3u, mockWddm.makeResidentCalled);
970+
EXPECT_EQ(1u, mockWddm.evictResult.called);
971+
EXPECT_EQ(allocation.handle, mockWddm.makeResidentResult.handlePack[0]);
972+
EXPECT_EQ(3u, mockWddm.makeResidentResult.called);
969973
}
970974

971975
TEST_F(WddmLockWithMakeResidentTests, whenApplyBlockingMakeResidentAndMakeResidentStillFailsThenDontStoreTemporaryResource) {
972976
MockWddmAllocation allocation(rootDeviceEnvironment->getGmmClientContext());
973977
allocation.handle = 0x2;
974-
MockWddm mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
975-
mockWddm.makeResidentResult = false;
978+
WddmMock mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
979+
mockWddm.makeResidentStatus = false;
976980
auto mockTemporaryResources = static_cast<MockWddmResidentAllocationsContainer *>(mockWddm.temporaryResources.get());
977981
mockTemporaryResources->resourceHandles.push_back(0x1);
978982
EXPECT_EQ(1u, mockTemporaryResources->resourceHandles.size());
979983
mockWddm.temporaryResources->makeResidentResource(allocation.handle, 0x1000);
980984
EXPECT_EQ(0u, mockTemporaryResources->resourceHandles.size());
981-
EXPECT_EQ(1u, mockWddm.evictCalled);
982-
EXPECT_EQ(allocation.handle, mockWddm.makeResidentParamsPassed[0].handles[0]);
983-
EXPECT_EQ(3u, mockWddm.makeResidentCalled);
985+
EXPECT_EQ(1u, mockWddm.evictResult.called);
986+
EXPECT_EQ(allocation.handle, mockWddm.makeResidentResult.handlePack[0]);
987+
EXPECT_EQ(3u, mockWddm.makeResidentResult.called);
984988
}
985989

986990
TEST_F(WddmLockWithMakeResidentTests, whenApplyBlockingMakeResidentAndMakeResidentPassesAfterEvictThenStoreTemporaryResource) {
987991
MockWddmAllocation allocation(rootDeviceEnvironment->getGmmClientContext());
988992
allocation.handle = 0x2;
989-
MockWddm mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
993+
WddmMock mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
990994
mockWddm.makeResidentResults = {false, true};
991995
auto mockTemporaryResources = static_cast<MockWddmResidentAllocationsContainer *>(mockWddm.temporaryResources.get());
992996
mockTemporaryResources->resourceHandles.push_back(0x1);
993997
EXPECT_EQ(1u, mockTemporaryResources->resourceHandles.size());
994998
mockWddm.temporaryResources->makeResidentResource(allocation.handle, 0x1000);
995999
EXPECT_EQ(1u, mockTemporaryResources->resourceHandles.size());
9961000
EXPECT_EQ(0x2, mockTemporaryResources->resourceHandles.back());
997-
EXPECT_EQ(1u, mockWddm.evictCalled);
998-
EXPECT_EQ(allocation.handle, mockWddm.makeResidentParamsPassed[0].handles[0]);
999-
EXPECT_EQ(2u, mockWddm.makeResidentCalled);
1001+
EXPECT_EQ(1u, mockWddm.evictResult.called);
1002+
EXPECT_EQ(allocation.handle, mockWddm.makeResidentResult.handlePack[0]);
1003+
EXPECT_EQ(2u, mockWddm.makeResidentResult.called);
10001004
}
10011005

10021006
TEST_F(WddmLockWithMakeResidentTests, whenApplyBlockingMakeResidentAndMakeResidentPassesThenStoreTemporaryResource) {
10031007
MockWddmAllocation allocation(rootDeviceEnvironment->getGmmClientContext());
10041008
allocation.handle = 0x2;
1005-
MockWddm mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
1009+
WddmMock mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
10061010
auto mockTemporaryResources = static_cast<MockWddmResidentAllocationsContainer *>(mockWddm.temporaryResources.get());
10071011
mockTemporaryResources->resourceHandles.push_back(0x1);
10081012
mockWddm.temporaryResources->makeResidentResource(allocation.handle, 0x1000);
10091013
EXPECT_EQ(2u, mockTemporaryResources->resourceHandles.size());
10101014
EXPECT_EQ(0x2, mockTemporaryResources->resourceHandles.back());
1011-
EXPECT_EQ(allocation.handle, mockWddm.makeResidentParamsPassed[0].handles[0]);
1012-
EXPECT_EQ(1u, mockWddm.makeResidentCalled);
1015+
EXPECT_EQ(allocation.handle, mockWddm.makeResidentResult.handlePack[0]);
1016+
EXPECT_EQ(1u, mockWddm.makeResidentResult.called);
10131017
}
10141018

10151019
TEST_F(WddmLockWithMakeResidentTests, givenNoTemporaryResourcesWhenEvictingAllTemporaryResourcesThenEvictionIsNotApplied) {
@@ -1025,38 +1029,38 @@ TEST_F(WddmLockWithMakeResidentTests, whenEvictingAllTemporaryResourcesThenAcqui
10251029

10261030
TEST_F(WddmLockWithMakeResidentTests, whenEvictingAllTemporaryResourcesAndAllEvictionsSucceedThenReturnSuccess) {
10271031
MockWddmAllocation allocation(rootDeviceEnvironment->getGmmClientContext());
1028-
MockWddm mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
1032+
WddmMock mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
10291033
auto mockTemporaryResources = static_cast<MockWddmResidentAllocationsContainer *>(mockWddm.temporaryResources.get());
10301034
mockTemporaryResources->resourceHandles.push_back(allocation.handle);
10311035
mockWddm.getTemporaryResourcesContainer()->evictAllResources();
10321036
EXPECT_EQ(1u, mockTemporaryResources->evictAllResourcesResult.called);
10331037
EXPECT_EQ(MemoryOperationsStatus::SUCCESS, mockTemporaryResources->evictAllResourcesResult.operationSuccess);
1034-
EXPECT_EQ(1u, mockWddm.evictCalled);
1038+
EXPECT_EQ(1u, mockWddm.evictResult.called);
10351039
}
10361040

10371041
TEST_F(WddmLockWithMakeResidentTests, givenThreeAllocationsWhenEvictingAllTemporaryResourcesThenCallEvictForEachAllocationAndCleanList) {
1038-
MockWddm mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
1042+
WddmMock mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
10391043
auto mockTemporaryResources = static_cast<MockWddmResidentAllocationsContainer *>(mockWddm.temporaryResources.get());
10401044
constexpr uint32_t numAllocations = 3u;
10411045
for (auto i = 0u; i < numAllocations; i++) {
10421046
mockTemporaryResources->resourceHandles.push_back(i);
10431047
}
10441048
mockWddm.getTemporaryResourcesContainer()->evictAllResources();
10451049
EXPECT_TRUE(mockTemporaryResources->resourceHandles.empty());
1046-
EXPECT_EQ(1u, mockWddm.evictCalled);
1050+
EXPECT_EQ(1u, mockWddm.evictResult.called);
10471051
}
10481052

10491053
TEST_F(WddmLockWithMakeResidentTests, givenThreeAllocationsWhenEvictingAllTemporaryResourcesAndOneOfThemFailsThenReturnFail) {
1050-
MockWddm mockWddm(*executionEnvironment->rootDeviceEnvironments[0].get());
1051-
mockWddm.evictResult = false;
1054+
WddmMock mockWddm(*executionEnvironment->rootDeviceEnvironments[0].get());
1055+
mockWddm.evictStatus = false;
10521056
auto mockTemporaryResources = static_cast<MockWddmResidentAllocationsContainer *>(mockWddm.temporaryResources.get());
10531057
constexpr uint32_t numAllocations = 3u;
10541058
for (auto i = 0u; i < numAllocations; i++) {
10551059
mockTemporaryResources->resourceHandles.push_back(i);
10561060
}
10571061
mockWddm.getTemporaryResourcesContainer()->evictAllResources();
10581062
EXPECT_EQ(MemoryOperationsStatus::FAILED, mockTemporaryResources->evictAllResourcesResult.operationSuccess);
1059-
EXPECT_EQ(1u, mockWddm.evictCalled);
1063+
EXPECT_EQ(1u, mockWddm.evictResult.called);
10601064
}
10611065

10621066
TEST_F(WddmLockWithMakeResidentTests, givenNoTemporaryResourcesWhenEvictingTemporaryResourceThenEvictionIsNotApplied) {
@@ -1079,24 +1083,24 @@ TEST_F(WddmLockWithMakeResidentTests, whenEvictingNonExistingTemporaryResourceTh
10791083
}
10801084

10811085
TEST_F(WddmLockWithMakeResidentTests, whenEvictingTemporaryResourceAndEvictFailsThenReturnFail) {
1082-
MockWddm mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
1083-
mockWddm.evictResult = false;
1086+
WddmMock mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
1087+
mockWddm.evictStatus = false;
10841088
auto mockTemporaryResources = static_cast<MockWddmResidentAllocationsContainer *>(mockWddm.temporaryResources.get());
10851089
mockTemporaryResources->resourceHandles.push_back(ALLOCATION_HANDLE);
10861090
mockWddm.getTemporaryResourcesContainer()->evictResource(ALLOCATION_HANDLE);
10871091
EXPECT_TRUE(mockTemporaryResources->resourceHandles.empty());
10881092
EXPECT_EQ(MemoryOperationsStatus::FAILED, mockTemporaryResources->evictResourceResult.operationSuccess);
1089-
EXPECT_EQ(1u, mockWddm.evictCalled);
1093+
EXPECT_EQ(1u, mockWddm.evictResult.called);
10901094
}
10911095

10921096
TEST_F(WddmLockWithMakeResidentTests, whenEvictingTemporaryResourceAndEvictSucceedThenReturnSuccess) {
1093-
MockWddm mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
1097+
WddmMock mockWddm(*executionEnvironment->rootDeviceEnvironments[0]);
10941098
auto mockTemporaryResources = static_cast<MockWddmResidentAllocationsContainer *>(mockWddm.temporaryResources.get());
10951099
mockTemporaryResources->resourceHandles.push_back(ALLOCATION_HANDLE);
10961100
mockWddm.getTemporaryResourcesContainer()->evictResource(ALLOCATION_HANDLE);
10971101
EXPECT_TRUE(mockTemporaryResources->resourceHandles.empty());
10981102
EXPECT_EQ(MemoryOperationsStatus::SUCCESS, mockTemporaryResources->evictResourceResult.operationSuccess);
1099-
EXPECT_EQ(1u, mockWddm.evictCalled);
1103+
EXPECT_EQ(1u, mockWddm.evictResult.called);
11001104
}
11011105

11021106
TEST_F(WddmLockWithMakeResidentTests, whenEvictingTemporaryResourceThenOtherResourcesRemainOnTheList) {
@@ -1428,6 +1432,7 @@ TEST_F(WddmTest, GivenResidencyLoggingEnabledWhenMakeResidentSuccessThenExpectSi
14281432
DebugManagerStateRestore dbgRestore;
14291433
DebugManager.flags.WddmResidencyLogger.set(true);
14301434
wddm->callBaseCreatePagingLogger = false;
1435+
wddm->callBaseMakeResident = true;
14311436

14321437
wddm->createPagingFenceLogger();
14331438
EXPECT_NE(nullptr, wddm->residencyLogger.get());
@@ -1454,6 +1459,7 @@ TEST_F(WddmTest, GivenResidencyLoggingEnabledWhenMakeResidentFailThenExpectTrimR
14541459
DebugManagerStateRestore dbgRestore;
14551460
DebugManager.flags.WddmResidencyLogger.set(true);
14561461
wddm->callBaseCreatePagingLogger = false;
1462+
wddm->callBaseMakeResident = true;
14571463

14581464
wddm->createPagingFenceLogger();
14591465
EXPECT_NE(nullptr, wddm->residencyLogger.get());
@@ -1499,6 +1505,7 @@ TEST_F(WddmTest, GivenResidencyLoggingEnabledWhenMakeResidentAndWaitPagingThenEx
14991505
DebugManagerStateRestore dbgRestore;
15001506
DebugManager.flags.WddmResidencyLogger.set(true);
15011507
wddm->callBaseCreatePagingLogger = false;
1508+
wddm->callBaseMakeResident = true;
15021509

15031510
wddm->createPagingFenceLogger();
15041511
EXPECT_NE(nullptr, wddm->residencyLogger.get());

opencl/test/unit_test/os_interface/windows/wddm_memory_manager_tests.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2116,7 +2116,8 @@ TEST_F(WddmMemoryManagerTest2, givenReadOnlyMemoryWhenCreateAllocationFailsThenP
21162116
handleStorage.fragmentStorageData[0].fragmentSize = 0x1000;
21172117
handleStorage.fragmentStorageData[0].freeTheFragment = false;
21182118

2119-
wddm->createAllocationsAndMapGpuVaResult = STATUS_GRAPHICS_NO_VIDEO_MEMORY;
2119+
wddm->callBaseCreateAllocationsAndMapGpuVa = false;
2120+
wddm->createAllocationsAndMapGpuVaStatus = STATUS_GRAPHICS_NO_VIDEO_MEMORY;
21202121

21212122
auto result = memoryManager->populateOsHandles(handleStorage, 0);
21222123

@@ -2136,7 +2137,8 @@ TEST_F(WddmMemoryManagerTest2, givenReadOnlyMemoryPassedToPopulateOsHandlesWhenC
21362137
handleStorage.fragmentStorageData[1].cpuPtr = reinterpret_cast<void *>(0x2000);
21372138
handleStorage.fragmentStorageData[1].fragmentSize = 0x6000;
21382139

2139-
wddm->createAllocationsAndMapGpuVaResult = STATUS_GRAPHICS_NO_VIDEO_MEMORY;
2140+
wddm->callBaseCreateAllocationsAndMapGpuVa = false;
2141+
wddm->createAllocationsAndMapGpuVaStatus = STATUS_GRAPHICS_NO_VIDEO_MEMORY;
21402142

21412143
auto result = memoryManager->populateOsHandles(handleStorage, mockRootDeviceIndex);
21422144
auto hostPtrManager = static_cast<MockHostPtrManager *>(memoryManager->getHostPtrManager());

opencl/test/unit_test/os_interface/windows/wddm_memory_manager_tests.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ class WddmMemoryManagerFixtureWithGmockWddm : public ExecutionEnvironmentFixture
107107
void SetUp() override {
108108
// wddm is deleted by memory manager
109109

110-
wddm = new MockWddm(*executionEnvironment->rootDeviceEnvironments[0].get());
110+
wddm = new WddmMock(*executionEnvironment->rootDeviceEnvironments[0].get());
111111
ASSERT_NE(nullptr, wddm);
112112
auto preemptionMode = PreemptionHelper::getDefaultPreemptionMode(*defaultHwInfo);
113113
wddm->init();
@@ -128,7 +128,7 @@ class WddmMemoryManagerFixtureWithGmockWddm : public ExecutionEnvironmentFixture
128128
osContext->decRefInternal();
129129
}
130130

131-
MockWddm *wddm = nullptr;
131+
WddmMock *wddm = nullptr;
132132
std::unique_ptr<CommandStreamReceiver> csr;
133133
OSInterface *osInterface;
134134
OsContext *osContext;

0 commit comments

Comments
 (0)