mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
sharing: add tests for SharingHandler methods
- added acquire/release tests Change-Id: I29226c39b709992e13789305fd8c3d2ea7e1a827
This commit is contained in:

committed by
sys_ocldev

parent
f4a1b73fd9
commit
820dc3da0d
@ -20,19 +20,22 @@
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "runtime/sharings/sharing.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "runtime/mem_obj/mem_obj.h"
|
||||
#include "runtime/sharings/sharing.h"
|
||||
#include "unit_tests/mocks/mock_context.h"
|
||||
#include "unit_tests/mocks/mock_graphics_allocation.h"
|
||||
|
||||
using namespace OCLRT;
|
||||
|
||||
TEST(sharingHandler, givenBasicSharingHandlerWhenSynchronizeObjectThenErrorIsReturned) {
|
||||
struct SH : SharingHandler {
|
||||
void synchronizeObjectMock(UpdateData *updateData) { return synchronizeObject(updateData); }
|
||||
void synchronizeHandlerMock(UpdateData *updateData) { return synchronizeHandler(updateData); }
|
||||
|
||||
} sharingHandler;
|
||||
|
||||
UpdateData updateData;
|
||||
sharingHandler.synchronizeObjectMock(&updateData);
|
||||
sharingHandler.synchronizeHandlerMock(&updateData);
|
||||
EXPECT_EQ(SynchronizeStatus::SYNCHRONIZE_ERROR, updateData.synchronizationStatus);
|
||||
|
||||
size_t paramSize = 0;
|
||||
@ -42,3 +45,28 @@ TEST(sharingHandler, givenBasicSharingHandlerWhenSynchronizeObjectThenErrorIsRet
|
||||
EXPECT_EQ(paramSize, 0u);
|
||||
EXPECT_EQ(paramValue, nullptr);
|
||||
}
|
||||
|
||||
TEST(sharingHandler, givenMemObjWhenAcquireIncrementCounterThenReleaseShouldDecrementIt) {
|
||||
char buffer[64];
|
||||
MockContext context;
|
||||
MockGraphicsAllocation *mockAllocation = new MockGraphicsAllocation(buffer, sizeof(buffer));
|
||||
std::unique_ptr<MemObj> memObj(new MemObj(&context, CL_MEM_OBJECT_BUFFER, CL_MEM_USE_HOST_PTR,
|
||||
sizeof(buffer), buffer, buffer, mockAllocation, true, false, false));
|
||||
|
||||
struct MockSharingHandler : SharingHandler {
|
||||
unsigned int acquire(MemObj *memObj) {
|
||||
SharingHandler::acquire(memObj);
|
||||
return acquireCount;
|
||||
}
|
||||
unsigned int release(MemObj *memObj) {
|
||||
SharingHandler::release(memObj);
|
||||
return acquireCount;
|
||||
}
|
||||
void synchronizeObject(UpdateData *updateData) override {
|
||||
updateData->synchronizationStatus = ACQUIRE_SUCCESFUL;
|
||||
}
|
||||
} sharingHandler;
|
||||
|
||||
EXPECT_EQ(sharingHandler.acquire(memObj.get()), 1u);
|
||||
EXPECT_EQ(sharingHandler.release(memObj.get()), 0u);
|
||||
}
|
||||
|
Reference in New Issue
Block a user