Skip to content

Commit

Permalink
changed from #undef to namespaces
Browse files Browse the repository at this point in the history
  • Loading branch information
Bogumil-Sapinski-Mobica committed Jul 14, 2023
1 parent 9137a5c commit 5692dd9
Showing 1 changed file with 111 additions and 131 deletions.
242 changes: 111 additions & 131 deletions tests/test_openclhpp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -372,15 +372,15 @@ MAKE_REFCOUNT_STUBS(cl_command_buffer_khr, clRetainCommandBufferKHR, clReleaseCo
} \
\
void prefix##MoveConstruct##type##NonNull(void) { \
cl::type tmp(std::move(pool[0])); \
type tmp(std::move(pool[0])); \
TEST_ASSERT_EQUAL_PTR(makeFunc(0), tmp()); \
TEST_ASSERT_NULL(pool[0]()); \
tmp() = nullptr; \
} \
\
void prefix##MoveConstruct##type##Null(void) { \
cl::type empty; \
cl::type tmp(std::move(empty)); \
type empty; \
type tmp(std::move(empty)); \
TEST_ASSERT_NULL(tmp()); \
TEST_ASSERT_NULL(empty()); \
}
Expand Down Expand Up @@ -512,8 +512,9 @@ void testMoveAssignContextNonNull(void);
void testMoveAssignContextNull(void);
void testMoveConstructContextNonNull(void);
void testMoveConstructContextNull(void);
namespace cl{
MAKE_MOVE_TESTS(Context, make_context, clReleaseContext, contextPool)

}
/// Stub for querying CL_CONTEXT_DEVICES that returns two devices
static cl_int clGetContextInfo_testContextGetDevices(
cl_context context,
Expand Down Expand Up @@ -781,8 +782,9 @@ void testMoveAssignCommandQueueNonNull(void);
void testMoveAssignCommandQueueNull(void);
void testMoveConstructCommandQueueNonNull(void);
void testMoveConstructCommandQueueNull(void);
namespace cl{
MAKE_MOVE_TESTS(CommandQueue, make_command_queue, clReleaseCommandQueue, commandQueuePool)

}
// Stub for clGetCommandQueueInfo that returns context 0
static cl_int clGetCommandQueueInfo_testCommandQueueGetContext(
cl_command_queue command_queue,
Expand Down Expand Up @@ -1180,8 +1182,9 @@ void testMoveAssignBufferNonNull(void);
void testMoveAssignBufferNull(void);
void testMoveConstructBufferNonNull(void);
void testMoveConstructBufferNull(void);
namespace cl{
MAKE_MOVE_TESTS(Buffer, make_mem, clReleaseMemObject, bufferPool)

}
// Stub of clCreateBuffer for testBufferConstructorContextInterator
// - return the first memory location

Expand Down Expand Up @@ -1509,8 +1512,9 @@ void testMoveAssignImage2DNonNull(void);
void testMoveAssignImage2DNull(void);
void testMoveConstructImage2DNonNull(void);
void testMoveConstructImage2DNull(void);
namespace cl{
MAKE_MOVE_TESTS(Image2D, make_mem, clReleaseMemObject, image2DPool)

}
#ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS
static cl_mem clCreateImage2D_testCreateImage2D_1_1(
cl_context context,
Expand Down Expand Up @@ -1627,8 +1631,9 @@ void testMoveAssignImage3DNonNull(void);
void testMoveAssignImage3DNull(void);
void testMoveConstructImage3DNonNull(void);
void testMoveConstructImage3DNull(void);
namespace cl{
MAKE_MOVE_TESTS(Image3D, make_mem, clReleaseMemObject, image3DPool)

}
#ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS
static cl_mem clCreateImage3D_testCreateImage3D_1_1(
cl_context context,
Expand Down Expand Up @@ -1750,8 +1755,9 @@ void testMoveAssignKernelNonNull(void);
void testMoveAssignKernelNull(void);
void testMoveConstructKernelNonNull(void);
void testMoveConstructKernelNull(void);
namespace cl{
MAKE_MOVE_TESTS(Kernel, make_kernel, clReleaseKernel, kernelPool)

}
static cl_int scalarArg;
static cl_int3 vectorArg;

Expand Down Expand Up @@ -3459,6 +3465,100 @@ void testLinkProgramWithVectorProgramInput(void)
#endif
}

/****************************************************************************
* Tests for cl::khr::CommandBuffer
****************************************************************************/
#if defined(cl_khr_command_buffer)
void testMoveAssignCommandBufferNonNull(void);
void testMoveAssignCommandBufferNull(void);
void testMoveConstructCommandBufferNonNull(void);
void testMoveConstructCommandBufferNull(void);
namespace cl {
namespace khr {
MAKE_MOVE_TESTS(CommandBuffer, make_command_buffer_khr,
clReleaseCommandBufferKHR, commandBufferKhrPool)
} // namespace khr
} // namespace cl
#else
void testMoveAssignCommandBufferNonNull(void) {}
void testMoveAssignCommandBufferNull(void) {}
void testMoveConstructCommandBufferNonNull(void) {}
void testMoveConstructCommandBufferNull(void) {}
#endif

// Stub for clGetCommandBufferInfoKHR that returns 1
static cl_int clGetCommandBufferInfoKHR_testCommandBufferKhrGetNumQueues(
cl_command_buffer_khr command_buffer, cl_command_buffer_info_khr param_name,
size_t param_value_size, void *param_value, size_t *param_value_size_ret,
int /*num_calls*/) {
TEST_ASSERT_EQUAL_PTR(make_command_buffer_khr(0), command_buffer);
TEST_ASSERT_EQUAL_HEX(CL_COMMAND_BUFFER_NUM_QUEUES_KHR, param_name);
TEST_ASSERT(param_value == nullptr || param_value_size >= sizeof(cl_uint));
if (param_value_size_ret != nullptr)
*param_value_size_ret = sizeof(cl_uint);
if (param_value != nullptr)
*static_cast<cl_uint *>(param_value) = 1;
return CL_SUCCESS;
}

void testCommandBufferInfoKHRNumQueues(void) {
#if defined(cl_khr_command_buffer)
cl_uint expected = 1;

clGetCommandBufferInfoKHR_StubWithCallback(
clGetCommandBufferInfoKHR_testCommandBufferKhrGetNumQueues);

cl_uint num =
commandBufferKhrPool[0].getInfo<CL_COMMAND_BUFFER_NUM_QUEUES_KHR>();
TEST_ASSERT_EQUAL_HEX(expected, num);
#endif
}

// Stub for clGetCommandBufferInfoKHR that returns command queues array
static cl_int clGetCommandBufferInfoKHR_testCommandBufferKhrGetCommandQueues(
cl_command_buffer_khr command_buffer, cl_command_buffer_info_khr param_name,
size_t param_value_size, void *param_value, size_t *param_value_size_ret,
int /*num_calls*/) {
TEST_ASSERT_EQUAL_PTR(make_command_buffer_khr(0), command_buffer);
TEST_ASSERT_EQUAL_HEX(CL_COMMAND_BUFFER_QUEUES_KHR, param_name);
TEST_ASSERT(param_value == nullptr ||
param_value_size >= 3 * sizeof(cl_command_queue));
if (param_value_size_ret != nullptr)
*param_value_size_ret = 3 * sizeof(cl_command_queue);
if (param_value != nullptr) {
cl_command_queue *command_queues =
static_cast<cl_command_queue *>(param_value);
command_queues[0] = make_command_queue(0);
command_queues[1] = make_command_queue(1);
command_queues[2] = make_command_queue(2);
}
return CL_SUCCESS;
}

void testCommandBufferInfoKHRCommandQueues(void) {
#if defined(cl_khr_command_buffer)
// creat expected values for refcounter
VECTOR_CLASS<cl_command_queue> expected_queue_vec;
std::array<int, 3> refcount;
for (int i = 0; i < 3; i++) {
expected_queue_vec.push_back(commandQueuePool[i]());
refcount[i] = 1;
}

clGetCommandBufferInfoKHR_StubWithCallback(
clGetCommandBufferInfoKHR_testCommandBufferKhrGetCommandQueues);
prepare_commandQueueRefcounts(expected_queue_vec.size(),
expected_queue_vec.data(), refcount.data());

VECTOR_CLASS<cl::CommandQueue> command_queues =
commandBufferKhrPool[0].getInfo<CL_COMMAND_BUFFER_QUEUES_KHR>();
TEST_ASSERT_EQUAL(3, command_queues.size());
TEST_ASSERT_EQUAL_PTR(make_command_queue(0), command_queues[0]());
TEST_ASSERT_EQUAL_PTR(make_command_queue(1), command_queues[1]());
TEST_ASSERT_EQUAL_PTR(make_command_queue(2), command_queues[2]());
#endif
}

// Tests for Device::GetInfo
static cl_int clGetInfo_testDeviceGetInfoCLDeviceVendorId(
cl_device_id device, cl_device_info param_name, size_t param_value_size,
Expand Down Expand Up @@ -3540,7 +3640,9 @@ void testMoveAssignSemaphoreNonNull(void);
void testMoveAssignSemaphoreNull(void);
void testMoveConstructSemaphoreNonNull(void);
void testMoveConstructSemaphoreNull(void);
namespace cl{
MAKE_MOVE_TESTS(Semaphore, make_semaphore_khr, clReleaseSemaphoreKHR, semaphorePool);
}
#else
void testMoveAssignSemaphoreNonNull(void) {}
void testMoveAssignSemaphoreNull(void) {}
Expand Down Expand Up @@ -4292,127 +4394,5 @@ void testTemplateGetImageRequirementsInfo()
void testTemplateGetImageRequirementsInfo() {}
#endif // cl_ext_image_requirements_info

/****************************************************************************
* Tests for cl::khr::CommandBuffer
* Please put above any tests of functionalities defined in cl namespace.
* Some macros where redifined with cl::khr namespace.
****************************************************************************/
#if defined(cl_khr_command_buffer)
void testMoveAssignCommandBufferNonNull(void);
void testMoveAssignCommandBufferNull(void);
void testMoveConstructCommandBufferNonNull(void);
void testMoveConstructCommandBufferNull(void);
#ifdef MAKE_MOVE_TESTS2
#undef MAKE_MOVE_TESTS2
#endif
#define MAKE_MOVE_TESTS2(prefix, type, makeFunc, releaseFunc, pool) \
void prefix##MoveAssign##type##NonNull(void) { \
releaseFunc##_ExpectAndReturn(makeFunc(0), CL_SUCCESS); \
pool[0] = std::move(pool[1]); \
TEST_ASSERT_EQUAL_PTR(makeFunc(1), pool[0]()); \
TEST_ASSERT_NULL(pool[1]()); \
} \
\
void prefix##MoveAssign##type##Null(void) { \
pool[0]() = nullptr; \
pool[0] = std::move(pool[1]); \
TEST_ASSERT_EQUAL_PTR(makeFunc(1), pool[0]()); \
TEST_ASSERT_NULL(pool[1]()); \
} \
\
void prefix##MoveConstruct##type##NonNull(void) { \
cl::khr::type tmp(std::move(pool[0])); \
TEST_ASSERT_EQUAL_PTR(makeFunc(0), tmp()); \
TEST_ASSERT_NULL(pool[0]()); \
tmp() = nullptr; \
} \
\
void prefix##MoveConstruct##type##Null(void) { \
cl::khr::type empty; \
cl::khr::type tmp(std::move(empty)); \
TEST_ASSERT_NULL(tmp()); \
TEST_ASSERT_NULL(empty()); \
}
MAKE_MOVE_TESTS(CommandBuffer, make_command_buffer_khr,
clReleaseCommandBufferKHR, commandBufferKhrPool)
#else
void testMoveAssignCommandBufferNonNull(void) {}
void testMoveAssignCommandBufferNull(void) {}
void testMoveConstructCommandBufferNonNull(void) {}
void testMoveConstructCommandBufferNull(void) {}
#endif

