From fa6b9e671ea9c280f2fac2946806ddd4bc587565 Mon Sep 17 00:00:00 2001 From: boazo Date: Thu, 20 Feb 2020 21:39:40 +0200 Subject: [PATCH] Svm optional (#580) * svm test optional * make svm test suite execution optional --- test_conformance/SVM/main.cpp | 54 ++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/test_conformance/SVM/main.cpp b/test_conformance/SVM/main.cpp index ba48de82..aef43727 100644 --- a/test_conformance/SVM/main.cpp +++ b/test_conformance/SVM/main.cpp @@ -262,26 +262,48 @@ cl_int create_cl_objects(cl_device_id device_from_harness, const char** ppCodeSt } test_definition test_list[] = { - ADD_TEST_VERSION( svm_byte_granularity, Version(2, 0) ), - ADD_TEST_VERSION( svm_set_kernel_exec_info_svm_ptrs, Version(2, 0) ), - ADD_TEST_VERSION( svm_fine_grain_memory_consistency, Version(2, 0) ), - ADD_TEST_VERSION( svm_fine_grain_sync_buffers, Version(2, 0) ), - ADD_TEST_VERSION( svm_shared_address_space_fine_grain, Version(2, 0) ), - ADD_TEST_VERSION( svm_shared_sub_buffers, Version(2, 0) ), - ADD_TEST_VERSION( svm_shared_address_space_fine_grain_buffers, Version(2, 0) ), - ADD_TEST_VERSION( svm_allocate_shared_buffer, Version(2, 0) ), - ADD_TEST_VERSION( svm_shared_address_space_coarse_grain_old_api, Version(2, 0) ), - ADD_TEST_VERSION( svm_shared_address_space_coarse_grain_new_api, Version(2, 0) ), - ADD_TEST_VERSION( svm_cross_buffer_pointers_coarse_grain, Version(2, 0) ), - ADD_TEST_VERSION( svm_pointer_passing, Version(2, 0) ), - ADD_TEST_VERSION( svm_enqueue_api, Version(2, 0) ), + ADD_TEST( svm_byte_granularity), + ADD_TEST( svm_set_kernel_exec_info_svm_ptrs ), + ADD_TEST( svm_fine_grain_memory_consistency ), + ADD_TEST( svm_fine_grain_sync_buffers ), + ADD_TEST( svm_shared_address_space_fine_grain ), + ADD_TEST( svm_shared_sub_buffers ), + ADD_TEST( svm_shared_address_space_fine_grain_buffers ), + ADD_TEST( svm_allocate_shared_buffer ), + ADD_TEST( svm_shared_address_space_coarse_grain_old_api ), + ADD_TEST( svm_shared_address_space_coarse_grain_new_api ), + ADD_TEST( svm_cross_buffer_pointers_coarse_grain ), + ADD_TEST( svm_pointer_passing ), + ADD_TEST( svm_enqueue_api ), ADD_TEST_VERSION( svm_migrate, Version(2, 1)), }; const int test_num = ARRAY_SIZE( test_list ); -int main(int argc, const char *argv[]) -{ - return runTestHarness( argc, argv, test_num, test_list, false, true, 0 ); +test_status InitCL(cl_device_id device) { + auto version = get_device_cl_version(device); + if (version < Version(2, 0)) { + return TEST_SKIP; + } + + int error; + cl_device_svm_capabilities svm_caps; + error = clGetDeviceInfo(device, CL_DEVICE_SVM_CAPABILITIES, + sizeof(svm_caps), &svm_caps, NULL); + if (error != CL_SUCCESS) { + print_error(error, "Unable to get svm capabilities"); + return TEST_FAIL; + } + + if ((svm_caps == 0) && (version > Version(2,2))) { + return TEST_SKIP; + } + + return TEST_PASS; +} + +int main(int argc, const char *argv[]) +{ + return runTestHarnessWithCheck(argc, argv, test_num, test_list, false, true, 0, InitCL); }