|
32 | 32 | #include "unit_tests/command_stream/command_stream_fixture.h" |
33 | 33 | #include "unit_tests/fixtures/context_fixture.h" |
34 | 34 | #include "unit_tests/fixtures/device_fixture.h" |
| 35 | +#include "unit_tests/fixtures/image_fixture.h" |
35 | 36 | #include "unit_tests/fixtures/memory_management_fixture.h" |
36 | 37 | #include "unit_tests/fixtures/buffer_fixture.h" |
37 | 38 | #include "unit_tests/libult/ult_command_stream_receiver.h" |
@@ -738,6 +739,32 @@ TEST(CommandQueue, givenEnqueueAcquireSharedObjectsWhenNoObjectsThenReturnSucces |
738 | 739 | EXPECT_EQ(result, CL_SUCCESS); |
739 | 740 | } |
740 | 741 |
|
| 742 | +class MockSharingHandler : public SharingHandler { |
| 743 | + public: |
| 744 | + void synchronizeObject(UpdateData *updateData) override { |
| 745 | + updateData->synchronizationStatus = ACQUIRE_SUCCESFUL; |
| 746 | + } |
| 747 | +}; |
| 748 | + |
| 749 | +TEST(CommandQueue, givenEnqueuesForSharedObjectsWithImageUsingSharingHandlerThenReturnSuccess) { |
| 750 | + MockContext context; |
| 751 | + CommandQueue cmdQ(&context, nullptr, 0); |
| 752 | + MockSharingHandler *mockSharingHandler = new MockSharingHandler; |
| 753 | + |
| 754 | + auto image = std::unique_ptr<Image>(ImageHelper<Image2dDefaults>::create(&context)); |
| 755 | + image->setSharingHandler(mockSharingHandler); |
| 756 | + |
| 757 | + cl_mem memObject = image.get(); |
| 758 | + cl_uint numObjects = 1; |
| 759 | + cl_mem *memObjects = &memObject; |
| 760 | + |
| 761 | + cl_int result = cmdQ.enqueueAcquireSharedObjects(numObjects, memObjects, 0, nullptr, nullptr, 0); |
| 762 | + EXPECT_EQ(result, CL_SUCCESS); |
| 763 | + |
| 764 | + result = cmdQ.enqueueReleaseSharedObjects(numObjects, memObjects, 0, nullptr, nullptr, 0); |
| 765 | + EXPECT_EQ(result, CL_SUCCESS); |
| 766 | +} |
| 767 | + |
741 | 768 | TEST(CommandQueue, givenEnqueueAcquireSharedObjectsWhenIncorrectArgumentsThenReturnProperError) { |
742 | 769 | MockContext context; |
743 | 770 | CommandQueue cmdQ(&context, nullptr, 0); |
|
0 commit comments