CTestCoverageCollectGCOV: Add test case
This commit is contained in:
parent
5c828cc89b
commit
8caa4e72ab
|
@ -2268,6 +2268,18 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
|
|||
set_tests_properties(CTestTestUpload PROPERTIES
|
||||
PASS_REGULAR_EXPRESSION "Upload\\.xml")
|
||||
|
||||
configure_file(
|
||||
"${CMake_SOURCE_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake.in"
|
||||
"${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake"
|
||||
@ONLY ESCAPE_QUOTES)
|
||||
add_test(CTestCoverageCollectGCOV ${CMAKE_CTEST_COMMAND}
|
||||
-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/echoargs.gcov")
|
||||
|
||||
configure_file(
|
||||
"${CMake_SOURCE_DIR}/Tests/CTestTestEmptyBinaryDirectory/test.cmake.in"
|
||||
"${CMake_BINARY_DIR}/Tests/CTestTestEmptyBinaryDirectory/test.cmake"
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
foreach(I RANGE 0 ${CMAKE_ARGC})
|
||||
if("${CMAKE_ARGV${I}}" MATCHES ".*\\.gcda")
|
||||
set(gcda_file "${CMAKE_ARGV${I}}")
|
||||
endif()
|
||||
endforeach()
|
||||
get_filename_component(gcda_file ${gcda_file} NAME_WE)
|
||||
file(WRITE "${CMAKE_SOURCE_DIR}/${gcda_file}.gcov"
|
||||
"fake gcov file")
|
|
@ -0,0 +1,39 @@
|
|||
cmake_minimum_required(VERSION 2.8.12)
|
||||
set(CTEST_PROJECT_NAME "SmallAndFast")
|
||||
set(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestTest/SmallAndFast")
|
||||
set(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestCoverageCollectGCOV")
|
||||
set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
|
||||
ctest_start(Experimental)
|
||||
ctest_configure()
|
||||
ctest_build()
|
||||
ctest_test()
|
||||
|
||||
file(WRITE ${CTEST_BINARY_DIRECTORY}/CMakeFiles/echoargs.dir/echoargs.gcda
|
||||
"dummy
|
||||
")
|
||||
|
||||
include(CTestCoverageCollectGCOV)
|
||||
set(tar_file ${CTEST_BINARY_DIRECTORY}/gcov.tar)
|
||||
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")
|
||||
|
||||
execute_process(COMMAND
|
||||
${CMAKE_COMMAND} -E tar tf ${tar_file}
|
||||
OUTPUT_VARIABLE out
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
|
||||
|
||||
set(expected_out
|
||||
"Testing/CoverageInfo/echoargs.gcov
|
||||
Testing/CoverageInfo/data.json
|
||||
CMakeFiles/echoargs.dir/Labels.json
|
||||
")
|
||||
|
||||
if("${out}" STREQUAL "${expected_out}")
|
||||
message("PASSED with correct output: ${out}")
|
||||
else()
|
||||
message(FATAL_ERROR "FAILED: expected:\n${expected_out}\nGot:\n${out}")
|
||||
endif()
|
Loading…
Reference in New Issue