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