1 | //===------- Offload API tests - olGetDeviceInfo --------------------------===// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #include "../common/Fixtures.hpp" |
10 | #include <OffloadAPI.h> |
11 | #include <gtest/gtest.h> |
12 | |
13 | using olGetDeviceInfoTest = OffloadDeviceTest; |
14 | OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olGetDeviceInfoTest); |
15 | |
16 | TEST_P(olGetDeviceInfoTest, SuccessType) { |
17 | ol_device_type_t DeviceType; |
18 | ASSERT_SUCCESS(olGetDeviceInfo(Device, OL_DEVICE_INFO_TYPE, |
19 | sizeof(ol_device_type_t), &DeviceType)); |
20 | } |
21 | |
22 | TEST_P(olGetDeviceInfoTest, HostSuccessType) { |
23 | ol_device_type_t DeviceType; |
24 | ASSERT_SUCCESS(olGetDeviceInfo(Host, OL_DEVICE_INFO_TYPE, |
25 | sizeof(ol_device_type_t), &DeviceType)); |
26 | ASSERT_EQ(DeviceType, OL_DEVICE_TYPE_HOST); |
27 | } |
28 | |
29 | TEST_P(olGetDeviceInfoTest, SuccessPlatform) { |
30 | ol_platform_handle_t Platform = nullptr; |
31 | ASSERT_SUCCESS(olGetDeviceInfo(Device, OL_DEVICE_INFO_PLATFORM, |
32 | sizeof(ol_platform_handle_t), &Platform)); |
33 | ASSERT_NE(Platform, nullptr); |
34 | } |
35 | |
36 | TEST_P(olGetDeviceInfoTest, SuccessName) { |
37 | size_t Size = 0; |
38 | ASSERT_SUCCESS(olGetDeviceInfoSize(Device, OL_DEVICE_INFO_NAME, &Size)); |
39 | ASSERT_GT(Size, 0ul); |
40 | std::vector<char> Name; |
41 | Name.resize(new_size: Size); |
42 | ASSERT_SUCCESS( |
43 | olGetDeviceInfo(Device, OL_DEVICE_INFO_NAME, Size, Name.data())); |
44 | ASSERT_EQ(std::strlen(s: Name.data()), Size - 1); |
45 | } |
46 | |
47 | TEST_P(olGetDeviceInfoTest, HostName) { |
48 | size_t Size = 0; |
49 | ASSERT_SUCCESS(olGetDeviceInfoSize(Host, OL_DEVICE_INFO_NAME, &Size)); |
50 | ASSERT_GT(Size, 0ul); |
51 | std::vector<char> Name; |
52 | Name.resize(new_size: Size); |
53 | ASSERT_SUCCESS(olGetDeviceInfo(Host, OL_DEVICE_INFO_NAME, Size, Name.data())); |
54 | ASSERT_EQ(std::strlen(s: Name.data()), Size - 1); |
55 | } |
56 | |
57 | TEST_P(olGetDeviceInfoTest, SuccessVendor) { |
58 | size_t Size = 0; |
59 | ASSERT_SUCCESS(olGetDeviceInfoSize(Device, OL_DEVICE_INFO_VENDOR, &Size)); |
60 | ASSERT_GT(Size, 0ul); |
61 | std::vector<char> Vendor; |
62 | Vendor.resize(new_size: Size); |
63 | ASSERT_SUCCESS( |
64 | olGetDeviceInfo(Device, OL_DEVICE_INFO_VENDOR, Size, Vendor.data())); |
65 | ASSERT_EQ(std::strlen(s: Vendor.data()), Size - 1); |
66 | } |
67 | |
68 | TEST_P(olGetDeviceInfoTest, SuccessDriverVersion) { |
69 | size_t Size = 0; |
70 | ASSERT_SUCCESS( |
71 | olGetDeviceInfoSize(Device, OL_DEVICE_INFO_DRIVER_VERSION, &Size)); |
72 | ASSERT_GT(Size, 0ul); |
73 | std::vector<char> DriverVersion; |
74 | DriverVersion.resize(new_size: Size); |
75 | ASSERT_SUCCESS(olGetDeviceInfo(Device, OL_DEVICE_INFO_DRIVER_VERSION, Size, |
76 | DriverVersion.data())); |
77 | ASSERT_EQ(std::strlen(s: DriverVersion.data()), Size - 1); |
78 | } |
79 | |
80 | TEST_P(olGetDeviceInfoTest, InvalidNullHandleDevice) { |
81 | ol_device_type_t DeviceType; |
82 | ASSERT_ERROR(OL_ERRC_INVALID_NULL_HANDLE, |
83 | olGetDeviceInfo(nullptr, OL_DEVICE_INFO_TYPE, |
84 | sizeof(ol_device_type_t), &DeviceType)); |
85 | } |
86 | |
87 | TEST_P(olGetDeviceInfoTest, InvalidEnumerationInfoType) { |
88 | ol_device_type_t DeviceType; |
89 | ASSERT_ERROR(OL_ERRC_INVALID_ENUMERATION, |
90 | olGetDeviceInfo(Device, OL_DEVICE_INFO_FORCE_UINT32, |
91 | sizeof(ol_device_type_t), &DeviceType)); |
92 | } |
93 | |
94 | TEST_P(olGetDeviceInfoTest, InvalidSizePropSize) { |
95 | ol_device_type_t DeviceType; |
96 | ASSERT_ERROR(OL_ERRC_INVALID_SIZE, |
97 | olGetDeviceInfo(Device, OL_DEVICE_INFO_TYPE, 0, &DeviceType)); |
98 | } |
99 | |
100 | TEST_P(olGetDeviceInfoTest, InvalidSizePropSizeSmall) { |
101 | ol_device_type_t DeviceType; |
102 | ASSERT_ERROR(OL_ERRC_INVALID_SIZE, |
103 | olGetDeviceInfo(Device, OL_DEVICE_INFO_TYPE, |
104 | sizeof(DeviceType) - 1, &DeviceType)); |
105 | } |
106 | |
107 | TEST_P(olGetDeviceInfoTest, InvalidNullPointerPropValue) { |
108 | ol_device_type_t DeviceType; |
109 | ASSERT_ERROR(OL_ERRC_INVALID_NULL_POINTER, |
110 | olGetDeviceInfo(Device, OL_DEVICE_INFO_TYPE, sizeof(DeviceType), |
111 | nullptr)); |
112 | } |
113 | |