brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 445262a Raw
67 lines · cpp
1//===------- Offload API tests - olMemAlloc -------------------------------===//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 olMemAllocTest = OffloadDeviceTest;14OFFLOAD_TESTS_INSTANTIATE_DEVICE_FIXTURE(olMemAllocTest);15 16TEST_P(olMemAllocTest, SuccessAllocManaged) {17  void *Alloc = nullptr;18  ASSERT_SUCCESS(olMemAlloc(Device, OL_ALLOC_TYPE_MANAGED, 1024, &Alloc));19  ASSERT_NE(Alloc, nullptr);20  olMemFree(Alloc);21}22 23TEST_P(olMemAllocTest, SuccessAllocHost) {24  void *Alloc = nullptr;25  ASSERT_SUCCESS(olMemAlloc(Device, OL_ALLOC_TYPE_HOST, 1024, &Alloc));26  ASSERT_NE(Alloc, nullptr);27  olMemFree(Alloc);28}29 30TEST_P(olMemAllocTest, SuccessAllocDevice) {31  void *Alloc = nullptr;32  ASSERT_SUCCESS(olMemAlloc(Device, OL_ALLOC_TYPE_DEVICE, 1024, &Alloc));33  ASSERT_NE(Alloc, nullptr);34  olMemFree(Alloc);35}36 37TEST_P(olMemAllocTest, SuccessAllocMany) {38  std::vector<void *> Allocs;39  Allocs.reserve(1000);40 41  constexpr ol_alloc_type_t TYPES[3] = {42      OL_ALLOC_TYPE_DEVICE, OL_ALLOC_TYPE_MANAGED, OL_ALLOC_TYPE_HOST};43 44  for (size_t I = 1; I < 1000; I++) {45    void *Alloc = nullptr;46    ASSERT_SUCCESS(olMemAlloc(Device, TYPES[I % 3], 1024 * I, &Alloc));47    ASSERT_NE(Alloc, nullptr);48 49    Allocs.push_back(Alloc);50  }51 52  for (auto *A : Allocs) {53    olMemFree(A);54  }55}56 57TEST_P(olMemAllocTest, InvalidNullDevice) {58  void *Alloc = nullptr;59  ASSERT_ERROR(OL_ERRC_INVALID_NULL_HANDLE,60               olMemAlloc(nullptr, OL_ALLOC_TYPE_DEVICE, 1024, &Alloc));61}62 63TEST_P(olMemAllocTest, InvalidNullOutPtr) {64  ASSERT_ERROR(OL_ERRC_INVALID_NULL_POINTER,65               olMemAlloc(Device, OL_ALLOC_TYPE_DEVICE, 1024, nullptr));66}67