@@ -1344,7 +1344,7 @@ TEST(EventCallback, GivenEventWithCallbacksOnPeekHasCallbacksReturnsTrue) {
13441344}
13451345
13461346TEST_F (EventTest, addChildForEventUncompleted) {
1347- VirtualEvent virtualEvent;
1347+ VirtualEvent virtualEvent (pCmdQ, &mockContext) ;
13481348 {
13491349 Event event (pCmdQ, CL_COMMAND_NDRANGE_KERNEL, 0 , 0 );
13501350 event.addChild (virtualEvent);
@@ -1366,8 +1366,29 @@ TEST(Event, whenCreatingRegularEventsThenExternalSynchronizationIsNotRequired) {
13661366 virtualEvent->release ();
13671367}
13681368
1369+ HWTEST_F (EventTest, givenEventWithNotReadyTaskLevelWhenUnblockedThenGetTaskLevelFromCsrIfGreaterThanParent) {
1370+ uint32_t initialTaskLevel = 10 ;
1371+ Event parentEventWithGreaterTaskLevel (pCmdQ, CL_COMMAND_NDRANGE_KERNEL, initialTaskLevel + 5 , 0 );
1372+ Event parentEventWithLowerTaskLevel (pCmdQ, CL_COMMAND_NDRANGE_KERNEL, initialTaskLevel - 5 , 0 );
1373+
1374+ Event childEvent0 (pCmdQ, CL_COMMAND_NDRANGE_KERNEL, Event::eventNotReady, Event::eventNotReady);
1375+ Event childEvent1 (pCmdQ, CL_COMMAND_NDRANGE_KERNEL, Event::eventNotReady, Event::eventNotReady);
1376+
1377+ auto &csr = reinterpret_cast <UltCommandStreamReceiver<FamilyType> &>(pCmdQ->getCommandStreamReceiver ());
1378+ csr.taskLevel = initialTaskLevel;
1379+
1380+ parentEventWithGreaterTaskLevel.addChild (childEvent0);
1381+ parentEventWithLowerTaskLevel.addChild (childEvent1);
1382+
1383+ parentEventWithGreaterTaskLevel.setStatus (CL_COMPLETE);
1384+ parentEventWithLowerTaskLevel.setStatus (CL_COMPLETE);
1385+
1386+ EXPECT_EQ (parentEventWithGreaterTaskLevel.getTaskLevel () + 1 , childEvent0.getTaskLevel ());
1387+ EXPECT_EQ (csr.taskLevel , childEvent1.getTaskLevel ());
1388+ }
1389+
13691390TEST_F (EventTest, addChildForEventCompleted) {
1370- VirtualEvent virtualEvent;
1391+ VirtualEvent virtualEvent (pCmdQ, &mockContext) ;
13711392 {
13721393 Event event (pCmdQ, CL_COMMAND_NDRANGE_KERNEL, 0 , 0 );
13731394 event.setStatus (CL_COMPLETE);
0 commit comments