]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/yap/test/CMakeLists.txt
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / libs / yap / test / CMakeLists.txt
1 include_directories(${CMAKE_HOME_DIRECTORY})
2
3 include(CTest)
4
5 enable_testing()
6
7 add_custom_target(yap_check COMMAND ${CMAKE_CTEST_COMMAND} -VV -C ${CMAKE_CFG_INTDIR})
8 if (NOT TARGET check)
9 add_custom_target(check DEPENDS yap_check)
10 else()
11 add_dependencies(check yap_check)
12 endif()
13
14 set(coverage_gcda_files)
15
16 macro(add_test_executable name)
17 add_executable(${name} ${name}.cpp)
18 target_link_libraries(${name} yap)
19 target_compile_features(${name}
20 PRIVATE
21 cxx_constexpr
22 cxx_decltype_auto
23 cxx_auto_type
24 )
25 target_compile_definitions(${name} PRIVATE BOOST_NO_AUTO_PTR)
26 add_test(${name} ${CMAKE_CURRENT_BINARY_DIR}/${name})
27 if (clang_on_linux)
28 target_link_libraries(${name} c++)
29 endif ()
30 list(APPEND coverage_gcda_files ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${name}.dir/${name}.cpp.gcda)
31 endmacro()
32
33 add_test_executable(deref)
34 add_test_executable(value)
35 add_test_executable(left)
36 add_test_executable(right)
37 add_test_executable(print)
38 add_test_executable(default_eval)
39 add_test_executable(user_expression_transform_1)
40 add_test_executable(user_expression_transform_2)
41 add_test_executable(placeholder_eval)
42 add_test_executable(call_expr)
43 add_test_executable(reference_returns)
44 add_test_executable(depth_stress_test_left)
45 add_test_executable(depth_stress_test_right)
46 add_test_executable(lazy_vector_alloc_test)
47 add_test_executable(vector_alloc_test)
48 add_test_executable(operators_unary)
49 add_test_executable(comma)
50 add_test_executable(if_else)
51 add_test_executable(expression_function)
52 add_test_executable(transform)
53 add_test_executable(supplied_transforms)
54
55 add_executable(
56 compile_tests
57 compile_tests_main.cpp
58 compile_is_expr.cpp
59 compile_const_term.cpp
60 compile_placeholders.cpp
61 compile_term_plus_expr.cpp
62 compile_term_plus_term.cpp
63 compile_term_plus_x.cpp
64 compile_x_plus_term.cpp
65 compile_term_plus_x_this_ref_overloads.cpp
66 compile_const_term.cpp
67 compile_move_only_types.cpp
68 compile_user_macros.cpp
69 )
70 target_link_libraries(compile_tests yap)
71 if (clang_on_linux)
72 target_link_libraries(compile_tests c++)
73 endif ()
74
75 function(add_compile_fail_test name)
76 try_compile(
77 compiles
78 ${CMAKE_BINARY_DIR}
79 ${CMAKE_CURRENT_SOURCE_DIR}/${name}.cpp
80 COMPILE_DEFINITIONS
81 ${std_flag} -I${Boost_INCLUDE_DIRS} -I${CMAKE_SOURCE_DIR}/include
82 OUTPUT_VARIABLE foo
83 )
84 #message("foo=${foo}")
85 if (compiles)
86 message(FATAL_ERROR "Compile-fail test ${name} does not fail to compile.")
87 endif ()
88 endfunction()
89
90 add_compile_fail_test(fail_transform)
91 add_compile_fail_test(fail_get)
92 add_compile_fail_test(fail_left)
93 add_compile_fail_test(fail_right)
94 add_compile_fail_test(fail_cond)
95 add_compile_fail_test(fail_then)
96 add_compile_fail_test(fail_else)
97 add_compile_fail_test(fail_callable)
98 add_compile_fail_test(fail_argument)
99 add_compile_fail_test(fail_make_expression)
100 add_compile_fail_test(fail_make_terminal)
101
102 if (BUILD_COVERAGE AND UNIX)
103 if (APPLE)
104 add_custom_target(
105 coverage
106 rm -rf ${coverage_gcda_files} lcov-all.info lcov.info output
107 COMMAND
108 ${CMAKE_CTEST_COMMAND} -VV -C ${CMAKE_CFG_INTDIR}
109 COMMAND
110 cd ${CMAKE_BINARY_DIR}
111 COMMAND
112 llvm-cov gcov -f -b ${coverage_gcda_files}
113 COMMAND
114 lcov --directory . --base-directory . --gcov-tool ${CMAKE_SOURCE_DIR}/llvm-gcov.sh --capture -o lcov-all.info
115 COMMAND
116 lcov -e lcov-all.info ${CMAKE_SOURCE_DIR}/include/boost/yap/* ${CMAKE_SOURCE_DIR}/include/boost/yap/detail/* -o lcov.info
117 COMMAND
118 genhtml lcov.info -o output
119 )
120 else ()
121 add_custom_target(
122 coverage
123 rm -rf ${coverage_gcda_files} lcov-all.info lcov.info output
124 COMMAND
125 ${CMAKE_CTEST_COMMAND} -j4 -VV -C ${CMAKE_CFG_INTDIR}
126 COMMAND
127 cd ${CMAKE_BINARY_DIR}
128 COMMAND
129 gcov -f -b ${coverage_gcda_files}
130 COMMAND
131 lcov --directory . --base-directory . --capture -o lcov-all.info
132 COMMAND
133 lcov -e lcov-all.info ${CMAKE_SOURCE_DIR}/include/boost/yap/* ${CMAKE_SOURCE_DIR}/include/boost/yap/detail/* -o lcov.info
134 COMMAND
135 genhtml lcov.info -o output
136 )
137 endif ()
138 endif ()