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:
Kevin Petit
2019-02-20 16:25:19 +00:00
committed by Kévin Petit
parent de6c3db41b
commit 95b040bec2
87 changed files with 1358 additions and 589 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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" );

View File

@@ -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;

View File

@@ -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;
}