test.cmake.in 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. )
  16. include(CTestCoverageCollectGCOV)
  17. set(tar_file ${CTEST_BINARY_DIRECTORY}/gcov.tar)
  18. ctest_coverage_collect_gcov(
  19. TARBALL "${tar_file}"
  20. SOURCE "${CTEST_SOURCE_DIRECTORY}"
  21. BUILD "${CTEST_BINARY_DIRECTORY}"
  22. GCOV_COMMAND "${CMAKE_COMMAND}"
  23. GCOV_OPTIONS -P "@CMake_SOURCE_DIR@/Tests/CTestCoverageCollectGCOV/fakegcov.cmake")
  24. execute_process(COMMAND
  25. ${CMAKE_COMMAND} -E tar tf ${tar_file}
  26. OUTPUT_VARIABLE out
  27. WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
  28. OUTPUT_STRIP_TRAILING_WHITESPACE
  29. )
  30. string(REPLACE "\n" ";" out "${out}")
  31. list(SORT out)
  32. set(expected_out
  33. CMakeFiles/myexecutable.dir/Labels.json
  34. Testing/CoverageInfo/data.json
  35. Testing/CoverageInfo/extra.cpp.gcov
  36. Testing/CoverageInfo/main.cpp.gcov
  37. )
  38. if("${out}" STREQUAL "${expected_out}")
  39. message("PASSED with correct output: ${out}")
  40. else()
  41. message(FATAL_ERROR "FAILED: expected:\n${expected_out}\nGot:\n${out}")
  42. endif()