1//===------- Offload API tests - olGetPlatformInfo -------------------===//
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 <OffloadAPI.h>
10
11#include "../common/Fixtures.hpp"
12
13using olGetPlatformInfoTest = OffloadPlatformTest;
14OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olGetPlatformInfoTest);
15
16TEST_P(olGetPlatformInfoTest, SuccessName) {
17 size_t Size = 0;
18 ASSERT_SUCCESS(olGetPlatformInfoSize(Platform, OL_PLATFORM_INFO_NAME, &Size));
19 ASSERT_GT(Size, 0ul);
20 std::vector<char> Name;
21 Name.resize(new_size: Size);
22 ASSERT_SUCCESS(
23 olGetPlatformInfo(Platform, OL_PLATFORM_INFO_NAME, Size, Name.data()));
24 ASSERT_EQ(std::strlen(s: Name.data()), Size - 1);
25}
26
27TEST_P(olGetPlatformInfoTest, SuccessVendorName) {
28 size_t Size = 0;
29 ASSERT_SUCCESS(
30 olGetPlatformInfoSize(Platform, OL_PLATFORM_INFO_VENDOR_NAME, &Size));
31 ASSERT_GT(Size, 0ul);
32 std::vector<char> VendorName;
33 VendorName.resize(new_size: Size);
34 ASSERT_SUCCESS(olGetPlatformInfo(Platform, OL_PLATFORM_INFO_VENDOR_NAME, Size,
35 VendorName.data()));
36 ASSERT_EQ(std::strlen(s: VendorName.data()), Size - 1);
37}
38
39TEST_P(olGetPlatformInfoTest, SuccessVersion) {
40 size_t Size = 0;
41 ASSERT_SUCCESS(
42 olGetPlatformInfoSize(Platform, OL_PLATFORM_INFO_VERSION, &Size));
43 ASSERT_GT(Size, 0ul);
44 std::vector<char> Version;
45 Version.resize(new_size: Size);
46 ASSERT_SUCCESS(olGetPlatformInfo(Platform, OL_PLATFORM_INFO_VERSION, Size,
47 Version.data()));
48 ASSERT_EQ(std::strlen(s: Version.data()), Size - 1);
49}
50
51TEST_P(olGetPlatformInfoTest, SuccessBackend) {
52 ol_platform_backend_t Backend;
53 ASSERT_SUCCESS(olGetPlatformInfo(Platform, OL_PLATFORM_INFO_BACKEND,
54 sizeof(ol_platform_backend_t), &Backend));
55}
56
57TEST_P(olGetPlatformInfoTest, InvalidNullHandle) {
58 ol_platform_backend_t Backend;
59 ASSERT_ERROR(OL_ERRC_INVALID_NULL_HANDLE,
60 olGetPlatformInfo(nullptr, OL_PLATFORM_INFO_BACKEND,
61 sizeof(Backend), &Backend));
62}
63
64TEST_P(olGetPlatformInfoTest, InvalidPlatformInfoEnumeration) {
65 ol_platform_backend_t Backend;
66 ASSERT_ERROR(OL_ERRC_INVALID_ENUMERATION,
67 olGetPlatformInfo(Platform, OL_PLATFORM_INFO_FORCE_UINT32,
68 sizeof(Backend), &Backend));
69}
70
71TEST_P(olGetPlatformInfoTest, InvalidSizeZero) {
72 ol_platform_backend_t Backend;
73 ASSERT_ERROR(
74 OL_ERRC_INVALID_SIZE,
75 olGetPlatformInfo(Platform, OL_PLATFORM_INFO_BACKEND, 0, &Backend));
76}
77
78TEST_P(olGetPlatformInfoTest, InvalidSizeSmall) {
79 ol_platform_backend_t Backend;
80 ASSERT_ERROR(OL_ERRC_INVALID_SIZE,
81 olGetPlatformInfo(Platform, OL_PLATFORM_INFO_BACKEND,
82 sizeof(Backend) - 1, &Backend));
83}
84
85TEST_P(olGetPlatformInfoTest, InvalidNullPointerPropValue) {
86 ol_platform_backend_t Backend;
87 ASSERT_ERROR(OL_ERRC_INVALID_NULL_POINTER,
88 olGetPlatformInfo(Platform, OL_PLATFORM_INFO_BACKEND,
89 sizeof(Backend), nullptr));
90}
91

source code of offload/unittests/OffloadAPI/platform/olGetPlatformInfo.cpp