mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-20 00:24:58 +08:00
feature: add debug flag to ignore product specific ioctl helper creation
Related-To: NEO-13527 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
ae9a4ba031
commit
593a6c54ea
@@ -2230,3 +2230,53 @@ TEST(DistanceInfoTest, givenDistanceInfosWhenAssignRegionsFromDistancesThenCorre
|
||||
EXPECT_EQ(1024u, memoryInfo->getMemoryRegionSize(2));
|
||||
EXPECT_ANY_THROW(memoryInfo->getMemoryRegionSize(4));
|
||||
}
|
||||
|
||||
TEST(DrmTest, GivenProductSpecificIoctlHelperAvailableWhenSetupIoctlHelperThenCreateProductSpecificOne) {
|
||||
auto executionEnvironment = std::make_unique<MockExecutionEnvironment>();
|
||||
DrmMock drm{*executionEnvironment->rootDeviceEnvironments[0]};
|
||||
drm.ioctlHelper.reset();
|
||||
|
||||
auto productFamily = defaultHwInfo->platform.eProductFamily;
|
||||
VariableBackup<std::optional<std::function<std::unique_ptr<IoctlHelper>(Drm & drm)>>> createFuncBackup{&ioctlHelperFactory[productFamily]};
|
||||
|
||||
static uint32_t customFuncCalled = 0;
|
||||
|
||||
ioctlHelperFactory[productFamily] = [](Drm &drm) -> std::unique_ptr<IoctlHelper> {
|
||||
EXPECT_EQ(0u, customFuncCalled);
|
||||
customFuncCalled++;
|
||||
|
||||
return std::make_unique<MockIoctlHelper>(drm);
|
||||
};
|
||||
|
||||
customFuncCalled = 0;
|
||||
|
||||
drm.setupIoctlHelper(productFamily);
|
||||
|
||||
EXPECT_EQ(1u, customFuncCalled);
|
||||
}
|
||||
|
||||
TEST(DrmTest, GivenProductSpecificIoctlHelperAvailableAndDebugFlagToIgnoreIsSetWhenSetupIoctlHelperThenDontCreateProductSpecificOne) {
|
||||
DebugManagerStateRestore restore;
|
||||
debugManager.flags.IgnoreProductSpecificIoctlHelper.set(true);
|
||||
auto executionEnvironment = std::make_unique<MockExecutionEnvironment>();
|
||||
DrmMock drm{*executionEnvironment->rootDeviceEnvironments[0]};
|
||||
drm.ioctlHelper.reset();
|
||||
|
||||
auto productFamily = defaultHwInfo->platform.eProductFamily;
|
||||
VariableBackup<std::optional<std::function<std::unique_ptr<IoctlHelper>(Drm & drm)>>> createFuncBackup{&ioctlHelperFactory[productFamily]};
|
||||
|
||||
static uint32_t customFuncCalled = 0;
|
||||
|
||||
ioctlHelperFactory[productFamily] = [](Drm &drm) -> std::unique_ptr<IoctlHelper> {
|
||||
EXPECT_EQ(0u, customFuncCalled);
|
||||
customFuncCalled++;
|
||||
|
||||
return std::make_unique<MockIoctlHelper>(drm);
|
||||
};
|
||||
|
||||
customFuncCalled = 0;
|
||||
|
||||
drm.setupIoctlHelper(productFamily);
|
||||
|
||||
EXPECT_EQ(0u, customFuncCalled);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user