mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-22 07:09:03 +00:00
Synchronise with Khronos-private Gitlab branch
The maintenance of the conformance tests is moving to Github. This commit contains all the changes that have been done in Gitlab since the first public release of the conformance tests. Signed-off-by: Kevin Petit kevin.petit@arm.com
This commit is contained in:
@@ -86,9 +86,8 @@ int test_async_build_pieces(cl_device_id deviceID, cl_context context, cl_comman
|
||||
return -1;
|
||||
}
|
||||
|
||||
clReleaseProgram( program );
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -172,7 +172,8 @@ int test_load_two_kernel_source(cl_device_id deviceID, cl_context context, cl_co
|
||||
/* Should probably check binary here to verify the same results... */
|
||||
|
||||
/* All done! */
|
||||
clReleaseProgram( program );
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -198,7 +199,8 @@ int test_load_null_terminated_source(cl_device_id deviceID, cl_context context,
|
||||
/* Should probably check binary here to verify the same results... */
|
||||
|
||||
/* All done! */
|
||||
clReleaseProgram( program );
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -224,7 +226,8 @@ int test_load_null_terminated_multi_line_source(cl_device_id deviceID, cl_contex
|
||||
/* Should probably check binary here to verify the same results... */
|
||||
|
||||
/* All done! */
|
||||
clReleaseProgram( program );
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -262,7 +265,8 @@ int test_load_discreet_length_source(cl_device_id deviceID, cl_context context,
|
||||
/* Should probably check binary here to verify the same results... */
|
||||
|
||||
/* All done! */
|
||||
clReleaseProgram( program );
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -297,7 +301,8 @@ int test_load_null_terminated_partial_multi_line_source(cl_device_id deviceID, c
|
||||
/* Should probably check binary here to verify the same results... */
|
||||
|
||||
/* All done! */
|
||||
clReleaseProgram( program );
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -393,7 +398,9 @@ int test_get_program_info(cl_device_id deviceID, cl_context context, cl_command_
|
||||
return -1;
|
||||
}
|
||||
|
||||
clReleaseProgram( program );
|
||||
/* All done! */
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -445,8 +452,10 @@ int test_get_program_source(cl_device_id deviceID, cl_context context, cl_comman
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* if we got here, everything passed */
|
||||
clReleaseProgram( program );
|
||||
/* All done! */
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -493,26 +502,25 @@ int test_get_program_build_info(cl_device_id deviceID, cl_context context, cl_co
|
||||
error = clGetProgramBuildInfo( program, deviceID, CL_PROGRAM_BUILD_LOG, 0, NULL, &length );
|
||||
test_error( error, "Unable to get program build log length" );
|
||||
|
||||
log_info("Build log is %ld long.\n", length);
|
||||
log_info("Build log is %ld long.\n", length);
|
||||
|
||||
buffer = (char*)malloc(length);
|
||||
buffer = (char*)malloc(length);
|
||||
|
||||
/* Try normal source */
|
||||
error = clGetProgramBuildInfo( program, deviceID, CL_PROGRAM_BUILD_LOG, length, buffer, NULL );
|
||||
test_error( error, "Unable to get program build log" );
|
||||
|
||||
if( buffer[length-1] != '\0' )
|
||||
{
|
||||
if( buffer[length-1] != '\0' )
|
||||
{
|
||||
log_error( "clGetProgramBuildInfo overwrote allocated space for build log! '%c'\n", buffer[length-1] );
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Try both at once */
|
||||
error = clGetProgramBuildInfo( program, deviceID, CL_PROGRAM_BUILD_LOG, length, buffer, &newLength );
|
||||
test_error( error, "Unable to get program build log" );
|
||||
|
||||
free(buffer);
|
||||
|
||||
free(buffer);
|
||||
|
||||
/***** Build options *****/
|
||||
error = clGetProgramBuildInfo( program, deviceID, CL_PROGRAM_BUILD_OPTIONS, 0, NULL, &length );
|
||||
@@ -530,8 +538,10 @@ int test_get_program_build_info(cl_device_id deviceID, cl_context context, cl_co
|
||||
|
||||
free(buffer);
|
||||
|
||||
/* Try with a valid option */
|
||||
clReleaseProgram( program );
|
||||
/* Try with a valid option */
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
program = clCreateProgramWithSource( context, 1, sample_kernel_code_single_line, NULL, &error );
|
||||
if( program == NULL )
|
||||
{
|
||||
@@ -546,10 +556,10 @@ int test_get_program_build_info(cl_device_id deviceID, cl_context context, cl_co
|
||||
return -1;
|
||||
}
|
||||
|
||||
error = clGetProgramBuildInfo( program, deviceID, CL_PROGRAM_BUILD_OPTIONS, NULL, NULL, &length );
|
||||
error = clGetProgramBuildInfo( program, deviceID, CL_PROGRAM_BUILD_OPTIONS, NULL, NULL, &length );
|
||||
test_error( error, "Unable to get program build options" );
|
||||
|
||||
buffer = (char*)malloc(length);
|
||||
buffer = (char*)malloc(length);
|
||||
|
||||
error = clGetProgramBuildInfo( program, deviceID, CL_PROGRAM_BUILD_OPTIONS, length, buffer, NULL );
|
||||
test_error( error, "Unable to get program build options" );
|
||||
@@ -559,13 +569,11 @@ int test_get_program_build_info(cl_device_id deviceID, cl_context context, cl_co
|
||||
return -1;
|
||||
}
|
||||
|
||||
free(buffer);
|
||||
/* All done */
|
||||
free( buffer );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
/* if we got here, everything passed */
|
||||
clReleaseProgram( program );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -558,6 +558,9 @@ int test_large_multiple_embedded_headers(cl_context context, cl_device_id device
|
||||
free( simple_kernels );
|
||||
free( headers );
|
||||
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseProgram( my_newly_minted_library );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -728,6 +731,9 @@ int test_large_multiple_libraries(cl_context context, cl_device_id deviceID, cl_
|
||||
}
|
||||
free( simple_kernels );
|
||||
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseProgram( my_newly_linked_program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -895,6 +901,9 @@ int test_large_multiple_files_multiple_libraries(cl_context context, cl_device_i
|
||||
}
|
||||
free( simple_kernels );
|
||||
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseProgram( my_newly_linked_program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -1032,6 +1041,9 @@ int test_large_multiple_files(cl_context context, cl_device_id deviceID, cl_comm
|
||||
}
|
||||
free( lines );
|
||||
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseProgram( my_newly_linked_program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -1311,6 +1323,9 @@ int test_simple_embedded_header_compile(cl_device_id deviceID, cl_context contex
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
error = clReleaseProgram( header );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1517,6 +1532,9 @@ int test_simple_embedded_header_link(cl_device_id deviceID, cl_context context,
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
error = clReleaseProgram( header );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
error = clReleaseProgram( simple_program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -1571,7 +1589,7 @@ int test_simple_link_with_callback(cl_device_id deviceID, cl_context context, cl
|
||||
|
||||
simple_user_data simple_link_user_data = {when_i_pondered_weak_and_weary, link_program_completion_event};
|
||||
|
||||
clLinkProgram(context, 1, &deviceID, NULL, 1, &program, simple_link_callback, (void*)&simple_link_user_data, &error);
|
||||
cl_program my_linked_library = clLinkProgram(context, 1, &deviceID, NULL, 1, &program, simple_link_callback, (void*)&simple_link_user_data, &error);
|
||||
test_error( error, "Unable to link a simple program" );
|
||||
|
||||
error = clWaitForEvents(1, &link_program_completion_event);
|
||||
@@ -1584,6 +1602,9 @@ int test_simple_link_with_callback(cl_device_id deviceID, cl_context context, cl
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
error = clReleaseProgram( my_linked_library );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1738,6 +1759,9 @@ int test_execute_after_simple_compile_and_link(cl_device_id deviceID, cl_context
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -1774,6 +1798,9 @@ int test_execute_after_simple_compile_and_link_no_device_info(cl_device_id devic
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -1810,6 +1837,9 @@ int test_execute_after_simple_compile_and_link_with_defines(cl_device_id deviceI
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -1887,6 +1917,9 @@ int test_execute_after_serialize_reload_object(cl_device_id deviceID, cl_context
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -1991,6 +2024,12 @@ int test_execute_after_serialize_reload_library(cl_device_id deviceID, cl_contex
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseKernel( another_kernel );
|
||||
test_error( error, "Unable to release another kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -2065,7 +2104,8 @@ int test_execute_after_simple_compile_and_link_with_callbacks(cl_device_id devic
|
||||
error = clWaitForEvents(1, &compile_program_completion_event);
|
||||
test_error( error, "clWaitForEvents failed when waiting on compile_program_completion_event");
|
||||
|
||||
clReleaseEvent(compile_program_completion_event);
|
||||
error = clReleaseEvent(compile_program_completion_event);
|
||||
test_error( error, "Unable to release event object" );
|
||||
|
||||
link_program_completion_event = clCreateUserEvent(context, &error);
|
||||
test_error( error, "Unable to create a user event");
|
||||
@@ -2077,7 +2117,8 @@ int test_execute_after_simple_compile_and_link_with_callbacks(cl_device_id devic
|
||||
error = clWaitForEvents(1, &link_program_completion_event);
|
||||
test_error( error, "clWaitForEvents failed when waiting on link_program_completion_event");
|
||||
|
||||
clReleaseEvent(link_program_completion_event);
|
||||
error = clReleaseEvent(link_program_completion_event);
|
||||
test_error( error, "Unable to release event object" );
|
||||
|
||||
cl_kernel kernel = clCreateKernel(my_newly_linked_program, "CopyBuffer", &error);
|
||||
test_error( error, "Unable to create a simple kernel" );
|
||||
@@ -2087,6 +2128,9 @@ int test_execute_after_simple_compile_and_link_with_callbacks(cl_device_id devic
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -2264,6 +2308,12 @@ int test_execute_after_simple_library_with_link(cl_device_id deviceID, cl_contex
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseKernel( another_kernel );
|
||||
test_error( error, "Unable to release another kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -2368,6 +2418,12 @@ int test_execute_after_two_file_link(cl_device_id deviceID, cl_context context,
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseKernel( another_kernel );
|
||||
test_error( error, "Unable to release another kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -2433,9 +2489,18 @@ int test_execute_after_embedded_header_link(cl_device_id deviceID, cl_context co
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseKernel( another_kernel );
|
||||
test_error( error, "Unable to release another kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
error = clReleaseProgram( header );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
error = clReleaseProgram( simple_program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -2563,6 +2628,12 @@ int test_execute_after_included_header_link(cl_device_id deviceID, cl_context co
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseKernel( another_kernel );
|
||||
test_error( error, "Unable to release another kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -2803,6 +2874,12 @@ int test_program_binary_type(cl_device_id deviceID, cl_context context, cl_comma
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseKernel( another_kernel );
|
||||
test_error( error, "Unable to release another kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
@@ -3107,6 +3184,9 @@ int test_large_compile_and_link_status_options_log(cl_context context, cl_device
|
||||
return error;
|
||||
|
||||
/* All done! */
|
||||
error = clReleaseKernel( kernel );
|
||||
test_error( error, "Unable to release kernel object" );
|
||||
|
||||
error = clReleaseProgram( program );
|
||||
test_error( error, "Unable to release program object" );
|
||||
|
||||
|
||||
@@ -55,6 +55,8 @@ const char *known_extensions[] = {
|
||||
"cl_khr_egl_event",
|
||||
"cl_khr_throttle_hints",
|
||||
"cl_khr_priority_hints",
|
||||
"cl_khr_create_command_queue",
|
||||
"cl_khr_il_program",
|
||||
};
|
||||
|
||||
size_t num_known_extensions = sizeof(known_extensions)/sizeof(char*);
|
||||
@@ -413,6 +415,10 @@ int test_compiler_defines_for_extensions(cl_device_id device, cl_context context
|
||||
free(extensions_supported[i]);
|
||||
}
|
||||
free(extensions);
|
||||
if( defines ) {
|
||||
error = clReleaseMemObject( defines );
|
||||
test_error( error, "Unable to release memory object" );
|
||||
}
|
||||
|
||||
if (total_errors)
|
||||
return -1;
|
||||
|
||||
@@ -89,7 +89,13 @@ int test_image_macro(cl_device_id deviceID, cl_context context, cl_command_queue
|
||||
log_info("CL_DEVICE_IMAGE_SUPPORT not set, __IMAGE_SUPPORT__ macro not set \n");
|
||||
}
|
||||
|
||||
clReleaseProgram( program );
|
||||
status = clReleaseProgram( program );
|
||||
if( status )
|
||||
{
|
||||
log_error ("Unable to release program object, [%d] \n", status );
|
||||
return status;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user