@@ -98,8 +98,8 @@ TEST_F(SchedulerTest, EnqueueBlockedCommandEarlyExit) {
98
98
A.MIsBlockable = true ;
99
99
100
100
MockCommand B (detail::getSyclObjImpl (MQueue));
101
- B.MEnqueueStatus = detail::EnqueueResultT::SyclEnqueueBlocked ;
102
- B.MIsBlockable = true ;
101
+ B.MEnqueueStatus = detail::EnqueueResultT::SyclEnqueueReady ;
102
+ B.MRetVal = CL_OUT_OF_RESOURCES ;
103
103
104
104
addEdge (&A, &B, nullptr );
105
105
@@ -118,4 +118,15 @@ TEST_F(SchedulerTest, EnqueueBlockedCommandEarlyExit) {
118
118
ASSERT_EQ (detail::EnqueueResultT::SyclEnqueueBlocked, Res.MResult )
119
119
<< " Result of enqueueing blocked command should be BLOCKED.\n " ;
120
120
ASSERT_EQ (&A, Res.MCmd ) << " Expected different failed command.\n " ;
121
+
122
+ // But if the enqueue type is blocking we should not exit early.
123
+
124
+ EXPECT_CALL (A, enqueue (_, _)).Times (0 );
125
+ EXPECT_CALL (B, enqueue (_, _)).Times (1 );
126
+
127
+ Enqueued = MockScheduler::enqueueCommand (&A, Res, detail::BLOCKING);
128
+ ASSERT_FALSE (Enqueued) << " Blocked command should not be enqueued\n " ;
129
+ ASSERT_EQ (detail::EnqueueResultT::SyclEnqueueFailed, Res.MResult )
130
+ << " Result of enqueueing blocked command should be BLOCKED.\n " ;
131
+ ASSERT_EQ (&B, Res.MCmd ) << " Expected different failed command.\n " ;
121
132
}
0 commit comments