// Stub for clGetCommandBufferInfoKHR that returns 1
static cl_int clGetCommandBufferInfoKHR_testCommandBufferKhrGetNumQueues(
cl_command_buffer_khr command_buffer, cl_command_buffer_info_khr param_name,
size_t param_value_size, void *param_value, size_t *param_value_size_ret,
int /*num_calls*/) {
TEST_ASSERT_EQUAL_PTR(make_command_buffer_khr(0), command_buffer);
TEST_ASSERT_EQUAL_HEX(CL_COMMAND_BUFFER_NUM_QUEUES_KHR, param_name);
TEST_ASSERT(param_value == nullptr || param_value_size >= sizeof(cl_uint));
if (param_value_size_ret != nullptr)
*param_value_size_ret = sizeof(cl_uint);
if (param_value != nullptr)
*static_cast<cl_uint *>(param_value) = 1;
return CL_SUCCESS;
}

void testCommandBufferInfoKHRNumQueues(void) {
#if defined(cl_khr_command_buffer)
cl_uint expected = 1;

clGetCommandBufferInfoKHR_StubWithCallback(
clGetCommandBufferInfoKHR_testCommandBufferKhrGetNumQueues);

cl_uint num =
commandBufferKhrPool[0].getInfo<CL_COMMAND_BUFFER_NUM_QUEUES_KHR>();
TEST_ASSERT_EQUAL_HEX(expected, num);
#endif
}

