2
0
mirror of https://github.com/boostorg/parser.git synced 2026-01-19 04:22:13 +00:00
Files
parser/test/CMakeLists.txt
2024-09-30 18:08:09 -05:00

116 lines
3.9 KiB
CMake

include_directories(${CMAKE_HOME_DIRECTORY})
include(CTest)
enable_testing()
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -j4 -C ${CMAKE_CFG_INTDIR})
##################################################
# Parser tests
##################################################
add_executable(parser_ parser.cpp)
set_property(TARGET parser_ PROPERTY CXX_STANDARD ${CXX_STD})
target_link_libraries(parser_ parser boost ${link_flags})
if (MSVC)
target_compile_options(parser_ PRIVATE /source-charset:utf-8 /bigobj)
elseif (USE_ASAN OR USE_UBSAN)
target_compile_options(parser_ PRIVATE ${compile_flags})
endif ()
add_test(NAME parser_ COMMAND parser_)
add_executable(parser_api parser_api.cpp)
set_property(TARGET parser_api PROPERTY CXX_STANDARD ${CXX_STD})
target_link_libraries(parser_api parser boost ${link_flags})
if (MSVC)
target_compile_options(parser_api PRIVATE /source-charset:utf-8 /bigobj)
elseif (USE_ASAN OR USE_UBSAN)
target_compile_options(parser_api PRIVATE ${compile_flags})
endif ()
add_test(NAME parser_api COMMAND parser_api)
add_executable(
compile_tests
compile_tests_main.cpp
compile_attribute.cpp
compile_seq_attribute.cpp
compile_or_attribute.cpp
compile_combining_groups.cpp
compile_all_t.cpp
)
set_property(TARGET compile_tests PROPERTY CXX_STANDARD ${CXX_STD})
target_link_libraries(compile_tests parser boost)
macro(add_test_executable name)
add_executable(${name} ${name}.cpp)
set_property(TARGET ${name} PROPERTY CXX_STANDARD ${CXX_STD})
target_link_libraries(${name} parser boost ${link_flags})
if (MSVC)
target_compile_options(${name} PRIVATE /source-charset:utf-8 /bigobj)
elseif (USE_ASAN OR USE_UBSAN)
target_compile_options(${name} PRIVATE ${compile_flags})
endif ()
add_test(NAME ${name} COMMAND ${name})
endmacro()
add_test_executable(github_issues)
add_test_executable(search)
add_test_executable(split)
add_test_executable(replace)
add_test_executable(transform_replace)
add_test_executable(hl)
add_test_executable(aggr_tuple_assignment)
add_test_executable(parser_perm)
add_test_executable(parser_attributes)
add_test_executable(parser_lazy_params)
add_test_executable(parser_if_switch)
add_test_executable(parser_rule)
add_test_executable(parser_rule_with_params)
add_test_executable(parser_action)
add_test_executable(parser_action_with_params)
add_test_executable(parser_symbol_table)
add_test_executable(parser_quoted_string)
add_test_executable(tracing)
add_test_executable(parse_empty)
add_test_executable(tuple_aggregate)
add_test_executable(class_type)
add_test_executable(case_fold_generated)
add_test_executable(no_case)
add_test_executable(merge_separate)
add_test_executable(parse_coords_new)
add_test_executable(parser_seq_permutations_1)
add_test_executable(parser_seq_permutations_2)
add_test_executable(parser_or_permutations_1)
add_test_executable(parser_or_permutations_2)
if (MSVC)
add_executable(vs_output_tracing tracing.cpp)
set_property(TARGET vs_output_tracing PROPERTY CXX_STANDARD ${CXX_STD})
target_link_libraries(vs_output_tracing parser boost ${link_flags})
target_compile_options(vs_output_tracing PRIVATE /source-charset:utf-8 /bigobj)
target_compile_definitions(vs_output_tracing PRIVATE BOOST_PARSER_TRACE_TO_VS_OUTPUT)
add_test(NAME vs_output_tracing COMMAND vs_output_tracing)
endif()
set(COVERAGE_TRACE_COMMAND
lcov --capture
-output-file ${PROJECT_BINARY_DIR}/coverage.info
--directory ${PROJECT_BINARY_DIR}
--include ${PROJECT_SOURCE_DIR}/include/*
)
set(COVERAGE_HTML_COMMAND
genhtml --legend -f -q
${PROJECT_BINARY_DIR}/coverage.info
--prefix ${PROJECT_SOURCE_DIR}
--output-directory ${PROJECT_BINARY_DIR}/coverage_html
)
add_custom_target(
coverage
COMMAND ${COVERAGE_TRACE_COMMAND}
COMMAND ${COVERAGE_HTML_COMMAND}
COMMENT "Generating coverage report"
VERBATIM
)