test.cmake.in 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. cmake_minimum_required(VERSION 2.8.12)
  2. set(CTEST_PROJECT_NAME "TestProject")
  3. set(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestCoverageCollectGCOV/TestProject")
  4. set(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestCoverageCollectGCOV/TestProject")
  5. set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
  6. ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
  7. ctest_start(Experimental)
  8. ctest_configure()
  9. ctest_build()
  10. ctest_test()
  11. list(APPEND CTEST_CUSTOM_COVERAGE_EXCLUDE
  12. "/foo/something"
  13. "/3rdparty/"
  14. "/bar/somethingelse"
  15. "/CMakeFiles/"
  16. )
  17. list(APPEND CTEST_EXTRA_COVERAGE_GLOB "*.cpp")
  18. include(CTestCoverageCollectGCOV)
  19. set(tar_file ${CTEST_BINARY_DIRECTORY}/gcov.tar)
  20. ctest_coverage_collect_gcov(
  21. TARBALL "${tar_file}"
  22. SOURCE "${CTEST_SOURCE_DIRECTORY}"
  23. BUILD "${CTEST_BINARY_DIRECTORY}"
  24. GCOV_COMMAND "${CMAKE_COMMAND}"
  25. GCOV_OPTIONS -P "@CMake_SOURCE_DIR@/Tests/CTestCoverageCollectGCOV/fakegcov.cmake")
  26. execute_process(COMMAND
  27. ${CMAKE_COMMAND} -E tar tf ${tar_file}
  28. OUTPUT_VARIABLE out
  29. WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
  30. OUTPUT_STRIP_TRAILING_WHITESPACE
  31. )
  32. string(REPLACE "\n" ";" out "${out}")
  33. list(SORT out)
  34. set(expected_out
  35. CMakeFiles/myexecutable.dir/Labels.json
  36. Testing/CoverageInfo/data.json
  37. Testing/CoverageInfo/extra.cpp.gcov
  38. Testing/CoverageInfo/main.cpp.gcov
  39. uncovered/extra/uncovered1.cpp
  40. uncovered/uncovered2.cpp
  41. )
  42. if("${out}" STREQUAL "${expected_out}")
  43. message("PASSED with correct output: ${out}")
  44. else()
  45. message(FATAL_ERROR "FAILED: expected:\n${expected_out}\nGot:\n${out}")
  46. endif()