Skip to content

Commit

Permalink
[UR] Add tests for handle tracking feature
Browse files Browse the repository at this point in the history
  • Loading branch information
kswiecicki committed Nov 29, 2023
1 parent 170ef63 commit 65d5318
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 12 deletions.
1 change: 1 addition & 0 deletions test/layers/validation/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,4 @@ endfunction()
add_validation_test(parameters parameters.cpp)
add_validation_match_test(leaks leaks.out.match leaks.cpp)
add_validation_match_test(leaks_mt leaks_mt.out.match leaks_mt.cpp)
add_validation_match_test(tracking tracking.out.match tracking.cpp)
45 changes: 33 additions & 12 deletions test/layers/validation/fixtures.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,36 +30,57 @@ struct urTest : ::testing::Test {
ur_loader_config_handle_t loader_config = nullptr;
};

struct valPlatformsTest : urTest {
struct valAdaptersTest : urTest {

void SetUp() override {
urTest::SetUp();

uint32_t adapter_count;
ASSERT_EQ(urAdapterGet(0, nullptr, &adapter_count), UR_RESULT_SUCCESS);
ASSERT_GT(adapter_count, 0);
adapters.resize(adapter_count);
ASSERT_EQ(urAdapterGet(adapter_count, adapters.data(), nullptr),
UR_RESULT_SUCCESS);

uint32_t count;
ASSERT_EQ(
urPlatformGet(adapters.data(), adapter_count, 0, nullptr, &count),
UR_RESULT_SUCCESS);
ASSERT_NE(count, 0);
platforms.resize(count);
ASSERT_EQ(urPlatformGet(adapters.data(), adapter_count, count,
platforms.data(), nullptr),
UR_RESULT_SUCCESS);
}

void TearDown() override {
for (auto &adapter : adapters) {
for (auto adapter : adapters) {
ASSERT_EQ(urAdapterRelease(adapter), UR_RESULT_SUCCESS);
}
urTest::TearDown();
}

std::vector<ur_adapter_handle_t> adapters;
};

struct valAdapterTest : valAdaptersTest {

void SetUp() {
valAdaptersTest::SetUp();
adapter = adapters[0]; // TODO - which to choose?
}

ur_adapter_handle_t adapter;
};

struct valPlatformsTest : valAdaptersTest {

void SetUp() override {
valAdaptersTest::SetUp();

uint32_t count;
ASSERT_EQ(urPlatformGet(adapters.data(),
static_cast<uint32_t>(adapters.size()), 0,
nullptr, &count),
UR_RESULT_SUCCESS);
ASSERT_NE(count, 0);
platforms.resize(count);
ASSERT_EQ(urPlatformGet(adapters.data(),
static_cast<uint32_t>(adapters.size()), count,
platforms.data(), nullptr),
UR_RESULT_SUCCESS);
}

std::vector<ur_platform_handle_t> platforms;
};

Expand Down
21 changes: 21 additions & 0 deletions test/layers/validation/tracking.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Copyright (C) 2023 Intel Corporation
// Part of the Unified-Runtime Project, under the Apache License v2.0 with LLVM Exceptions.
// See LICENSE.TXT
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include "fixtures.hpp"

TEST_F(urTest, testUrAdapterHandleTrackingExpectFail) {
size_t size = 0;
ur_adapter_handle_t adapter = (ur_adapter_handle_t)0xC0FFEE;
ur_adapter_info_t info_type = UR_ADAPTER_INFO_BACKEND;
ASSERT_EQ(urAdapterGetInfo(adapter, info_type, 0, nullptr, &size),
UR_RESULT_ERROR_INVALID_ARGUMENT);
}

TEST_F(valAdapterTest, testUrAdapterHandleTrackingExpectSuccess) {
size_t size = 0;
ur_adapter_info_t info_type = UR_ADAPTER_INFO_BACKEND;
ASSERT_EQ(urAdapterGetInfo(adapter, info_type, 0, nullptr, &size),
UR_RESULT_SUCCESS);
}
7 changes: 7 additions & 0 deletions test/layers/validation/tracking.out.match
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{{IGNORE}}
[ RUN ] urTest.testUrAdapterHandleTrackingExpectFail
<VALIDATION>[ERROR]: There are no valid references to handle {{[0-9xa-fA-F]+}}
{{IGNORE}}
[ RUN ] valAdapterTest.testUrAdapterHandleTrackingExpectSuccess
{{^(?!.*There are no valid references to handle).*$}}
{{IGNORE}}

0 comments on commit 65d5318

Please sign in to comment.