50 lines · cpp
1//===------- Offload API tests - olIsValidBinary --------------------------===//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 "../common/Fixtures.hpp"10#include <OffloadAPI.h>11#include <gtest/gtest.h>12 13using olIsValidBinaryTest = OffloadDeviceTest;14OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olIsValidBinaryTest);15 16TEST_P(olIsValidBinaryTest, Success) {17 18 std::unique_ptr<llvm::MemoryBuffer> DeviceBin;19 ASSERT_TRUE(TestEnvironment::loadDeviceBinary("foo", Device, DeviceBin));20 ASSERT_GE(DeviceBin->getBufferSize(), 0lu);21 22 bool IsValid = false;23 ASSERT_SUCCESS(olIsValidBinary(Device, DeviceBin->getBufferStart(),24 DeviceBin->getBufferSize(), &IsValid));25 ASSERT_TRUE(IsValid);26 27 ASSERT_SUCCESS(28 olIsValidBinary(Device, DeviceBin->getBufferStart(), 0, &IsValid));29 ASSERT_FALSE(IsValid);30}31 32TEST_P(olIsValidBinaryTest, Invalid) {33 34 std::unique_ptr<llvm::MemoryBuffer> DeviceBin;35 ASSERT_TRUE(TestEnvironment::loadDeviceBinary("foo", Device, DeviceBin));36 ASSERT_GE(DeviceBin->getBufferSize(), 0lu);37 38 bool IsValid = false;39 ASSERT_SUCCESS(40 olIsValidBinary(Device, DeviceBin->getBufferStart(), 0, &IsValid));41 ASSERT_FALSE(IsValid);42}43 44TEST_P(olIsValidBinaryTest, NullPointer) {45 bool IsValid = false;46 ASSERT_ERROR(OL_ERRC_INVALID_NULL_POINTER,47 olIsValidBinary(Device, nullptr, 42, &IsValid));48 ASSERT_FALSE(IsValid);49}50