/* * Copyright (C) 2017-2019 Intel Corporation * * SPDX-License-Identifier: MIT * */ #include "runtime/command_queue/command_queue.h" #include "runtime/context/context.h" #include "runtime/helpers/ptr_math.h" #include "cl_api_tests.h" using namespace OCLRT; typedef api_tests clEnqueueWriteBufferRectTests; namespace ULT { TEST_F(clEnqueueWriteBufferRectTests, GivenInvalidBufferWhenWritingRectangularRegionThenInvalidMemObjectErrorIsReturned) { auto buffer = (cl_mem)ptrGarbage; size_t buffOrigin[] = {0, 0, 0}; size_t hostOrigin[] = {0, 0, 0}; size_t region[] = {10, 10, 0}; char ptr[10]; auto retVal = clEnqueueWriteBufferRect( pCommandQueue, buffer, CL_FALSE, buffOrigin, hostOrigin, region, 10, //bufferRowPitch 0, //bufferSlicePitch 10, //hostRowPitch 0, //hostSlicePitch ptr, //hostPtr 0, //numEventsInWaitList nullptr, nullptr); EXPECT_EQ(CL_INVALID_MEM_OBJECT, retVal); } TEST_F(clEnqueueWriteBufferRectTests, GivenNullCommandQueueWhenWritingRectangularRegionThenInvalidCommandQueueErrorIsReturned) { auto buffer = (cl_mem)ptrGarbage; size_t buffOrigin[] = {0, 0, 0}; size_t hostOrigin[] = {0, 0, 0}; size_t region[] = {10, 10, 0}; char ptr[10]; auto retVal = clEnqueueWriteBufferRect( nullptr, buffer, CL_FALSE, buffOrigin, hostOrigin, region, 10, //bufferRowPitch 0, //bufferSlicePitch 10, //hostRowPitch 0, //hostSlicePitch ptr, //hostPtr 0, //numEventsInWaitList nullptr, nullptr); EXPECT_EQ(CL_INVALID_COMMAND_QUEUE, retVal); } TEST_F(clEnqueueWriteBufferRectTests, GivenNullHostPtrWhenWritingRectangularRegionThenInvalidValueErrorIsReturned) { auto buffer = clCreateBuffer( pContext, CL_MEM_READ_WRITE, 20, nullptr, &retVal); EXPECT_EQ(CL_SUCCESS, retVal); EXPECT_NE(nullptr, buffer); size_t buffOrigin[] = {0, 0, 0}; size_t hostOrigin[] = {0, 0, 0}; size_t region[] = {10, 10, 0}; auto retVal = clEnqueueWriteBufferRect( pCommandQueue, buffer, CL_FALSE, buffOrigin, hostOrigin, region, 10, //bufferRowPitch 0, //bufferSlicePitch 10, //hostRowPitch 0, //hostSlicePitch nullptr, //hostPtr 0, //numEventsInWaitList nullptr, nullptr); EXPECT_EQ(CL_INVALID_VALUE, retVal); retVal = clReleaseMemObject(buffer); EXPECT_EQ(CL_SUCCESS, retVal); } } // namespace ULT