@@ -2026,6 +2026,101 @@ TEST(
20262026 }
20272027 }
20282028
2029+ TEST (
2030+ SysManApiLoaderDriverInteraction,
2031+ GivenLevelZeroLoaderPresentWhenCallingSysManEngineApisThenExpectNullDriverIsReachedSuccessfully)
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+
2041+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2042+ {
2043+ uint32_t deviceCount = 1 ;
2044+ zes_device_handle_t deviceHandle{};
2045+ uint32_t count = 1 ;
2046+ zes_engine_handle_t engineHandle{};
2047+ zes_engine_properties_t engineProperties{};
2048+ zes_engine_stats_t engineStats{};
2049+
2050+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
2051+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
2052+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceEnumEngineGroups (deviceHandle, &count, &engineHandle));
2053+ EXPECT_TRUE (compare_env (" zesDeviceEnumEngineGroups" , std::to_string (i + 1 )));
2054+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesEngineGetProperties (engineHandle, &engineProperties));
2055+ EXPECT_TRUE (compare_env (" zesEngineGetProperties" , std::to_string (i + 1 )));
2056+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesEngineGetActivity (engineHandle, &engineStats));
2057+ EXPECT_TRUE (compare_env (" zesEngineGetActivity" , std::to_string (i + 1 )));
2058+ }
2059+ }
2060+
2061+ TEST (
2062+ SysManApiLoaderDriverInteraction,
2063+ GivenLevelZeroLoaderPresentWhenCallingSysManEngineExtApisThenExpectNullDriverIsReachedSuccessfully)
2064+ {
2065+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
2066+ uint32_t driverCount = 0 ;
2067+ std::vector<zes_driver_handle_t > driverHandles{};
2068+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
2069+ EXPECT_GT (driverCount, 0 );
2070+ driverHandles.resize (driverCount);
2071+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
2072+
2073+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2074+ {
2075+ uint32_t deviceCount = 1 ;
2076+ zes_device_handle_t deviceHandle{};
2077+ uint32_t count = 1 ;
2078+ zes_engine_handle_t engineHandle{};
2079+ zes_engine_stats_t engineStats{};
2080+
2081+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
2082+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
2083+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceEnumEngineGroups (deviceHandle, &count, &engineHandle));
2084+ EXPECT_TRUE (compare_env (" zesDeviceEnumEngineGroups" , std::to_string (i + 1 )));
2085+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesEngineGetActivityExt (engineHandle, &count, &engineStats));
2086+ EXPECT_TRUE (compare_env (" zesEngineGetActivityExt" , std::to_string (i + 1 )));
2087+ }
2088+ }
2089+
2090+ TEST (
2091+ SysManApiLoaderDriverInteraction,
2092+ GivenLevelZeroLoaderPresentWhenCallingSysManMemoryApisThenExpectNullDriverIsReachedSuccessfully)
2093+ {
2094+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
2095+ uint32_t driverCount = 0 ;
2096+ std::vector<zes_driver_handle_t > driverHandles{};
2097+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
2098+ EXPECT_GT (driverCount, 0 );
2099+ driverHandles.resize (driverCount);
2100+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
2101+
2102+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2103+ {
2104+ uint32_t deviceCount = 1 ;
2105+ zes_device_handle_t deviceHandle{};
2106+ uint32_t count = 1 ;
2107+ zes_mem_handle_t memHandle{};
2108+ zes_mem_properties_t memProperties{};
2109+ zes_mem_state_t memState{};
2110+ zes_mem_bandwidth_t memBandwidth{};
2111+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
2112+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
2113+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceEnumMemoryModules (deviceHandle, &count, &memHandle));
2114+ EXPECT_TRUE (compare_env (" zesDeviceEnumMemoryModules" , std::to_string (i + 1 )));
2115+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesMemoryGetProperties (memHandle, &memProperties));
2116+ EXPECT_TRUE (compare_env (" zesMemoryGetProperties" , std::to_string (i + 1 )));
2117+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesMemoryGetState (memHandle, &memState));
2118+ EXPECT_TRUE (compare_env (" zesMemoryGetState" , std::to_string (i + 1 )));
2119+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesMemoryGetBandwidth (memHandle, &memBandwidth));
2120+ EXPECT_TRUE (compare_env (" zesMemoryGetBandwidth" , std::to_string (i + 1 )));
2121+ }
2122+ }
2123+
20292124// Helper function to clear ZEL_DRIVERS_ORDER environment variable
20302125void clearDriverOrderEnv () {
20312126 putenv_safe (const_cast <char *>(" ZEL_DRIVERS_ORDER=" ));
0 commit comments