diff --git a/CMakeLists.txt b/CMakeLists.txt index a8f5f2ad96..f25c8c14ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,6 +54,7 @@ set(UR_SYCL_LIBRARY_DIR "" CACHE PATH set(UR_CONFORMANCE_TARGET_TRIPLES "" CACHE STRING "List of sycl targets to build CTS device binaries for") set(UR_CONFORMANCE_AMD_ARCH "" CACHE STRING "AMD device target ID to build CTS binaries for") +option(UR_CONFORMANCE_ENABLE_MATCH_FILES "Enable CTS match files" ON) set(UR_ADAPTER_LEVEL_ZERO_SOURCE_DIR "" CACHE PATH "Path to external 'level_zero' adapter source dir") set(UR_ADAPTER_OPENCL_SOURCE_DIR "" CACHE PATH diff --git a/README.md b/README.md index b1c6420420..db5292a9c3 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,7 @@ List of options provided by CMake: | UR_ENABLE_SANITIZER | Enable device sanitizer layer | ON/OFF | ON | | UR_CONFORMANCE_TARGET_TRIPLES | SYCL triples to build CTS device binaries for | Comma-separated list | spir64 | | UR_CONFORMANCE_AMD_ARCH | AMD device target ID to build CTS binaries for | string | `""` | +| UR_CONFORMANCE_ENABLE_MATCH_FILES | Enable CTS match files | ON/OFF | ON | | UR_BUILD_ADAPTER_L0 | Build the Level-Zero adapter | ON/OFF | OFF | | UR_BUILD_ADAPTER_OPENCL | Build the OpenCL adapter | ON/OFF | OFF | | UR_BUILD_ADAPTER_CUDA | Build the CUDA adapter | ON/OFF | OFF | diff --git a/scripts/ctest_parser.py b/scripts/ctest_parser.py index bd1a84f3ee..5074a5c9b9 100755 --- a/scripts/ctest_parser.py +++ b/scripts/ctest_parser.py @@ -24,7 +24,7 @@ def get_cts_test_suite_names(working_directory): ] def percent(amount, total): - return round((amount / total) * 100, 2) + return round((amount / (total or 1)) * 100, 2) def summarize_results(results): total = results['Total'] diff --git a/test/conformance/CMakeLists.txt b/test/conformance/CMakeLists.txt index 14875a117a..a11cc82932 100644 --- a/test/conformance/CMakeLists.txt +++ b/test/conformance/CMakeLists.txt @@ -9,23 +9,35 @@ function(add_test_adapter name adapter) set(TEST_TARGET_NAME test-${name}) set(TEST_NAME ${name}-${adapter}) - add_test(NAME ${TEST_NAME} - COMMAND ${CMAKE_COMMAND} - -D TEST_FILE=${Python3_EXECUTABLE} - -D TEST_ARGS="${UR_CONFORMANCE_TEST_DIR}/cts_exe.py --test_command ${CMAKE_BINARY_DIR}/bin/${TEST_TARGET_NAME} --test_devices_count=${UR_TEST_DEVICES_COUNT} --test_platforms_count=${UR_TEST_PLATFORMS_COUNT}" - -D MODE=stdout - -D MATCH_FILE=${CMAKE_CURRENT_SOURCE_DIR}/${name}_${adapter}.match - -P ${PROJECT_SOURCE_DIR}/cmake/match.cmake - DEPENDS ${TEST_TARGET_NAME} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + set(TEST_COMMAND + "${PROJECT_BINARY_DIR}/bin/${TEST_TARGET_NAME} --test_devices_count=${UR_TEST_DEVICES_COUNT} --test_platforms_count=${UR_TEST_PLATFORMS_COUNT}" ) - set(testEnv - UR_ADAPTERS_FORCE_LOAD="$" - GTEST_COLOR=no - ) + if(UR_CONFORMANCE_ENABLE_MATCH_FILES) + add_test(NAME ${TEST_NAME} + COMMAND ${CMAKE_COMMAND} + -D TEST_FILE=${Python3_EXECUTABLE} + -D TEST_ARGS="${UR_CONFORMANCE_TEST_DIR}/cts_exe.py --test_command ${TEST_COMMAND}" + -D MODE=stdout + -D MATCH_FILE=${CMAKE_CURRENT_SOURCE_DIR}/${name}_${adapter}.match + -P ${PROJECT_SOURCE_DIR}/cmake/match.cmake + DEPENDS ${TEST_TARGET_NAME} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ) + else() + add_test(NAME ${TEST_NAME} + COMMAND ${TEST_COMMAND} + DEPENDS ${TEST_TARGET_NAME} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ) + endif() + + set(TEST_ENV UR_ADAPTERS_FORCE_LOAD="$") + if(NOT UR_CONFORMANCE_TEST_DIR) + list(APPEND TEST_ENV GTEST_COLOR=no) + endif() set_tests_properties(${TEST_NAME} PROPERTIES - ENVIRONMENT "${testEnv}" + ENVIRONMENT "${TEST_ENV}" LABELS "conformance;${adapter}") endfunction()