@@ -20,80 +20,80 @@ endif ()
2020# --------------------------------------------------------------------------- #
2121# --------------------- Test Configuration Start ---------------------------- #
2222# --------------------------------------------------------------------------- #
23+ if (SC_BUILD_TEST)
2324
24- include (CTest )
25- include (CheckCCompilerFlag )
25+ include (CTest )
26+ include (CheckCCompilerFlag )
2627
27- enable_testing ()
28+ enable_testing ()
2829
29- add_executable (${PROJECT_NAME } _test buf_test.c sc_buf.c )
30+ add_executable (${PROJECT_NAME } _test buf_test.c sc_buf.c )
3031
31- target_compile_options (${PROJECT_NAME } _test PRIVATE -DSC_SIZE_MAX=140000ul )
32+ target_compile_options (${PROJECT_NAME } _test PRIVATE -DSC_SIZE_MAX=140000ul )
3233
33- if (${CMAKE_SYSTEM_NAME } STREQUAL "Linux" )
34- if ("${CMAKE_C_COMPILER_ID } " STREQUAL "Clang" OR
35- "${CMAKE_C_COMPILER_ID } " STREQUAL "GNU" )
36- target_compile_options (${PROJECT_NAME } _test PRIVATE -DSC_HAVE_WRAP )
37- target_compile_options (${PROJECT_NAME } _test PRIVATE -fno-builtin )
38- target_link_options (${PROJECT_NAME } _test PRIVATE
39- -Wl,--wrap=vsnprintf,--wrap=malloc,--wrap=realloc,--wrap=strlen )
40- endif ()
41- endif ()
34+ if (${CMAKE_SYSTEM_NAME } STREQUAL "Linux" )
35+ if ("${CMAKE_C_COMPILER_ID } " STREQUAL "Clang" OR
36+ "${CMAKE_C_COMPILER_ID } " STREQUAL "GNU" )
37+ target_compile_options (${PROJECT_NAME } _test PRIVATE -DSC_HAVE_WRAP )
38+ target_compile_options (${PROJECT_NAME } _test PRIVATE -fno-builtin )
39+ target_link_options (${PROJECT_NAME } _test PRIVATE
40+ -Wl,--wrap=vsnprintf,--wrap=malloc,--wrap=realloc,--wrap=strlen )
41+ endif ()
42+ endif ()
4243
43- if ("${CMAKE_C_COMPILER_ID } " STREQUAL "Clang" OR
44- "${CMAKE_C_COMPILER_ID } " STREQUAL "AppleClang" OR
45- "${CMAKE_C_COMPILER_ID } " STREQUAL "GNU" )
46- target_compile_options (${PROJECT_NAME } _test PRIVATE -fno-omit-frame-pointer )
44+ if ("${CMAKE_C_COMPILER_ID } " STREQUAL "Clang" OR
45+ "${CMAKE_C_COMPILER_ID } " STREQUAL "AppleClang" OR
46+ "${CMAKE_C_COMPILER_ID } " STREQUAL "GNU" )
47+ target_compile_options (${PROJECT_NAME } _test PRIVATE -fno-omit-frame-pointer )
4748
48- if (SANITIZER)
49- target_compile_options (${PROJECT_NAME } _test PRIVATE -fsanitize=${SANITIZER} )
50- target_link_options (${PROJECT_NAME } _test PRIVATE -fsanitize=${SANITIZER} )
51- endif ()
52- endif ()
49+ if (SANITIZER)
50+ target_compile_options (${PROJECT_NAME } _test PRIVATE -fsanitize=${SANITIZER} )
51+ target_link_options (${PROJECT_NAME } _test PRIVATE -fsanitize=${SANITIZER} )
52+ endif ()
53+ endif ()
5354
54- add_test (NAME ${PROJECT_NAME } _test COMMAND ${PROJECT_NAME } _test )
55+ add_test (NAME ${PROJECT_NAME } _test COMMAND ${PROJECT_NAME } _test )
5556
56- SET (MEMORYCHECK_COMMAND_OPTIONS
57- "-q --log-fd=2 --trace-children=yes --track-origins=yes \
58- --leak-check=full --show-leak-kinds=all \
59- --error-exitcode=255" )
57+ SET (MEMORYCHECK_COMMAND_OPTIONS
58+ "-q --log-fd=2 --trace-children=yes --track-origins=yes \
59+ --leak-check=full --show-leak-kinds=all \
60+ --error-exitcode=255" )
6061
61- add_custom_target (valgrind_${PROJECT_NAME} ${CMAKE_COMMAND }
62- -E env CTEST_OUTPUT_ON_FAILURE=1
63- ${CMAKE_CTEST_COMMAND } -C $<CONFIG >
64- --overwrite MemoryCheckCommandOptions=${MEMORYCHECK_COMMAND_OPTIONS}
65- --verbose -T memcheck WORKING_DIRECTORY ${CMAKE_BINARY_DIR } )
62+ add_custom_target (valgrind_${PROJECT_NAME} ${CMAKE_COMMAND }
63+ -E env CTEST_OUTPUT_ON_FAILURE=1
64+ ${CMAKE_CTEST_COMMAND } -C $<CONFIG >
65+ --overwrite MemoryCheckCommandOptions=${MEMORYCHECK_COMMAND_OPTIONS}
66+ --verbose -T memcheck WORKING_DIRECTORY ${CMAKE_BINARY_DIR } )
6667
67- add_custom_target (check_${PROJECT_NAME} ${CMAKE_COMMAND }
68- -E env CTEST_OUTPUT_ON_FAILURE=1
69- ${CMAKE_CTEST_COMMAND } -C $<CONFIG > --verbose
70- WORKING_DIRECTORY ${CMAKE_BINARY_DIR } )
68+ add_custom_target (check_${PROJECT_NAME} ${CMAKE_COMMAND }
69+ -E env CTEST_OUTPUT_ON_FAILURE=1
70+ ${CMAKE_CTEST_COMMAND } -C $<CONFIG > --verbose
71+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR } )
7172
7273# ----------------------- - Code Coverage Start ----------------------------- #
7374
74- if (${CMAKE_BUILD_TYPE } MATCHES "Coverage" )
75- if ("${CMAKE_C_COMPILER_ID } " STREQUAL "GNU" )
76- target_compile_options (${PROJECT_NAME } _test PRIVATE --coverage )
77- target_link_libraries (${PROJECT_NAME } _test gcov )
78- else ()
79- message (FATAL_ERROR " Only GCC is supported for coverage" )
80- endif ()
81- endif ()
82-
83- add_custom_target (coverage_${PROJECT_NAME} )
84- add_custom_command (
85- TARGET coverage_${PROJECT_NAME}
86- COMMAND lcov --capture --directory .
87- --output-file coverage.info --rc lcov_branch_coverage=1 --rc lcov_excl_br_line='assert'
88- COMMAND lcov --remove coverage.info '/usr/*' '*example*' '*test*'
89- --output-file coverage.info --rc lcov_branch_coverage=1 --rc lcov_excl_br_line='assert'
90- COMMAND lcov --list coverage.info --rc lcov_branch_coverage=1 --rc lcov_excl_br_line='assert'
91- )
92-
93- add_dependencies (coverage_${PROJECT_NAME} check_${PROJECT_NAME} )
75+ if (${CMAKE_BUILD_TYPE } MATCHES "Coverage" )
76+ if ("${CMAKE_C_COMPILER_ID } " STREQUAL "GNU" )
77+ target_compile_options (${PROJECT_NAME } _test PRIVATE --coverage )
78+ target_link_libraries (${PROJECT_NAME } _test gcov )
79+ else ()
80+ message (FATAL_ERROR " Only GCC is supported for coverage" )
81+ endif ()
82+ endif ()
83+
84+ add_custom_target (coverage_${PROJECT_NAME} )
85+ add_custom_command (
86+ TARGET coverage_${PROJECT_NAME}
87+ COMMAND lcov --capture --directory .
88+ --output-file coverage.info --rc lcov_branch_coverage=1 --rc lcov_excl_br_line='assert'
89+ COMMAND lcov --remove coverage.info '/usr/*' '*example*' '*test*'
90+ --output-file coverage.info --rc lcov_branch_coverage=1 --rc lcov_excl_br_line='assert'
91+ COMMAND lcov --list coverage.info --rc lcov_branch_coverage=1 --rc lcov_excl_br_line='assert'
92+ )
93+
94+ add_dependencies (coverage_${PROJECT_NAME} check_${PROJECT_NAME} )
9495
9596# -------------------------- Code Coverage End ------------------------------ #
96-
97-
97+ endif ()
9898# ----------------------- Test Configuration End ---------------------------- #
9999
0 commit comments