@@ -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
24222563void clearDriverOrderEnv () {
24232564 putenv_safe (const_cast <char *>(" ZEL_DRIVERS_ORDER=" ));
0 commit comments