Skip to content

Commit c8b8b3b

Browse files
committed
Enable adapter tests to run on all discovered adapters.
1 parent 39df031 commit c8b8b3b

15 files changed

+166
-184
lines changed

source/adapters/native_cpu/ur_interface_loader.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ UR_DLLEXPORT ur_result_t UR_APICALL urGetGlobalProcAddrTable(
207207
pDdiTable->pfnAdapterGetInfo = urAdapterGetInfo;
208208
pDdiTable->pfnAdapterRelease = urAdapterRelease;
209209
pDdiTable->pfnAdapterRetain = urAdapterRetain;
210+
pDdiTable->pfnAdapterGetLastError = urAdapterGetLastError;
210211
return UR_RESULT_SUCCESS;
211212
}
212213

test/conformance/adapter/adapter_adapter_native_cpu.match

Lines changed: 0 additions & 5 deletions
This file was deleted.

test/conformance/adapter/fixtures.h

Lines changed: 0 additions & 53 deletions
This file was deleted.

test/conformance/adapter/urAdapterGet.cpp

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,26 @@
33
// See LICENSE.TXT
44
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55

6-
#include "fixtures.h"
6+
#include <uur/fixtures.h>
77

8-
using urAdapterGetTest = uur::runtime::urTest;
8+
struct urAdapterGetTest : ::testing::Test {
9+
void SetUp() override {
10+
ur_device_init_flags_t device_flags = 0;
11+
ASSERT_SUCCESS(urLoaderConfigCreate(&loader_config));
12+
ASSERT_SUCCESS(urLoaderConfigEnableLayer(loader_config,
13+
"UR_LAYER_FULL_VALIDATION"));
14+
ASSERT_SUCCESS(urLoaderInit(device_flags, loader_config));
15+
}
16+
17+
void TearDown() override {
18+
if (loader_config) {
19+
ASSERT_SUCCESS(urLoaderConfigRelease(loader_config));
20+
}
21+
ASSERT_SUCCESS(urLoaderTearDown());
22+
}
23+
24+
ur_loader_config_handle_t loader_config = nullptr;
25+
};
926

