Afaik, Ctest should be run in the build directory. From your command it
seems you run it in the source. I'm not surprised it doesn't work.

Edo

On Oct 28, 2017 6:59 AM, "Maarten Anonymous" <anonymous.maar...@gmail.com>
wrote:

> 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
>
-- 

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