Skip to content

Commit 8d6ec7d

Browse files
Loader Driver interaction conformance tests for Sysman Modules
Added tests for the following Sysman modules Diagnostics, ECC, Events, Fabric, Fan, Firmware, Frequency, Led Performance Related-To: NEO-15551 Signed-off-by: Pratik Bari <pratik.bari@intel.com>
1 parent 41d7fbd commit 8d6ec7d

2 files changed

Lines changed: 171 additions & 0 deletions

File tree

test/CMakeLists.txt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,36 @@ else()
601601
set_property(TEST tests_multi_driver_sysman_firmware_api APPEND PROPERTY ENVIRONMENT "ZE_ENABLE_LOADER_DEBUG_TRACE=1;ZE_ENABLE_ALT_DRIVERS=${CMAKE_BINARY_DIR}/lib/libze_null_test1.so,${CMAKE_BINARY_DIR}/lib/libze_null_test2.so")
602602
endif()
603603

604+
add_test(NAME tests_single_driver_sysman_frequency_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManFrequencyApisThenExpectNullDriverIsReachedSuccessfully)
605+
set_property(TEST tests_single_driver_sysman_frequency_api PROPERTY ENVIRONMENT "ZE_ENABLE_NULL_DRIVER=1")
606+
607+
add_test(NAME tests_multi_driver_sysman_frequency_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManFrequencyApisThenExpectNullDriverIsReachedSuccessfully)
608+
if (MSVC)
609+
set_property(TEST tests_multi_driver_sysman_frequency_api APPEND PROPERTY ENVIRONMENT "ZE_ENABLE_LOADER_DEBUG_TRACE=1;ZE_ENABLE_ALT_DRIVERS=${CMAKE_BINARY_DIR}/bin/$<CONFIG>/ze_null_test1.dll,${CMAKE_BINARY_DIR}/bin/$<CONFIG>/ze_null_test2.dll")
610+
else()
611+
set_property(TEST tests_multi_driver_sysman_frequency_api APPEND PROPERTY ENVIRONMENT "ZE_ENABLE_LOADER_DEBUG_TRACE=1;ZE_ENABLE_ALT_DRIVERS=${CMAKE_BINARY_DIR}/lib/libze_null_test1.so,${CMAKE_BINARY_DIR}/lib/libze_null_test2.so")
612+
endif()
613+
614+
add_test(NAME tests_single_driver_sysman_led_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManLedApisThenExpectNullDriverIsReachedSuccessfully)
615+
set_property(TEST tests_single_driver_sysman_led_api PROPERTY ENVIRONMENT "ZE_ENABLE_NULL_DRIVER=1")
616+
617+
add_test(NAME tests_multi_driver_sysman_led_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManLedApisThenExpectNullDriverIsReachedSuccessfully)
618+
if (MSVC)
619+
set_property(TEST tests_multi_driver_sysman_led_api APPEND PROPERTY ENVIRONMENT "ZE_ENABLE_LOADER_DEBUG_TRACE=1;ZE_ENABLE_ALT_DRIVERS=${CMAKE_BINARY_DIR}/bin/$<CONFIG>/ze_null_test1.dll,${CMAKE_BINARY_DIR}/bin/$<CONFIG>/ze_null_test2.dll")
620+
else()
621+
set_property(TEST tests_multi_driver_sysman_led_api APPEND PROPERTY ENVIRONMENT "ZE_ENABLE_LOADER_DEBUG_TRACE=1;ZE_ENABLE_ALT_DRIVERS=${CMAKE_BINARY_DIR}/lib/libze_null_test1.so,${CMAKE_BINARY_DIR}/lib/libze_null_test2.so")
622+
endif()
623+
624+
add_test(NAME tests_single_driver_sysman_performance_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManPerformanceApisThenExpectNullDriverIsReachedSuccessfully)
625+
set_property(TEST tests_single_driver_sysman_performance_api PROPERTY ENVIRONMENT "ZE_ENABLE_NULL_DRIVER=1")
626+
627+
add_test(NAME tests_multi_driver_sysman_performance_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManPerformanceApisThenExpectNullDriverIsReachedSuccessfully)
628+
if (MSVC)
629+
set_property(TEST tests_multi_driver_sysman_performance_api APPEND PROPERTY ENVIRONMENT "ZE_ENABLE_LOADER_DEBUG_TRACE=1;ZE_ENABLE_ALT_DRIVERS=${CMAKE_BINARY_DIR}/bin/$<CONFIG>/ze_null_test1.dll,${CMAKE_BINARY_DIR}/bin/$<CONFIG>/ze_null_test2.dll")
630+
else()
631+
set_property(TEST tests_multi_driver_sysman_performance_api APPEND PROPERTY ENVIRONMENT "ZE_ENABLE_LOADER_DEBUG_TRACE=1;ZE_ENABLE_ALT_DRIVERS=${CMAKE_BINARY_DIR}/lib/libze_null_test1.so,${CMAKE_BINARY_DIR}/lib/libze_null_test2.so")
632+
endif()
633+
604634

605635

