diff options
author | Brad King <brad.king@kitware.com> | 2020-05-01 12:28:12 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2020-05-01 12:28:50 (GMT) |
commit | 8228246d9b89b97456f15188536afe822593bc63 (patch) | |
tree | 7b45e01627b564a289bf64ed6d7f3a1a0ecf1e8b /Tests | |
parent | 68a59ab2887f220a22c194b930c28d5498a7fd8d (diff) | |
parent | 40ca6ef12536300b1ea5e06dea4d98833f4e267d (diff) | |
download | CMake-8228246d9b89b97456f15188536afe822593bc63.zip CMake-8228246d9b89b97456f15188536afe822593bc63.tar.gz CMake-8228246d9b89b97456f15188536afe822593bc63.tar.bz2 |
Merge topic 'CTestCoverageCollectGCOV-compress-opts'
40ca6ef125 CTestCoverageCollectGCOV: Add TARBALL_COMPRESSION option
81e83510a0 Tests: Fix re-running CTestCoverageCollectGCOV on in-source build
ab7eda2591 Tests: Remove unnecessary pass regex on CTestCoverageCollectGCOV
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4649
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CMakeLists.txt | 3 | ||||
-rw-r--r-- | Tests/CTestCoverageCollectGCOV/test.cmake.in | 146 |
2 files changed, 136 insertions, 13 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index f44a209..3e16ab6 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -2695,9 +2695,6 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH -S "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake" -VV --output-log "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/testOut.log" ) - set_tests_properties(CTestCoverageCollectGCOV PROPERTIES - PASS_REGULAR_EXPRESSION - "PASSED with correct output.*Testing/CoverageInfo/main.cpp.gcov") set_property(TEST CTestCoverageCollectGCOV PROPERTY ENVIRONMENT CTEST_PARALLEL_LEVEL=) configure_file( diff --git a/Tests/CTestCoverageCollectGCOV/test.cmake.in b/Tests/CTestCoverageCollectGCOV/test.cmake.in index 2c98876..1818888 100644 --- a/Tests/CTestCoverageCollectGCOV/test.cmake.in +++ b/Tests/CTestCoverageCollectGCOV/test.cmake.in @@ -3,13 +3,15 @@ set(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestCoverageCollectGCOV/Te set(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestCoverageCollectGCOV/TestProject") set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@") -ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY}) - ctest_start(Experimental) ctest_configure() ctest_build() ctest_test() +#------------------------------------------------------------------------------# +# Common setup for all tests. +#------------------------------------------------------------------------------# + list(APPEND CTEST_CUSTOM_COVERAGE_EXCLUDE "/foo/something" "/3rdparty/" @@ -17,15 +19,118 @@ list(APPEND CTEST_CUSTOM_COVERAGE_EXCLUDE "/CMakeFiles/" ) list(APPEND CTEST_EXTRA_COVERAGE_GLOB "*.cpp") - include(CTestCoverageCollectGCOV) +set(expected_out + CMakeFiles/myexecutable.dir/Labels.json + Testing/CoverageInfo/data.json + Testing/CoverageInfo/extra.cpp.gcov + Testing/CoverageInfo/main.cpp.gcov + uncovered/extra/uncovered1.cpp + uncovered/uncovered2.cpp +) + +#------------------------------------------------------------------------------# +# Test 1: with standard arguments +#------------------------------------------------------------------------------# + +set(tar_file ${CTEST_BINARY_DIRECTORY}/gcov.tbz) +ctest_coverage_collect_gcov( + TARBALL "${tar_file}" + SOURCE "${CTEST_SOURCE_DIRECTORY}" + BUILD "${CTEST_BINARY_DIRECTORY}" + GCOV_COMMAND "${CMAKE_COMMAND}" + GCOV_OPTIONS -P "@CMake_SOURCE_DIR@/Tests/CTestCoverageCollectGCOV/fakegcov.cmake") +file(REMOVE_RECURSE "${CTEST_BINARY_DIRECTORY}/uncovered") + +execute_process(COMMAND + ${CMAKE_COMMAND} -E tar tf ${tar_file} + OUTPUT_VARIABLE out + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +string(REPLACE "\n" ";" out "${out}") +list(SORT out) + +if("${out}" STREQUAL "${expected_out}") + message("PASSED with correct output: ${out}") +else() + message(FATAL_ERROR "FAILED: expected:\n${expected_out}\nGot:\n${out}") +endif() + +#------------------------------------------------------------------------------# +# Test 2: with optional argument: TARBALL_COMPRESSION "GZIP" +#------------------------------------------------------------------------------# + +set(tar_file ${CTEST_BINARY_DIRECTORY}/gcov.tgz) +ctest_coverage_collect_gcov( + TARBALL "${tar_file}" + TARBALL_COMPRESSION "GZIP" + SOURCE "${CTEST_SOURCE_DIRECTORY}" + BUILD "${CTEST_BINARY_DIRECTORY}" + GCOV_COMMAND "${CMAKE_COMMAND}" + GCOV_OPTIONS -P "@CMake_SOURCE_DIR@/Tests/CTestCoverageCollectGCOV/fakegcov.cmake") +file(REMOVE_RECURSE "${CTEST_BINARY_DIRECTORY}/uncovered") + +execute_process(COMMAND + ${CMAKE_COMMAND} -E tar tf ${tar_file} + OUTPUT_VARIABLE out + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +string(REPLACE "\n" ";" out "${out}") +list(SORT out) + +if("${out}" STREQUAL "${expected_out}") + message("PASSED with correct output: ${out}") +else() + message(FATAL_ERROR "FAILED: expected:\n${expected_out}\nGot:\n${out}") +endif() + +#------------------------------------------------------------------------------# +# Test 3: with optional argument: TARBALL_COMPRESSION "FROM_EXT" +#------------------------------------------------------------------------------# + +set(tar_file ${CTEST_BINARY_DIRECTORY}/gcov.txz) +ctest_coverage_collect_gcov( + TARBALL "${tar_file}" + TARBALL_COMPRESSION "FROM_EXT" + SOURCE "${CTEST_SOURCE_DIRECTORY}" + BUILD "${CTEST_BINARY_DIRECTORY}" + GCOV_COMMAND "${CMAKE_COMMAND}" + GCOV_OPTIONS -P "@CMake_SOURCE_DIR@/Tests/CTestCoverageCollectGCOV/fakegcov.cmake") +file(REMOVE_RECURSE "${CTEST_BINARY_DIRECTORY}/uncovered") + +execute_process(COMMAND + ${CMAKE_COMMAND} -E tar tf ${tar_file} + OUTPUT_VARIABLE out + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +string(REPLACE "\n" ";" out "${out}") +list(SORT out) + +if("${out}" STREQUAL "${expected_out}") + message("PASSED with correct output: ${out}") +else() + message(FATAL_ERROR "FAILED: expected:\n${expected_out}\nGot:\n${out}") +endif() + +#------------------------------------------------------------------------------# +# Test 4: with optional argument: TARBALL_COMPRESSION "FALSE" +#------------------------------------------------------------------------------# + set(tar_file ${CTEST_BINARY_DIRECTORY}/gcov.tar) ctest_coverage_collect_gcov( TARBALL "${tar_file}" + TARBALL_COMPRESSION "FALSE" SOURCE "${CTEST_SOURCE_DIRECTORY}" BUILD "${CTEST_BINARY_DIRECTORY}" GCOV_COMMAND "${CMAKE_COMMAND}" GCOV_OPTIONS -P "@CMake_SOURCE_DIR@/Tests/CTestCoverageCollectGCOV/fakegcov.cmake") +file(REMOVE_RECURSE "${CTEST_BINARY_DIRECTORY}/uncovered") execute_process(COMMAND ${CMAKE_COMMAND} -E tar tf ${tar_file} @@ -37,15 +142,36 @@ execute_process(COMMAND string(REPLACE "\n" ";" out "${out}") list(SORT out) -set(expected_out - CMakeFiles/myexecutable.dir/Labels.json - Testing/CoverageInfo/data.json - Testing/CoverageInfo/extra.cpp.gcov - Testing/CoverageInfo/main.cpp.gcov - uncovered/extra/uncovered1.cpp - uncovered/uncovered2.cpp +if("${out}" STREQUAL "${expected_out}") + message("PASSED with correct output: ${out}") +else() + message(FATAL_ERROR "FAILED: expected:\n${expected_out}\nGot:\n${out}") +endif() + +#------------------------------------------------------------------------------# +# Test 5: with optional argument: TARBALL_COMPRESSION "ZSTD" +#------------------------------------------------------------------------------# + +set(tar_file ${CTEST_BINARY_DIRECTORY}/gcov.zstd) +ctest_coverage_collect_gcov( + TARBALL "${tar_file}" + TARBALL_COMPRESSION "ZSTD" + SOURCE "${CTEST_SOURCE_DIRECTORY}" + BUILD "${CTEST_BINARY_DIRECTORY}" + GCOV_COMMAND "${CMAKE_COMMAND}" + GCOV_OPTIONS -P "@CMake_SOURCE_DIR@/Tests/CTestCoverageCollectGCOV/fakegcov.cmake") +file(REMOVE_RECURSE "${CTEST_BINARY_DIRECTORY}/uncovered") + +execute_process(COMMAND + ${CMAKE_COMMAND} -E tar tf ${tar_file} + OUTPUT_VARIABLE out + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + OUTPUT_STRIP_TRAILING_WHITESPACE ) +string(REPLACE "\n" ";" out "${out}") +list(SORT out) + if("${out}" STREQUAL "${expected_out}") message("PASSED with correct output: ${out}") else() |