Skip to content

Commit cdc018a

Browse files
authored
Merge pull request #2518 from martygrant/martin/context-info-unswitch
Move urContextGetInfo success test from a switch to individual tests
2 parents 5ae0494 + f9a5d84 commit cdc018a

File tree

3 files changed

+121
-112
lines changed

3 files changed

+121
-112
lines changed

test/conformance/context/urContextGetInfo.cpp

Lines changed: 121 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -4,116 +4,135 @@
44
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55
#include <uur/fixtures.h>
66

7-
struct urContextGetInfoTestWithInfoParam
8-
: uur::urContextTestWithParam<ur_context_info_t> {
9-
10-
void SetUp() override {
11-
UUR_RETURN_ON_FATAL_FAILURE(
12-
uur::urContextTestWithParam<ur_context_info_t>::SetUp());
13-
14-
ctx_info_size_map = {
15-
{UR_CONTEXT_INFO_NUM_DEVICES, sizeof(uint32_t)},
16-
{UR_CONTEXT_INFO_DEVICES, sizeof(ur_device_handle_t)},
17-
{UR_CONTEXT_INFO_REFERENCE_COUNT, sizeof(uint32_t)},
18-
{UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT, sizeof(bool)},
19-
{UR_CONTEXT_INFO_USM_FILL2D_SUPPORT, sizeof(bool)},
20-
{UR_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES,
21-
sizeof(ur_memory_order_capability_flags_t)},
22-
{UR_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES,
23-
sizeof(ur_memory_order_capability_flags_t)},
24-
{UR_CONTEXT_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES,
25-
sizeof(ur_memory_order_capability_flags_t)},
26-
{UR_CONTEXT_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES,
27-
sizeof(ur_memory_order_capability_flags_t)}};
28-
29-
ctx_info_mem_flags_map = {
30-
{UR_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES,
31-
UR_MEMORY_ORDER_CAPABILITY_FLAGS_MASK},
32-
{UR_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES,
33-
UR_MEMORY_SCOPE_CAPABILITY_FLAGS_MASK},
34-
{UR_CONTEXT_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES,
35-
UR_MEMORY_ORDER_CAPABILITY_FLAGS_MASK},
36-
{UR_CONTEXT_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES,
37-
UR_MEMORY_SCOPE_CAPABILITY_FLAGS_MASK},
38-
};
39-
}
7+
using urContextGetInfoTest = uur::urContextTest;
8+
UUR_INSTANTIATE_DEVICE_TEST_SUITE_P(urContextGetInfoTest);
409

41-
void TearDown() override {
42-
UUR_RETURN_ON_FATAL_FAILURE(
43-
uur::urContextTestWithParam<ur_context_info_t>::TearDown());
44-
}
10+
TEST_P(urContextGetInfoTest, SuccessNumDevices) {
11+
ur_context_info_t info_type = UR_CONTEXT_INFO_NUM_DEVICES;
12+
size_t size = 0;
4513

46-
std::unordered_map<ur_context_info_t, size_t> ctx_info_size_map;
47-
std::unordered_map<ur_context_info_t, ur_memory_order_capability_flags_t>
48-
ctx_info_mem_flags_map;
49-
};
50-
51-
UUR_TEST_SUITE_P(urContextGetInfoTestWithInfoParam,
52-
::testing::Values(
53-
54-
UR_CONTEXT_INFO_NUM_DEVICES, //
55-
UR_CONTEXT_INFO_DEVICES, //
56-
UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT, //
57-
UR_CONTEXT_INFO_USM_FILL2D_SUPPORT, //
58-
UR_CONTEXT_INFO_REFERENCE_COUNT, //
59-
UR_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES, //
60-
UR_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES, //
61-
UR_CONTEXT_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES, //
62-
UR_CONTEXT_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES //
63-
),
64-
uur::deviceTestWithParamPrinter<ur_context_info_t>);
65-
66-
TEST_P(urContextGetInfoTestWithInfoParam, Success) {
67-
ur_context_info_t info = getParam();
68-
size_t info_size = 0;
69-
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
70-
urContextGetInfo(context, info, 0, nullptr, &info_size), info);
71-
ASSERT_NE(info_size, 0);
14+
ASSERT_SUCCESS(urContextGetInfo(context, info_type, 0, nullptr, &size));
15+
ASSERT_EQ(size, sizeof(uint32_t));
7216

73-
if (const auto expected_size = ctx_info_size_map.find(info);
74-
expected_size != ctx_info_size_map.end()) {
75-
ASSERT_EQ(expected_size->second, info_size);
76-
}
17+
uint32_t nDevices = 0;
18+
ASSERT_SUCCESS(
19+
urContextGetInfo(context, info_type, size, &nDevices, nullptr));
20+
21+
ASSERT_GE(uur::DevicesEnvironment::instance->devices.size(), nDevices);
22+
}
23+
24+
TEST_P(urContextGetInfoTest, SuccessDevices) {
25+
ur_context_info_t info_type = UR_CONTEXT_INFO_DEVICES;
26+
size_t size = 0;
7727

78-
std::vector<uint8_t> info_data(info_size);
28+
ASSERT_SUCCESS(urContextGetInfo(context, info_type, 0, nullptr, &size));
29+
ASSERT_NE(size, 0);
30+
31+
ur_device_handle_t devices = 0;
7932
ASSERT_SUCCESS(
80-
urContextGetInfo(context, info, info_size, info_data.data(), nullptr));
81-
82-
switch (info) {
83-
case UR_CONTEXT_INFO_NUM_DEVICES: {
84-
auto returned_num_of_devices =
85-
reinterpret_cast<uint32_t *>(info_data.data());
86-
ASSERT_GE(uur::DevicesEnvironment::instance->devices.size(),
87-
*returned_num_of_devices);
88-
break;
89-
}
90-
case UR_CONTEXT_INFO_DEVICES: {
91-
auto returned_devices =
92-
reinterpret_cast<ur_device_handle_t *>(info_data.data());
93-
size_t devices_count = info_size / sizeof(ur_device_handle_t);
94-
ASSERT_GT(devices_count, 0);
95-
for (uint32_t i = 0; i < devices_count; i++) {
96-
auto &devices = uur::DevicesEnvironment::instance->devices;
97-
auto queried_device =
98-
std::find(devices.begin(), devices.end(), returned_devices[i]);
99-
EXPECT_TRUE(queried_device != devices.end())
100-
<< "device associated with the context is not valid";
101-
}
102-
break;
103-
}
104-
case UR_CONTEXT_INFO_REFERENCE_COUNT: {
105-
auto returned_reference_count =
106-
reinterpret_cast<uint32_t *>(info_data.data());
107-
ASSERT_GT(*returned_reference_count, 0U);
108-
break;
109-
}
110-
default:
111-
break;
33+
urContextGetInfo(context, info_type, size, &devices, nullptr));
34+
35+
size_t devices_count = size / sizeof(ur_device_handle_t);
36+
ASSERT_GT(devices_count, 0);
37+
38+
for (uint32_t i = 0; i < devices_count; i++) {
39+
auto &devices = uur::DevicesEnvironment::instance->devices;
40+
auto queried_device =
41+
std::find(devices.begin(), devices.end(), devices[i]);
42+
EXPECT_TRUE(queried_device != devices.end())
43+
<< "device associated with the context is not valid";
11244
}
11345
}
11446

