@@ -327,6 +327,24 @@ TEST(TestDPCTLSyclQueueInterface, CheckPropertyHandling)
327
327
EXPECT_NO_FATAL_FAILURE (DPCTLDeviceSelector_Delete (DSRef));
328
328
}
329
329
330
+ TEST (TestDPCTLSyclQueueInterface, CheckMemOpsZeroQRef)
331
+ {
332
+ DPCTLSyclQueueRef QRef = nullptr ;
333
+ void *p1 = nullptr ;
334
+ void *p2 = nullptr ;
335
+ size_t n_bytes = 0 ;
336
+ DPCTLSyclEventRef ERef = nullptr ;
337
+
338
+ ASSERT_NO_FATAL_FAILURE (ERef = DPCTLQueue_Memcpy (QRef, p1, p2, n_bytes));
339
+ ASSERT_FALSE (bool (ERef));
340
+
341
+ ASSERT_NO_FATAL_FAILURE (ERef = DPCTLQueue_Prefetch (QRef, p1, n_bytes));
342
+ ASSERT_FALSE (bool (ERef));
343
+
344
+ ASSERT_NO_FATAL_FAILURE (ERef = DPCTLQueue_MemAdvise (QRef, p1, n_bytes, 0 ));
345
+ ASSERT_FALSE (bool (ERef));
346
+ }
347
+
330
348
TEST_P (TestDPCTLQueueMemberFunctions, CheckGetBackend)
331
349
{
332
350
auto q = unwrap (QRef);
@@ -364,6 +382,31 @@ TEST_P(TestDPCTLQueueMemberFunctions, CheckGetDevice)
364
382
EXPECT_NO_FATAL_FAILURE (DPCTLDevice_Delete (D));
365
383
}
366
384
385
+ TEST_P (TestDPCTLQueueMemberFunctions, CheckMemOpsNullPtr)
386
+ {
387
+ void *p1 = nullptr ;
388
+ void *p2 = nullptr ;
389
+ size_t n_bytes = 256 ;
390
+ DPCTLSyclEventRef ERef = nullptr ;
391
+
392
+ ASSERT_NO_FATAL_FAILURE (ERef = DPCTLQueue_Memcpy (QRef, p1, p2, n_bytes));
393
+ ASSERT_FALSE (bool (ERef));
394
+
395
+ ASSERT_NO_FATAL_FAILURE (ERef = DPCTLQueue_Prefetch (QRef, p1, n_bytes));
396
+ if (ERef) {
397
+ ASSERT_NO_FATAL_FAILURE (DPCTLEvent_Wait (ERef));
398
+ ASSERT_NO_FATAL_FAILURE (DPCTLEvent_Delete (ERef));
399
+ ERef = nullptr ;
400
+ }
401
+
402
+ ASSERT_NO_FATAL_FAILURE (ERef = DPCTLQueue_MemAdvise (QRef, p1, n_bytes, 0 ));
403
+ if (ERef) {
404
+ ASSERT_NO_FATAL_FAILURE (DPCTLEvent_Wait (ERef));
405
+ ASSERT_NO_FATAL_FAILURE (DPCTLEvent_Delete (ERef));
406
+ ERef = nullptr ;
407
+ }
408
+ }
409
+
367
410
INSTANTIATE_TEST_SUITE_P (
368
411
DPCTLQueueMemberFuncTests,
369
412
TestDPCTLQueueMemberFunctions,
0 commit comments