xref: /llvm-project/offload/unittests/OffloadAPI/platform/olGetPlatformInfoSize.cpp (revision fd3907ccb583df99e9c19d2fe84e4e7c52d75de9)
1 //===------- Offload API tests - olGetPlatformInfoSize ---------------===//
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 #include "olPlatformInfo.hpp"
13 
14 struct olGetPlatformInfoSizeTest
15     : offloadPlatformTest,
16       ::testing::WithParamInterface<ol_platform_info_t> {};
17 
18 INSTANTIATE_TEST_SUITE_P(
19     olGetPlatformInfoSize, olGetPlatformInfoSizeTest,
20     ::testing::ValuesIn(PlatformQueries),
21     [](const ::testing::TestParamInfo<ol_platform_info_t> &info) {
22       std::stringstream ss;
23       ss << info.param;
24       return ss.str();
25     });
26 
27 TEST_P(olGetPlatformInfoSizeTest, Success) {
28   size_t Size = 0;
29   ol_platform_info_t InfoType = GetParam();
30 
31   ASSERT_SUCCESS(olGetPlatformInfoSize(Platform, InfoType, &Size));
32   auto ExpectedSize = PlatformInfoSizeMap.find(InfoType);
33   if (ExpectedSize != PlatformInfoSizeMap.end()) {
34     ASSERT_EQ(Size, ExpectedSize->second);
35   } else {
36     ASSERT_NE(Size, 0lu);
37   }
38 }
39 
40 TEST_F(olGetPlatformInfoSizeTest, InvalidNullHandle) {
41   size_t Size = 0;
42   ASSERT_ERROR(OL_ERRC_INVALID_NULL_HANDLE,
43                olGetPlatformInfoSize(nullptr, OL_PLATFORM_INFO_BACKEND, &Size));
44 }
45 
46 TEST_F(olGetPlatformInfoSizeTest, InvalidPlatformInfoEnumeration) {
47   size_t Size = 0;
48   ASSERT_ERROR(
49       OL_ERRC_INVALID_ENUMERATION,
50       olGetPlatformInfoSize(Platform, OL_PLATFORM_INFO_FORCE_UINT32, &Size));
51 }
52 
53 TEST_F(olGetPlatformInfoSizeTest, InvalidNullPointer) {
54   ASSERT_ERROR(
55       OL_ERRC_INVALID_NULL_POINTER,
56       olGetPlatformInfoSize(Platform, OL_PLATFORM_INFO_BACKEND, nullptr));
57 }
58