From 1067167637f86cfc1a13f78db4c31ff8d70de922 Mon Sep 17 00:00:00 2001 From: Zbigniew Zdanowicz Date: Tue, 27 Jun 2023 16:21:32 +0000 Subject: [PATCH] test: adding testing debug flag overriding driver version Signed-off-by: Zbigniew Zdanowicz --- .../core/source/driver/driver_handle_imp.cpp | 3 ++ .../unit_tests/sources/driver/test_driver.cpp | 28 +++++++++++++++++++ .../debug_settings/debug_variables_base.inl | 1 + shared/test/common/test_files/igdrcl.config | 1 + 4 files changed, 33 insertions(+) diff --git a/level_zero/core/source/driver/driver_handle_imp.cpp b/level_zero/core/source/driver/driver_handle_imp.cpp index cd88df66c5..6871a581e8 100644 --- a/level_zero/core/source/driver/driver_handle_imp.cpp +++ b/level_zero/core/source/driver/driver_handle_imp.cpp @@ -108,6 +108,9 @@ ze_result_t DriverHandleImp::getApiVersion(ze_api_version_t *version) { ze_result_t DriverHandleImp::getProperties(ze_driver_properties_t *properties) { uint32_t versionBuild = static_cast(strtoul(NEO_VERSION_BUILD, NULL, 10)); properties->driverVersion = DriverHandleImp::initialDriverVersionValue + versionBuild; + if (NEO::DebugManager.flags.OverrideDriverVersion.get() > -1) { + properties->driverVersion = static_cast(NEO::DebugManager.flags.OverrideDriverVersion.get()); + } uint64_t uniqueId = (properties->driverVersion) | (uuidTimestamp & 0xFFFFFFFF00000000); memcpy_s(properties->uuid.id, sizeof(uniqueId), &uniqueId, sizeof(uniqueId)); diff --git a/level_zero/core/test/unit_tests/sources/driver/test_driver.cpp b/level_zero/core/test/unit_tests/sources/driver/test_driver.cpp index faaa6bd9bf..96373cccb6 100644 --- a/level_zero/core/test/unit_tests/sources/driver/test_driver.cpp +++ b/level_zero/core/test/unit_tests/sources/driver/test_driver.cpp @@ -134,6 +134,34 @@ TEST_F(DriverVersionTest, WhenGettingDriverVersionThenExpectedDriverVersionIsRet EXPECT_EQ(expectedDriverVersion, properties.driverVersion); } +TEST_F(DriverVersionTest, GivenDebugOverrideWhenGettingDriverVersionThenExpectedOverrideDriverVersionIsReturned) { + DebugManagerStateRestore restorer; + NEO::DebugManager.flags.OverrideDriverVersion.set(0); + + ze_driver_properties_t properties; + ze_result_t res = driverHandle->getProperties(&properties); + EXPECT_EQ(ZE_RESULT_SUCCESS, res); + + uint32_t expectedDriverVersion = 0; + EXPECT_EQ(expectedDriverVersion, properties.driverVersion); + + NEO::DebugManager.flags.OverrideDriverVersion.set(10); + + res = driverHandle->getProperties(&properties); + EXPECT_EQ(ZE_RESULT_SUCCESS, res); + + expectedDriverVersion = 10; + EXPECT_EQ(expectedDriverVersion, properties.driverVersion); + + NEO::DebugManager.flags.OverrideDriverVersion.set(DriverHandleImp::initialDriverVersionValue + 20); + + res = driverHandle->getProperties(&properties); + EXPECT_EQ(ZE_RESULT_SUCCESS, res); + + expectedDriverVersion = DriverHandleImp::initialDriverVersionValue + 20; + EXPECT_EQ(expectedDriverVersion, properties.driverVersion); +} + TEST_F(DriverVersionTest, givenCallToGetDriverPropertiesThenUuidIsSet) { ze_driver_properties_t properties; diff --git a/shared/source/debug_settings/debug_variables_base.inl b/shared/source/debug_settings/debug_variables_base.inl index a4623d2391..a4c8bdb8c6 100644 --- a/shared/source/debug_settings/debug_variables_base.inl +++ b/shared/source/debug_settings/debug_variables_base.inl @@ -247,6 +247,7 @@ DECLARE_DEBUG_VARIABLE(int32_t, EnableDynamicPostSyncAllocLayout, -1, "-1: defau DECLARE_DEBUG_VARIABLE(int32_t, PrintTimestampPacketUsage, -1, "-1: default, 0: Disabled, 1: Print when TSP is allocated, initialized, returned to pool, etc.") DECLARE_DEBUG_VARIABLE(int32_t, SynchronizeEventBeforeReset, -1, "-1: default, 0: Disabled, 1: Synchronize Event completion on host before calling reset. 2: Synchronize + print extra logs.") DECLARE_DEBUG_VARIABLE(int32_t, TrackNumCsrClientsOnSyncPoints, -1, "-1: default, 0: Disabled, 1: If set, synchronization points like zeEventHostSynchronize will unregister CmdQ from CSR clients") +DECLARE_DEBUG_VARIABLE(int32_t, OverrideDriverVersion, -1, "-1: default, >=0: Use value as reported driver version") /*LOGGING FLAGS*/ DECLARE_DEBUG_VARIABLE(int32_t, PrintDriverDiagnostics, -1, "prints driver diagnostics messages to standard output, value corresponds to hint level") diff --git a/shared/test/common/test_files/igdrcl.config b/shared/test/common/test_files/igdrcl.config index 936eb10205..70ebf46976 100644 --- a/shared/test/common/test_files/igdrcl.config +++ b/shared/test/common/test_files/igdrcl.config @@ -138,6 +138,7 @@ EnableAsyncDestroyAllocations = 1 EnableAsyncEventsHandler = 1 EnableForcePin = 1 EnableGemCloseWorker = -1 +OverrideDriverVersion = -1 EnableHostPtrValidation = -1 EnableComputeWorkSizeND = 1 EnableMultiRootDeviceContexts = 1