Skip to content

Commit 9924275

Browse files
authored
[UR][CTS] Early exit tests when setting buffer fails (#19726)
If a buffer set fails then the test now exits early. This ensures that the device isn't asked to run a kernel on invalid memory.
1 parent 694cc92 commit 9924275

File tree

2 files changed

+41
-36
lines changed

2 files changed

+41
-36
lines changed

unified-runtime/test/conformance/enqueue/urEnqueueEventsWaitWithBarrier.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -174,13 +174,13 @@ TEST_P(urEnqueueEventsWaitWithBarrierOrderingTest,
174174
uur::KernelLaunchHelper addHelper(platform, context, add_kernel, queue);
175175
uur::KernelLaunchHelper mulHelper(platform, context, mul_kernel, queue);
176176

177-
addHelper.SetBuffer1DArg(buffer, nullptr);
178-
mulHelper.SetBuffer1DArg(buffer, nullptr);
177+
UUR_RETURN_ON_FATAL_FAILURE(addHelper.SetBuffer1DArg(buffer, nullptr));
178+
UUR_RETURN_ON_FATAL_FAILURE(mulHelper.SetBuffer1DArg(buffer, nullptr));
179179

180180
for (size_t i = 0; i < 10; i++) {
181181
constexpr uint32_t ONE = 1;
182-
urEnqueueMemBufferWrite(queue, buffer, true, 0, sizeof(uint32_t), &ONE, 0,
183-
nullptr, &event);
182+
ASSERT_SUCCESS(urEnqueueMemBufferWrite(
183+
queue, buffer, true, 0, sizeof(uint32_t), &ONE, 0, nullptr, &event));
184184
ASSERT_SUCCESS(urEnqueueEventsWaitWithBarrier(queue, 1, &event, nullptr));
185185
ASSERT_SUCCESS(urEnqueueKernelLaunch(queue, add_kernel, 1, &offset, &count,
186186
nullptr, 0, nullptr, 0, nullptr,
@@ -205,13 +205,13 @@ TEST_P(urEnqueueEventsWaitWithBarrierOrderingTest,
205205
uur::KernelLaunchHelper addHelper(platform, context, add_kernel, queue);
206206
uur::KernelLaunchHelper mulHelper(platform, context, mul_kernel, queue);
207207

208-
addHelper.SetBuffer1DArg(buffer, nullptr);
209-
mulHelper.SetBuffer1DArg(buffer, nullptr);
208+
UUR_RETURN_ON_FATAL_FAILURE(addHelper.SetBuffer1DArg(buffer, nullptr));
209+
UUR_RETURN_ON_FATAL_FAILURE(mulHelper.SetBuffer1DArg(buffer, nullptr));
210210

211211
for (size_t i = 0; i < 10; i++) {
212212
constexpr uint32_t ONE = 1;
213-
urEnqueueMemBufferWrite(queue, buffer, true, 0, sizeof(uint32_t), &ONE, 0,
214-
nullptr, nullptr);
213+
ASSERT_SUCCESS(urEnqueueMemBufferWrite(
214+
queue, buffer, true, 0, sizeof(uint32_t), &ONE, 0, nullptr, nullptr));
215215
ASSERT_SUCCESS(urEnqueueEventsWaitWithBarrier(queue, 0, nullptr, &event));
216216
ASSERT_SUCCESS(urEnqueueKernelLaunch(queue, add_kernel, 1, &offset, &count,
217217
nullptr, 0, nullptr, 1, &event,
@@ -235,13 +235,13 @@ TEST_P(urEnqueueEventsWaitWithBarrierOrderingTest, SuccessEventDependencies) {
235235
uur::KernelLaunchHelper addHelper(platform, context, add_kernel, queue);
236236
uur::KernelLaunchHelper mulHelper(platform, context, mul_kernel, queue);
237237

238-
addHelper.SetBuffer1DArg(buffer, nullptr);
239-
mulHelper.SetBuffer1DArg(buffer, nullptr);
238+
UUR_RETURN_ON_FATAL_FAILURE(addHelper.SetBuffer1DArg(buffer, nullptr));
239+
UUR_RETURN_ON_FATAL_FAILURE(mulHelper.SetBuffer1DArg(buffer, nullptr));
240240

241241
for (size_t i = 0; i < 10; i++) {
242242
constexpr uint32_t ONE = 1;
243-
urEnqueueMemBufferWrite(queue, buffer, true, 0, sizeof(uint32_t), &ONE, 0,
244-
nullptr, &event[0]);
243+
ASSERT_SUCCESS(urEnqueueMemBufferWrite(
244+
queue, buffer, true, 0, sizeof(uint32_t), &ONE, 0, nullptr, &event[0]));
245245
ASSERT_SUCCESS(
246246
urEnqueueEventsWaitWithBarrier(queue, 1, &event[0], &event[1]));
247247
ASSERT_SUCCESS(urEnqueueKernelLaunch(queue, add_kernel, 1, &offset, &count,
@@ -268,13 +268,13 @@ TEST_P(urEnqueueEventsWaitWithBarrierOrderingTest,
268268
uur::KernelLaunchHelper addHelper(platform, context, add_kernel, queue);
269269
uur::KernelLaunchHelper mulHelper(platform, context, mul_kernel, queue);
270270

271-
addHelper.SetBuffer1DArg(buffer, nullptr);
272-
mulHelper.SetBuffer1DArg(buffer, nullptr);
271+
UUR_RETURN_ON_FATAL_FAILURE(addHelper.SetBuffer1DArg(buffer, nullptr));
272+
UUR_RETURN_ON_FATAL_FAILURE(mulHelper.SetBuffer1DArg(buffer, nullptr));
273273

274274
for (size_t i = 0; i < 10; i++) {
275275
constexpr uint32_t ONE = 1;
276-
urEnqueueMemBufferWrite(queue, buffer, true, 0, sizeof(uint32_t), &ONE, 0,
277-
nullptr, nullptr);
276+
ASSERT_SUCCESS(urEnqueueMemBufferWrite(
277+
queue, buffer, true, 0, sizeof(uint32_t), &ONE, 0, nullptr, nullptr));
278278
ASSERT_SUCCESS(urEnqueueEventsWaitWithBarrier(queue, 0, nullptr, nullptr));
279279
ASSERT_SUCCESS(urEnqueueKernelLaunch(queue, add_kernel, 1, &offset, &count,
280280
nullptr, 0, nullptr, 0, nullptr,

unified-runtime/test/conformance/enqueue/urEnqueueKernelLaunch.cpp

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,9 @@ TEST_P(urEnqueueKernelLaunchNoArgs3DTest, Success) {
8888

8989
TEST_P(urEnqueueKernelLaunchTest, Success) {
9090
ur_mem_handle_t buffer = nullptr;
91-
AddBuffer1DArg(sizeof(val) * global_size, &buffer);
92-
AddPodArg(val);
91+
UUR_RETURN_ON_FATAL_FAILURE(
92+
AddBuffer1DArg(sizeof(val) * global_size, &buffer));
93+
UUR_RETURN_ON_FATAL_FAILURE(AddPodArg(val));
9394
ASSERT_SUCCESS(urEnqueueKernelLaunch(queue, kernel, n_dimensions,
9495
&global_offset, &global_size, nullptr, 0,
9596
nullptr, 0, nullptr, nullptr));
@@ -134,8 +135,9 @@ TEST_P(urEnqueueKernelLaunchTest, SuccessWithLaunchProperties) {
134135
}
135136

136137
ur_mem_handle_t buffer = nullptr;
137-
AddBuffer1DArg(sizeof(val) * global_size, &buffer);
138-
AddPodArg(val);
138+
UUR_RETURN_ON_FATAL_FAILURE(
139+
AddBuffer1DArg(sizeof(val) * global_size, &buffer));
140+
UUR_RETURN_ON_FATAL_FAILURE(AddPodArg(val));
139141

140142
ASSERT_SUCCESS(urEnqueueKernelLaunch(queue, kernel, n_dimensions,
141143
&global_offset, &global_size, nullptr, 1,
@@ -147,8 +149,9 @@ TEST_P(urEnqueueKernelLaunchTest, SuccessWithLaunchProperties) {
147149

148150
TEST_P(urEnqueueKernelLaunchTest, SuccessNoOffset) {
149151
ur_mem_handle_t buffer = nullptr;
150-
AddBuffer1DArg(sizeof(val) * global_size, &buffer);
151-
AddPodArg(val);
152+
UUR_RETURN_ON_FATAL_FAILURE(
153+
AddBuffer1DArg(sizeof(val) * global_size, &buffer));
154+
UUR_RETURN_ON_FATAL_FAILURE(AddPodArg(val));
152155
ASSERT_SUCCESS(urEnqueueKernelLaunch(queue, kernel, n_dimensions, nullptr,
153156
&global_size, nullptr, 0, nullptr, 0,
154157
nullptr, nullptr));
@@ -218,8 +221,9 @@ TEST_P(urEnqueueKernelLaunchTest, InvalidWorkGroupSize) {
218221
// an error
219222
size_t local_size = 31;
220223
ur_mem_handle_t buffer = nullptr;
221-
AddBuffer1DArg(sizeof(val) * global_size, &buffer);
222-
AddPodArg(val);
224+
UUR_RETURN_ON_FATAL_FAILURE(
225+
AddBuffer1DArg(sizeof(val) * global_size, &buffer));
226+
UUR_RETURN_ON_FATAL_FAILURE(AddPodArg(val));
223227
auto result = urEnqueueKernelLaunch(queue, kernel, n_dimensions,
224228
&global_offset, &global_size, &local_size,
225229
0, nullptr, 0, nullptr, nullptr);
@@ -258,7 +262,7 @@ TEST_P(urEnqueueKernelLaunchKernelSubGroupTest, Success) {
258262
UUR_KNOWN_FAILURE_ON(uur::CUDA{});
259263

260264
ur_mem_handle_t buffer = nullptr;
261-
AddBuffer1DArg(sizeof(size_t), &buffer);
265+
UUR_RETURN_ON_FATAL_FAILURE(AddBuffer1DArg(sizeof(size_t), &buffer));
262266
ASSERT_SUCCESS(urEnqueueKernelLaunch(
263267
queue, kernel, n_dimensions, global_offset.data(), global_size.data(),
264268
nullptr, 0, nullptr, 0, nullptr, nullptr));
@@ -275,13 +279,13 @@ struct Pair {
275279
TEST_P(urEnqueueKernelLaunchKernelStandardTest, Success) {
276280
uint32_t expected_result = 2410;
277281
ur_mem_handle_t output = nullptr;
278-
AddBuffer1DArg(sizeof(uint32_t), &output);
279-
AddPodArg(true);
280-
AddPodArg<uint8_t>(2);
281-
AddPodArg<uint32_t>(3);
282-
AddPodArg<uint64_t>(5);
283-
AddPodArg<Pair>({7, 5});
284-
AddPodArg<float>(11.0);
282+
UUR_RETURN_ON_FATAL_FAILURE(AddBuffer1DArg(sizeof(uint32_t), &output));
283+
UUR_RETURN_ON_FATAL_FAILURE(AddPodArg(true));
284+
UUR_RETURN_ON_FATAL_FAILURE(AddPodArg<uint8_t>(2));
285+
UUR_RETURN_ON_FATAL_FAILURE(AddPodArg<uint32_t>(3));
286+
UUR_RETURN_ON_FATAL_FAILURE(AddPodArg<uint64_t>(5));
287+
UUR_RETURN_ON_FATAL_FAILURE(AddPodArg<Pair>({7, 5}));
288+
UUR_RETURN_ON_FATAL_FAILURE(AddPodArg<float>(11.0));
285289

286290
ASSERT_SUCCESS(urEnqueueKernelLaunch(queue, kernel, n_dimensions, &offset,
287291
&global_size, nullptr, 0, nullptr, 0,
@@ -371,8 +375,8 @@ UUR_DEVICE_TEST_SUITE_WITH_PARAM(
371375

372376
TEST_P(urEnqueueKernelLaunchTestWithParam, Success) {
373377
ur_mem_handle_t buffer = nullptr;
374-
AddBuffer1DArg(buffer_size, &buffer);
375-
AddPodArg(val);
378+
UUR_RETURN_ON_FATAL_FAILURE(AddBuffer1DArg(buffer_size, &buffer));
379+
UUR_RETURN_ON_FATAL_FAILURE(AddPodArg(val));
376380
ASSERT_SUCCESS(urEnqueueKernelLaunch(queue, kernel, n_dimensions,
377381
global_offset, global_range, nullptr, 0,
378382
nullptr, 0, nullptr, nullptr));
@@ -624,8 +628,9 @@ TEST_P(urEnqueueKernelLaunchMultiDeviceTest, KernelLaunchReadDifferentQueues) {
624628
uur::KernelLaunchHelper{platform, context, kernel, queues[0]};
625629

626630
ur_mem_handle_t buffer = nullptr;
627-
helper.AddBuffer1DArg(sizeof(val) * global_size, &buffer, nullptr);
628-
helper.AddPodArg(val);
631+
UUR_RETURN_ON_FATAL_FAILURE(
632+
helper.AddBuffer1DArg(sizeof(val) * global_size, &buffer, nullptr));
633+
UUR_RETURN_ON_FATAL_FAILURE(helper.AddPodArg(val));
629634
ASSERT_SUCCESS(urEnqueueKernelLaunch(queues[0], kernel, n_dimensions,
630635
&global_offset, &global_size, nullptr, 0,
631636
nullptr, 0, nullptr, nullptr));

0 commit comments

Comments
 (0)