diff --git a/tests/test_openclhpp.cpp b/tests/test_openclhpp.cpp index c564a469..40022605 100644 --- a/tests/test_openclhpp.cpp +++ b/tests/test_openclhpp.cpp @@ -4571,6 +4571,45 @@ void testgetObjectInfo() { TEST_ASSERT_EQUAL(type, CL_GL_OBJECT_BUFFER); TEST_ASSERT_EQUAL(bufobj, 0); } + +static cl_int clEnqueueReleaseGLObjects_testenqueueReleaseGLObjects( + cl_command_queue command_queue, cl_uint num_objects, + const cl_mem *mem_objects, cl_uint num_events_in_wait_list, + const cl_event *event_wait_list, cl_event *event, int num_calls) { + (void)command_queue; + TEST_ASSERT_EQUAL(1, num_objects); + TEST_ASSERT_NOT_NULL(mem_objects); + TEST_ASSERT_EQUAL(make_mem(0), *mem_objects); + TEST_ASSERT_EQUAL(1, num_events_in_wait_list); + TEST_ASSERT_NOT_NULL(event_wait_list); + TEST_ASSERT_EQUAL(make_event(0), event_wait_list[0]); + TEST_ASSERT_EQUAL(0, num_calls); + if (event != nullptr) { + *event = make_event(1); + } + return CL_SUCCESS; +} + +void testenqueueReleaseGLObjects() { + cl::vector mem_objects; + mem_objects.emplace_back(make_mem(0), false); + cl::Event event; + cl::vector events; + events.emplace_back(cl::Event(make_event(0))); + cl_int ret = CL_INVALID_COMMAND_QUEUE; + + clEnqueueReleaseGLObjects_StubWithCallback( + clEnqueueReleaseGLObjects_testenqueueReleaseGLObjects); + ret = commandQueuePool[0].enqueueReleaseGLObjects(&mem_objects, &events, + &event); + TEST_ASSERT_EQUAL(CL_SUCCESS, ret); + TEST_ASSERT_EQUAL_PTR(make_event(1), event()); + + event() = nullptr; + events[0]() = nullptr; + mem_objects[0]() = nullptr; +} + #if CL_HPP_TARGET_OPENCL_VERSION >= 210 static cl_int clGetHostTimer_testgetHostTimer(cl_device_id device, cl_ulong *host_timestamp,