1027
TEST_F(urAdapterGetTest, Success) {
1128
uint32_t adapter_count;

test/conformance/adapter/urAdapterGetInfo.cpp

Lines changed: 30 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,94 +3,79 @@
33
// See LICENSE.TXT
44
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55

6-
#include "fixtures.h"
6+
#include <uur/fixtures.h>
77

88
#include <cstring>
99

10-
struct urAdapterGetInfoTest : uur::runtime::urAdapterTest,
11-
::testing::WithParamInterface<ur_adapter_info_t> {
12-
13-
void SetUp() {
14-
UUR_RETURN_ON_FATAL_FAILURE(uur::runtime::urAdapterTest::SetUp());
15-
adapter = adapters[0];
16-
}
17-
18-
ur_adapter_handle_t adapter;
19-
};
20-
21-
std::unordered_map<ur_adapter_info_t, size_t> adapter_info_size_map = {
22-
{UR_ADAPTER_INFO_BACKEND, sizeof(ur_adapter_backend_t)},
23-
{UR_ADAPTER_INFO_VERSION, sizeof(uint32_t)},
24-
{UR_ADAPTER_INFO_REFERENCE_COUNT, sizeof(uint32_t)},
25-
};
26-
27-
INSTANTIATE_TEST_SUITE_P(
28-
urAdapterGetInfo, urAdapterGetInfoTest,
29-
::testing::Values(UR_ADAPTER_INFO_BACKEND, UR_ADAPTER_INFO_VERSION,
30-
UR_ADAPTER_INFO_REFERENCE_COUNT),
31-
[](const ::testing::TestParamInfo<ur_adapter_info_t> &info) {
32-
std::stringstream ss;
33-
ss << info.param;
34-
return ss.str();
35-
});
36-
37-
TEST_P(urAdapterGetInfoTest, Success) {
10+
using urAdapterGetInfoTest = uur::urAdapterTest;
11+
12+
UUR_INSTANTIATE_ADAPTER_TEST_SUITE_P(urAdapterGetInfoTest);
13+
14+
TEST_P(urAdapterGetInfoTest, Backend) {
15+
auto info_type = UR_ADAPTER_INFO_BACKEND;
3816
size_t size = 0;
39-
ur_adapter_info_t info_type = GetParam();
4017
ASSERT_SUCCESS(urAdapterGetInfo(adapter, info_type, 0, nullptr, &size));
41-
ASSERT_NE(size, 0);
42-
43-
if (const auto expected_size = adapter_info_size_map.find(info_type);
44-
expected_size != adapter_info_size_map.end()) {
45-
ASSERT_EQ(expected_size->second, size);
46-
}
18+
ASSERT_EQ(size, sizeof(ur_adapter_backend_t));
4719

4820
std::vector<char> info_data(size);
4921
ASSERT_SUCCESS(
5022
urAdapterGetInfo(adapter, info_type, size, info_data.data(), nullptr));
5123
}
5224

25+
TEST_P(urAdapterGetInfoTest, ReferenceCount) {
26+
auto info_type = UR_ADAPTER_INFO_REFERENCE_COUNT;
27+
size_t size = 0;
28+
ASSERT_SUCCESS(urAdapterGetInfo(adapter, info_type, 0, nullptr, &size));
29+
ASSERT_EQ(size, sizeof(uint32_t));
30+
31+
uint32_t reference_count = 0;
32+
ASSERT_SUCCESS(
33+
urAdapterGetInfo(adapter, info_type, size, &reference_count, nullptr));
34+
ASSERT_GE(reference_count, 0);
35+
}
36+
5337
TEST_P(urAdapterGetInfoTest, InvalidNullHandleAdapter) {
5438
size_t size = 0;
55-
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_NULL_HANDLE,
56-
urAdapterGetInfo(nullptr, GetParam(), 0, nullptr, &size));
39+
ASSERT_EQ_RESULT(
40+
UR_RESULT_ERROR_INVALID_NULL_HANDLE,
41+
urAdapterGetInfo(nullptr, UR_ADAPTER_INFO_BACKEND, 0, nullptr, &size));
5742
}
5843

59-
TEST_F(urAdapterGetInfoTest, InvalidEnumerationAdapterInfoType) {
44+
TEST_P(urAdapterGetInfoTest, InvalidEnumerationAdapterInfoType) {
6045
size_t size = 0;
6146
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_ENUMERATION,
6247
urAdapterGetInfo(adapter, UR_ADAPTER_INFO_FORCE_UINT32, 0,
6348
nullptr, &size));
6449
}
6550

66-
TEST_F(urAdapterGetInfoTest, InvalidSizeZero) {
51+
TEST_P(urAdapterGetInfoTest, InvalidSizeZero) {
6752
ur_adapter_backend_t backend;
6853
ASSERT_EQ_RESULT(urAdapterGetInfo(adapter, UR_ADAPTER_INFO_BACKEND, 0,
6954
&backend, nullptr),
7055
UR_RESULT_ERROR_INVALID_SIZE);
7156
}
7257

73-
TEST_F(urAdapterGetInfoTest, InvalidSizeSmall) {
58+
TEST_P(urAdapterGetInfoTest, InvalidSizeSmall) {
7459
ur_adapter_backend_t backend;
7560
ASSERT_EQ_RESULT(urAdapterGetInfo(adapter, UR_ADAPTER_INFO_BACKEND,
7661
sizeof(backend) - 1, &backend, nullptr),
7762
UR_RESULT_ERROR_INVALID_SIZE);
7863
}
7964

80-
TEST_F(urAdapterGetInfoTest, InvalidNullPointerPropValue) {
65+
TEST_P(urAdapterGetInfoTest, InvalidNullPointerPropValue) {
8166
ur_adapter_backend_t backend;
8267
ASSERT_EQ_RESULT(urAdapterGetInfo(adapter, UR_ADAPTER_INFO_BACKEND,
8368
sizeof(backend), nullptr, nullptr),
8469
UR_RESULT_ERROR_INVALID_NULL_POINTER);
8570
}
8671

87-
TEST_F(urAdapterGetInfoTest, InvalidNullPointerPropSizeRet) {
72+
TEST_P(urAdapterGetInfoTest, InvalidNullPointerPropSizeRet) {
8873
ASSERT_EQ_RESULT(
8974
urAdapterGetInfo(adapter, UR_ADAPTER_INFO_BACKEND, 0, nullptr, nullptr),
9075
UR_RESULT_ERROR_INVALID_NULL_POINTER);
9176
}
9277

93-
TEST_F(urAdapterGetInfoTest, ReferenceCountNotZero) {
78+
TEST_P(urAdapterGetInfoTest, ReferenceCountNotZero) {
9479
uint32_t referenceCount = 0;
9580

9681
ASSERT_SUCCESS(urAdapterGetInfo(adapter, UR_ADAPTER_INFO_REFERENCE_COUNT,
@@ -99,7 +84,7 @@ TEST_F(urAdapterGetInfoTest, ReferenceCountNotZero) {
9984
ASSERT_GT(referenceCount, 0);
10085
}
10186

102-
TEST_F(urAdapterGetInfoTest, ValidAdapterBackend) {
87+
TEST_P(urAdapterGetInfoTest, ValidAdapterBackend) {
10388
ur_adapter_backend_t backend;
10489
ASSERT_SUCCESS(urAdapterGetInfo(adapter, UR_ADAPTER_INFO_BACKEND,
10590
sizeof(backend), &backend, nullptr));

test/conformance/adapter/urAdapterGetLastError.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,35 @@
33
// See LICENSE.TXT
44
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55

6-
#include "fixtures.h"
6+
#include <uur/fixtures.h>
77

8-
struct urAdapterGetLastErrorTest : uur::runtime::urAdapterTest {
8+
struct urAdapterGetLastErrorTest : uur::urAdapterTest {
99
int32_t error;
1010
const char *message = nullptr;
1111
};
1212

13-
TEST_F(urAdapterGetLastErrorTest, Success) {
13+
UUR_INSTANTIATE_ADAPTER_TEST_SUITE_P(urAdapterGetLastErrorTest);
14+
15+
TEST_P(urAdapterGetLastErrorTest, Success) {
1416
// We can't reliably generate a UR_RESULT_ERROR_ADAPTER_SPECIFIC error to
1517
// test the full functionality of this entry point, so instead do a minimal
1618
// smoke test and check that the call returns successfully, even if no
1719
// actual error was set.
1820
ASSERT_EQ_RESULT(UR_RESULT_SUCCESS,
19-
urAdapterGetLastError(adapters[0], &message, &error));
21+
urAdapterGetLastError(adapter, &message, &error));
2022
}
2123

22-
TEST_F(urAdapterGetLastErrorTest, InvalidHandle) {
24+
TEST_P(urAdapterGetLastErrorTest, InvalidHandle) {
2325
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_NULL_HANDLE,
2426
urAdapterGetLastError(nullptr, &message, &error));
2527
}
2628

27-
TEST_F(urAdapterGetLastErrorTest, InvalidMessagePtr) {
29+
TEST_P(urAdapterGetLastErrorTest, InvalidMessagePtr) {
2830
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_NULL_POINTER,
29-
urAdapterGetLastError(adapters[0], nullptr, &error));
31+
urAdapterGetLastError(adapter, nullptr, &error));
3032
}
3133

32-
TEST_F(urAdapterGetLastErrorTest, InvalidErrorPtr) {
34+
TEST_P(urAdapterGetLastErrorTest, InvalidErrorPtr) {
3335
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_NULL_POINTER,
34-
urAdapterGetLastError(adapters[0], &message, nullptr));
36+
urAdapterGetLastError(adapter, &message, nullptr));
3537
}

test/conformance/adapter/urAdapterRelease.cpp

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,12 @@
33
// See LICENSE.TXT
44
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55

6-
#include "fixtures.h"
6+
#include <uur/fixtures.h>
77

8-
struct urAdapterReleaseTest : uur::runtime::urAdapterTest {
9-
void SetUp() {
10-
UUR_RETURN_ON_FATAL_FAILURE(uur::runtime::urAdapterTest::SetUp());
11-
adapter = adapters[0];
12-
}
8+
using urAdapterReleaseTest = uur::urAdapterTest;
9+
UUR_INSTANTIATE_ADAPTER_TEST_SUITE_P(urAdapterReleaseTest);
1310

14-
ur_adapter_handle_t adapter;
15-
};
16-
17-
TEST_F(urAdapterReleaseTest, Success) {
11+
TEST_P(urAdapterReleaseTest, Success) {
1812
uint32_t referenceCountBefore = 0;
1913
ASSERT_SUCCESS(urAdapterRetain(adapter));
2014

@@ -31,7 +25,7 @@ TEST_F(urAdapterReleaseTest, Success) {
3125
ASSERT_LE(referenceCountAfter, referenceCountBefore);
3226
}
3327

34-
TEST_F(urAdapterReleaseTest, InvalidNullHandleAdapter) {
28+
TEST_P(urAdapterReleaseTest, InvalidNullHandleAdapter) {
3529
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_NULL_HANDLE,
3630
urAdapterRelease(nullptr));
3731
}

test/conformance/adapter/urAdapterRetain.cpp

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,12 @@
33
// See LICENSE.TXT
44
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55

6-
#include "fixtures.h"
6+
#include <uur/fixtures.h>
77

8-
struct urAdapterRetainTest : uur::runtime::urAdapterTest {
9-
void SetUp() {
10-
UUR_RETURN_ON_FATAL_FAILURE(uur::runtime::urAdapterTest::SetUp());
11-
adapter = adapters[0];
12-
}
8+
using urAdapterRetainTest = uur::urAdapterTest;
9+
UUR_INSTANTIATE_ADAPTER_TEST_SUITE_P(urAdapterRetainTest);
1310

14-
ur_adapter_handle_t adapter;
15-
};
16-
17-
TEST_F(urAdapterRetainTest, Success) {
11+
TEST_P(urAdapterRetainTest, Success) {
1812
uint32_t referenceCountBefore = 0;
1913

2014
ASSERT_SUCCESS(urAdapterGetInfo(adapter, UR_ADAPTER_INFO_REFERENCE_COUNT,
@@ -30,7 +24,7 @@ TEST_F(urAdapterRetainTest, Success) {
3024
ASSERT_GT(referenceCountAfter, referenceCountBefore);
3125
}
3226

33-
TEST_F(urAdapterRetainTest, InvalidNullHandleAdapter) {
27+
TEST_P(urAdapterRetainTest, InvalidNullHandleAdapter) {
3428
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_NULL_HANDLE,
3529
urAdapterRetain(nullptr));
3630
}

test/conformance/platform/fixtures.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ struct urPlatformTest : urPlatformsTest {
6868
ur_platform_handle_t platform;
6969
};
7070

71+
#define UUR_INSTANTIATE_PLATFORM_TEST_SUITE_P(FIXTURE) \
72+
INSTANTIATE_TEST_SUITE_P( \
73+
, FIXTURE, \
74+
::testing::ValuesIn(uur::DevicesEnvironment::instance->devices), \
75+
[](const ::testing::TestParamInfo<ur_device_handle_t> &info) { \
76+
return uur::GetPlatformAndDeviceName(info.param); \
77+
})
78+
7179
} // namespace platform
7280
} // namespace uur
7381

0 commit comments

Comments
 (0)