91 lines · cpp
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-exception6//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(Size);22 ASSERT_SUCCESS(23 olGetPlatformInfo(Platform, OL_PLATFORM_INFO_NAME, Size, Name.data()));24 ASSERT_EQ(std::strlen(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(Size);34 ASSERT_SUCCESS(olGetPlatformInfo(Platform, OL_PLATFORM_INFO_VENDOR_NAME, Size,35 VendorName.data()));36 ASSERT_EQ(std::strlen(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(Size);46 ASSERT_SUCCESS(olGetPlatformInfo(Platform, OL_PLATFORM_INFO_VERSION, Size,47 Version.data()));48 ASSERT_EQ(std::strlen(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