diff --git a/shared/source/os_interface/linux/drm_neo.cpp b/shared/source/os_interface/linux/drm_neo.cpp index 5f042f3427..5385badc90 100644 --- a/shared/source/os_interface/linux/drm_neo.cpp +++ b/shared/source/os_interface/linux/drm_neo.cpp @@ -71,7 +71,7 @@ int Drm::ioctl(DrmIoctl request, void *arg) { auto printIoctl = DebugManager.flags.PrintIoctlEntries.get(); if (printIoctl) { - printf("IOCTL %s called\n", getIoctlString(request).c_str()); + printf("IOCTL %s called\n", getIoctlString(request, ioctlHelper.get()).c_str()); } if (measureTime) { @@ -102,10 +102,10 @@ int Drm::ioctl(DrmIoctl request, void *arg) { if (printIoctl) { if (ret == 0) { printf("IOCTL %s returns %d\n", - getIoctlString(request).c_str(), ret); + getIoctlString(request, ioctlHelper.get()).c_str(), ret); } else { printf("IOCTL %s returns %d, errno %d(%s)\n", - getIoctlString(request).c_str(), ret, returnedErrno, strerror(returnedErrno)); + getIoctlString(request, ioctlHelper.get()).c_str(), ret, returnedErrno, strerror(returnedErrno)); } } @@ -122,7 +122,7 @@ int Drm::getParamIoctl(DrmParam param, int *dstValue) { int retVal = ioctlHelper ? ioctlHelper->ioctl(DrmIoctl::Getparam, &getParam) : ioctl(DrmIoctl::Getparam, &getParam); if (DebugManager.flags.PrintIoctlEntries.get()) { printf("DRM_IOCTL_I915_GETPARAM: param: %s, output value: %d, retCode:% d\n", - getDrmParamString(param).c_str(), + getDrmParamString(param, ioctlHelper.get()).c_str(), *getParam.value, retVal); } @@ -585,7 +585,7 @@ void Drm::printIoctlStatistics() { printf("%41s %15s %10s %20s %20s %20s", "Request", "Total time(ns)", "Count", "Avg time per ioctl", "Min", "Max\n"); for (const auto &ioctlData : this->ioctlStatistics) { printf("%41s %15llu %10lu %20f %20lld %20lld\n", - getIoctlString(ioctlData.first).c_str(), + getIoctlString(ioctlData.first, ioctlHelper.get()).c_str(), ioctlData.second.totalTime, static_cast(ioctlData.second.count), ioctlData.second.totalTime / static_cast(ioctlData.second.count), diff --git a/shared/source/os_interface/linux/drm_wrappers.cpp b/shared/source/os_interface/linux/drm_wrappers.cpp index 303910c483..3ed81fa86b 100644 --- a/shared/source/os_interface/linux/drm_wrappers.cpp +++ b/shared/source/os_interface/linux/drm_wrappers.cpp @@ -189,4 +189,32 @@ int getDrmParamValue(DrmParam drmParam, IoctlHelper *ioctlHelper) { return 0; } } + +std::string getDrmParamString(DrmParam drmParam, IoctlHelper *ioctlHelper) { + if (ioctlHelper) { + return ioctlHelper->getDrmParamString(drmParam); + } + switch (drmParam) { + case DrmParam::ParamChipsetId: + return "I915_PARAM_CHIPSET_ID"; + case DrmParam::ParamRevision: + return "I915_PARAM_REVISION"; + default: + UNRECOVERABLE_IF(true); + return ""; + } +} + +std::string getIoctlString(DrmIoctl ioctlRequest, IoctlHelper *ioctlHelper) { + if (ioctlHelper) { + return ioctlHelper->getIoctlString(ioctlRequest); + } + switch (ioctlRequest) { + case DrmIoctl::Getparam: + return "DRM_IOCTL_I915_GETPARAM"; + default: + UNRECOVERABLE_IF(true); + return ""; + } +} } // namespace NEO diff --git a/shared/source/os_interface/linux/drm_wrappers.h b/shared/source/os_interface/linux/drm_wrappers.h index 1f6995fa77..25243fe121 100644 --- a/shared/source/os_interface/linux/drm_wrappers.h +++ b/shared/source/os_interface/linux/drm_wrappers.h @@ -261,7 +261,7 @@ enum class DrmParam { unsigned int getIoctlRequestValue(DrmIoctl ioctlRequest, IoctlHelper *ioctlHelper); int getDrmParamValue(DrmParam drmParam, IoctlHelper *ioctlHelper); +std::string getDrmParamString(DrmParam param, IoctlHelper *ioctlHelper); +std::string getIoctlString(DrmIoctl ioctlRequest, IoctlHelper *ioctlHelper); -std::string getDrmParamString(DrmParam param); -std::string getIoctlString(DrmIoctl ioctlRequest); } // namespace NEO diff --git a/shared/source/os_interface/linux/ioctl_helper.cpp b/shared/source/os_interface/linux/ioctl_helper.cpp index bc9d3fa64f..ec51c12281 100644 --- a/shared/source/os_interface/linux/ioctl_helper.cpp +++ b/shared/source/os_interface/linux/ioctl_helper.cpp @@ -242,7 +242,7 @@ int IoctlHelper::getDrmParamValueBase(DrmParam drmParam) const { } } -std::string getDrmParamString(DrmParam drmParam) { +std::string IoctlHelper::getDrmParamStringBase(DrmParam drmParam) const { switch (drmParam) { case DrmParam::ParamChipsetId: return "I915_PARAM_CHIPSET_ID"; @@ -262,17 +262,13 @@ std::string getDrmParamString(DrmParam drmParam) { return "I915_PARAM_MIN_EU_IN_POOL"; case DrmParam::ParamCsTimestampFrequency: return "I915_PARAM_CS_TIMESTAMP_FREQUENCY"; - case DrmParam::ParamHasVmBind: - return "PRELIM_I915_PARAM_HAS_VM_BIND"; - case DrmParam::ParamHasPageFault: - return "PRELIM_I915_PARAM_HAS_PAGE_FAULT"; default: UNRECOVERABLE_IF(true); return ""; } } -std::string getIoctlString(DrmIoctl ioctlRequest) { +std::string IoctlHelper::getIoctlStringBase(DrmIoctl ioctlRequest) const { switch (ioctlRequest) { case DrmIoctl::GemExecbuffer2: return "DRM_IOCTL_I915_GEM_EXECBUFFER2"; @@ -310,41 +306,16 @@ std::string getIoctlString(DrmIoctl ioctlRequest) { return "DRM_IOCTL_PRIME_FD_TO_HANDLE"; case DrmIoctl::PrimeHandleToFd: return "DRM_IOCTL_PRIME_HANDLE_TO_FD"; - case DrmIoctl::GemVmBind: - return "PRELIM_DRM_IOCTL_I915_GEM_VM_BIND"; - case DrmIoctl::GemVmUnbind: - return "PRELIM_DRM_IOCTL_I915_GEM_VM_UNBIND"; - case DrmIoctl::GemWaitUserFence: - return "PRELIM_DRM_IOCTL_I915_GEM_WAIT_USER_FENCE"; - case DrmIoctl::GemCreateExt: - return "DRM_IOCTL_I915_GEM_CREATE_EXT"; - case DrmIoctl::DG1GemCreateExt: - return "DG1_DRM_IOCTL_I915_GEM_CREATE_EXT"; - case DrmIoctl::GemVmAdvise: - return "PRELIM_DRM_IOCTL_I915_GEM_VM_ADVISE"; - case DrmIoctl::GemVmPrefetch: - return "PRELIM_DRM_IOCTL_I915_GEM_VM_PREFETCH"; - case DrmIoctl::UuidRegister: - return "PRELIM_DRM_IOCTL_I915_UUID_REGISTER"; - case DrmIoctl::UuidUnregister: - return "PRELIM_DRM_IOCTL_I915_UUID_UNREGISTER"; - case DrmIoctl::DebuggerOpen: - return "PRELIM_DRM_IOCTL_I915_DEBUGGER_OPEN"; - case DrmIoctl::GemClosReserve: - return "PRELIM_DRM_IOCTL_I915_GEM_CLOS_RESERVE"; - case DrmIoctl::GemClosFree: - return "PRELIM_DRM_IOCTL_I915_GEM_CLOS_FREE"; - case DrmIoctl::GemCacheReserve: - return "PRELIM_DRM_IOCTL_I915_GEM_CACHE_RESERVE"; case DrmIoctl::GemMmapOffset: return "DRM_IOCTL_I915_GEM_MMAP_OFFSET"; case DrmIoctl::GemVmCreate: return "DRM_IOCTL_I915_GEM_VM_CREATE"; case DrmIoctl::GemVmDestroy: return "DRM_IOCTL_I915_GEM_VM_DESTROY"; + default: + UNRECOVERABLE_IF(true); + return ""; } - UNRECOVERABLE_IF(true); - return ""; } } // namespace NEO diff --git a/shared/source/os_interface/linux/ioctl_helper.h b/shared/source/os_interface/linux/ioctl_helper.h index b13e47e85a..28a800549d 100644 --- a/shared/source/os_interface/linux/ioctl_helper.h +++ b/shared/source/os_interface/linux/ioctl_helper.h @@ -109,6 +109,8 @@ class IoctlHelper { virtual bool isDebugAttachAvailable() = 0; virtual unsigned int getIoctlRequestValue(DrmIoctl ioctlRequest) const = 0; virtual int getDrmParamValue(DrmParam drmParam) const = 0; + virtual std::string getDrmParamString(DrmParam param) const = 0; + virtual std::string getIoctlString(DrmIoctl ioctlRequest) const = 0; virtual std::vector translateToMemoryRegions(const std::vector ®ionInfo); @@ -123,6 +125,9 @@ class IoctlHelper { int getDrmParamValueBase(DrmParam drmParam) const; unsigned int getIoctlRequestValueBase(DrmIoctl ioctlRequest) const; + std::string getDrmParamStringBase(DrmParam param) const; + std::string getIoctlStringBase(DrmIoctl ioctlRequest) const; + protected: Drm &drm; }; @@ -172,6 +177,8 @@ class IoctlHelperUpstream : public IoctlHelper { bool isDebugAttachAvailable() override; unsigned int getIoctlRequestValue(DrmIoctl ioctlRequest) const override; int getDrmParamValue(DrmParam drmParam) const override; + std::string getDrmParamString(DrmParam param) const override; + std::string getIoctlString(DrmIoctl ioctlRequest) const override; }; template @@ -185,6 +192,7 @@ class IoctlHelperImpl : public IoctlHelperUpstream { uint32_t createGemExt(const MemRegionsVec &memClassInstances, size_t allocSize, uint32_t &handle, std::optional vmId) override; std::vector translateToMemoryRegions(const std::vector ®ionInfo) override; unsigned int getIoctlRequestValue(DrmIoctl ioctlRequest) const override; + std::string getIoctlString(DrmIoctl ioctlRequest) const override; }; class IoctlHelperPrelim20 : public IoctlHelper { @@ -232,6 +240,8 @@ class IoctlHelperPrelim20 : public IoctlHelper { bool isDebugAttachAvailable() override; unsigned int getIoctlRequestValue(DrmIoctl ioctlRequest) const override; int getDrmParamValue(DrmParam drmParam) const override; + std::string getDrmParamString(DrmParam param) const override; + std::string getIoctlString(DrmIoctl ioctlRequest) const override; }; } // namespace NEO diff --git a/shared/source/os_interface/linux/ioctl_helper_prelim.cpp b/shared/source/os_interface/linux/ioctl_helper_prelim.cpp index 788f429e9b..96c209cc87 100644 --- a/shared/source/os_interface/linux/ioctl_helper_prelim.cpp +++ b/shared/source/os_interface/linux/ioctl_helper_prelim.cpp @@ -562,6 +562,47 @@ int IoctlHelperPrelim20::getDrmParamValue(DrmParam drmParam) const { return getDrmParamValueBase(drmParam); } } +std::string IoctlHelperPrelim20::getDrmParamString(DrmParam drmParam) const { + switch (drmParam) { + case DrmParam::ParamHasVmBind: + return "PRELIM_I915_PARAM_HAS_VM_BIND"; + case DrmParam::ParamHasPageFault: + return "PRELIM_I915_PARAM_HAS_PAGE_FAULT"; + default: + return getDrmParamStringBase(drmParam); + } +} + +std::string IoctlHelperPrelim20::getIoctlString(DrmIoctl ioctlRequest) const { + switch (ioctlRequest) { + case DrmIoctl::GemVmBind: + return "PRELIM_DRM_IOCTL_I915_GEM_VM_BIND"; + case DrmIoctl::GemVmUnbind: + return "PRELIM_DRM_IOCTL_I915_GEM_VM_UNBIND"; + case DrmIoctl::GemWaitUserFence: + return "PRELIM_DRM_IOCTL_I915_GEM_WAIT_USER_FENCE"; + case DrmIoctl::GemCreateExt: + return "PRELIM_DRM_IOCTL_I915_GEM_CREATE_EXT"; + case DrmIoctl::GemVmAdvise: + return "PRELIM_DRM_IOCTL_I915_GEM_VM_ADVISE"; + case DrmIoctl::GemVmPrefetch: + return "PRELIM_DRM_IOCTL_I915_GEM_VM_PREFETCH"; + case DrmIoctl::UuidRegister: + return "PRELIM_DRM_IOCTL_I915_UUID_REGISTER"; + case DrmIoctl::UuidUnregister: + return "PRELIM_DRM_IOCTL_I915_UUID_UNREGISTER"; + case DrmIoctl::DebuggerOpen: + return "PRELIM_DRM_IOCTL_I915_DEBUGGER_OPEN"; + case DrmIoctl::GemClosReserve: + return "PRELIM_DRM_IOCTL_I915_GEM_CLOS_RESERVE"; + case DrmIoctl::GemClosFree: + return "PRELIM_DRM_IOCTL_I915_GEM_CLOS_FREE"; + case DrmIoctl::GemCacheReserve: + return "PRELIM_DRM_IOCTL_I915_GEM_CACHE_RESERVE"; + default: + return getIoctlStringBase(ioctlRequest); + } +} static_assert(sizeof(MemoryClassInstance) == sizeof(prelim_drm_i915_gem_memory_class_instance)); static_assert(offsetof(MemoryClassInstance, memoryClass) == offsetof(prelim_drm_i915_gem_memory_class_instance, memory_class)); diff --git a/shared/source/os_interface/linux/ioctl_helper_upstream.cpp b/shared/source/os_interface/linux/ioctl_helper_upstream.cpp index 9e6732d8ee..e0cc9155b4 100644 --- a/shared/source/os_interface/linux/ioctl_helper_upstream.cpp +++ b/shared/source/os_interface/linux/ioctl_helper_upstream.cpp @@ -217,4 +217,15 @@ int IoctlHelperUpstream::getDrmParamValue(DrmParam drmParam) const { return getDrmParamValueBase(drmParam); } } +std::string IoctlHelperUpstream::getDrmParamString(DrmParam param) const { + return getDrmParamStringBase(param); +} +std::string IoctlHelperUpstream::getIoctlString(DrmIoctl ioctlRequest) const { + switch (ioctlRequest) { + case DrmIoctl::GemCreateExt: + return "DRM_IOCTL_I915_GEM_CREATE_EXT"; + default: + return getIoctlStringBase(ioctlRequest); + } +} } // namespace NEO diff --git a/shared/source/os_interface/linux/local/dg1/ioctl_helper_dg1.cpp b/shared/source/os_interface/linux/local/dg1/ioctl_helper_dg1.cpp index 0dd8398843..be0e218824 100644 --- a/shared/source/os_interface/linux/local/dg1/ioctl_helper_dg1.cpp +++ b/shared/source/os_interface/linux/local/dg1/ioctl_helper_dg1.cpp @@ -71,5 +71,15 @@ unsigned int IoctlHelperImpl::getIoctlRequestValue(DrmIoctl ioctlReq } } +template <> +std::string IoctlHelperImpl::getIoctlString(DrmIoctl ioctlRequest) const { + switch (ioctlRequest) { + case DrmIoctl::DG1GemCreateExt: + return "DRM_IOCTL_I915_GEM_CREATE_EXT"; + default: + return getIoctlStringBase(ioctlRequest); + } +} + template class IoctlHelperImpl; } // namespace NEO diff --git a/shared/test/unit_test/os_interface/linux/drm_tests.cpp b/shared/test/unit_test/os_interface/linux/drm_tests.cpp index 82186ee9ff..45224b2bf7 100644 --- a/shared/test/unit_test/os_interface/linux/drm_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/drm_tests.cpp @@ -1404,63 +1404,39 @@ TEST(DrmWrapperTest, whenGettingDrmParamOrIoctlRequestValueThenUseIoctlHelperWhe } TEST(DrmWrapperTest, WhenGettingIoctlStringValueThenProperStringIsReturned) { - std::map ioctlCodeStringMap = { - {DrmIoctl::GemClose, "DRM_IOCTL_GEM_CLOSE"}, - {DrmIoctl::Getparam, "DRM_IOCTL_I915_GETPARAM"}, - {DrmIoctl::GemExecbuffer2, "DRM_IOCTL_I915_GEM_EXECBUFFER2"}, - {DrmIoctl::GemCreate, "DRM_IOCTL_I915_GEM_CREATE"}, - {DrmIoctl::GemSetDomain, "DRM_IOCTL_I915_GEM_SET_DOMAIN"}, - {DrmIoctl::GemSetTiling, "DRM_IOCTL_I915_GEM_SET_TILING"}, - {DrmIoctl::GemGetTiling, "DRM_IOCTL_I915_GEM_GET_TILING"}, - {DrmIoctl::GemWait, "DRM_IOCTL_I915_GEM_WAIT"}, - {DrmIoctl::GemContextCreateExt, "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT"}, - {DrmIoctl::GemContextDestroy, "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY"}, - {DrmIoctl::RegRead, "DRM_IOCTL_I915_REG_READ"}, - {DrmIoctl::GetResetStats, "DRM_IOCTL_I915_GET_RESET_STATS"}, - {DrmIoctl::GemUserptr, "DRM_IOCTL_I915_GEM_USERPTR"}, - {DrmIoctl::GemContextGetparam, "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM"}, - {DrmIoctl::GemContextSetparam, "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM"}, - {DrmIoctl::Query, "DRM_IOCTL_I915_QUERY"}, - {DrmIoctl::PrimeFdToHandle, "DRM_IOCTL_PRIME_FD_TO_HANDLE"}, - {DrmIoctl::GemVmBind, "PRELIM_DRM_IOCTL_I915_GEM_VM_BIND"}, - {DrmIoctl::GemVmUnbind, "PRELIM_DRM_IOCTL_I915_GEM_VM_UNBIND"}, - {DrmIoctl::GemWaitUserFence, "PRELIM_DRM_IOCTL_I915_GEM_WAIT_USER_FENCE"}, - {DrmIoctl::GemCreateExt, "DRM_IOCTL_I915_GEM_CREATE_EXT"}, - {DrmIoctl::DG1GemCreateExt, "DG1_DRM_IOCTL_I915_GEM_CREATE_EXT"}, - {DrmIoctl::GemVmAdvise, "PRELIM_DRM_IOCTL_I915_GEM_VM_ADVISE"}, - {DrmIoctl::GemVmPrefetch, "PRELIM_DRM_IOCTL_I915_GEM_VM_PREFETCH"}, - {DrmIoctl::UuidRegister, "PRELIM_DRM_IOCTL_I915_UUID_REGISTER"}, - {DrmIoctl::UuidUnregister, "PRELIM_DRM_IOCTL_I915_UUID_UNREGISTER"}, - {DrmIoctl::DebuggerOpen, "PRELIM_DRM_IOCTL_I915_DEBUGGER_OPEN"}, - {DrmIoctl::GemClosReserve, "PRELIM_DRM_IOCTL_I915_GEM_CLOS_RESERVE"}, - {DrmIoctl::GemClosFree, "PRELIM_DRM_IOCTL_I915_GEM_CLOS_FREE"}, - {DrmIoctl::GemCacheReserve, "PRELIM_DRM_IOCTL_I915_GEM_CACHE_RESERVE"}, - {DrmIoctl::GemMmapOffset, "DRM_IOCTL_I915_GEM_MMAP_OFFSET"}, - {DrmIoctl::GemVmCreate, "DRM_IOCTL_I915_GEM_VM_CREATE"}, - {DrmIoctl::GemVmDestroy, "DRM_IOCTL_I915_GEM_VM_DESTROY"}, - {DrmIoctl::PrimeHandleToFd, "DRM_IOCTL_PRIME_HANDLE_TO_FD"}}; - for (auto &ioctlCodeString : ioctlCodeStringMap) { - EXPECT_STREQ(getIoctlString(ioctlCodeString.first).c_str(), ioctlCodeString.second); - } + auto executionEnvironment = std::make_unique(); + executionEnvironment->prepareRootDeviceEnvironments(1); + DrmMock drm{*executionEnvironment->rootDeviceEnvironments[0]}; + + MockIoctlHelper ioctlHelper{drm}; + EXPECT_STREQ(getIoctlString(DrmIoctl::Getparam, &ioctlHelper).c_str(), "DRM_IOCTL_I915_GETPARAM"); + EXPECT_STREQ(getIoctlString(DrmIoctl::Getparam, nullptr).c_str(), "DRM_IOCTL_I915_GETPARAM"); } TEST(DrmWrapperTest, WhenGettingDrmParamValueStringThenProperStringIsReturned) { + auto executionEnvironment = std::make_unique(); + executionEnvironment->prepareRootDeviceEnvironments(1); + DrmMock drm{*executionEnvironment->rootDeviceEnvironments[0]}; + + MockIoctlHelper ioctlHelper{drm}; std::map ioctlCodeStringMap = { - {DrmParam::ParamChipsetId, "I915_PARAM_CHIPSET_ID"}, - {DrmParam::ParamRevision, "I915_PARAM_REVISION"}, {DrmParam::ParamHasExecSoftpin, "I915_PARAM_HAS_EXEC_SOFTPIN"}, {DrmParam::ParamHasPooledEu, "I915_PARAM_HAS_POOLED_EU"}, {DrmParam::ParamHasScheduler, "I915_PARAM_HAS_SCHEDULER"}, {DrmParam::ParamEuTotal, "I915_PARAM_EU_TOTAL"}, {DrmParam::ParamSubsliceTotal, "I915_PARAM_SUBSLICE_TOTAL"}, {DrmParam::ParamMinEuInPool, "I915_PARAM_MIN_EU_IN_POOL"}, - {DrmParam::ParamCsTimestampFrequency, "I915_PARAM_CS_TIMESTAMP_FREQUENCY"}, - {DrmParam::ParamHasVmBind, "PRELIM_I915_PARAM_HAS_VM_BIND"}, - {DrmParam::ParamHasPageFault, "PRELIM_I915_PARAM_HAS_PAGE_FAULT"}}; + {DrmParam::ParamCsTimestampFrequency, "I915_PARAM_CS_TIMESTAMP_FREQUENCY"}}; for (auto &ioctlCodeString : ioctlCodeStringMap) { - EXPECT_STREQ(getDrmParamString(ioctlCodeString.first).c_str(), ioctlCodeString.second); + EXPECT_STREQ(getDrmParamString(ioctlCodeString.first, &ioctlHelper).c_str(), ioctlCodeString.second); + EXPECT_THROW(getDrmParamString(ioctlCodeString.first, nullptr).c_str(), std::runtime_error); } - EXPECT_THROW(getDrmParamString(DrmParam::EngineClassRender), std::runtime_error); + EXPECT_STREQ(getDrmParamString(DrmParam::ParamChipsetId, &ioctlHelper).c_str(), "I915_PARAM_CHIPSET_ID"); + EXPECT_STREQ(getDrmParamString(DrmParam::ParamChipsetId, nullptr).c_str(), "I915_PARAM_CHIPSET_ID"); + EXPECT_STREQ(getDrmParamString(DrmParam::ParamRevision, &ioctlHelper).c_str(), "I915_PARAM_REVISION"); + EXPECT_STREQ(getDrmParamString(DrmParam::ParamRevision, nullptr).c_str(), "I915_PARAM_REVISION"); + + EXPECT_THROW(getDrmParamString(DrmParam::EngineClassRender, &ioctlHelper), std::runtime_error); } TEST(IoctlHelperTest, whenGettingDrmParamValueThenProperValueIsReturned) { diff --git a/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_dg1.cpp b/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_dg1.cpp index 030686f521..1a0d18e29f 100644 --- a/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_dg1.cpp +++ b/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_dg1.cpp @@ -98,6 +98,34 @@ DG1TEST_F(IoctlHelperTestsDg1, givenDg1AndMemoryRegionQuerySupportedWhenQuerying EXPECT_EQ(2u, memoryInfo->getDrmRegionInfos().size()); } +DG1TEST_F(IoctlHelperTestsDg1, whenGettingIoctlRequestStringThenProperStringIsReturned) { + auto executionEnvironment = std::make_unique(); + auto drm = std::make_unique(*executionEnvironment->rootDeviceEnvironments[0]); + auto &ioctlHelper = *drm->getIoctlHelper(); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::Getparam).c_str(), "DRM_IOCTL_I915_GETPARAM"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemExecbuffer2).c_str(), "DRM_IOCTL_I915_GEM_EXECBUFFER2"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemWait).c_str(), "DRM_IOCTL_I915_GEM_WAIT"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemClose).c_str(), "DRM_IOCTL_GEM_CLOSE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemUserptr).c_str(), "DRM_IOCTL_I915_GEM_USERPTR"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemCreate).c_str(), "DRM_IOCTL_I915_GEM_CREATE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemSetDomain).c_str(), "DRM_IOCTL_I915_GEM_SET_DOMAIN"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemSetTiling).c_str(), "DRM_IOCTL_I915_GEM_SET_TILING"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemGetTiling).c_str(), "DRM_IOCTL_I915_GEM_GET_TILING"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextDestroy).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::RegRead).c_str(), "DRM_IOCTL_I915_REG_READ"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GetResetStats).c_str(), "DRM_IOCTL_I915_GET_RESET_STATS"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextGetparam).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextSetparam).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::Query).c_str(), "DRM_IOCTL_I915_QUERY"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::PrimeFdToHandle).c_str(), "DRM_IOCTL_PRIME_FD_TO_HANDLE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::PrimeHandleToFd).c_str(), "DRM_IOCTL_PRIME_HANDLE_TO_FD"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextCreateExt).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemMmapOffset).c_str(), "DRM_IOCTL_I915_GEM_MMAP_OFFSET"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemVmCreate).c_str(), "DRM_IOCTL_I915_GEM_VM_CREATE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemVmDestroy).c_str(), "DRM_IOCTL_I915_GEM_VM_DESTROY"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::DG1GemCreateExt).c_str(), "DRM_IOCTL_I915_GEM_CREATE_EXT"); +} + DG1TEST_F(IoctlHelperTestsDg1, whenGettingIoctlRequestValueThenPropertValueIsReturned) { auto executionEnvironment = std::make_unique(); auto drm = std::make_unique(*executionEnvironment->rootDeviceEnvironments[0]); @@ -127,3 +155,18 @@ DG1TEST_F(IoctlHelperTestsDg1, whenGettingIoctlRequestValueThenPropertValueIsRet EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::DG1GemCreateExt), static_cast(DRM_IOCTL_I915_GEM_CREATE_EXT)); EXPECT_NE(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemCreateExt), static_cast(DRM_IOCTL_I915_GEM_CREATE_EXT)); } + +DG1TEST_F(IoctlHelperTestsDg1, whenGettingDrmParamStringThenProperStringIsReturned) { + auto executionEnvironment = std::make_unique(); + auto drm = std::make_unique(*executionEnvironment->rootDeviceEnvironments[0]); + auto &ioctlHelper = *drm->getIoctlHelper(); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamChipsetId).c_str(), "I915_PARAM_CHIPSET_ID"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamRevision).c_str(), "I915_PARAM_REVISION"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamHasExecSoftpin).c_str(), "I915_PARAM_HAS_EXEC_SOFTPIN"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamHasPooledEu).c_str(), "I915_PARAM_HAS_POOLED_EU"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamHasScheduler).c_str(), "I915_PARAM_HAS_SCHEDULER"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamEuTotal).c_str(), "I915_PARAM_EU_TOTAL"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamSubsliceTotal).c_str(), "I915_PARAM_SUBSLICE_TOTAL"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamMinEuInPool).c_str(), "I915_PARAM_MIN_EU_IN_POOL"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamCsTimestampFrequency).c_str(), "I915_PARAM_CS_TIMESTAMP_FREQUENCY"); +} diff --git a/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_prelim.cpp b/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_prelim.cpp index c37e509595..16d7f11e0e 100644 --- a/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_prelim.cpp +++ b/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_prelim.cpp @@ -63,6 +63,58 @@ TEST_F(IoctlPrelimHelperTests, whenGettingIoctlRequestValueThenPropertValueIsRet EXPECT_THROW(ioctlHelper.getIoctlRequestValue(DrmIoctl::DG1GemCreateExt), std::runtime_error); } +TEST_F(IoctlPrelimHelperTests, whenGettingDrmParamStringThenProperStringIsReturned) { + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamChipsetId).c_str(), "I915_PARAM_CHIPSET_ID"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamRevision).c_str(), "I915_PARAM_REVISION"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamHasExecSoftpin).c_str(), "I915_PARAM_HAS_EXEC_SOFTPIN"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamHasPooledEu).c_str(), "I915_PARAM_HAS_POOLED_EU"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamHasScheduler).c_str(), "I915_PARAM_HAS_SCHEDULER"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamEuTotal).c_str(), "I915_PARAM_EU_TOTAL"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamSubsliceTotal).c_str(), "I915_PARAM_SUBSLICE_TOTAL"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamMinEuInPool).c_str(), "I915_PARAM_MIN_EU_IN_POOL"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamCsTimestampFrequency).c_str(), "I915_PARAM_CS_TIMESTAMP_FREQUENCY"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamHasVmBind).c_str(), "PRELIM_I915_PARAM_HAS_VM_BIND"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamHasPageFault).c_str(), "PRELIM_I915_PARAM_HAS_PAGE_FAULT"); +} + +TEST_F(IoctlPrelimHelperTests, whenGettingIoctlRequestStringThenProperStringIsReturned) { + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::Getparam).c_str(), "DRM_IOCTL_I915_GETPARAM"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemExecbuffer2).c_str(), "DRM_IOCTL_I915_GEM_EXECBUFFER2"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemWait).c_str(), "DRM_IOCTL_I915_GEM_WAIT"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemClose).c_str(), "DRM_IOCTL_GEM_CLOSE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemUserptr).c_str(), "DRM_IOCTL_I915_GEM_USERPTR"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemCreate).c_str(), "DRM_IOCTL_I915_GEM_CREATE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemSetDomain).c_str(), "DRM_IOCTL_I915_GEM_SET_DOMAIN"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemSetTiling).c_str(), "DRM_IOCTL_I915_GEM_SET_TILING"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemGetTiling).c_str(), "DRM_IOCTL_I915_GEM_GET_TILING"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextCreateExt).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextDestroy).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::RegRead).c_str(), "DRM_IOCTL_I915_REG_READ"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GetResetStats).c_str(), "DRM_IOCTL_I915_GET_RESET_STATS"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextGetparam).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextSetparam).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::Query).c_str(), "DRM_IOCTL_I915_QUERY"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::PrimeFdToHandle).c_str(), "DRM_IOCTL_PRIME_FD_TO_HANDLE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::PrimeHandleToFd).c_str(), "DRM_IOCTL_PRIME_HANDLE_TO_FD"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemVmBind).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_VM_BIND"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemVmUnbind).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_VM_UNBIND"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemWaitUserFence).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_WAIT_USER_FENCE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemCreateExt).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_CREATE_EXT"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemVmAdvise).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_VM_ADVISE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemVmPrefetch).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_VM_PREFETCH"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::UuidRegister).c_str(), "PRELIM_DRM_IOCTL_I915_UUID_REGISTER"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::UuidUnregister).c_str(), "PRELIM_DRM_IOCTL_I915_UUID_UNREGISTER"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::DebuggerOpen).c_str(), "PRELIM_DRM_IOCTL_I915_DEBUGGER_OPEN"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemClosReserve).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_CLOS_RESERVE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemClosFree).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_CLOS_FREE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemCacheReserve).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_CACHE_RESERVE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemMmapOffset).c_str(), "DRM_IOCTL_I915_GEM_MMAP_OFFSET"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemVmCreate).c_str(), "DRM_IOCTL_I915_GEM_VM_CREATE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemVmDestroy).c_str(), "DRM_IOCTL_I915_GEM_VM_DESTROY"); + + EXPECT_THROW(ioctlHelper.getIoctlString(DrmIoctl::DG1GemCreateExt), std::runtime_error); +} + TEST_F(IoctlPrelimHelperTests, whenGettingDrmParamValueThenPropertValueIsReturned) { EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::EngineClassCompute), static_cast(PRELIM_I915_ENGINE_CLASS_COMPUTE)); EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::EngineClassRender), static_cast(I915_ENGINE_CLASS_RENDER)); diff --git a/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_upstream.cpp b/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_upstream.cpp index 0321373e5c..3c09957b37 100644 --- a/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_upstream.cpp +++ b/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_upstream.cpp @@ -20,8 +20,37 @@ TEST(IoctlHelperUpstreamTest, whenGettingVmBindAvailabilityThenFalseIsReturned) IoctlHelperUpstream ioctlHelper{*drm}; EXPECT_FALSE(ioctlHelper.isVmBindAvailable()); } +TEST(IoctlHelperUpstreamTest, whenGettingIoctlRequestStringThenProperStringIsReturned) { + auto executionEnvironment = std::make_unique(); + auto drm = std::make_unique(*executionEnvironment->rootDeviceEnvironments[0]); + IoctlHelperUpstream ioctlHelper{*drm}; + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::Getparam).c_str(), "DRM_IOCTL_I915_GETPARAM"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemExecbuffer2).c_str(), "DRM_IOCTL_I915_GEM_EXECBUFFER2"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemWait).c_str(), "DRM_IOCTL_I915_GEM_WAIT"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemClose).c_str(), "DRM_IOCTL_GEM_CLOSE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemUserptr).c_str(), "DRM_IOCTL_I915_GEM_USERPTR"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemCreate).c_str(), "DRM_IOCTL_I915_GEM_CREATE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemSetDomain).c_str(), "DRM_IOCTL_I915_GEM_SET_DOMAIN"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemSetTiling).c_str(), "DRM_IOCTL_I915_GEM_SET_TILING"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemGetTiling).c_str(), "DRM_IOCTL_I915_GEM_GET_TILING"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextCreateExt).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextDestroy).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::RegRead).c_str(), "DRM_IOCTL_I915_REG_READ"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GetResetStats).c_str(), "DRM_IOCTL_I915_GET_RESET_STATS"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextGetparam).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemContextSetparam).c_str(), "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::Query).c_str(), "DRM_IOCTL_I915_QUERY"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::PrimeFdToHandle).c_str(), "DRM_IOCTL_PRIME_FD_TO_HANDLE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::PrimeHandleToFd).c_str(), "DRM_IOCTL_PRIME_HANDLE_TO_FD"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemCreateExt).c_str(), "DRM_IOCTL_I915_GEM_CREATE_EXT"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemMmapOffset).c_str(), "DRM_IOCTL_I915_GEM_MMAP_OFFSET"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemVmCreate).c_str(), "DRM_IOCTL_I915_GEM_VM_CREATE"); + EXPECT_STREQ(ioctlHelper.getIoctlString(DrmIoctl::GemVmDestroy).c_str(), "DRM_IOCTL_I915_GEM_VM_DESTROY"); -TEST(IoctlHelperUpstreamTest, whenGettingIoctlRequestValueThenPropertValueIsReturned) { + EXPECT_THROW(ioctlHelper.getIoctlString(DrmIoctl::DG1GemCreateExt), std::runtime_error); +} + +TEST(IoctlHelperUpstreamTest, whenGettingIoctlRequestValueThenProperValueIsReturned) { auto executionEnvironment = std::make_unique(); auto drm = std::make_unique(*executionEnvironment->rootDeviceEnvironments[0]); IoctlHelperUpstream ioctlHelper{*drm}; @@ -51,6 +80,21 @@ TEST(IoctlHelperUpstreamTest, whenGettingIoctlRequestValueThenPropertValueIsRetu EXPECT_THROW(ioctlHelper.getIoctlRequestValue(DrmIoctl::DG1GemCreateExt), std::runtime_error); } +TEST(IoctlHelperUpstreamTest, whenGettingDrmParamStringThenProperStringIsReturned) { + auto executionEnvironment = std::make_unique(); + auto drm = std::make_unique(*executionEnvironment->rootDeviceEnvironments[0]); + IoctlHelperUpstream ioctlHelper{*drm}; + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamChipsetId).c_str(), "I915_PARAM_CHIPSET_ID"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamRevision).c_str(), "I915_PARAM_REVISION"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamHasExecSoftpin).c_str(), "I915_PARAM_HAS_EXEC_SOFTPIN"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamHasPooledEu).c_str(), "I915_PARAM_HAS_POOLED_EU"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamHasScheduler).c_str(), "I915_PARAM_HAS_SCHEDULER"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamEuTotal).c_str(), "I915_PARAM_EU_TOTAL"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamSubsliceTotal).c_str(), "I915_PARAM_SUBSLICE_TOTAL"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamMinEuInPool).c_str(), "I915_PARAM_MIN_EU_IN_POOL"); + EXPECT_STREQ(ioctlHelper.getDrmParamString(DrmParam::ParamCsTimestampFrequency).c_str(), "I915_PARAM_CS_TIMESTAMP_FREQUENCY"); +} + TEST(IoctlHelperUpstreamTest, whenGettingDrmParamValueThenPropertValueIsReturned) { auto executionEnvironment = std::make_unique(); auto drm = std::make_unique(*executionEnvironment->rootDeviceEnvironments[0]);