From e94c942ecb90cd9fa21aa5729c0c0a7ec22ba768 Mon Sep 17 00:00:00 2001 From: Jaime Arteaga Date: Fri, 12 Feb 2021 07:53:34 -0800 Subject: [PATCH] Have Tools and Sysman Process Address Tables fail on mismatched versions Signed-off-by: Jaime Arteaga --- level_zero/api/sysman/ze_sysman_loader.cpp | 87 +++-- level_zero/api/tools/ze_tools_loader.cpp | 62 ++-- .../unit_tests/sources/loader/CMakeLists.txt | 10 + .../unit_tests/sources/loader/test_loader.cpp | 339 ++++++++++++++++++ 4 files changed, 438 insertions(+), 60 deletions(-) create mode 100644 level_zero/tools/test/unit_tests/sources/loader/CMakeLists.txt create mode 100644 level_zero/tools/test/unit_tests/sources/loader/test_loader.cpp diff --git a/level_zero/api/sysman/ze_sysman_loader.cpp b/level_zero/api/sysman/ze_sysman_loader.cpp index face16df05..1c8b7d9437 100644 --- a/level_zero/api/sysman/ze_sysman_loader.cpp +++ b/level_zero/api/sysman/ze_sysman_loader.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2020 Intel Corporation + * Copyright (C) 2019-2021 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -25,8 +25,9 @@ zesGetDeviceProcAddrTable( zes_device_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -70,8 +71,9 @@ zesGetDriverProcAddrTable( zes_driver_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -92,8 +94,9 @@ zesGetDiagnosticsProcAddrTable( zes_diagnostics_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -117,8 +120,9 @@ zesGetEngineProcAddrTable( zes_engine_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; @@ -142,8 +146,9 @@ zesGetFabricPortProcAddrTable( zes_fabric_port_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -170,8 +175,9 @@ zesGetFanProcAddrTable( zes_fan_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -198,8 +204,9 @@ zesGetFirmwareProcAddrTable( zes_firmware_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -222,8 +229,9 @@ zesGetFrequencyProcAddrTable( zes_frequency_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; @@ -262,8 +270,9 @@ zesGetLedProcAddrTable( zes_led_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -288,8 +297,9 @@ zesGetMemoryProcAddrTable( zes_memory_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -313,8 +323,9 @@ zesGetPerformanceFactorProcAddrTable( zes_performance_factor_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -338,8 +349,9 @@ zesGetPowerProcAddrTable( zes_power_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -366,8 +378,9 @@ zesGetPsuProcAddrTable( zes_psu_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -390,8 +403,9 @@ zesGetRasProcAddrTable( zes_ras_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -416,8 +430,9 @@ zesGetSchedulerProcAddrTable( zes_scheduler_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -446,8 +461,9 @@ zesGetStandbyProcAddrTable( zes_standby_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; @@ -471,8 +487,9 @@ zesGetTemperatureProcAddrTable( zes_temperature_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; NEO::EnvironmentVariableReader envReader; diff --git a/level_zero/api/tools/ze_tools_loader.cpp b/level_zero/api/tools/ze_tools_loader.cpp index 4da02c6f0c..2e2d005265 100644 --- a/level_zero/api/tools/ze_tools_loader.cpp +++ b/level_zero/api/tools/ze_tools_loader.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2020 Intel Corporation + * Copyright (C) 2019-2021 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -24,8 +24,9 @@ zetGetContextProcAddrTable( ze_result_t result = ZE_RESULT_SUCCESS; if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; pDdiTable->pfnActivateMetricGroups = zetContextActivateMetricGroups; return result; } @@ -36,8 +37,9 @@ zetGetMetricStreamerProcAddrTable( zet_metric_streamer_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; pDdiTable->pfnOpen = zetMetricStreamerOpen; @@ -53,8 +55,9 @@ zetGetTracerExpProcAddrTable( zet_tracer_exp_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; pDdiTable->pfnCreate = zetTracerExpCreate; pDdiTable->pfnDestroy = zetTracerExpDestroy; @@ -70,8 +73,9 @@ zetGetCommandListProcAddrTable( zet_command_list_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; pDdiTable->pfnAppendMetricStreamerMarker = zetCommandListAppendMetricStreamerMarker; pDdiTable->pfnAppendMetricQueryBegin = zetCommandListAppendMetricQueryBegin; @@ -86,8 +90,9 @@ zetGetModuleProcAddrTable( zet_module_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; pDdiTable->pfnGetDebugInfo = zetModuleGetDebugInfo; return result; @@ -99,8 +104,9 @@ zetGetKernelProcAddrTable( zet_kernel_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; pDdiTable->pfnGetProfileInfo = zetKernelGetProfileInfo; return result; @@ -112,8 +118,9 @@ zetGetMetricGroupProcAddrTable( zet_metric_group_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; pDdiTable->pfnGet = zetMetricGroupGet; pDdiTable->pfnGetProperties = zetMetricGroupGetProperties; @@ -127,8 +134,9 @@ zetGetMetricProcAddrTable( zet_metric_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; pDdiTable->pfnGet = zetMetricGet; @@ -142,8 +150,9 @@ zetGetMetricQueryPoolProcAddrTable( zet_metric_query_pool_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; pDdiTable->pfnCreate = zetMetricQueryPoolCreate; pDdiTable->pfnDestroy = zetMetricQueryPoolDestroy; @@ -156,8 +165,9 @@ zetGetMetricQueryProcAddrTable( zet_metric_query_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; pDdiTable->pfnCreate = zetMetricQueryCreate; @@ -173,8 +183,9 @@ zetGetDeviceProcAddrTable( zet_device_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; pDdiTable->pfnGetDebugProperties = zetDeviceGetDebugProperties; @@ -187,8 +198,9 @@ zetGetDebugProcAddrTable( zet_debug_dditable_t *pDdiTable) { if (nullptr == pDdiTable) return ZE_RESULT_ERROR_INVALID_ARGUMENT; - if (driver_ddiTable.version < version) - return ZE_RESULT_ERROR_UNKNOWN; + if (ZE_MAJOR_VERSION(driver_ddiTable.version) != ZE_MAJOR_VERSION(version) || + ZE_MINOR_VERSION(driver_ddiTable.version) > ZE_MINOR_VERSION(version)) + return ZE_RESULT_ERROR_UNSUPPORTED_VERSION; ze_result_t result = ZE_RESULT_SUCCESS; pDdiTable->pfnAttach = zetDebugAttach; diff --git a/level_zero/tools/test/unit_tests/sources/loader/CMakeLists.txt b/level_zero/tools/test/unit_tests/sources/loader/CMakeLists.txt new file mode 100644 index 0000000000..ef16e0e0c0 --- /dev/null +++ b/level_zero/tools/test/unit_tests/sources/loader/CMakeLists.txt @@ -0,0 +1,10 @@ +# +# Copyright (C) 2021 Intel Corporation +# +# SPDX-License-Identifier: MIT +# + +target_sources(${TARGET_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt + ${CMAKE_CURRENT_SOURCE_DIR}/test_loader.cpp +) diff --git a/level_zero/tools/test/unit_tests/sources/loader/test_loader.cpp b/level_zero/tools/test/unit_tests/sources/loader/test_loader.cpp new file mode 100644 index 0000000000..b6a8f72c12 --- /dev/null +++ b/level_zero/tools/test/unit_tests/sources/loader/test_loader.cpp @@ -0,0 +1,339 @@ +/* + * Copyright (C) 2021 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "test.h" + +#include +#include + +#include "ze_ddi_tables.h" + +namespace L0 { +namespace ult { + +TEST(zesGetDriverProcAddrTableTest, + whenCallingzesGetDriverProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_driver_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetDriverProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetDiagnosticsProcAddrTableTest, + whenCallingzesGetDiagnosticsProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_diagnostics_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetDiagnosticsProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetEngineProcAddrTableTest, + whenCallingzesGetEngineProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_engine_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetEngineProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetFabricPortProcAddrTableTest, + whenCallingzesGetFabricPortProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_fabric_port_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetFabricPortProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetFanProcAddrTableTest, + whenCallingzesGetFanProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_fan_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetFanProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetDeviceProcAddrTableTest, + whenCallingzesGetDeviceProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_device_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetDeviceProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetFirmwareProcAddrTableTest, + whenCallingzesGetFirmwareProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_firmware_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetFirmwareProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetFrequencyProcAddrTableTest, + whenCallingzesGetFrequencyProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_frequency_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetFrequencyProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetLedProcAddrTableTest, + whenCallingzesGetLedProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_led_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetLedProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetMemoryProcAddrTableTest, + whenCallingzesGetMemoryProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_memory_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetMemoryProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetPerformanceFactorProcAddrTableTest, + whenCallingzesGetPerformanceFactorProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_performance_factor_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetPerformanceFactorProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetPowerProcAddrTableTest, + whenCallingzesGetPowerProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_power_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetPowerProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetPsuProcAddrTableTest, + whenCallingzesGetPsuProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_psu_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetPsuProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetRasProcAddrTableTest, + whenCallingzesGetRasProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_ras_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetRasProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetSchedulerProcAddrTableTest, + whenCallingzesGetSchedulerProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_scheduler_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetSchedulerProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetStandbyProcAddrTableTest, + whenCallingzesGetStandbyProcAddrTableWithCorrectMajorVersionThenSuccessIsReturnedAndMinorVersionIsIgnored) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(1u, 64u)); + zes_standby_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetStandbyProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_SUCCESS, result); +} + +TEST(zesGetDriverProcAddrTableTest, + whenCallingzesGetDriverProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_driver_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetDriverProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetDiagnosticsProcAddrTableTest, + whenCallingzesGetDiagnosticsProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_diagnostics_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetDiagnosticsProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetEngineProcAddrTableTest, + whenCallingzesGetEngineProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_engine_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetEngineProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetFabricPortProcAddrTableTest, + whenCallingzesGetFabricPortProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_fabric_port_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetFabricPortProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetFanProcAddrTableTest, + whenCallingzesGetFanProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_fan_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetFanProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetDeviceProcAddrTableTest, + whenCallingzesGetDeviceProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_device_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetDeviceProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetFirmwareProcAddrTableTest, + whenCallingzesGetFirmwareProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_firmware_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetFirmwareProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetFrequencyProcAddrTableTest, + whenCallingzesGetFrequencyProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_frequency_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetFrequencyProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetLedProcAddrTableTest, + whenCallingzesGetLedProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_led_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetLedProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetMemoryProcAddrTableTest, + whenCallingzesGetMemoryProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_memory_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetMemoryProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetPerformanceFactorProcAddrTableTest, + whenCallingzesGetPerformanceFactorProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_performance_factor_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetPerformanceFactorProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetPowerProcAddrTableTest, + whenCallingzesGetPowerProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_power_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetPowerProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetPsuProcAddrTableTest, + whenCallingzesGetPsuProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_psu_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetPsuProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetRasProcAddrTableTest, + whenCallingzesGetRasProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_ras_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetRasProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetSchedulerProcAddrTableTest, + whenCallingzesGetSchedulerProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_scheduler_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetSchedulerProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +TEST(zesGetStandbyProcAddrTableTest, + whenCallingzesGetStandbyProcAddrTableWithGreaterThanAllowedMajorVersionThenUnitializedIsReturned) { + + ze_api_version_t version = static_cast(ZE_MAKE_VERSION(64u, 0u)); + zes_standby_dditable_t pDdiTable = {}; + + ze_result_t result = zesGetStandbyProcAddrTable(version, &pDdiTable); + EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_VERSION, result); +} + +} // namespace ult +} // namespace L0