606636
# Driver ordering tests - each test added individually

test/loader_api.cpp

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2418,6 +2418,147 @@ TEST(
24182418
}
24192419
}
24202420

2421+
TEST(
2422+
SysManApiLoaderDriverInteraction,
2423+
GivenLevelZeroLoaderPresentWhenCallingSysManFrequencyApisThenExpectNullDriverIsReachedSuccessfully)
2424+
{
2425+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesInit(0));
2426+
uint32_t driverCount = 0;
2427+
std::vector<zes_driver_handle_t> driverHandles{};
2428+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDriverGet(&driverCount, nullptr));
2429+
EXPECT_GT(driverCount, 0);
2430+
driverHandles.resize(driverCount);
2431+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDriverGet(&driverCount, driverHandles.data()));
2432+
2433+
for (std::size_t i = 0; i < driverHandles.size(); i++)
2434+
{
2435+
uint32_t deviceCount = 1;
2436+
zes_device_handle_t deviceHandle{};
2437+
uint32_t count = 1;
2438+
zes_freq_handle_t freqHandle{};
2439+
zes_freq_properties_t freqProperties{};
2440+
uint32_t numClocks = 0;
2441+
zes_freq_range_t freqRange{};
2442+
zes_freq_state_t freqState{};
2443+
zes_freq_throttle_time_t freqThrottleTime{};
2444+
zes_oc_capabilities_t ocCapabilities{};
2445+
zes_oc_mode_t ocMode{};
2446+
double ocFrequency = 0.0;
2447+
double ocVoltageTarget = 0.0;
2448+
double ocVoltageOffset = 0.0;
2449+
double ocIccMax = 0.0;
2450+
double ocTjMax = 0.0;
2451+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDeviceGet(driverHandles[i], &deviceCount, &deviceHandle));
2452+
EXPECT_TRUE(compare_env("zesDeviceGet", std::to_string(i + 1)));
2453+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDeviceEnumFrequencyDomains(deviceHandle, &count, &freqHandle));
2454+
EXPECT_TRUE(compare_env("zesDeviceEnumFrequencyDomains", std::to_string(i + 1)));
2455+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyGetProperties(freqHandle, &freqProperties));
2456+
EXPECT_TRUE(compare_env("zesFrequencyGetProperties", std::to_string(i + 1)));
2457+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyGetAvailableClocks(freqHandle, &numClocks, nullptr));
2458+
EXPECT_TRUE(compare_env("zesFrequencyGetAvailableClocks", std::to_string(i + 1)));
2459+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyGetRange(freqHandle, &freqRange));
2460+
EXPECT_TRUE(compare_env("zesFrequencyGetRange", std::to_string(i + 1)));
2461+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencySetRange(freqHandle, &freqRange));
2462+
EXPECT_TRUE(compare_env("zesFrequencySetRange", std::to_string(i + 1)));
2463+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyGetState(freqHandle, &freqState));
2464+
EXPECT_TRUE(compare_env("zesFrequencyGetState", std::to_string(i + 1)));
2465+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyGetThrottleTime(freqHandle, &freqThrottleTime));
2466+
EXPECT_TRUE(compare_env("zesFrequencyGetThrottleTime", std::to_string(i + 1)));
2467+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyOcGetCapabilities(freqHandle, &ocCapabilities));
2468+
EXPECT_TRUE(compare_env("zesFrequencyOcGetCapabilities", std::to_string(i + 1)));
2469+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyOcGetFrequencyTarget(freqHandle, &ocFrequency));
2470+
EXPECT_TRUE(compare_env("zesFrequencyOcGetFrequencyTarget", std::to_string(i + 1)));
2471+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyOcSetFrequencyTarget(freqHandle, ocFrequency));
2472+
EXPECT_TRUE(compare_env("zesFrequencyOcSetFrequencyTarget", std::to_string(i + 1)));
2473+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyOcGetVoltageTarget(freqHandle, &ocVoltageTarget, &ocVoltageOffset));
2474+
EXPECT_TRUE(compare_env("zesFrequencyOcGetVoltageTarget", std::to_string(i + 1)));
2475+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyOcSetVoltageTarget(freqHandle, ocVoltageTarget, ocVoltageOffset));
2476+
EXPECT_TRUE(compare_env("zesFrequencyOcSetVoltageTarget", std::to_string(i + 1)));
2477+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyOcSetMode(freqHandle, ocMode));
2478+
EXPECT_TRUE(compare_env("zesFrequencyOcSetMode", std::to_string(i + 1)));
2479+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyOcGetMode(freqHandle, &ocMode));
2480+
EXPECT_TRUE(compare_env("zesFrequencyOcGetMode", std::to_string(i + 1)));
2481+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyOcGetIccMax(freqHandle, &ocIccMax));
2482+
EXPECT_TRUE(compare_env("zesFrequencyOcGetIccMax", std::to_string(i + 1)));
2483+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyOcSetIccMax(freqHandle, ocIccMax));
2484+
EXPECT_TRUE(compare_env("zesFrequencyOcSetIccMax", std::to_string(i + 1)));
2485+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyOcGetTjMax(freqHandle, &ocTjMax));
2486+
EXPECT_TRUE(compare_env("zesFrequencyOcGetTjMax", std::to_string(i + 1)));
2487+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesFrequencyOcSetTjMax(freqHandle, ocTjMax));
2488+
EXPECT_TRUE(compare_env("zesFrequencyOcSetTjMax", std::to_string(i + 1)));
2489+
}
2490+
}
2491+
2492+
TEST(
2493+
SysManApiLoaderDriverInteraction,
2494+
GivenLevelZeroLoaderPresentWhenCallingSysManLedApisThenExpectNullDriverIsReachedSuccessfully)
2495+
{
2496+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesInit(0));
2497+
uint32_t driverCount = 0;
2498+
std::vector<zes_driver_handle_t> driverHandles{};
2499+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDriverGet(&driverCount, nullptr));
2500+
EXPECT_GT(driverCount, 0);
2501+
driverHandles.resize(driverCount);
2502+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDriverGet(&driverCount, driverHandles.data()));
2503+
2504+
for (std::size_t i = 0; i < driverHandles.size(); i++)
2505+
{
2506+
uint32_t deviceCount = 1;
2507+
zes_device_handle_t deviceHandle{};
2508+
uint32_t count = 1;
2509+
zes_led_handle_t ledHandle{};
2510+
zes_led_properties_t ledProperties{};
2511+
zes_led_state_t ledState{};
2512+
zes_led_color_t ledColor{};
2513+
ze_bool_t enable = true;
2514+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDeviceGet(driverHandles[i], &deviceCount, &deviceHandle));
2515+
EXPECT_TRUE(compare_env("zesDeviceGet", std::to_string(i + 1)));
2516+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDeviceEnumLeds(deviceHandle, &count, &ledHandle));
2517+
EXPECT_TRUE(compare_env("zesDeviceEnumLeds", std::to_string(i + 1)));
2518+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesLedGetProperties(ledHandle, &ledProperties));
2519+
EXPECT_TRUE(compare_env("zesLedGetProperties", std::to_string(i + 1)));
2520+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesLedGetState(ledHandle, &ledState));
2521+
EXPECT_TRUE(compare_env("zesLedGetState", std::to_string(i + 1)));
2522+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesLedSetState(ledHandle, enable));
2523+
EXPECT_TRUE(compare_env("zesLedSetState", std::to_string(i + 1)));
2524+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesLedSetColor(ledHandle, &ledColor));
2525+
EXPECT_TRUE(compare_env("zesLedSetColor", std::to_string(i + 1)));
2526+
}
2527+
}
2528+
2529+
TEST(
2530+
SysManApiLoaderDriverInteraction,
2531+
GivenLevelZeroLoaderPresentWhenCallingSysManPerformanceApisThenExpectNullDriverIsReachedSuccessfully)
2532+
{
2533+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesInit(0));
2534+
uint32_t driverCount = 0;
2535+
std::vector<zes_driver_handle_t> driverHandles{};
2536+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDriverGet(&driverCount, nullptr));
2537+
EXPECT_GT(driverCount, 0);
2538+
driverHandles.resize(driverCount);
2539+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDriverGet(&driverCount, driverHandles.data()));
2540+
2541+
for (std::size_t i = 0; i < driverHandles.size(); i++)
2542+
{
2543+
uint32_t deviceCount = 1;
2544+
zes_device_handle_t deviceHandle{};
2545+
uint32_t count = 1;
2546+
zes_perf_handle_t perfHandle{};
2547+
zes_perf_properties_t perfProperties{};
2548+
double perfFactor = 0.0;
2549+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDeviceGet(driverHandles[i], &deviceCount, &deviceHandle));
2550+
EXPECT_TRUE(compare_env("zesDeviceGet", std::to_string(i + 1)));
2551+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesDeviceEnumPerformanceFactorDomains(deviceHandle, &count, &perfHandle));
2552+
EXPECT_TRUE(compare_env("zesDeviceEnumPerformanceFactorDomains", std::to_string(i + 1)));
2553+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesPerformanceFactorGetProperties(perfHandle, &perfProperties));
2554+
EXPECT_TRUE(compare_env("zesPerformanceFactorGetProperties", std::to_string(i + 1)));
2555+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesPerformanceFactorGetConfig(perfHandle, &perfFactor));
2556+
EXPECT_TRUE(compare_env("zesPerformanceFactorGetConfig", std::to_string(i + 1)));
2557+
EXPECT_EQ(ZE_RESULT_SUCCESS, zesPerformanceFactorSetConfig(perfHandle, perfFactor));
2558+
EXPECT_TRUE(compare_env("zesPerformanceFactorSetConfig", std::to_string(i + 1)));
2559+
}
2560+
}
2561+
24212562
// Helper function to clear ZEL_DRIVERS_ORDER environment variable
24222563
void clearDriverOrderEnv() {
24232564
putenv_safe(const_cast<char *>("ZEL_DRIVERS_ORDER="));

0 commit comments

Comments
 (0)