From e997d3ff4b1e63e7f8b86ce94bb3acfb8ad632a8 Mon Sep 17 00:00:00 2001 From: Junyan He Date: Wed, 26 Jun 2013 11:34:20 +0800 Subject: Add the test case for clGetProgramInfo API Signed-off-by: Junyan He Reviewed-by: Zhigang Gong --- utests/get_cl_info.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) (limited to 'utests/get_cl_info.cpp') diff --git a/utests/get_cl_info.cpp b/utests/get_cl_info.cpp index 6d5e7bb0..bb310321 100644 --- a/utests/get_cl_info.cpp +++ b/utests/get_cl_info.cpp @@ -154,13 +154,13 @@ Info_Result* cast_as(void *info) } -#define CALL_INFO_AND_RET(TYPE, FUNC, OBJ) \ +#define CALL_INFO_AND_RET(TYPE, FUNC, ...) \ do { \ cl_int ret; \ size_t ret_size; \ \ Info_Result* info = cast_as(x.second); \ - ret = FUNC (OBJ, x.first, \ + ret = FUNC (__VA_ARGS__, x.first, \ info->size, info->get_ret(), &ret_size); \ OCL_ASSERT((!ret)); \ OCL_ASSERT((info->check_result())); \ @@ -317,3 +317,48 @@ void get_queue_info(void) MAKE_UTEST_FROM_FUNCTION(get_queue_info); +/* ***************************************************** * + * clGetProgramBuildInfo * + * ***************************************************** */ +#define CALL_PROG_BUILD_INFO_AND_RET(TYPE) CALL_INFO_AND_RET(TYPE, \ + clGetProgramBuildInfo, program, device) + +void get_program_build_info(void) +{ + map maps; + cl_build_status expect_status; + char build_opt[] = "-emit-llvm"; + char log[] = ""; + int sz; + + OCL_CALL (cl_kernel_init, "compiler_if_else.cl", "compiler_if_else", SOURCE, build_opt); + + /* Do our test.*/ + expect_status = CL_BUILD_SUCCESS; + maps.insert(make_pair(CL_PROGRAM_BUILD_STATUS, + (void *)(new Info_Result(expect_status)))); + sz = strlen(build_opt) + 1; + maps.insert(make_pair(CL_PROGRAM_BUILD_OPTIONS, + (void *)(new Info_Result(build_opt, sz)))); + sz = strlen(log) + 1; + maps.insert(make_pair(CL_PROGRAM_BUILD_LOG, /* not supported now, just "" */ + (void *)(new Info_Result(log, sz)))); + + std::for_each(maps.begin(), maps.end(), [](pair x) { + switch (x.first) { + case CL_PROGRAM_BUILD_STATUS: + CALL_PROG_BUILD_INFO_AND_RET(cl_build_status); + break; + case CL_PROGRAM_BUILD_OPTIONS: + CALL_PROG_BUILD_INFO_AND_RET(char *); + break; + case CL_PROGRAM_BUILD_LOG: + CALL_PROG_BUILD_INFO_AND_RET(char *); + break; + default: + break; + } + }); +} + +MAKE_UTEST_FROM_FUNCTION(get_program_build_info); -- cgit v1.2.1