@@ -356,4 +356,56 @@ TEST_F(TestQueueSubmitNDRange, ChkSubmitNDRangeDouble)
356356 EXPECT_TRUE (worked);
357357}
358358
359+ struct TestQueueSubmitBarrier : public ::testing::Test
360+ {
361+ DPCTLSyclQueueRef QRef = nullptr ;
362+
363+ TestQueueSubmitBarrier ()
364+ {
365+ DPCTLSyclDeviceSelectorRef DSRef = nullptr ;
366+ DPCTLSyclDeviceRef DRef = nullptr ;
367+
368+ EXPECT_NO_FATAL_FAILURE (DSRef = DPCTLDefaultSelector_Create ());
369+ EXPECT_NO_FATAL_FAILURE (DRef = DPCTLDevice_CreateFromSelector (DSRef));
370+ EXPECT_NO_FATAL_FAILURE (QRef = DPCTLQueue_CreateForDevice (
371+ DRef, nullptr , DPCTL_DEFAULT_PROPERTY));
372+ EXPECT_NO_FATAL_FAILURE (DPCTLDevice_Delete (DRef));
373+ EXPECT_NO_FATAL_FAILURE (DPCTLDeviceSelector_Delete (DSRef));
374+ }
375+ ~TestQueueSubmitBarrier ()
376+ {
377+ EXPECT_NO_FATAL_FAILURE (DPCTLQueue_Delete (QRef));
378+ }
379+ };
380+
381+ TEST_F (TestQueueSubmitBarrier, ChkSubmitBarrier)
382+ {
383+ DPCTLSyclEventRef ERef = nullptr ;
384+
385+ ASSERT_TRUE (QRef != nullptr );
386+ EXPECT_NO_FATAL_FAILURE (ERef = DPCTLQueue_SubmitBarrier (QRef));
387+ ASSERT_TRUE (ERef != nullptr );
388+ EXPECT_NO_FATAL_FAILURE (DPCTLEvent_Wait (ERef));
389+ EXPECT_NO_FATAL_FAILURE (DPCTLEvent_Delete (ERef));
390+ }
391+
392+ TEST_F (TestQueueSubmitBarrier, ChkSubmitBarrierWithEvents)
393+ {
394+ DPCTLSyclEventRef ERef = nullptr ;
395+ DPCTLSyclEventRef DepsERefs[2 ] = {nullptr , nullptr };
396+
397+ EXPECT_NO_FATAL_FAILURE (DepsERefs[0 ] = DPCTLEvent_Create ());
398+ EXPECT_NO_FATAL_FAILURE (DepsERefs[1 ] = DPCTLEvent_Create ());
399+
400+ ASSERT_TRUE (QRef != nullptr );
401+ EXPECT_NO_FATAL_FAILURE (
402+ ERef = DPCTLQueue_SubmitBarrierForEvents (QRef, DepsERefs, 2 ));
403+
404+ ASSERT_TRUE (ERef != nullptr );
405+ EXPECT_NO_FATAL_FAILURE (DPCTLEvent_Wait (ERef));
406+ EXPECT_NO_FATAL_FAILURE (DPCTLEvent_Delete (ERef));
407+ EXPECT_NO_FATAL_FAILURE (DPCTLEvent_Delete (DepsERefs[0 ]));
408+ EXPECT_NO_FATAL_FAILURE (DPCTLEvent_Delete (DepsERefs[1 ]));
409+ }
410+
359411#endif
0 commit comments