From: Michael Wallner Date: Wed, 14 Oct 2020 14:24:03 +0000 (+0200) Subject: testing: coverage X-Git-Tag: 1.1.0-beta1~214 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=c0e01749a40fc9006c9aed41ccfbffc1ae085c82;p=m6w6%2Flibmemcached testing: coverage --- diff --git a/.cirrus.yml b/.cirrus.yml index 46ea911e..1562dc36 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -49,7 +49,7 @@ task: sudo -E -u nobody make -C build install DESTDIR=/tmp on_success: codecov_script: | - bash <(curl -s https://codecov.io/bash) -- -x "llvm-cov gcov" + bash <(curl -s https://codecov.io/bash) -x "llvm-cov gcov" gitter_success_script: | curl -sS "${gitter}" \ --data-urlencode "level=info" \ diff --git a/CMake/CheckDebug.cmake b/CMake/CheckDebug.cmake index 32fbf26d..e3e046bf 100644 --- a/CMake/CheckDebug.cmake +++ b/CMake/CheckDebug.cmake @@ -14,56 +14,61 @@ endfunction() function(check_debug) if(CMAKE_BUILD_TYPE STREQUAL "Debug") - check_flag(-Og -O0) - check_flag(-ggdb -g) add_definitions(-DDEBUG=1) - foreach(FLAG IN ITEMS - -fno-inline - -fno-omit-frame-pointer - -fno-eliminate-unused-debug-types - -funsafe-loop-optimizations + if(CMAKE_CXX_FLAGS MATCHES --coverage) + message("-- Coverage build detected!") + message("-- Skipping debug and sanitizer flag checks.") + else() + check_flag(-Og -O0) + check_flag(-ggdb -g) + foreach(FLAG IN ITEMS + -fno-inline + -fno-omit-frame-pointer + -fno-eliminate-unused-debug-types + -funsafe-loop-optimizations - -Wall - -Wextra + -Wall + -Wextra - -Wdouble-promotion - -Wduplicated-cond - -Wduplicated-branches - -Wformat=2 - -Wlogical-op - -Wnull-dereference - -Wrestrict - -Wshadow - -Wunknown-pragmas - -Wunsafe-loop-optimizations - ) - check_flag(${FLAG} IGNORE) - endforeach() + -Wdouble-promotion + -Wduplicated-cond + -Wduplicated-branches + -Wformat=2 + -Wlogical-op + -Wnull-dereference + -Wrestrict + -Wshadow + -Wunknown-pragmas + -Wunsafe-loop-optimizations + ) + check_flag(${FLAG} IGNORE) + endforeach() - if(ENABLE_SANITIZERS) - if(address IN_LIST ENABLE_SANITIZERS OR asan IN_LIST ENABLE_SANITIZERS) - cmake_push_check_state(RESET) - set(CMAKE_REQUIRED_LIBRARIES asan) - check_cxx_compiler_flag(-fsanitize=address HAVE_ASAN) - cmake_pop_check_state() - if(HAVE_ASAN) - add_compile_definitions(HAVE_ASAN) - add_compile_options(-fsanitize=address) - link_libraries(-fsanitize=address) - check_flag(-fsanitize-recover=address IGNORE) + if(ENABLE_SANITIZERS) + if(address IN_LIST ENABLE_SANITIZERS OR asan IN_LIST ENABLE_SANITIZERS) + cmake_push_check_state(RESET) + set(CMAKE_REQUIRED_LIBRARIES asan) + check_cxx_compiler_flag(-fsanitize=address HAVE_ASAN) + cmake_pop_check_state() + if(HAVE_ASAN) + add_compile_definitions(HAVE_ASAN) + add_compile_options(-fsanitize=address) + link_libraries(-fsanitize=address) + check_flag(-fsanitize-recover=address IGNORE) + endif() endif() - endif() - if(undefined IN_LIST ENABLE_SANITIZERS OR ubsan IN_LIST ENABLE_SANITIZERS) - cmake_push_check_state(RESET) - set(CMAKE_REQUIRED_LIBRARIES ubsan) - check_cxx_compiler_flag(-fsanitize=undefined HAVE_UBSAN) - cmake_pop_check_state() - if(HAVE_UBSAN) - add_compile_definitions(HAVE_UBSAN) - add_compile_options(-fsanitize=undefined) - link_libraries(-fsanitize=undefined) - check_flag(-fsanitize-recover=undefined IGNORE) + if(undefined IN_LIST ENABLE_SANITIZERS OR ubsan IN_LIST ENABLE_SANITIZERS) + cmake_push_check_state(RESET) + set(CMAKE_REQUIRED_LIBRARIES ubsan) + check_cxx_compiler_flag(-fsanitize=undefined HAVE_UBSAN) + cmake_pop_check_state() + if(HAVE_UBSAN) + add_compile_definitions(HAVE_UBSAN) + add_compile_options(-fsanitize=undefined) + link_libraries(-fsanitize=undefined) + check_flag(-fsanitize-recover=undefined IGNORE) + endif() endif() endif() endif()