@@ -192,19 +192,21 @@ TEST(Event, givenCommandQueueWhenEventIsCreatedWithoutCommandQueueThenCommandQue
192
192
EXPECT_EQ (intitialRefCount, finalRefCount);
193
193
}
194
194
195
+ class MockCommandQueueWithFlushCheck : public MockCommandQueue {
196
+ public:
197
+ MockCommandQueueWithFlushCheck () = delete ;
198
+ MockCommandQueueWithFlushCheck (MockCommandQueueWithFlushCheck &) = delete ;
199
+ MockCommandQueueWithFlushCheck (Context &context, ClDevice *device) : MockCommandQueue(&context, device, nullptr , false ) {
200
+ }
201
+ cl_int flush () override {
202
+ flushCounter++;
203
+ return flushReturnStatus;
204
+ }
205
+ cl_int flushReturnStatus = CL_SUCCESS;
206
+ uint32_t flushCounter = 0 ;
207
+ };
208
+
195
209
TEST (Event, WhenWaitingForEventsThenAllQueuesAreFlushed) {
196
- class MockCommandQueueWithFlushCheck : public MockCommandQueue {
197
- public:
198
- MockCommandQueueWithFlushCheck () = delete ;
199
- MockCommandQueueWithFlushCheck (MockCommandQueueWithFlushCheck &) = delete ;
200
- MockCommandQueueWithFlushCheck (Context &context, ClDevice *device) : MockCommandQueue(&context, device, nullptr , false ) {
201
- }
202
- cl_int flush () override {
203
- flushCounter++;
204
- return CL_SUCCESS;
205
- }
206
- uint32_t flushCounter = 0 ;
207
- };
208
210
209
211
auto device = std::make_unique<MockClDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr ));
210
212
MockContext context;
@@ -224,19 +226,6 @@ TEST(Event, WhenWaitingForEventsThenAllQueuesAreFlushed) {
224
226
}
225
227
226
228
TEST (Event, GivenNotReadyEventWhenWaitingForEventsThenQueueIsNotFlushed) {
227
- class MockCommandQueueWithFlushCheck : public MockCommandQueue {
228
- public:
229
- MockCommandQueueWithFlushCheck () = delete ;
230
- MockCommandQueueWithFlushCheck (MockCommandQueueWithFlushCheck &) = delete ;
231
- MockCommandQueueWithFlushCheck (Context &context, ClDevice *device) : MockCommandQueue(&context, device, nullptr , false ) {
232
- }
233
- cl_int flush () override {
234
- flushCounter++;
235
- return CL_SUCCESS;
236
- }
237
- uint32_t flushCounter = 0 ;
238
- };
239
-
240
229
auto device = std::make_unique<MockClDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr ));
241
230
MockContext context;
242
231
@@ -249,6 +238,34 @@ TEST(Event, GivenNotReadyEventWhenWaitingForEventsThenQueueIsNotFlushed) {
249
238
EXPECT_EQ (0u , cmdQ1->flushCounter );
250
239
}
251
240
241
+ TEST (Event, GivenEventWhenFlushReturnSuccessThenSuccessReturnedFromWaitForEvents) {
242
+
243
+ auto device = std::make_unique<MockClDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr ));
244
+ MockContext context;
245
+
246
+ std::unique_ptr<MockCommandQueueWithFlushCheck> cmdQ1 (new MockCommandQueueWithFlushCheck (context, device.get ()));
247
+ cmdQ1->flushReturnStatus = CL_SUCCESS;
248
+ std::unique_ptr<Event> event1 (new Event (cmdQ1.get (), CL_COMMAND_NDRANGE_KERNEL, 4 , 10 ));
249
+
250
+ cl_event eventWaitlist[] = {event1.get ()};
251
+
252
+ EXPECT_EQ (Event::waitForEvents (1 , eventWaitlist), CL_SUCCESS);
253
+ }
254
+
255
+ TEST (Event, GivenEventWhenFlushReturnErrorThenErrorReturnedFromWaitForEvents) {
256
+
257
+ auto device = std::make_unique<MockClDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr ));
258
+ MockContext context;
259
+
260
+ std::unique_ptr<MockCommandQueueWithFlushCheck> cmdQ1 (new MockCommandQueueWithFlushCheck (context, device.get ()));
261
+ cmdQ1->flushReturnStatus = CL_OUT_OF_RESOURCES;
262
+ std::unique_ptr<Event> event1 (new Event (cmdQ1.get (), CL_COMMAND_NDRANGE_KERNEL, 4 , 10 ));
263
+
264
+ cl_event eventWaitlist[] = {event1.get ()};
265
+
266
+ EXPECT_EQ (Event::waitForEvents (1 , eventWaitlist), CL_OUT_OF_RESOURCES);
267
+ }
268
+
252
269
TEST (Event, givenNotReadyEventOnWaitlistWhenCheckingUserEventDependeciesThenTrueIsReturned) {
253
270
auto event1 = std::make_unique<Event>(nullptr , CL_COMMAND_NDRANGE_KERNEL, CompletionStamp::notReady, 0 );
254
271
cl_event eventWaitlist[] = {event1.get ()};
0 commit comments