diff --git a/runtime/dll/linux/create_drm_memory_manager.cpp b/runtime/dll/linux/create_drm_memory_manager.cpp index b34a481fb6..8ad1f39258 100644 --- a/runtime/dll/linux/create_drm_memory_manager.cpp +++ b/runtime/dll/linux/create_drm_memory_manager.cpp @@ -13,8 +13,7 @@ namespace OCLRT { std::unique_ptr MemoryManager::createMemoryManager(ExecutionEnvironment &executionEnvironment) { - return std::make_unique(executionEnvironment.osInterface->get()->getDrm(), - gemCloseWorkerMode::gemCloseWorkerActive, + return std::make_unique(gemCloseWorkerMode::gemCloseWorkerActive, DebugManager.flags.EnableForcePin.get(), true, executionEnvironment); diff --git a/runtime/os_interface/linux/drm_memory_manager.cpp b/runtime/os_interface/linux/drm_memory_manager.cpp index fda6ea6012..77a4097656 100644 --- a/runtime/os_interface/linux/drm_memory_manager.cpp +++ b/runtime/os_interface/linux/drm_memory_manager.cpp @@ -9,6 +9,7 @@ #include "runtime/command_stream/command_stream_receiver.h" #include "runtime/device/device.h" +#include "runtime/execution_environment/execution_environment.h" #include "runtime/gmm_helper/gmm.h" #include "runtime/gmm_helper/gmm_helper.h" #include "runtime/gmm_helper/resource_info.h" @@ -19,6 +20,7 @@ #include "runtime/memory_manager/host_ptr_manager.h" #include "runtime/os_interface/32bit_memory.h" #include "runtime/os_interface/linux/os_context_linux.h" +#include "runtime/os_interface/linux/os_interface.h" #include "drm/i915_drm.h" @@ -27,12 +29,11 @@ namespace OCLRT { -DrmMemoryManager::DrmMemoryManager(Drm *drm, - gemCloseWorkerMode mode, +DrmMemoryManager::DrmMemoryManager(gemCloseWorkerMode mode, bool forcePinAllowed, bool validateHostPtrMemory, ExecutionEnvironment &executionEnvironment) : MemoryManager(executionEnvironment), - drm(drm), + drm(executionEnvironment.osInterface->get()->getDrm()), pinBB(nullptr), forcePinEnabled(forcePinAllowed), validateHostPtrMemory(validateHostPtrMemory) { diff --git a/runtime/os_interface/linux/drm_memory_manager.h b/runtime/os_interface/linux/drm_memory_manager.h index e6a576fb3e..7e2839141b 100644 --- a/runtime/os_interface/linux/drm_memory_manager.h +++ b/runtime/os_interface/linux/drm_memory_manager.h @@ -23,8 +23,7 @@ class Drm; class DrmMemoryManager : public MemoryManager { public: - DrmMemoryManager(Drm *drm, - gemCloseWorkerMode mode, + DrmMemoryManager(gemCloseWorkerMode mode, bool forcePinAllowed, bool validateHostPtrMemory, ExecutionEnvironment &executionEnvironment); diff --git a/unit_tests/mocks/linux/mock_drm_memory_manager.h b/unit_tests/mocks/linux/mock_drm_memory_manager.h index 7824e8cc22..1e9c117c84 100644 --- a/unit_tests/mocks/linux/mock_drm_memory_manager.h +++ b/unit_tests/mocks/linux/mock_drm_memory_manager.h @@ -56,11 +56,10 @@ class TestedDrmMemoryManager : public MemoryManagerCreate { using DrmMemoryManager::sharingBufferObjects; using MemoryManager::allocateGraphicsMemoryInDevicePool; - TestedDrmMemoryManager(Drm *drm, ExecutionEnvironment &executionEnvironment) : MemoryManagerCreate(drm, - gemCloseWorkerMode::gemCloseWorkerInactive, - false, - false, - executionEnvironment) { + TestedDrmMemoryManager(ExecutionEnvironment &executionEnvironment) : MemoryManagerCreate(gemCloseWorkerMode::gemCloseWorkerInactive, + false, + false, + executionEnvironment) { this->lseekFunction = &lseekMock; this->mmapFunction = &mmapMock; this->munmapFunction = &munmapMock; @@ -71,11 +70,10 @@ class TestedDrmMemoryManager : public MemoryManagerCreate { munmapMockCallCount = 0; hostPtrManager.reset(new MockHostPtrManager); }; - TestedDrmMemoryManager(Drm *drm, - bool enableLocalMemory, + TestedDrmMemoryManager(bool enableLocalMemory, bool allowForcePin, bool validateHostPtrMemory, - ExecutionEnvironment &executionEnvironment) : MemoryManagerCreate(false, enableLocalMemory, drm, + ExecutionEnvironment &executionEnvironment) : MemoryManagerCreate(false, enableLocalMemory, gemCloseWorkerMode::gemCloseWorkerInactive, allowForcePin, validateHostPtrMemory, diff --git a/unit_tests/mt_tests/os_interface/linux/drm_memory_manager_mt_tests.cpp b/unit_tests/mt_tests/os_interface/linux/drm_memory_manager_mt_tests.cpp index 1adfb4dac1..671765482c 100644 --- a/unit_tests/mt_tests/os_interface/linux/drm_memory_manager_mt_tests.cpp +++ b/unit_tests/mt_tests/os_interface/linux/drm_memory_manager_mt_tests.cpp @@ -7,6 +7,7 @@ #include "runtime/execution_environment/execution_environment.h" #include "runtime/os_interface/linux/drm_memory_manager.h" +#include "runtime/os_interface/linux/os_interface.h" #include "unit_tests/mocks/linux/mock_drm_memory_manager.h" #include "unit_tests/os_interface/linux/device_command_stream_fixture.h" @@ -33,8 +34,10 @@ TEST(DrmMemoryManagerTest, givenDrmMemoryManagerWhenSharedAllocationIsCreatedFro } }; ExecutionEnvironment executionEnvironment; + executionEnvironment.osInterface = std::make_unique(); auto mock = make_unique(0); - auto memoryManager = make_unique(mock.get(), executionEnvironment); + executionEnvironment.osInterface->get()->setDrm(mock.get()); + auto memoryManager = make_unique(executionEnvironment); osHandle handle = 3; constexpr size_t maxThreads = 10; @@ -95,8 +98,10 @@ TEST(DrmMemoryManagerTest, givenMultipleThreadsWhenSharedAllocationIsCreatedThen }; ExecutionEnvironment executionEnvironment; + executionEnvironment.osInterface = std::make_unique(); auto mock = make_unique(0); - auto memoryManager = make_unique(mock.get(), executionEnvironment); + executionEnvironment.osInterface->get()->setDrm(mock.get()); + auto memoryManager = make_unique(executionEnvironment); osHandle handle = 3; constexpr size_t maxThreads = 10; diff --git a/unit_tests/os_interface/linux/create_drm_memory_manager.cpp b/unit_tests/os_interface/linux/create_drm_memory_manager.cpp index 214b18ee27..260fd48749 100644 --- a/unit_tests/os_interface/linux/create_drm_memory_manager.cpp +++ b/unit_tests/os_interface/linux/create_drm_memory_manager.cpp @@ -19,8 +19,7 @@ std::unique_ptr MemoryManager::createMemoryManager(ExecutionEnvir if (overrideMemoryManagerCreation) { return std::make_unique(executionEnvironment); } - return std::make_unique(executionEnvironment.osInterface->get()->getDrm(), - gemCloseWorkerMode::gemCloseWorkerInactive, + return std::make_unique(gemCloseWorkerMode::gemCloseWorkerInactive, DebugManager.flags.EnableForcePin.get(), true, executionEnvironment); diff --git a/unit_tests/os_interface/linux/drm_command_stream_mm_tests.cpp b/unit_tests/os_interface/linux/drm_command_stream_mm_tests.cpp index 068a3f8183..72816d69bb 100644 --- a/unit_tests/os_interface/linux/drm_command_stream_mm_tests.cpp +++ b/unit_tests/os_interface/linux/drm_command_stream_mm_tests.cpp @@ -32,8 +32,7 @@ HWTEST_F(DrmCommandStreamMMTest, MMwithPinBB) { DrmCommandStreamReceiver csr(executionEnvironment, gemCloseWorkerMode::gemCloseWorkerInactive); - auto memoryManager = new DrmMemoryManager(executionEnvironment.osInterface->get()->getDrm(), - gemCloseWorkerInactive, + auto memoryManager = new DrmMemoryManager(gemCloseWorkerInactive, DebugManager.flags.EnableForcePin.get(), true, executionEnvironment); @@ -55,8 +54,7 @@ HWTEST_F(DrmCommandStreamMMTest, givenForcePinDisabledWhenMemoryManagerIsCreated DrmCommandStreamReceiver csr(executionEnvironment, gemCloseWorkerMode::gemCloseWorkerInactive); - auto memoryManager = new DrmMemoryManager(executionEnvironment.osInterface->get()->getDrm(), - gemCloseWorkerInactive, + auto memoryManager = new DrmMemoryManager(gemCloseWorkerInactive, DebugManager.flags.EnableForcePin.get(), true, executionEnvironment); diff --git a/unit_tests/os_interface/linux/drm_command_stream_tests.cpp b/unit_tests/os_interface/linux/drm_command_stream_tests.cpp index b190509d26..4bca3ec563 100644 --- a/unit_tests/os_interface/linux/drm_command_stream_tests.cpp +++ b/unit_tests/os_interface/linux/drm_command_stream_tests.cpp @@ -55,8 +55,7 @@ class DrmCommandStreamFixture { // Memory manager creates pinBB with ioctl, expect one call EXPECT_CALL(*mock, ioctl(::testing::_, ::testing::_)) .Times(1); - memoryManager = new DrmMemoryManager(executionEnvironment.osInterface->get()->getDrm(), - gemCloseWorkerActive, + memoryManager = new DrmMemoryManager(gemCloseWorkerActive, DebugManager.flags.EnableForcePin.get(), true, executionEnvironment); @@ -584,8 +583,7 @@ class DrmCommandStreamEnhancedFixture tCsr = new TestedDrmCommandStreamReceiver(*executionEnvironment); csr = tCsr; ASSERT_NE(nullptr, csr); - mm = new DrmMemoryManager(executionEnvironment->osInterface->get()->getDrm(), - gemCloseWorkerInactive, + mm = new DrmMemoryManager(gemCloseWorkerInactive, DebugManager.flags.EnableForcePin.get(), true, *executionEnvironment); diff --git a/unit_tests/os_interface/linux/drm_gem_close_worker_tests.cpp b/unit_tests/os_interface/linux/drm_gem_close_worker_tests.cpp index d1e267face..65ad5ee733 100644 --- a/unit_tests/os_interface/linux/drm_gem_close_worker_tests.cpp +++ b/unit_tests/os_interface/linux/drm_gem_close_worker_tests.cpp @@ -13,6 +13,7 @@ #include "runtime/os_interface/linux/drm_command_stream.h" #include "runtime/os_interface/linux/drm_gem_close_worker.h" #include "runtime/os_interface/linux/drm_memory_manager.h" +#include "runtime/os_interface/linux/os_interface.h" #include "test.h" #include "unit_tests/os_interface/linux/device_command_stream_fixture.h" @@ -66,8 +67,10 @@ class DrmGemCloseWorkerFixture { this->drmMock->gem_close_cnt = 0; this->drmMock->gem_close_expected = 0; - this->mm = new DrmMemoryManager(this->drmMock, - gemCloseWorkerMode::gemCloseWorkerInactive, + executionEnvironment.osInterface = std::make_unique(); + executionEnvironment.osInterface->get()->setDrm(drmMock); + + this->mm = new DrmMemoryManager(gemCloseWorkerMode::gemCloseWorkerInactive, false, false, executionEnvironment); diff --git a/unit_tests/os_interface/linux/drm_memory_manager_allocate_in_device_pool_tests.cpp b/unit_tests/os_interface/linux/drm_memory_manager_allocate_in_device_pool_tests.cpp index 8b63323276..118ce97db4 100644 --- a/unit_tests/os_interface/linux/drm_memory_manager_allocate_in_device_pool_tests.cpp +++ b/unit_tests/os_interface/linux/drm_memory_manager_allocate_in_device_pool_tests.cpp @@ -7,6 +7,7 @@ #include "runtime/execution_environment/execution_environment.h" #include "runtime/os_interface/linux/drm_memory_manager.h" +#include "runtime/os_interface/linux/os_interface.h" #include "unit_tests/mocks/linux/mock_drm_memory_manager.h" #include "gtest/gtest.h" @@ -17,7 +18,9 @@ using AllocationData = TestedDrmMemoryManager::AllocationData; TEST(DrmMemoryManagerSimpleTest, givenDrmMemoryManagerWhenAllocateInDevicePoolIsCalledThenNullptrAndStatusRetryIsReturned) { ExecutionEnvironment executionEnvironment; - TestedDrmMemoryManager memoryManager(Drm::get(0), executionEnvironment); + executionEnvironment.osInterface = std::make_unique(); + executionEnvironment.osInterface->get()->setDrm(Drm::get(0)); + TestedDrmMemoryManager memoryManager(executionEnvironment); MemoryManager::AllocationStatus status = MemoryManager::AllocationStatus::Success; AllocationData allocData; allocData.size = MemoryConstants::pageSize; diff --git a/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp b/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp index 2c0b8fac45..e2acc41905 100644 --- a/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp +++ b/unit_tests/os_interface/linux/drm_memory_manager_tests.cpp @@ -99,7 +99,7 @@ TEST_F(DrmMemoryManagerTest, GivenGraphicsAllocationWhenAddAndRemoveAllocationTo } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenforcePinAllowedWhenMemoryManagerIsCreatedThenPinBbIsCreated) { - auto memoryManager = std::make_unique(this->mock.get(), false, true, false, *executionEnvironment); + auto memoryManager = std::make_unique(false, true, false, *executionEnvironment); EXPECT_NE(nullptr, memoryManager->getPinBB()); } @@ -107,13 +107,12 @@ TEST_F(DrmMemoryManagerTest, pinBBisCreated) { mock->ioctl_expected.gemUserptr = 1; mock->ioctl_expected.gemClose = 1; - auto memoryManager = std::make_unique(this->mock, false, true, false, *executionEnvironment); + auto memoryManager = std::make_unique(false, true, false, *executionEnvironment); EXPECT_NE(nullptr, memoryManager->getPinBB()); } TEST_F(DrmMemoryManagerTest, givenNotAllowedForcePinWhenMemoryManagerIsCreatedThenPinBBIsNotCreated) { - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(this->mock, - false, + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, false, *executionEnvironment)); @@ -123,7 +122,7 @@ TEST_F(DrmMemoryManagerTest, givenNotAllowedForcePinWhenMemoryManagerIsCreatedTh TEST_F(DrmMemoryManagerTest, pinBBnotCreatedWhenIoctlFailed) { mock->ioctl_expected.gemUserptr = 1; mock->ioctl_res = -1; - auto memoryManager = new (std::nothrow) TestedDrmMemoryManager(this->mock, false, true, false, *executionEnvironment); + auto memoryManager = new (std::nothrow) TestedDrmMemoryManager(false, true, false, *executionEnvironment); EXPECT_EQ(nullptr, memoryManager->getPinBB()); mock->ioctl_res = 0; delete memoryManager; @@ -135,7 +134,7 @@ TEST_F(DrmMemoryManagerTest, pinAfterAllocateWhenAskedAndAllowedAndBigAllocation mock->ioctl_expected.gemWait = 1; mock->ioctl_expected.gemClose = 2; - auto memoryManager = std::make_unique(this->mock, false, true, false, *executionEnvironment); + auto memoryManager = std::make_unique(false, true, false, *executionEnvironment); ASSERT_NE(nullptr, memoryManager->getPinBB()); auto alloc = static_cast(memoryManager->allocateGraphicsMemoryWithProperties(createAllocationProperties(10 * MemoryConstants::megaByte, true))); @@ -151,7 +150,7 @@ TEST_F(DrmMemoryManagerTest, givenDrmContextIdWhenAllocationIsCreatedThenPinWith mock->ioctl_expected.gemWait = 1; mock->ioctl_expected.gemClose = 2; - auto memoryManager = std::make_unique(this->mock, false, true, false, *executionEnvironment); + auto memoryManager = std::make_unique(false, true, false, *executionEnvironment); auto &osContextLinux = static_cast(memoryManager->getDefaultCommandStreamReceiver(0)->getOsContext()); auto drmContextId = osContextLinux.getDrmContextId(); ASSERT_NE(nullptr, memoryManager->getPinBB()); @@ -168,7 +167,7 @@ TEST_F(DrmMemoryManagerTest, doNotPinAfterAllocateWhenAskedAndAllowedButSmallAll mock->ioctl_expected.gemWait = 1; mock->ioctl_expected.gemClose = 2; - auto memoryManager = std::make_unique(this->mock, false, true, false, *executionEnvironment); + auto memoryManager = std::make_unique(false, true, false, *executionEnvironment); ASSERT_NE(nullptr, memoryManager->getPinBB()); // one page is too small for early pinning @@ -184,7 +183,7 @@ TEST_F(DrmMemoryManagerTest, doNotPinAfterAllocateWhenNotAskedButAllowed) { mock->ioctl_expected.gemClose = 2; mock->ioctl_expected.gemWait = 1; - auto memoryManager = std::make_unique(this->mock, false, true, false, *executionEnvironment); + auto memoryManager = std::make_unique(false, true, false, *executionEnvironment); ASSERT_NE(nullptr, memoryManager->getPinBB()); auto alloc = static_cast(memoryManager->allocateGraphicsMemoryWithProperties(createAllocationProperties(MemoryConstants::pageSize, false))); @@ -199,7 +198,7 @@ TEST_F(DrmMemoryManagerTest, doNotPinAfterAllocateWhenAskedButNotAllowed) { mock->ioctl_expected.gemWait = 1; mock->ioctl_expected.gemClose = 1; - auto memoryManager = std::make_unique(this->mock, false, false, false, *executionEnvironment); + auto memoryManager = std::make_unique(false, false, false, *executionEnvironment); auto alloc = static_cast(memoryManager->allocateGraphicsMemoryWithProperties(createAllocationProperties(MemoryConstants::pageSize, true))); ASSERT_NE(nullptr, alloc); @@ -215,7 +214,7 @@ TEST_F(DrmMemoryManagerTest, pinAfterAllocateWhenAskedAndAllowedAndBigAllocation mock->ioctl_expected.execbuffer2 = 1; mock->ioctl_expected.gemWait = 1; - auto memoryManager = std::make_unique(this->mock, false, true, false, *executionEnvironment); + auto memoryManager = std::make_unique(false, true, false, *executionEnvironment); ASSERT_NE(nullptr, memoryManager->getPinBB()); allocationData.size = 10 * 1024 * 1024; @@ -234,7 +233,7 @@ TEST_F(DrmMemoryManagerTest, givenSmallAllocationHostPtrAllocationWhenForcePinIs mock->ioctl_expected.gemWait = 1; mock->ioctl_expected.gemClose = 2; - auto memoryManager = std::make_unique(this->mock, false, true, false, *executionEnvironment); + auto memoryManager = std::make_unique(false, true, false, *executionEnvironment); ASSERT_NE(nullptr, memoryManager->getPinBB()); // one page is too small for early pinning @@ -255,7 +254,7 @@ TEST_F(DrmMemoryManagerTest, doNotPinAfterAllocateWhenNotAskedButAllowedHostPtr) mock->ioctl_expected.gemWait = 1; mock->ioctl_expected.gemClose = 2; - auto memoryManager = std::make_unique(this->mock, false, true, false, *executionEnvironment); + auto memoryManager = std::make_unique(false, true, false, *executionEnvironment); ASSERT_NE(nullptr, memoryManager->getPinBB()); allocationData.size = 4 * 1024; @@ -274,7 +273,7 @@ TEST_F(DrmMemoryManagerTest, doNotPinAfterAllocateWhenAskedButNotAllowedHostPtr) mock->ioctl_expected.gemWait = 1; mock->ioctl_expected.gemClose = 1; - auto memoryManager = std::make_unique(this->mock, false, false, false, *executionEnvironment); + auto memoryManager = std::make_unique(false, false, false, *executionEnvironment); allocationData.size = 4 * 1024; allocationData.hostPtr = ::alignedMalloc(allocationData.size, 4096); @@ -301,12 +300,12 @@ TEST_F(DrmMemoryManagerTest, UnreferenceNullPtr) { } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenDrmMemoryManagerCreatedWithGemCloseWorkerModeInactiveThenGemCloseWorkerIsNotCreated) { - DrmMemoryManager drmMemoryManger(this->mock.get(), gemCloseWorkerMode::gemCloseWorkerInactive, false, false, *executionEnvironment); + DrmMemoryManager drmMemoryManger(gemCloseWorkerMode::gemCloseWorkerInactive, false, false, *executionEnvironment); EXPECT_EQ(nullptr, drmMemoryManger.peekGemCloseWorker()); } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenDrmMemoryManagerCreatedWithGemCloseWorkerActiveThenGemCloseWorkerIsCreated) { - DrmMemoryManager drmMemoryManger(this->mock.get(), gemCloseWorkerMode::gemCloseWorkerActive, false, false, *executionEnvironment); + DrmMemoryManager drmMemoryManger(gemCloseWorkerMode::gemCloseWorkerActive, false, false, *executionEnvironment); EXPECT_NE(nullptr, drmMemoryManger.peekGemCloseWorker()); } @@ -545,8 +544,7 @@ TEST_F(DrmMemoryManagerTest, NullOsHandleStorageAskedForPopulationReturnsFilledP } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenEnabledHostMemoryValidationWhenReadOnlyPointerCausesPinningFailWithEfaultThenPopulateOsHandlesReturnsInvalidHostPointerError) { - std::unique_ptr testedMemoryManager(new (std::nothrow) TestedDrmMemoryManager(this->mock.get(), - false, + std::unique_ptr testedMemoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, true, *executionEnvironment)); @@ -578,8 +576,7 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenEnabledHostMemoryValid } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenEnabledHostMemoryValidationWhenPinningFailWithErrorDifferentThanEfaultThenPopulateOsHandlesReturnsError) { - std::unique_ptr testedMemoryManager(new (std::nothrow) TestedDrmMemoryManager(this->mock.get(), - false, + std::unique_ptr testedMemoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, true, *executionEnvironment)); @@ -2356,35 +2353,30 @@ TEST(MmapFlags, givenVariousMmapParametersGetTimeDeltaForTheOperation) { } } -TEST(DrmMemoryManager, givenDefaultMemoryManagerWhenItIsCreatedThenAsyncDeleterEnabledIsTrue) { - ExecutionEnvironment executionEnvironment; - DrmMemoryManager memoryManager(Drm::get(0), gemCloseWorkerMode::gemCloseWorkerInactive, false, true, executionEnvironment); +TEST_F(DrmMemoryManagerBasic, givenDefaultMemoryManagerWhenItIsCreatedThenAsyncDeleterEnabledIsTrue) { + DrmMemoryManager memoryManager(gemCloseWorkerMode::gemCloseWorkerInactive, false, true, executionEnvironment); EXPECT_FALSE(memoryManager.isAsyncDeleterEnabled()); EXPECT_EQ(nullptr, memoryManager.getDeferredDeleter()); } -TEST(DrmMemoryManager, givenEnabledAsyncDeleterFlagWhenMemoryManagerIsCreatedThenAsyncDeleterEnabledIsFalseAndDeleterIsNullptr) { - ExecutionEnvironment executionEnvironment; +TEST_F(DrmMemoryManagerBasic, givenEnabledAsyncDeleterFlagWhenMemoryManagerIsCreatedThenAsyncDeleterEnabledIsFalseAndDeleterIsNullptr) { DebugManagerStateRestore dbgStateRestore; DebugManager.flags.EnableDeferredDeleter.set(true); - DrmMemoryManager memoryManager(Drm::get(0), gemCloseWorkerMode::gemCloseWorkerInactive, false, true, executionEnvironment); + DrmMemoryManager memoryManager(gemCloseWorkerMode::gemCloseWorkerInactive, false, true, executionEnvironment); EXPECT_FALSE(memoryManager.isAsyncDeleterEnabled()); EXPECT_EQ(nullptr, memoryManager.getDeferredDeleter()); } -TEST(DrmMemoryManager, givenDisabledAsyncDeleterFlagWhenMemoryManagerIsCreatedThenAsyncDeleterEnabledIsFalseAndDeleterIsNullptr) { - ExecutionEnvironment executionEnvironment; +TEST_F(DrmMemoryManagerBasic, givenDisabledAsyncDeleterFlagWhenMemoryManagerIsCreatedThenAsyncDeleterEnabledIsFalseAndDeleterIsNullptr) { DebugManagerStateRestore dbgStateRestore; DebugManager.flags.EnableDeferredDeleter.set(false); - DrmMemoryManager memoryManager(Drm::get(0), gemCloseWorkerMode::gemCloseWorkerInactive, false, true, executionEnvironment); + DrmMemoryManager memoryManager(gemCloseWorkerMode::gemCloseWorkerInactive, false, true, executionEnvironment); EXPECT_FALSE(memoryManager.isAsyncDeleterEnabled()); EXPECT_EQ(nullptr, memoryManager.getDeferredDeleter()); } -TEST(DrmMemoryManager, givenDefaultDrmMemoryManagerWhenItIsQueriedForInternalHeapBaseThenInternalHeapBaseIsReturned) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), - false, +TEST_F(DrmMemoryManagerBasic, givenDefaultDrmMemoryManagerWhenItIsQueriedForInternalHeapBaseThenInternalHeapBaseIsReturned) { + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, true, true, executionEnvironment)); @@ -2393,10 +2385,8 @@ TEST(DrmMemoryManager, givenDefaultDrmMemoryManagerWhenItIsQueriedForInternalHea EXPECT_EQ(heapBase, memoryManager->getInternalHeapBaseAddress()); } -TEST(DrmMemoryManager, givenMemoryManagerWithEnabledHostMemoryValidationWhenFeatureIsQueriedThenTrueIsReturned) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), - false, +TEST_F(DrmMemoryManagerBasic, givenMemoryManagerWithEnabledHostMemoryValidationWhenFeatureIsQueriedThenTrueIsReturned) { + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, true, executionEnvironment)); @@ -2404,10 +2394,8 @@ TEST(DrmMemoryManager, givenMemoryManagerWithEnabledHostMemoryValidationWhenFeat EXPECT_TRUE(memoryManager->isValidateHostMemoryEnabled()); } -TEST(DrmMemoryManager, givenMemoryManagerWithDisabledHostMemoryValidationWhenFeatureIsQueriedThenFalseIsReturned) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), - false, +TEST_F(DrmMemoryManagerBasic, givenMemoryManagerWithDisabledHostMemoryValidationWhenFeatureIsQueriedThenFalseIsReturned) { + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, false, executionEnvironment)); @@ -2415,10 +2403,8 @@ TEST(DrmMemoryManager, givenMemoryManagerWithDisabledHostMemoryValidationWhenFea EXPECT_FALSE(memoryManager->isValidateHostMemoryEnabled()); } -TEST(DrmMemoryManager, givenEnabledHostMemoryValidationWhenMemoryManagerIsCreatedThenPinBBIsCreated) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), - false, +TEST_F(DrmMemoryManagerBasic, givenEnabledHostMemoryValidationWhenMemoryManagerIsCreatedThenPinBBIsCreated) { + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, true, executionEnvironment)); @@ -2426,10 +2412,8 @@ TEST(DrmMemoryManager, givenEnabledHostMemoryValidationWhenMemoryManagerIsCreate ASSERT_NE(nullptr, memoryManager->getPinBB()); } -TEST(DrmMemoryManager, givenEnabledHostMemoryValidationAndForcePinWhenMemoryManagerIsCreatedThenPinBBIsCreated) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), - false, +TEST_F(DrmMemoryManagerBasic, givenEnabledHostMemoryValidationAndForcePinWhenMemoryManagerIsCreatedThenPinBBIsCreated) { + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, true, true, executionEnvironment)); @@ -2437,13 +2421,12 @@ TEST(DrmMemoryManager, givenEnabledHostMemoryValidationAndForcePinWhenMemoryMana ASSERT_NE(nullptr, memoryManager->getPinBB()); } -TEST(DrmMemoryManager, givenMemoryManagerWhenAllocateGraphicsMemoryIsCalledThenMemoryPoolIsSystem4KBPages) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), - false, - false, - true, - executionEnvironment)); +TEST_F(DrmMemoryManagerBasic, givenMemoryManagerWhenAllocateGraphicsMemoryIsCalledThenMemoryPoolIsSystem4KBPages) { + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager( + false, + false, + true, + executionEnvironment)); auto allocation = memoryManager->allocateGraphicsMemoryWithProperties(createAllocationProperties(MemoryConstants::pageSize, false)); EXPECT_NE(nullptr, allocation); @@ -2452,8 +2435,8 @@ TEST(DrmMemoryManager, givenMemoryManagerWhenAllocateGraphicsMemoryIsCalledThenM } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenMemoryManagerWhenAllocateGraphicsMemoryWithPtrIsCalledThenMemoryPoolIsSystem4KBPages) { - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), - false, + executionEnvironment->osInterface->get()->setDrm(Drm::get(0)); + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, true, *executionEnvironment)); @@ -2466,10 +2449,8 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenMemoryManagerWhenAlloc memoryManager->freeGraphicsMemory(allocation); } -TEST(DrmMemoryManager, givenMemoryManagerWhenAllocate32BitGraphicsMemoryWithPtrIsCalledThenMemoryPoolIsSystem4KBPagesWith32BitGpuAddressing) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), - false, +TEST_F(DrmMemoryManagerBasic, givenMemoryManagerWhenAllocate32BitGraphicsMemoryWithPtrIsCalledThenMemoryPoolIsSystem4KBPagesWith32BitGpuAddressing) { + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, true, executionEnvironment)); @@ -2487,10 +2468,8 @@ TEST(DrmMemoryManager, givenMemoryManagerWhenAllocate32BitGraphicsMemoryWithPtrI memoryManager->freeGraphicsMemory(allocation); } -TEST(DrmMemoryManager, givenMemoryManagerWhenCreateAllocationFromHandleIsCalledThenMemoryPoolIsSystemCpuInaccessible) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), - false, +TEST_F(DrmMemoryManagerBasic, givenMemoryManagerWhenCreateAllocationFromHandleIsCalledThenMemoryPoolIsSystemCpuInaccessible) { + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, true, executionEnvironment)); @@ -2501,10 +2480,8 @@ TEST(DrmMemoryManager, givenMemoryManagerWhenCreateAllocationFromHandleIsCalledT memoryManager->freeGraphicsMemory(allocation); } -TEST(DrmMemoryManager, DISABLED_givenMemoryManagerWith64KBPagesEnabledWhenAllocateGraphicsMemory64kbIsCalledThenMemoryPoolIsSystem64KBPages) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), - false, +TEST_F(DrmMemoryManagerBasic, DISABLED_givenMemoryManagerWith64KBPagesEnabledWhenAllocateGraphicsMemory64kbIsCalledThenMemoryPoolIsSystem64KBPages) { + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, true, executionEnvironment)); @@ -2521,8 +2498,7 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenDisabledForcePinAndEna this->mock->ioctl_expected.gemUserptr = 1; EXPECT_THROW( { - std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(this->mock.get(), - false, + std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(false, false, true, *executionEnvironment)); @@ -2536,7 +2512,7 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenDisabledForcePinAndEna TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenDisabledForcePinAndEnabledValidateHostMemoryWhenPopulateOsHandlesIsCalledThenHostMemoryIsValidated) { - std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(this->mock.get(), false, false, true, *executionEnvironment)); + std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(false, false, true, *executionEnvironment)); ASSERT_NE(nullptr, testedMemoryManager.get()); ASSERT_NE(nullptr, testedMemoryManager->getPinBB()); @@ -2576,7 +2552,7 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenDisabledForcePinAndEna size_t numberOfBosPinned; }; - std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(this->mock.get(), false, false, true, *executionEnvironment)); + std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(false, false, true, *executionEnvironment)); ASSERT_NE(nullptr, testedMemoryManager.get()); ASSERT_NE(nullptr, testedMemoryManager->getPinBB()); @@ -2625,7 +2601,7 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenValidateHostPtrMemoryE mock->ioctl_expected.gemWait = 1; mock->ioctl_expected.gemClose = 2; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(this->mock.get(), false, true, true, *executionEnvironment)); + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, true, true, *executionEnvironment)); ASSERT_NE(nullptr, memoryManager->getPinBB()); size_t size = 10 * 1024 * 1024; @@ -2639,8 +2615,7 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenValidateHostPtrMemoryE } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenEnabledHostMemoryValidationWhenValidHostPointerIsPassedToPopulateThenSuccessIsReturned) { - std::unique_ptr testedMemoryManager(new (std::nothrow) TestedDrmMemoryManager(this->mock.get(), - false, + std::unique_ptr testedMemoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, true, *executionEnvironment)); @@ -2662,7 +2637,7 @@ TEST_F(DrmMemoryManagerTest, givenForcePinAndHostMemoryValidationEnabledWhenSmal mock->ioctl_expected.gemWait = 1; // in freeGraphicsAllocation mock->ioctl_expected.gemClose = 2; // 1 pinBB, 1 small allocation - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(this->mock, false, true, true, *executionEnvironment)); + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, true, true, *executionEnvironment)); ASSERT_NE(nullptr, memoryManager->getPinBB()); // one page is too small for early pinning but pinning is used for host memory validation @@ -2681,7 +2656,7 @@ TEST_F(DrmMemoryManagerTest, givenForcePinAllowedAndNoPinBBInMemoryManagerWhenAl mock->ioctl_expected.gemWait = 1; mock->ioctl_expected.gemClose = 1; mock->ioctl_res = -1; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(this->mock, false, true, false, *executionEnvironment)); + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, true, false, *executionEnvironment)); EXPECT_EQ(nullptr, memoryManager->getPinBB()); mock->ioctl_res = 0; @@ -2704,9 +2679,9 @@ TEST_F(DrmMemoryManagerTest, givenNullptrOrZeroSizeWhenAllocateGraphicsMemoryFor EXPECT_FALSE(memoryManager->allocateGraphicsMemoryForNonSvmHostPtr(allocationData)); } -TEST_F(DrmMemoryManagerTest, givenDrmMemoryManagerWhenAllocateGraphicsMemoryForNonSvmHostPtrIsCalledWithNotAlignedPtrIsPassedThenAllocationIsCreated) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), false, false, false, executionEnvironment)); +TEST_F(DrmMemoryManagerBasic, givenDrmMemoryManagerWhenAllocateGraphicsMemoryForNonSvmHostPtrIsCalledWithNotAlignedPtrIsPassedThenAllocationIsCreated) { + AllocationData allocationData; + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, false, executionEnvironment)); memoryManager->forceLimitedRangeAllocator(0xFFFFFFFFF); @@ -2722,9 +2697,9 @@ TEST_F(DrmMemoryManagerTest, givenDrmMemoryManagerWhenAllocateGraphicsMemoryForN memoryManager->freeGraphicsMemory(allocation); } -TEST_F(DrmMemoryManagerTest, givenDrmMemoryManagerWhenAllocateGraphicsMemoryForNonSvmHostPtrIsCalledButAllocationFailedThenNullPtrReturned) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), false, false, false, executionEnvironment)); +TEST_F(DrmMemoryManagerBasic, givenDrmMemoryManagerWhenAllocateGraphicsMemoryForNonSvmHostPtrIsCalledButAllocationFailedThenNullPtrReturned) { + AllocationData allocationData; + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, false, executionEnvironment)); memoryManager->forceLimitedRangeAllocator(0xFFFFFFFFF); @@ -2749,7 +2724,7 @@ TEST_F(DrmMemoryManagerTest, givenDrmMemoryManagerWhenAllocateGraphicsMemoryForN } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenForcePinNotAllowedAndHostMemoryValidationEnabledWhenAllocationIsCreatedThenBufferObjectIsPinnedOnlyOnce) { - std::unique_ptr memoryManager(new TestedDrmMemoryManager(this->mock.get(), false, false, true, *executionEnvironment)); + std::unique_ptr memoryManager(new TestedDrmMemoryManager(false, false, true, *executionEnvironment)); mock->reset(); mock->ioctl_expected.gemUserptr = 1; mock->ioctl_expected.execbuffer2 = 1; @@ -2771,7 +2746,7 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenForcePinNotAllowedAndH } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenForcePinNotAllowedAndHostMemoryValidationDisabledWhenAllocationIsCreatedThenBufferObjectIsNotPinned) { - std::unique_ptr memoryManager(new TestedDrmMemoryManager(this->mock.get(), false, false, false, *executionEnvironment)); + std::unique_ptr memoryManager(new TestedDrmMemoryManager(false, false, false, *executionEnvironment)); mock->reset(); mock->ioctl_expected.gemUserptr = 1; mock->ioctl_expected.gemClose = 1; @@ -2792,7 +2767,7 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenForcePinNotAllowedAndH } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenEnabledValidateHostMemoryWhenReadOnlyPointerCausesPinningFailWithEfaultThenPopulateOsHandlesMarksFragmentsToFree) { - std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(this->mock.get(), false, false, true, *executionEnvironment)); + std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(false, false, true, *executionEnvironment)); ASSERT_NE(nullptr, testedMemoryManager.get()); ASSERT_NE(nullptr, testedMemoryManager->getPinBB()); @@ -2839,7 +2814,7 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenEnabledValidateHostMem } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenEnabledValidateHostMemoryWhenReadOnlyPointerCausesPinningFailWithEfaultThenPopulateOsHandlesDoesNotStoreTheFragments) { - std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(this->mock.get(), false, false, true, *executionEnvironment)); + std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(false, false, true, *executionEnvironment)); ASSERT_NE(nullptr, testedMemoryManager->getPinBB()); mock->reset(); @@ -2884,7 +2859,7 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenEnabledValidateHostMem } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenEnabledValidateHostMemoryWhenPopulateOsHandlesSucceedsThenFragmentIsStoredInHostPtrManager) { - std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(this->mock.get(), false, false, true, *executionEnvironment)); + std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(false, false, true, *executionEnvironment)); ASSERT_NE(nullptr, testedMemoryManager->getPinBB()); mock->reset(); @@ -2910,7 +2885,7 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenEnabledValidateHostMem } TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenDrmMemoryManagerWhenCleanOsHandlesDeletesHandleDataThenOsHandleStorageAndResidencyIsSetToNullptr) { - std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(this->mock.get(), false, false, true, *executionEnvironment)); + std::unique_ptr testedMemoryManager(new TestedDrmMemoryManager(false, false, true, *executionEnvironment)); ASSERT_NE(nullptr, testedMemoryManager->getPinBB()); OsHandleStorage handleStorage; @@ -2935,9 +2910,8 @@ TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenDrmMemoryManagerWhenCl } } -TEST_F(DrmMemoryManagerTest, ifLimitedRangeAllocatorAvailableWhenAskedForAllocationThenLimitedRangePointerIsReturned) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), false, false, false, executionEnvironment)); +TEST_F(DrmMemoryManagerBasic, ifLimitedRangeAllocatorAvailableWhenAskedForAllocationThenLimitedRangePointerIsReturned) { + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, false, executionEnvironment)); memoryManager->forceLimitedRangeAllocator(0xFFFFFFFFF); @@ -2969,12 +2943,12 @@ TEST_F(DrmMemoryManagerTest, givenLimitedRangeAllocatorWithZeroBaseAndSizeWhenAs EXPECT_EQ(base, allocator.getBase()); } -TEST_F(DrmMemoryManagerTest, givenDisabledHostPtrTrackingWhenAllocateGraphicsMemoryForNonSvmHostPtrIsCalledWithNotAlignedPtrIsPassedThenAllocationIsCreated) { +TEST_F(DrmMemoryManagerBasic, givenDisabledHostPtrTrackingWhenAllocateGraphicsMemoryForNonSvmHostPtrIsCalledWithNotAlignedPtrIsPassedThenAllocationIsCreated) { DebugManagerStateRestore restore; DebugManager.flags.EnableHostPtrTracking.set(false); - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), false, false, false, executionEnvironment)); + AllocationData allocationData; + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, false, executionEnvironment)); memoryManager->forceLimitedRangeAllocator(MemoryConstants::max48BitAddress); @@ -2990,9 +2964,8 @@ TEST_F(DrmMemoryManagerTest, givenDisabledHostPtrTrackingWhenAllocateGraphicsMem memoryManager->freeGraphicsMemory(allocation); } -TEST_F(DrmMemoryManagerTest, givenImageOrSharedResourceCopyWhenGraphicsAllocationInDevicePoolIsAllocatedThenNullptrIsReturned) { - ExecutionEnvironment executionEnvironment; - std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(Drm::get(0), false, false, false, executionEnvironment)); +TEST_F(DrmMemoryManagerBasic, givenImageOrSharedResourceCopyWhenGraphicsAllocationInDevicePoolIsAllocatedThenNullptrIsReturned) { + std::unique_ptr memoryManager(new (std::nothrow) TestedDrmMemoryManager(false, false, false, executionEnvironment)); MemoryManager::AllocationStatus status = MemoryManager::AllocationStatus::Error; AllocationData allocData; @@ -3010,10 +2983,9 @@ TEST_F(DrmMemoryManagerTest, givenImageOrSharedResourceCopyWhenGraphicsAllocatio } } -TEST(DrmMemoryManagerSimpleTest, givenLocalMemoryDisabledWhenAllocateInDevicePoolIsCalledThenNullptrAndStatusRetryIsReturned) { - ExecutionEnvironment executionEnvironment; +TEST_F(DrmMemoryManagerBasic, givenLocalMemoryDisabledWhenAllocateInDevicePoolIsCalledThenNullptrAndStatusRetryIsReturned) { const bool localMemoryEnabled = false; - TestedDrmMemoryManager memoryManager(Drm::get(0), localMemoryEnabled, false, false, executionEnvironment); + TestedDrmMemoryManager memoryManager(localMemoryEnabled, false, false, executionEnvironment); MemoryManager::AllocationStatus status = MemoryManager::AllocationStatus::Success; AllocationData allocData; allocData.size = MemoryConstants::pageSize; diff --git a/unit_tests/os_interface/linux/drm_memory_manager_tests.h b/unit_tests/os_interface/linux/drm_memory_manager_tests.h index 5505952d9d..b1edc12a70 100644 --- a/unit_tests/os_interface/linux/drm_memory_manager_tests.h +++ b/unit_tests/os_interface/linux/drm_memory_manager_tests.h @@ -18,6 +18,16 @@ namespace OCLRT { using AllocationData = TestedDrmMemoryManager::AllocationData; +class DrmMemoryManagerBasic : public ::testing::Test { + public: + void SetUp() override { + executionEnvironment.osInterface = std::make_unique(); + executionEnvironment.osInterface->get()->setDrm(Drm::get(0)); + } + + ExecutionEnvironment executionEnvironment; +}; + class DrmMemoryManagerFixture : public MemoryManagementFixture { public: TestedDrmMemoryManager *memoryManager = nullptr; @@ -32,7 +42,7 @@ class DrmMemoryManagerFixture : public MemoryManagementFixture { executionEnvironment->osInterface = std::make_unique(); executionEnvironment->osInterface->get()->setDrm(mock); - memoryManager = new (std::nothrow) TestedDrmMemoryManager(this->mock, *executionEnvironment); + memoryManager = new (std::nothrow) TestedDrmMemoryManager(*executionEnvironment); //assert we have memory manager ASSERT_NE(nullptr, memoryManager); if (memoryManager->getgemCloseWorker()) { @@ -68,14 +78,14 @@ class DrmMemoryManagerFixtureWithoutQuietIoctlExpectation { executionEnvironment = new ExecutionEnvironment; executionEnvironment->setHwInfo(*platformDevices); mock = std::make_unique(); - memoryManager.reset(new TestedDrmMemoryManager(mock.get(), *executionEnvironment)); + executionEnvironment->osInterface = std::make_unique(); + executionEnvironment->osInterface->get()->setDrm(mock.get()); + memoryManager.reset(new TestedDrmMemoryManager(*executionEnvironment)); ASSERT_NE(nullptr, memoryManager); if (memoryManager->getgemCloseWorker()) { memoryManager->getgemCloseWorker()->close(true); } - executionEnvironment->osInterface = std::make_unique(); - executionEnvironment->osInterface->get()->setDrm(mock.get()); device.reset(MockDevice::createWithExecutionEnvironment(*platformDevices, executionEnvironment, 0)); }