Skip to content

Commit 44da86d

Browse files
authored
Merge pull request #2376 from aarongreig/aaron/parameterizeAdapterTests
Enable adapter tests to run on all discovered adapters.
2 parents 0b04127 + f499294 commit 44da86d

15 files changed

+167
-182
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: 31 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -3,95 +3,83 @@
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_OR_OPTIONAL_QUERY(
4118
urAdapterGetInfo(adapter, info_type, 0, nullptr, &size), info_type);
4219
ASSERT_NE(size, 0);
4320

44-
if (const auto expected_size = adapter_info_size_map.find(info_type);
45-
expected_size != adapter_info_size_map.end()) {
46-
ASSERT_EQ(expected_size->second, size);
47-
}
21+
ASSERT_EQ(size, sizeof(ur_adapter_backend_t));
4822

4923
std::vector<char> info_data(size);
5024
ASSERT_SUCCESS(
5125
urAdapterGetInfo(adapter, info_type, size, info_data.data(), nullptr));
5226
}
5327

28+
TEST_P(urAdapterGetInfoTest, ReferenceCount) {
29+
auto info_type = UR_ADAPTER_INFO_REFERENCE_COUNT;
30+
size_t size = 0;
31+
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
32+
urAdapterGetInfo(adapter, info_type, 0, nullptr, &size), info_type);
33+
ASSERT_EQ(size, sizeof(uint32_t));
34+
35+
uint32_t reference_count = 0;
36+
ASSERT_SUCCESS(
37+
urAdapterGetInfo(adapter, info_type, size, &reference_count, nullptr));
38+
ASSERT_GE(reference_count, 0);
39+
}
40+
5441
TEST_P(urAdapterGetInfoTest, InvalidNullHandleAdapter) {
5542
size_t size = 0;
56-
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_NULL_HANDLE,
57-
urAdapterGetInfo(nullptr, GetParam(), 0, nullptr, &size));
43+
ASSERT_EQ_RESULT(
44+
UR_RESULT_ERROR_INVALID_NULL_HANDLE,
45+
urAdapterGetInfo(nullptr, UR_ADAPTER_INFO_BACKEND, 0, nullptr, &size));
5846
}
5947

60-
TEST_F(urAdapterGetInfoTest, InvalidEnumerationAdapterInfoType) {
48+
TEST_P(urAdapterGetInfoTest, InvalidEnumerationAdapterInfoType) {
6149
size_t size = 0;
6250
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_ENUMERATION,
6351
urAdapterGetInfo(adapter, UR_ADAPTER_INFO_FORCE_UINT32, 0,
6452
nullptr, &size));
6553
}
6654

67-
TEST_F(urAdapterGetInfoTest, InvalidSizeZero) {
55+
TEST_P(urAdapterGetInfoTest, InvalidSizeZero) {
6856
ur_adapter_backend_t backend;
6957
ASSERT_EQ_RESULT(urAdapterGetInfo(adapter, UR_ADAPTER_INFO_BACKEND, 0,
7058
&backend, nullptr),
7159
UR_RESULT_ERROR_INVALID_SIZE);
7260
}
7361

74-
TEST_F(urAdapterGetInfoTest, InvalidSizeSmall) {
62+
TEST_P(urAdapterGetInfoTest, InvalidSizeSmall) {
7563
ur_adapter_backend_t backend;
7664
ASSERT_EQ_RESULT(urAdapterGetInfo(adapter, UR_ADAPTER_INFO_BACKEND,
7765
sizeof(backend) - 1, &backend, nullptr),
7866
UR_RESULT_ERROR_INVALID_SIZE);
7967
}
8068

81-
TEST_F(urAdapterGetInfoTest, InvalidNullPointerPropValue) {
69+
TEST_P(urAdapterGetInfoTest, InvalidNullPointerPropValue) {
8270
ur_adapter_backend_t backend;
8371
ASSERT_EQ_RESULT(urAdapterGetInfo(adapter, UR_ADAPTER_INFO_BACKEND,
8472
sizeof(backend), nullptr, nullptr),
8573
UR_RESULT_ERROR_INVALID_NULL_POINTER);
8674
}
8775

88-
TEST_F(urAdapterGetInfoTest, InvalidNullPointerPropSizeRet) {
76+
TEST_P(urAdapterGetInfoTest, InvalidNullPointerPropSizeRet) {
8977
ASSERT_EQ_RESULT(
9078
urAdapterGetInfo(adapter, UR_ADAPTER_INFO_BACKEND, 0, nullptr, nullptr),
9179
UR_RESULT_ERROR_INVALID_NULL_POINTER);
9280
}
9381

94-
TEST_F(urAdapterGetInfoTest, ReferenceCountNotZero) {
82+
TEST_P(urAdapterGetInfoTest, ReferenceCountNotZero) {
9583
uint32_t referenceCount = 0;
9684

9785
ASSERT_SUCCESS(urAdapterGetInfo(adapter, UR_ADAPTER_INFO_REFERENCE_COUNT,
@@ -100,7 +88,7 @@ TEST_F(urAdapterGetInfoTest, ReferenceCountNotZero) {
10088
ASSERT_GT(referenceCount, 0);
10189
}
10290

103-
TEST_F(urAdapterGetInfoTest, ValidAdapterBackend) {
91+
TEST_P(urAdapterGetInfoTest, ValidAdapterBackend) {
10492
ur_adapter_backend_t backend;
10593
ASSERT_SUCCESS(urAdapterGetInfo(adapter, UR_ADAPTER_INFO_BACKEND,
10694
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)