diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 06181224928..e1989743740 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -20,6 +20,7 @@ defaults: shell: bash env: + CDASH: ${{ vars.CDASH }} CMAKE_VERBOSE_MAKEFILE: true CTEST_OUTPUT_ON_FAILURE: true diff --git a/CMakeLists.txt b/CMakeLists.txt index 438ff5666e8..c771264ff36 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,13 +41,11 @@ configure_file(src/XrdVersion.hh.in src/XrdVersion.hh) include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR}/src) -add_subdirectory( src ) -add_subdirectory( bindings ) +include(CTest) -if( BUILD_TESTS ) - ENABLE_TESTING() - add_subdirectory( tests ) -endif() +add_subdirectory(src) +add_subdirectory(bindings) +add_subdirectory(tests) add_subdirectory(docs) add_subdirectory(utils) diff --git a/CTestConfig.cmake b/CTestConfig.cmake index a2b1e4739ec..f2ce8e263fe 100644 --- a/CTestConfig.cmake +++ b/CTestConfig.cmake @@ -1,2 +1,4 @@ set(CTEST_PROJECT_NAME "XRootD") set(CTEST_NIGHTLY_START_TIME "00:00:00 UTC") +set(CTEST_DROP_SITE_CDASH TRUE) +set(CTEST_SUBMIT_URL https://my.cdash.org/submit.php?project=XRootD) diff --git a/test.cmake b/test.cmake index 8ef3c471ef1..bc67d5fa9ea 100644 --- a/test.cmake +++ b/test.cmake @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.16) set(ENV{LANG} "C") set(ENV{LC_ALL} "C") +set(CTEST_USE_LAUNCHERS TRUE) macro(section title) if (DEFINED ENV{CI}) @@ -171,6 +172,9 @@ section("Build") ctest_build(RETURN_VALUE BUILD_RESULT) if(NOT ${BUILD_RESULT} EQUAL 0) + if(CDASH OR (DEFINED ENV{CDASH} AND "$ENV{CDASH}")) + ctest_submit() + endif() message(FATAL_ERROR "Build failed") endif() @@ -184,7 +188,7 @@ section("Test") ctest_test(PARALLEL_LEVEL $ENV{CTEST_PARALLEL_LEVEL} RETURN_VALUE TEST_RESULT) if(NOT ${TEST_RESULT} EQUAL 0) - message(FATAL_ERROR "Tests failed") + message(SEND_ERROR "Tests failed") endif() endsection() @@ -196,7 +200,7 @@ if(DEFINED CTEST_COVERAGE_COMMAND) ${GCOVR} -r ${CTEST_SOURCE_DIRECTORY}/src ${CTEST_BINARY_DIRECTORY} --html-details ${CTEST_BINARY_DIRECTORY}/html/ ERROR_VARIABLE ERROR) if(ERROR) - message(FATAL_ERROR "Failed to generate coverage report") + message(SEND_ERROR "Failed to generate coverage report") endif() endif() ctest_coverage() @@ -208,3 +212,7 @@ if(DEFINED CTEST_MEMORYCHECK_COMMAND) ctest_memcheck() endsection() endif() + +if(CDASH OR (DEFINED ENV{CDASH} AND "$ENV{CDASH}")) + ctest_submit() +endif() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d5218f91ddc..070d7bf7dfd 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,3 +1,7 @@ +if(NOT BUILD_TESTS) + return() +endif() + include(GoogleTest) add_subdirectory( XrdCl ) add_subdirectory(XrdHttpTests)