@@ -2026,6 +2026,171 @@ TEST(
20262026 }
20272027 }
20282028
2029+ TEST (
2030+ SysManApiLoaderDriverInteraction,
2031+ GivenLevelZeroLoaderPresentWhenCallingSysManDeviceApisThenExpectNullDriverIsReachedSuccessfully)
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_device_properties_t deviceProperties{};
2047+ zes_device_state_t deviceState{};
2048+ zes_process_state_t processState{};
2049+ zes_pci_properties_t pciProperties{};
2050+ zes_pci_state_t pciState{};
2051+ zes_pci_bar_properties_t pciBarProperties{};
2052+ zes_pci_stats_t pciStats{};
2053+ ze_bool_t forceFlag = false ;
2054+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
2055+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
2056+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGetProperties (deviceHandle, &deviceProperties));
2057+ EXPECT_TRUE (compare_env (" zesDeviceGetProperties" , std::to_string (i + 1 )));
2058+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGetState (deviceHandle, &deviceState));
2059+ EXPECT_TRUE (compare_env (" zesDeviceGetState" , std::to_string (i + 1 )));
2060+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceReset (deviceHandle, forceFlag));
2061+ EXPECT_TRUE (compare_env (" zesDeviceReset" , std::to_string (i + 1 )));
2062+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceProcessesGetState (deviceHandle, &count, &processState));
2063+ EXPECT_TRUE (compare_env (" zesDeviceProcessesGetState" , std::to_string (i + 1 )));
2064+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDevicePciGetProperties (deviceHandle, &pciProperties));
2065+ EXPECT_TRUE (compare_env (" zesDevicePciGetProperties" , std::to_string (i + 1 )));
2066+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDevicePciGetState (deviceHandle, &pciState));
2067+ EXPECT_TRUE (compare_env (" zesDevicePciGetState" , std::to_string (i + 1 )));
2068+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDevicePciGetBars (deviceHandle, &count, &pciBarProperties));
2069+ EXPECT_TRUE (compare_env (" zesDevicePciGetBars" , std::to_string (i + 1 )));
2070+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDevicePciGetStats (deviceHandle, &pciStats));
2071+ EXPECT_TRUE (compare_env (" zesDevicePciGetStats" , std::to_string (i + 1 )));
2072+ }
2073+ }
2074+
2075+ TEST (
2076+ SysManApiLoaderDriverInteraction,
2077+ GivenLevelZeroLoaderPresentWhenCallingSysManDeviceExtApisThenExpectNullDriverIsReachedSuccessfully)
2078+ {
2079+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
2080+ uint32_t driverCount = 0 ;
2081+ std::vector<zes_driver_handle_t > driverHandles{};
2082+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
2083+ EXPECT_GT (driverCount, 0 );
2084+ driverHandles.resize (driverCount);
2085+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
2086+
2087+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2088+ {
2089+ uint32_t deviceCount = 1 ;
2090+ zes_device_handle_t deviceHandle{};
2091+ zes_reset_properties_t resetProperties{};
2092+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
2093+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
2094+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceResetExt (deviceHandle, &resetProperties));
2095+ EXPECT_TRUE (compare_env (" zesDeviceResetExt" , std::to_string (i + 1 )));
2096+ }
2097+ }
2098+
2099+ TEST (
2100+ SysManApiLoaderDriverInteraction,
2101+ GivenLevelZeroLoaderPresentWhenCallingSysManEngineApisThenExpectNullDriverIsReachedSuccessfully)
2102+ {
2103+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
2104+ uint32_t driverCount = 0 ;
2105+ std::vector<zes_driver_handle_t > driverHandles{};
2106+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
2107+ EXPECT_GT (driverCount, 0 );
2108+ driverHandles.resize (driverCount);
2109+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
2110+
2111+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2112+ {
2113+ uint32_t deviceCount = 1 ;
2114+ zes_device_handle_t deviceHandle{};
2115+ uint32_t count = 1 ;
2116+ zes_engine_handle_t engineHandle{};
2117+ zes_engine_properties_t engineProperties{};
2118+ zes_engine_stats_t engineStats{};
2119+
2120+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
2121+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
2122+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceEnumEngineGroups (deviceHandle, &count, &engineHandle));
2123+ EXPECT_TRUE (compare_env (" zesDeviceEnumEngineGroups" , std::to_string (i + 1 )));
2124+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesEngineGetProperties (engineHandle, &engineProperties));
2125+ EXPECT_TRUE (compare_env (" zesEngineGetProperties" , std::to_string (i + 1 )));
2126+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesEngineGetActivity (engineHandle, &engineStats));
2127+ EXPECT_TRUE (compare_env (" zesEngineGetActivity" , std::to_string (i + 1 )));
2128+ }
2129+ }
2130+
2131+ TEST (
2132+ SysManApiLoaderDriverInteraction,
2133+ GivenLevelZeroLoaderPresentWhenCallingSysManEngineExtApisThenExpectNullDriverIsReachedSuccessfully)
2134+ {
2135+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
2136+ uint32_t driverCount = 0 ;
2137+ std::vector<zes_driver_handle_t > driverHandles{};
2138+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
2139+ EXPECT_GT (driverCount, 0 );
2140+ driverHandles.resize (driverCount);
2141+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
2142+
2143+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2144+ {
2145+ uint32_t deviceCount = 1 ;
2146+ zes_device_handle_t deviceHandle{};
2147+ uint32_t count = 1 ;
2148+ zes_engine_handle_t engineHandle{};
2149+ zes_engine_stats_t engineStats{};
2150+
2151+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
2152+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
2153+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceEnumEngineGroups (deviceHandle, &count, &engineHandle));
2154+ EXPECT_TRUE (compare_env (" zesDeviceEnumEngineGroups" , std::to_string (i + 1 )));
2155+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesEngineGetActivityExt (engineHandle, &count, &engineStats));
2156+ EXPECT_TRUE (compare_env (" zesEngineGetActivityExt" , std::to_string (i + 1 )));
2157+ }
2158+ }
2159+
2160+ TEST (
2161+ SysManApiLoaderDriverInteraction,
2162+ GivenLevelZeroLoaderPresentWhenCallingSysManMemoryApisThenExpectNullDriverIsReachedSuccessfully)
2163+ {
2164+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesInit (0 ));
2165+ uint32_t driverCount = 0 ;
2166+ std::vector<zes_driver_handle_t > driverHandles{};
2167+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, nullptr ));
2168+ EXPECT_GT (driverCount, 0 );
2169+ driverHandles.resize (driverCount);
2170+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDriverGet (&driverCount, driverHandles.data ()));
2171+
2172+ for (std::size_t i = 0 ; i < driverHandles.size (); i++)
2173+ {
2174+ uint32_t deviceCount = 1 ;
2175+ zes_device_handle_t deviceHandle{};
2176+ uint32_t count = 1 ;
2177+ zes_mem_handle_t memHandle{};
2178+ zes_mem_properties_t memProperties{};
2179+ zes_mem_state_t memState{};
2180+ zes_mem_bandwidth_t memBandwidth{};
2181+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceGet (driverHandles[i], &deviceCount, &deviceHandle));
2182+ EXPECT_TRUE (compare_env (" zesDeviceGet" , std::to_string (i + 1 )));
2183+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesDeviceEnumMemoryModules (deviceHandle, &count, &memHandle));
2184+ EXPECT_TRUE (compare_env (" zesDeviceEnumMemoryModules" , std::to_string (i + 1 )));
2185+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesMemoryGetProperties (memHandle, &memProperties));
2186+ EXPECT_TRUE (compare_env (" zesMemoryGetProperties" , std::to_string (i + 1 )));
2187+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesMemoryGetState (memHandle, &memState));
2188+ EXPECT_TRUE (compare_env (" zesMemoryGetState" , std::to_string (i + 1 )));
2189+ EXPECT_EQ (ZE_RESULT_SUCCESS, zesMemoryGetBandwidth (memHandle, &memBandwidth));
2190+ EXPECT_TRUE (compare_env (" zesMemoryGetBandwidth" , std::to_string (i + 1 )));
2191+ }
2192+ }
2193+
20292194// Helper function to clear ZEL_DRIVERS_ORDER environment variable
20302195void clearDriverOrderEnv () {
20312196 putenv_safe (const_cast <char *>(" ZEL_DRIVERS_ORDER=" ));
0 commit comments