solvespace/test/CMakeLists.txt
whitequark 4f49a8a9d4 Eliminate several memory leaks.
All leaks found with valgrind while running the test suite.
This commit also clears the Cairo cache to improve SNR of Valgrind
output.
2016-08-01 05:39:18 +00:00

57 lines
1.8 KiB
CMake

# test suite
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CAIRO_INCLUDE_DIRS})
set(testsuite_SOURCES
harness.cpp
request/line_segment/test.cpp)
add_executable(solvespace_testsuite
${testsuite_SOURCES})
target_link_libraries(solvespace_testsuite
solvespace_headless
${COVERAGE_LIBRARY})
add_custom_target(solvespace-test ALL
COMMAND $<TARGET_FILE:solvespace_testsuite>
COMMENT "Testing SolveSpace"
VERBATIM)
# coverage reports
if(ENABLE_COVERAGE)
set(LCOV_FLAGS -q --rc lcov_branch_coverage=1 --rc lcov_excl_line=ssassert)
set(LCOV_FLAGS ${LCOV_FLAGS} --gcov-tool ${GCOV})
set(LCOV_COLLECT -c -b ${CMAKE_SOURCE_DIR}/src -d ${CMAKE_BINARY_DIR}/src --no-external)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/coverage_base.info
COMMAND ${LCOV} ${LCOV_FLAGS} ${LCOV_COLLECT}
-o ${CMAKE_BINARY_DIR}/coverage_base.info -i
DEPENDS solvespace_testsuite
COMMENT "Importing baseline coverage data"
VERBATIM)
add_custom_target(solvespace-coverage ALL
COMMAND ${LCOV} ${LCOV_FLAGS} ${LCOV_COLLECT}
-o ${CMAKE_BINARY_DIR}/coverage_test.info
COMMAND ${LCOV} ${LCOV_FLAGS}
-o ${CMAKE_BINARY_DIR}/coverage_full.info
-a ${CMAKE_BINARY_DIR}/coverage_base.info
-a ${CMAKE_BINARY_DIR}/coverage_test.info
COMMAND ${LCOV} ${LCOV_FLAGS} --summary
${CMAKE_BINARY_DIR}/coverage_full.info
COMMAND ${GENHTML} -q --branch-coverage --demangle-cpp --legend
${CMAKE_BINARY_DIR}/coverage_full.info
-o ${CMAKE_BINARY_DIR}/coverage/
-t "SolveSpace testbench"
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/coverage_base.info
DEPENDS solvespace-test
COMMENT "Generating coverage report"
VERBATIM)
endif()