Skip to content

Commit b313227

Browse files
Added tests for Loader Driver interaction conformance for Sysman Modules (#409)
Added tests for the Sysman Device, Engine and Memory Modules Signed-off-by: Pratik Bari <[email protected]>
1 parent d562046 commit b313227

File tree

2 files changed

+215
-0
lines changed

2 files changed

+215
-0
lines changed

test/CMakeLists.txt

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,56 @@ else()
491491
set_property(TEST tests_multi_driver_sysman_vf_management_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")
492492
endif()
493493

494+
add_test(NAME tests_single_driver_sysman_device_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManDeviceApisThenExpectNullDriverIsReachedSuccessfully)
495+
set_property(TEST tests_single_driver_sysman_device_api PROPERTY ENVIRONMENT "ZE_ENABLE_NULL_DRIVER=1")
496+
497+
add_test(NAME tests_multi_driver_sysman_device_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManDeviceApisThenExpectNullDriverIsReachedSuccessfully)
498+
if (MSVC)
499+
set_property(TEST tests_multi_driver_sysman_device_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")
500+
else()
501+
set_property(TEST tests_multi_driver_sysman_device_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")
502+
endif()
503+
504+
add_test(NAME tests_single_driver_sysman_device_ext_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManDeviceExtApisThenExpectNullDriverIsReachedSuccessfully)
505+
set_property(TEST tests_single_driver_sysman_device_ext_api PROPERTY ENVIRONMENT "ZE_ENABLE_NULL_DRIVER=1")
506+
507+
add_test(NAME tests_multi_driver_sysman_device_ext_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManDeviceExtApisThenExpectNullDriverIsReachedSuccessfully)
508+
if (MSVC)
509+
set_property(TEST tests_multi_driver_sysman_device_ext_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")
510+
else()
511+
set_property(TEST tests_multi_driver_sysman_device_ext_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")
512+
endif()
513+
514+
add_test(NAME tests_single_driver_sysman_engine_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManEngineApisThenExpectNullDriverIsReachedSuccessfully)
515+
set_property(TEST tests_single_driver_sysman_engine_api PROPERTY ENVIRONMENT "ZE_ENABLE_NULL_DRIVER=1")
516+
517+
add_test(NAME tests_multi_driver_sysman_engine_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManEngineApisThenExpectNullDriverIsReachedSuccessfully)
518+
if (MSVC)
519+
set_property(TEST tests_multi_driver_sysman_engine_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")
520+
else()
521+
set_property(TEST tests_multi_driver_sysman_engine_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")
522+
endif()
523+
524+
add_test(NAME tests_single_driver_sysman_engine_ext_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManEngineExtApisThenExpectNullDriverIsReachedSuccessfully)
525+
set_property(TEST tests_single_driver_sysman_engine_ext_api PROPERTY ENVIRONMENT "ZE_ENABLE_NULL_DRIVER=1")
526+
527+
add_test(NAME tests_multi_driver_sysman_engine_ext_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManEngineExtApisThenExpectNullDriverIsReachedSuccessfully)
528+
if (MSVC)
529+
set_property(TEST tests_multi_driver_sysman_engine_ext_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")
530+
else()
531+
set_property(TEST tests_multi_driver_sysman_engine_ext_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")
532+
endif()
533+
534+
add_test(NAME tests_single_driver_sysman_memory_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManMemoryApisThenExpectNullDriverIsReachedSuccessfully)
535+
set_property(TEST tests_single_driver_sysman_memory_api PROPERTY ENVIRONMENT "ZE_ENABLE_NULL_DRIVER=1")
536+
537+
add_test(NAME tests_multi_driver_sysman_memory_api COMMAND tests --gtest_filter=*GivenLevelZeroLoaderPresentWhenCallingSysManMemoryApisThenExpectNullDriverIsReachedSuccessfully)
538+
if (MSVC)
539+
set_property(TEST tests_multi_driver_sysman_memory_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")
540+
else()
541+
set_property(TEST tests_multi_driver_sysman_memory_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")
542+
endif()
543+
494544
# Driver ordering tests - each test added individually
495545
add_test(NAME tests_driver_ordering_specific_type_and_index COMMAND tests --gtest_filter=*GivenZelDriversOrderWithSpecificTypeAndIndexWhenCallingZeInitDriversThenSuccessfulReturn)
496546
if (MSVC)

test/loader_api.cpp

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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
20302195
void clearDriverOrderEnv() {
20312196
putenv_safe(const_cast<char *>("ZEL_DRIVERS_ORDER="));

0 commit comments

Comments
 (0)