94 lines · cpp
1//===------- Offload API tests - olGetSymbolInfo --------------------------===//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 olGetSymbolInfoKernelTest = OffloadKernelTest;14OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olGetSymbolInfoKernelTest);15 16using olGetSymbolInfoGlobalTest = OffloadGlobalTest;17OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olGetSymbolInfoGlobalTest);18 19TEST_P(olGetSymbolInfoKernelTest, SuccessKind) {20 ol_symbol_kind_t RetrievedKind;21 ASSERT_SUCCESS(olGetSymbolInfo(Kernel, OL_SYMBOL_INFO_KIND,22 sizeof(RetrievedKind), &RetrievedKind));23 ASSERT_EQ(RetrievedKind, OL_SYMBOL_KIND_KERNEL);24}25 26TEST_P(olGetSymbolInfoGlobalTest, SuccessKind) {27 ol_symbol_kind_t RetrievedKind;28 ASSERT_SUCCESS(olGetSymbolInfo(Global, OL_SYMBOL_INFO_KIND,29 sizeof(RetrievedKind), &RetrievedKind));30 ASSERT_EQ(RetrievedKind, OL_SYMBOL_KIND_GLOBAL_VARIABLE);31}32 33TEST_P(olGetSymbolInfoKernelTest, InvalidAddress) {34 void *RetrievedAddr;35 ASSERT_ERROR(OL_ERRC_SYMBOL_KIND,36 olGetSymbolInfo(Kernel, OL_SYMBOL_INFO_GLOBAL_VARIABLE_ADDRESS,37 sizeof(RetrievedAddr), &RetrievedAddr));38}39 40TEST_P(olGetSymbolInfoGlobalTest, SuccessAddress) {41 void *RetrievedAddr = nullptr;42 ASSERT_SUCCESS(olGetSymbolInfo(Global, OL_SYMBOL_INFO_GLOBAL_VARIABLE_ADDRESS,43 sizeof(RetrievedAddr), &RetrievedAddr));44 ASSERT_NE(RetrievedAddr, nullptr);45}46 47TEST_P(olGetSymbolInfoKernelTest, InvalidSize) {48 size_t RetrievedSize;49 ASSERT_ERROR(OL_ERRC_SYMBOL_KIND,50 olGetSymbolInfo(Kernel, OL_SYMBOL_INFO_GLOBAL_VARIABLE_SIZE,51 sizeof(RetrievedSize), &RetrievedSize));52}53 54TEST_P(olGetSymbolInfoGlobalTest, SuccessSize) {55 size_t RetrievedSize = 0;56 ASSERT_SUCCESS(olGetSymbolInfo(Global, OL_SYMBOL_INFO_GLOBAL_VARIABLE_SIZE,57 sizeof(RetrievedSize), &RetrievedSize));58 ASSERT_EQ(RetrievedSize, 64 * sizeof(uint32_t));59}60 61TEST_P(olGetSymbolInfoKernelTest, InvalidNullHandle) {62 ol_symbol_kind_t RetrievedKind;63 ASSERT_ERROR(OL_ERRC_INVALID_NULL_HANDLE,64 olGetSymbolInfo(nullptr, OL_SYMBOL_INFO_KIND,65 sizeof(RetrievedKind), &RetrievedKind));66}67 68TEST_P(olGetSymbolInfoKernelTest, InvalidSymbolInfoEnumeration) {69 ol_symbol_kind_t RetrievedKind;70 ASSERT_ERROR(OL_ERRC_INVALID_ENUMERATION,71 olGetSymbolInfo(Kernel, OL_SYMBOL_INFO_FORCE_UINT32,72 sizeof(RetrievedKind), &RetrievedKind));73}74 75TEST_P(olGetSymbolInfoKernelTest, InvalidSizeZero) {76 ol_symbol_kind_t RetrievedKind;77 ASSERT_ERROR(OL_ERRC_INVALID_SIZE,78 olGetSymbolInfo(Kernel, OL_SYMBOL_INFO_KIND, 0, &RetrievedKind));79}80 81TEST_P(olGetSymbolInfoKernelTest, InvalidSizeSmall) {82 ol_symbol_kind_t RetrievedKind;83 ASSERT_ERROR(OL_ERRC_INVALID_SIZE,84 olGetSymbolInfo(Kernel, OL_SYMBOL_INFO_KIND,85 sizeof(RetrievedKind) - 1, &RetrievedKind));86}87 88TEST_P(olGetSymbolInfoKernelTest, InvalidNullPointerPropValue) {89 ol_symbol_kind_t RetrievedKind;90 ASSERT_ERROR(OL_ERRC_INVALID_NULL_POINTER,91 olGetSymbolInfo(Kernel, OL_SYMBOL_INFO_KIND,92 sizeof(RetrievedKind), nullptr));93}94