// Stub for clGetCommandBufferInfoKHR that returns command queues array
static cl_int clGetCommandBufferInfoKHR_testCommandBufferKhrGetCommandQueues(
cl_command_buffer_khr command_buffer, cl_command_buffer_info_khr param_name,
size_t param_value_size, void *param_value, size_t *param_value_size_ret,
int /*num_calls*/) {
TEST_ASSERT_EQUAL_PTR(make_command_buffer_khr(0), command_buffer);
TEST_ASSERT_EQUAL_HEX(CL_COMMAND_BUFFER_QUEUES_KHR, param_name);
TEST_ASSERT(param_value == nullptr ||
param_value_size >= 3 * sizeof(cl_command_queue));
if (param_value_size_ret != nullptr)
*param_value_size_ret = 3 * sizeof(cl_command_queue);
if (param_value != nullptr) {
cl_command_queue *command_queues =
static_cast<cl_command_queue *>(param_value);
command_queues[0] = make_command_queue(0);
command_queues[1] = make_command_queue(1);
command_queues[2] = make_command_queue(2);
}
return CL_SUCCESS;
}

void testCommandBufferInfoKHRCommandQueues(void) {
#if defined(cl_khr_command_buffer)
// creat expected values for refcounter
VECTOR_CLASS<cl_command_queue> expected_queue_vec;
std::array<int, 3> refcount;
for (int i = 0; i < 3; i++) {
expected_queue_vec.push_back(commandQueuePool[i]());
refcount[i] = 1;
}

clGetCommandBufferInfoKHR_StubWithCallback(
clGetCommandBufferInfoKHR_testCommandBufferKhrGetCommandQueues);
prepare_commandQueueRefcounts(expected_queue_vec.size(),
expected_queue_vec.data(), refcount.data());

VECTOR_CLASS<cl::CommandQueue> command_queues =
commandBufferKhrPool[0].getInfo<CL_COMMAND_BUFFER_QUEUES_KHR>();
TEST_ASSERT_EQUAL(3, command_queues.size());
TEST_ASSERT_EQUAL_PTR(make_command_queue(0), command_queues[0]());
TEST_ASSERT_EQUAL_PTR(make_command_queue(1), command_queues[1]());
TEST_ASSERT_EQUAL_PTR(make_command_queue(2), command_queues[2]());
#endif
}

} // extern "C"

0 comments on commit 5692dd9

Please sign in to comment.