@@ -2026,6 +2026,30 @@ TEST(
20262026 }
20272027 }
20282028
2029+ TEST (
2030+ SysManApiLoaderDriverInteraction,
2031+ GivenLevelZeroLoaderPresentWhenCallingSysManDriverApisThenExpectNullDriverIsReachedSuccessfully)
2032+ {
2033+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
2034+ uint32_t driverCount = 0 ;
2035+ std::vector<zes_driver_handle_t > driverHandles{};
2036+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
2037+ EXPECT_GT (driverCount, 0 );
2038+ driverHandles.resize (driverCount);
2039+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
2040+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2041+ {
2042+ uint32_t count = 1 ;
2043+ zes_driver_extension_properties_t extensionProperties{};
2044+ char * functionName = nullptr ;
2045+ void * pFunctionAddress = nullptr ;
2046+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGetExtensionProperties (driverHandles[i], &count, &extensionProperties));
2047+ EXPECT_TRUE (compare_env (" zesDriverGetExtensionProperties" , std::to_string (i + 1 )));
2048+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGetExtensionFunctionAddress (driverHandles[i], functionName, &pFunctionAddress));
2049+ EXPECT_TRUE (compare_env (" zesDriverGetExtensionFunctionAddress" , std::to_string (i + 1 )));
2050+ }
2051+ }
2052+
20292053 TEST (
20302054 SysManApiLoaderDriverInteraction,
20312055 GivenLevelZeroLoaderPresentWhenCallingSysManDeviceApisThenExpectNullDriverIsReachedSuccessfully)
@@ -2362,6 +2386,7 @@ TEST(
23622386 zes_fan_properties_t fanProperties{};
23632387 zes_fan_config_t fanConfig{};
23642388 zes_fan_speed_t fanSpeed{};
2389+ zes_fan_speed_table_t speedTable{};
23652390 EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
23662391 EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
23672392 EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceEnumFans (deviceHandle, &count, &fanHandle));
@@ -2374,6 +2399,8 @@ TEST(
23742399 EXPECT_TRUE (compare_env (" zesFanSetDefaultMode" , std::to_string (i + 1 )));
23752400 EXPECT_EQ (ZE_RESULT_SUCCESS, zesFanSetFixedSpeedMode (fanHandle, &fanSpeed));
23762401 EXPECT_TRUE (compare_env (" zesFanSetFixedSpeedMode" , std::to_string (i + 1 )));
2402+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesFanSetSpeedTableMode (fanHandle, &speedTable));
2403+ EXPECT_TRUE (compare_env (" zesFanSetSpeedTableMode" , std::to_string (i + 1 )));
23772404 EXPECT_EQ (ZE_RESULT_SUCCESS, zesFanGetState (fanHandle, ZES_FAN_SPEED_UNITS_RPM, &fanSpeed.speed ));
23782405 EXPECT_TRUE (compare_env (" zesFanGetState" , std::to_string (i + 1 )));
23792406 }
@@ -2864,6 +2891,154 @@ TEST(
28642891 }
28652892 }
28662893
2894+ TEST (
2895+ SysManApiLoaderDriverInteraction,
2896+ GivenLevelZeroLoaderPresentWhenCallingSysManPciLinkSpeedDowngradeApisThenExpectNullDriverIsReachedSuccessfully)
2897+ {
2898+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
2899+ uint32_t driverCount = 0 ;
2900+ std::vector<zes_driver_handle_t > driverHandles{};
2901+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
2902+ EXPECT_GT (driverCount, 0 );
2903+ driverHandles.resize (driverCount);
2904+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
2905+
2906+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2907+ {
2908+ uint32_t deviceCount = 1 ;
2909+ zes_device_handle_t deviceHandle{};
2910+ zes_device_action_t pendingAction{};
2911+ ze_bool_t shouldDowngrade = true ;
2912+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
2913+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
2914+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDevicePciLinkSpeedUpdateExt (deviceHandle, shouldDowngrade, &pendingAction));
2915+ EXPECT_TRUE (compare_env (" zesDevicePciLinkSpeedUpdateExt" , std::to_string (i + 1 )));
2916+ }
2917+ }
2918+
2919+ TEST (
2920+ SysManApiLoaderDriverInteraction,
2921+ GivenLevelZeroLoaderPresentWhenCallingSysManPowerLimitsExtApisThenExpectNullDriverIsReachedSuccessfully)
2922+ {
2923+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
2924+ uint32_t driverCount = 0 ;
2925+ std::vector<zes_driver_handle_t > driverHandles{};
2926+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
2927+ EXPECT_GT (driverCount, 0 );
2928+ driverHandles.resize (driverCount);
2929+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
2930+
2931+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2932+ {
2933+ uint32_t deviceCount = 1 ;
2934+ zes_device_handle_t deviceHandle{};
2935+ zes_pwr_handle_t powerHandle{};
2936+ uint32_t count = 1 ;
2937+ zes_power_limit_ext_desc_t powerLimitsExt{};
2938+
2939+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
2940+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
2941+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceEnumPowerDomains (deviceHandle, &count, &powerHandle));
2942+ EXPECT_TRUE (compare_env (" zesDeviceEnumPowerDomains" , std::to_string (i + 1 )));
2943+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesPowerGetLimitsExt (powerHandle, &count, &powerLimitsExt));
2944+ EXPECT_TRUE (compare_env (" zesPowerGetLimitsExt" , std::to_string (i + 1 )));
2945+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesPowerSetLimitsExt (powerHandle, &count, &powerLimitsExt));
2946+ EXPECT_TRUE (compare_env (" zesPowerSetLimitsExt" , std::to_string (i + 1 )));
2947+ }
2948+ }
2949+
2950+ TEST (
2951+ SysManApiLoaderDriverInteraction,
2952+ GivenLevelZeroLoaderPresentWhenCallingSysManRasStateExtApisThenExpectNullDriverIsReachedSuccessfully)
2953+ {
2954+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
2955+ uint32_t driverCount = 0 ;
2956+ std::vector<zes_driver_handle_t > driverHandles{};
2957+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
2958+ EXPECT_GT (driverCount, 0 );
2959+ driverHandles.resize (driverCount);
2960+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
2961+
2962+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2963+ {
2964+ uint32_t deviceCount = 1 ;
2965+ zes_device_handle_t deviceHandle{};
2966+ zes_ras_handle_t rasHandle{};
2967+ zes_ras_state_exp_t rasState{};
2968+ zes_ras_error_category_exp_t errorCategory = ZES_RAS_ERROR_CATEGORY_EXP_CACHE_ERRORS;
2969+ uint32_t count = 1 ;
2970+ uint32_t stateCount = 0 ;
2971+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
2972+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
2973+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceEnumRasErrorSets (deviceHandle, &count, &rasHandle));
2974+ EXPECT_TRUE (compare_env (" zesDeviceEnumRasErrorSets" , std::to_string (i + 1 )));
2975+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesRasGetStateExp (rasHandle, &stateCount, &rasState));
2976+ EXPECT_TRUE (compare_env (" zesRasGetStateExp" , std::to_string (i + 1 )));
2977+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesRasClearStateExp (rasHandle, errorCategory));
2978+ EXPECT_TRUE (compare_env (" zesRasClearStateExp" , std::to_string (i + 1 )));
2979+ }
2980+ }
2981+
2982+ TEST (
2983+ SysManApiLoaderDriverInteraction,
2984+ GivenLevelZeroLoaderPresentWhenCallingSysManFirmwareSecurityVersionExtApisThenExpectNullDriverIsReachedSuccessfully)
2985+ {
2986+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
2987+ uint32_t driverCount = 0 ;
2988+ std::vector<zes_driver_handle_t > driverHandles{};
2989+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
2990+ EXPECT_GT (driverCount, 0 );
2991+ driverHandles.resize (driverCount);
2992+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
2993+
2994+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2995+ {
2996+ uint32_t deviceCount = 1 ;
2997+ zes_device_handle_t deviceHandle{};
2998+ uint32_t count = 1 ;
2999+ zes_firmware_handle_t firmwareHandle{};
3000+ char version[ZES_STRING_PROPERTY_SIZE];
3001+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
3002+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
3003+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceEnumFirmwares (deviceHandle, &count, &firmwareHandle));
3004+ EXPECT_TRUE (compare_env (" zesDeviceEnumFirmwares" , std::to_string (i + 1 )));
3005+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesFirmwareGetSecurityVersionExp (firmwareHandle, version));
3006+ EXPECT_TRUE (compare_env (" zesFirmwareGetSecurityVersionExp" , std::to_string (i + 1 )));
3007+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesFirmwareSetSecurityVersionExp (firmwareHandle));
3008+ EXPECT_TRUE (compare_env (" zesFirmwareSetSecurityVersionExp" , std::to_string (i + 1 )));
3009+ }
3010+ }
3011+
3012+ TEST (
3013+ SysManApiLoaderDriverInteraction,
3014+ GivenLevelZeroLoaderPresentWhenCallingSysManDeviceMappingExtApisThenExpectNullDriverIsReachedSuccessfully)
3015+ {
3016+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
3017+ uint32_t driverCount = 0 ;
3018+ std::vector<zes_driver_handle_t > driverHandles{};
3019+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
3020+ EXPECT_GT (driverCount, 0 );
3021+ driverHandles.resize (driverCount);
3022+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
3023+
3024+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
3025+ {
3026+ uint32_t deviceCount = 1 ;
3027+ zes_device_handle_t deviceHandle{};
3028+ zes_subdevice_exp_properties_t subDeviceProps{};
3029+ zes_uuid_t uuid{};
3030+ uint32_t subDeviceCount = 0 ;
3031+ uint32_t subdeviceId = 0 ;
3032+ ze_bool_t onSubdevice = false ;
3033+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
3034+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
3035+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGetSubDevicePropertiesExp (deviceHandle, &subDeviceCount, &subDeviceProps));
3036+ EXPECT_TRUE (compare_env (" zesDeviceGetSubDevicePropertiesExp" , std::to_string (i + 1 )));
3037+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGetDeviceByUuidExp (driverHandles[i], uuid, &deviceHandle, &onSubdevice, &subdeviceId));
3038+ EXPECT_TRUE (compare_env (" zesDriverGetDeviceByUuidExp" , std::to_string (i + 1 )));
3039+ }
3040+ }
3041+
28673042// Helper function to clear ZEL_DRIVERS_ORDER environment variable
28683043void clearDriverOrderEnv () {
28693044 putenv_safe (const_cast <char *>(" ZEL_DRIVERS_ORDER=" ));
0 commit comments