-
Notifications
You must be signed in to change notification settings - Fork 109
/
Copy pathloader_api.cpp
71 lines (55 loc) · 2.05 KB
/
loader_api.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
*
* Copyright (C) 2024 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "gtest/gtest.h"
#include "loader/ze_loader.h"
#include "ze_api.h"
namespace {
TEST(
LoaderAPI,
GivenLevelZeroLoaderPresentWhenCallingzeGetLoaderVersionsAPIThenValidVersionIsReturned) {
EXPECT_EQ(ZE_RESULT_SUCCESS, zeInit(0));
size_t size = 0;
EXPECT_EQ(ZE_RESULT_SUCCESS, zelLoaderGetVersions(&size, nullptr));
EXPECT_GT(size, 0);
std::vector<zel_component_version_t> versions(size);
EXPECT_EQ(ZE_RESULT_SUCCESS, zelLoaderGetVersions(&size, versions.data()));
std::cout << "Found " << versions.size() << " versions" << std::endl;
std::cout << std::endl;
const std::string loader_name = "loader";
for (auto &component : versions) {
std::cout << "component.component_name: " << component.component_name << std::endl;
std::cout << "component.component_lib_version.major: " << component.component_lib_version.major << std::endl;
std::cout << "component.spec_version: " << component.spec_version << std::endl;
std::cout << "component.component_lib_name: " << component.component_name << std::endl;
std::cout << std::endl;
if (loader_name == component.component_name) {
EXPECT_GE(component.component_lib_version.major, 1);
}
}
}
TEST(
LoaderAPI,
GivenInitWhenCallingzelReloadDriversThenDriversStillWork
) {
EXPECT_EQ(ZE_RESULT_SUCCESS, zeInit(0));
uint32_t count = 0;
EXPECT_EQ(ZE_RESULT_SUCCESS, zeDriverGet(&count, nullptr));
EXPECT_GT(count, 0);
std::vector<ze_driver_handle_t> hDrivers(count);
EXPECT_EQ(ZE_RESULT_SUCCESS, zeDriverGet(&count, hDrivers.data()));
for (auto &driver : hDrivers) {
ze_driver_properties_t driverProperties;
EXPECT_EQ(ZE_RESULT_SUCCESS, zeDriverGetProperties(driver, &driverProperties));
}
EXPECT_EQ(ZE_RESULT_SUCCESS, zelReloadDrivers(0));
for (auto &driver : hDrivers) {
ze_driver_properties_t driverProperties;
EXPECT_EQ(ZE_RESULT_SUCCESS, zeDriverGetProperties(driver, &driverProperties));
}
}
} // namespace