@@ -327,6 +327,24 @@ TEST(TestDPCTLSyclQueueInterface, CheckPropertyHandling)
327327 EXPECT_NO_FATAL_FAILURE (DPCTLDeviceSelector_Delete (DSRef));
328328}
329329
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+
330348TEST_P (TestDPCTLQueueMemberFunctions, CheckGetBackend)
331349{
332350 auto q = unwrap (QRef);
@@ -364,6 +382,31 @@ TEST_P(TestDPCTLQueueMemberFunctions, CheckGetDevice)
364382 EXPECT_NO_FATAL_FAILURE (DPCTLDevice_Delete (D));
365383}
366384
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+
367410INSTANTIATE_TEST_SUITE_P (
368411 DPCTLQueueMemberFuncTests,
369412 TestDPCTLQueueMemberFunctions,
0 commit comments