1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR})
foreach(pkg_config_lib CAIRO)
include_directories(${${pkg_config_lib}_INCLUDE_DIRS})
link_directories(${${pkg_config_lib}_LIBRARY_DIRS})
endforeach()
if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")
add_definitions(-DTEST_BUILD_ON_WINDOWS)
endif()
# test suite
set(testsuite_SOURCES
harness.cpp
analysis/contour_area/test.cpp
core/expr/test.cpp
core/locale/test.cpp
core/path/test.cpp
constraint/points_coincident/test.cpp
constraint/pt_pt_distance/test.cpp
constraint/pt_plane_distance/test.cpp
constraint/pt_line_distance/test.cpp
constraint/pt_face_distance/test.cpp
constraint/proj_pt_distance/test.cpp
constraint/pt_in_plane/test.cpp
constraint/pt_on_line/test.cpp
constraint/pt_on_face/test.cpp
constraint/equal_length_lines/test.cpp
constraint/length_ratio/test.cpp
constraint/eq_len_pt_line_d/test.cpp
constraint/eq_pt_ln_distances/test.cpp
constraint/equal_angle/test.cpp
constraint/equal_line_arc_len/test.cpp
constraint/length_difference/test.cpp
constraint/symmetric/test.cpp
constraint/symmetric_horiz/test.cpp
constraint/symmetric_vert/test.cpp
constraint/symmetric_line/test.cpp
constraint/at_midpoint/test.cpp
constraint/horizontal/test.cpp
constraint/vertical/test.cpp
constraint/diameter/test.cpp
constraint/pt_on_circle/test.cpp
constraint/same_orientation/test.cpp
constraint/angle/test.cpp
constraint/parallel/test.cpp
constraint/perpendicular/test.cpp
constraint/arc_line_tangent/test.cpp
constraint/cubic_line_tangent/test.cpp
constraint/curve_curve_tangent/test.cpp
constraint/equal_radius/test.cpp
constraint/where_dragged/test.cpp
constraint/comment/test.cpp
request/arc_of_circle/test.cpp
request/circle/test.cpp
request/cubic/test.cpp
request/cubic_periodic/test.cpp
request/datum_point/test.cpp
request/image/test.cpp
request/line_segment/test.cpp
request/ttf_text/test.cpp
request/workplane/test.cpp
group/link/test.cpp
group/translate_asy/test.cpp
group/translate_nd/test.cpp
)
add_executable(solvespace-testsuite
${testsuite_SOURCES}
$<TARGET_PROPERTY:resources,EXTRA_SOURCES>)
target_link_libraries(solvespace-testsuite
solvespace-headless
${COVERAGE_LIBRARY})
target_include_directories(solvespace-testsuite
PRIVATE
${EIGEN3_INCLUDE_DIRS})
add_dependencies(solvespace-testsuite
resources)
add_custom_target(test_solvespace
COMMAND $<TARGET_FILE:solvespace-testsuite>
COMMENT "Testing SolveSpace"
VERBATIM)
# coverage reports
if(ENABLE_COVERAGE)
set(LCOV_FLAGS -q --gcov-tool ${GCOV})
set(LCOV_FLAGS ${LCOV_FLAGS} --rc lcov_branch_coverage=1)
set(LCOV_FLAGS ${LCOV_FLAGS} --rc "lcov_excl_line=(ssassert|switch)")
set(LCOV_FLAGS ${LCOV_FLAGS} --rc "lcov_excl_br_line=BRANCH_ALWAYS_TAKEN")
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(coverage_solvespace 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 test_solvespace
COMMENT "Generating coverage report"
VERBATIM)
endif()
# debug runner
set(debugtool_SOURCES
debugtool.cpp
)
add_executable(solvespace-debugtool
${debugtool_SOURCES}
$<TARGET_PROPERTY:resources,EXTRA_SOURCES>)
target_link_libraries(solvespace-debugtool
solvespace-core
solvespace-headless)
add_dependencies(solvespace-debugtool
resources)
|