Hey,

I have a question about using CMake+CTest+CTest scripts for coverage tests.

If I manually build the project and run "make ExperimantalCoverage" in a
build folder,
the coverage succeeds.
If I run the coverage from within a CTest script,
it fails.

Am I forgetting something?

A minimum example that exhibits my problem can be found at
https://gist.github.com/madebr/07ebd0de59e789cd819643b58db25df9.

This works:
mkdir build && cd build && cmake .. && make && make test && make
ExperimentalCoverage && cd ..
This fails:
ctest -S test.ctest

Source listing:
###################
#CMakeLists.txt:
###################
cmake_minimum_required(VERSION 3.9)
project(cmake_coverage)

file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.c" "int main() {return 0;}")

add_executable(main
    main.c
    )

target_compile_options(main
    PUBLIC
        "-O0"
        "-fprofile-arcs"
        "-ftest-coverage"
    )

target_link_libraries(main
    gcov
    )

include(CTest)
enable_testing()

add_test(NAME test
    COMMAND main
    )

##############
# test.ctest:
##############
set(CTEST_SOURCE_DIRECTORY "${CTEST_SCRIPT_DIRECTORY}")
set(CTEST_BINARY_DIRECTORY "${CTEST_SCRIPT_DIRECTORY}/build/ctest")

ctest_empty_binary_directory("${CTEST_BINARY_DIRECTORY}")

set(CTEST_SITE "${CMAKE_SYSTEM_NAME}")
set(CTEST_BUILD_NAME "experimental build")

set(CTEST_CMAKE_GENERATOR "Ninja")
set(CTEST_COVERAGE_COMMAND "gcov")

ctest_start("Experimental")
ctest_configure()
ctest_build()
ctest_test()
ctest_coverage()

##############
# CTestConfig.cmake:
##############
set(CTEST_PROJECT_NAME "Simple ctest_coverage project")
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to