115-
using urContextGetInfoTest = uur::urContextTest;
116-
UUR_INSTANTIATE_DEVICE_TEST_SUITE_P(urContextGetInfoTest);
47+
TEST_P(urContextGetInfoTest, SuccessUSMMemCpy2DSupport) {
48+
ur_context_info_t info_type = UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT;
49+
size_t size = 0;
50+
51+
ASSERT_SUCCESS(urContextGetInfo(context, info_type, 0, nullptr, &size));
52+
ASSERT_EQ(size, sizeof(ur_bool_t));
53+
}
54+
55+
TEST_P(urContextGetInfoTest, SuccessUSMFill2DSupport) {
56+
ur_context_info_t info_type = UR_CONTEXT_INFO_USM_FILL2D_SUPPORT;
57+
size_t size = 0;
58+
59+
ASSERT_SUCCESS(urContextGetInfo(context, info_type, 0, nullptr, &size));
60+
ASSERT_EQ(size, sizeof(ur_bool_t));
61+
}
62+
63+
TEST_P(urContextGetInfoTest, SuccessReferenceCount) {
64+
ur_context_info_t info_type = UR_CONTEXT_INFO_REFERENCE_COUNT;
65+
size_t size = 0;
66+
67+
ASSERT_SUCCESS(urContextGetInfo(context, info_type, 0, nullptr, &size));
68+
ASSERT_EQ(size, sizeof(uint32_t));
69+
70+
uint32_t reference_count = 0;
71+
ASSERT_SUCCESS(
72+
urContextGetInfo(context, info_type, size, &reference_count, nullptr));
73+
ASSERT_GT(reference_count, 0U);
74+
}
75+
76+
TEST_P(urContextGetInfoTest, SuccessAtomicMemoryOrderCapabilities) {
77+
ur_context_info_t info_type =
78+
UR_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES;
79+
size_t size = 0;
80+
81+
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
82+
urContextGetInfo(context, info_type, 0, nullptr, &size), info_type);
83+
ASSERT_EQ(size, sizeof(ur_memory_order_capability_flags_t));
84+
85+
ur_memory_order_capability_flags_t flags = 0;
86+
ASSERT_SUCCESS(urContextGetInfo(context, info_type, size, &flags, nullptr));
87+
88+
ASSERT_EQ(flags & UR_MEMORY_ORDER_CAPABILITY_FLAGS_MASK, 0);
89+
}
90+
91+
TEST_P(urContextGetInfoTest, SuccessAtomicMemoryScopeCapabilities) {
92+
ur_context_info_t info_type =
93+
UR_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES;
94+
size_t size = 0;
95+
96+
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
97+
urContextGetInfo(context, info_type, 0, nullptr, &size), info_type);
98+
ASSERT_EQ(size, sizeof(ur_memory_scope_capability_flags_t));
99+
100+
ur_memory_scope_capability_flags_t flags = 0;
101+
ASSERT_SUCCESS(urContextGetInfo(context, info_type, size, &flags, nullptr));
102+
103+
ASSERT_EQ(flags & UR_MEMORY_SCOPE_CAPABILITY_FLAGS_MASK, 0);
104+
}
105+
106+
TEST_P(urContextGetInfoTest, SuccessAtomicFenceOrderCapabilities) {
107+
ur_context_info_t info_type =
108+
UR_CONTEXT_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES;
109+
size_t size = 0;
110+
111+
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
112+
urContextGetInfo(context, info_type, 0, nullptr, &size), info_type);
113+
ASSERT_EQ(size, sizeof(ur_memory_order_capability_flags_t));
114+
115+
ur_memory_order_capability_flags_t flags = 0;
116+
ASSERT_SUCCESS(urContextGetInfo(context, info_type, size, &flags, nullptr));
117+
118+
ASSERT_EQ(flags & UR_MEMORY_ORDER_CAPABILITY_FLAGS_MASK, 0);
119+
}
120+
121+
TEST_P(urContextGetInfoTest, SuccessAtomicFenceScopeCapabilities) {
122+
ur_context_info_t info_type =
123+
UR_CONTEXT_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES;
124+
size_t size = 0;
125+
126+
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
127+
urContextGetInfo(context, info_type, 0, nullptr, &size), info_type);
128+
ASSERT_EQ(size, sizeof(ur_memory_scope_capability_flags_t));
129+
130+
ur_memory_scope_capability_flags_t flags = 0;
131+
ASSERT_SUCCESS(urContextGetInfo(context, info_type, size, &flags, nullptr));
132+
133+
ASSERT_EQ(flags & UR_MEMORY_SCOPE_CAPABILITY_FLAGS_MASK, 0);
134+
}
135+
117136
TEST_P(urContextGetInfoTest, InvalidNullHandleContext) {
118137
uint32_t nDevices = 0;
119138
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_NULL_HANDLE,

test/conformance/event/urEventGetInfo.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ TEST_P(urEventGetInfoTest, SuccessCommandQueue) {
1212
size_t size = 0;
1313

1414
ASSERT_SUCCESS(urEventGetInfo(event, info_type, 0, nullptr, &size));
15-
ASSERT_NE(size, 0);
1615
ASSERT_EQ(size, sizeof(ur_queue_handle_t));
1716

1817
ur_queue_handle_t returned_queue;
@@ -27,7 +26,6 @@ TEST_P(urEventGetInfoTest, SuccessContext) {
2726
size_t size = 0;
2827

2928
ASSERT_SUCCESS(urEventGetInfo(event, info_type, 0, nullptr, &size));
30-
ASSERT_NE(size, 0);
3129
ASSERT_EQ(size, sizeof(ur_context_handle_t));
3230

3331
ur_context_handle_t returned_context;
@@ -42,7 +40,6 @@ TEST_P(urEventGetInfoTest, SuccessCommandType) {
4240
size_t size = 0;
4341

4442
ASSERT_SUCCESS(urEventGetInfo(event, info_type, 0, nullptr, &size));
45-
ASSERT_NE(size, 0);
4643
ASSERT_EQ(size, sizeof(ur_command_t));
4744

4845
ur_command_t returned_command_type;
@@ -57,7 +54,6 @@ TEST_P(urEventGetInfoTest, SuccessCommandExecutionStatus) {
5754
size_t size = 0;
5855

5956
ASSERT_SUCCESS(urEventGetInfo(event, info_type, 0, nullptr, &size));
60-
ASSERT_NE(size, 0);
6157
ASSERT_EQ(size, sizeof(ur_event_status_t));
6258

6359
ur_event_status_t returned_status;
@@ -72,7 +68,6 @@ TEST_P(urEventGetInfoTest, SuccessReferenceCount) {
7268
size_t size = 0;
7369

7470
ASSERT_SUCCESS(urEventGetInfo(event, info_type, 0, nullptr, &size));
75-
ASSERT_NE(size, 0);
7671
ASSERT_EQ(size, sizeof(uint32_t));
7772

7873
uint32_t returned_reference_count;

test/conformance/queue/urQueueGetInfo.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ TEST_P(urQueueGetInfoTest, Context) {
1212
auto infoType = UR_QUEUE_INFO_CONTEXT;
1313
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
1414
urQueueGetInfo(queue, infoType, 0, nullptr, &size), infoType);
15-
ASSERT_NE(size, 0);
1615
ASSERT_EQ(sizeof(ur_context_handle_t), size);
1716

1817
std::vector<uint8_t> data(size);
@@ -28,7 +27,6 @@ TEST_P(urQueueGetInfoTest, Device) {
2827
auto infoType = UR_QUEUE_INFO_DEVICE;
2928
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
3029
urQueueGetInfo(queue, infoType, 0, nullptr, &size), infoType);
31-
ASSERT_NE(size, 0);
3230
ASSERT_EQ(sizeof(ur_device_handle_t), size);
3331

3432
std::vector<uint8_t> data(size);
@@ -43,7 +41,6 @@ TEST_P(urQueueGetInfoTest, Flags) {
4341
auto infoType = UR_QUEUE_INFO_FLAGS;
4442
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
4543
urQueueGetInfo(queue, infoType, 0, nullptr, &size), infoType);
46-
ASSERT_NE(size, 0);
4744
ASSERT_EQ(sizeof(ur_queue_flags_t), size);
4845

4946
std::vector<uint8_t> data(size);
@@ -58,7 +55,6 @@ TEST_P(urQueueGetInfoTest, ReferenceCount) {
5855
auto infoType = UR_QUEUE_INFO_REFERENCE_COUNT;
5956
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
6057
urQueueGetInfo(queue, infoType, 0, nullptr, &size), infoType);
61-
ASSERT_NE(size, 0);
6258
ASSERT_EQ(sizeof(uint32_t), size);
6359

6460
std::vector<uint8_t> data(size);
@@ -73,7 +69,6 @@ TEST_P(urQueueGetInfoTest, EmptyQueue) {
7369
auto infoType = UR_QUEUE_INFO_EMPTY;
7470
ASSERT_SUCCESS_OR_OPTIONAL_QUERY(
7571
urQueueGetInfo(queue, infoType, 0, nullptr, &size), infoType);
76-
ASSERT_NE(size, 0);
7772
ASSERT_EQ(sizeof(ur_bool_t), size);
7873

7974
std::vector<uint8_t> data(size);

0 commit comments

Comments
 (0)