From 924a4b40a8b681061d7f3e52c84ab75299d65cf4 Mon Sep 17 00:00:00 2001 From: Andrew Lewis Date: Tue, 2 Aug 2016 15:18:29 +0100 Subject: [PATCH] [Minor] Integrate coveralls --- CMakeLists.txt | 7 +++++++ circle.yml | 8 ++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dd931fb83..802aa5a4e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,7 @@ OPTION(ENABLE_HYPERSCAN "Enable hyperscan for fast regexp processing [default OPTION(ENABLE_FANN "Enable fann for neural network plugin [default: OFF]" OFF) OPTION(ENABLE_PCRE2 "Enable pcre2 instead of pcre [default: OFF]" OFF) OPTION(ENABLE_JEMALLOC "Build rspamd with jemalloc allocator [default: OFF]" OFF) +OPTION(ENABLE_COVERAGE "Build rspamd with code coverage options [default: OFF]" OFF) INCLUDE(FindArch.cmake) TARGET_ARCHITECTURE(ARCH) @@ -823,6 +824,12 @@ IF(NOT CMAKE_C_OPT_FLAGS) ENDIF(ENABLE_OPTIMIZATION MATCHES "ON") ENDIF(NOT CMAKE_C_OPT_FLAGS) +IF(ENABLE_COVERAGE) + SET(CMAKE_C_OPT_FLAGS "-g -O0 -fno-strict-aliasing") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage -fprofile-arcs -ftest-coverage") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage -fprofile-arcs -ftest-coverage") +ENDIF(ENABLE_COVERAGE) + SET(CMAKE_C_FLAGS "${CMAKE_C_OPT_FLAGS} ${CMAKE_C_FLAGS} ${CMAKE_C_WARN_FLAGS}") ADD_DEFINITIONS(-DHAVE_CONFIG_H) diff --git a/circle.yml b/circle.yml index c08a8d5e4..3d0243877 100644 --- a/circle.yml +++ b/circle.yml @@ -1,14 +1,18 @@ dependencies: pre: - sudo apt-get update -qq - - sudo apt-get install -qq cmake gcc libevent-dev libglib2.0-dev libgmime-2.6-dev libluajit-5.1-dev liblua5.1-0-dev libmagic-dev libpcre3-dev libsqlite3-dev libssl-dev make python-dev ragel redis-server + - sudo apt-get install -qq cmake gcc lcov libevent-dev libglib2.0-dev libgmime-2.6-dev libluajit-5.1-dev liblua5.1-0-dev libmagic-dev libpcre3-dev libsqlite3-dev libssl-dev make python-dev ragel redis-server + - gem install coveralls-lcov - sudo pip install psutil - sudo pip install robotframework test: override: - - cmake . -DCMAKE_INSTALL_PREFIX=./_install + - cmake . -DENABLE_COVERAGE=ON -DCMAKE_INSTALL_PREFIX=./_install - cmake --build . --target install - sudo robot test/functional/cases + - lcov -b . -d . -c --output-file coverage.info + - ln -s src/ragel . + - coveralls-lcov -t ${COVERALLS_REPO_TOKEN} coverage.info post: - for i in output.xml log.html report.html; do mv $i $CIRCLE_ARTIFACTS; done -- 2.39.5