Skip to content

Commit 9a7a857

Browse files
committed
Problem: Coverage with coveralls not working
Solution: Enable coveralls for one linux build target and fix coveralls configuration.
1 parent 3c14d37 commit 9a7a857

File tree

3 files changed

+28
-13
lines changed

3 files changed

+28
-13
lines changed

.travis.yml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,21 @@ matrix:
2323
# GCC on Linux
2424
##########################################################
2525

26+
# Coverage, GCC 7, draft enabled, latest libzmq (default)
27+
- os: linux
28+
before_install:
29+
- pip install --user cpp-coveralls
30+
addons:
31+
apt:
32+
sources:
33+
- ubuntu-toolchain-r-test
34+
packages:
35+
- g++-7
36+
env:
37+
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" ENABLE_DRAFTS=ON COVERAGE=ON
38+
after_success:
39+
- coveralls -r . -E ".*external.*" -E ".*CMakeFiles.*" -E ".*tests/" -E ".*demo/" -E ".*libzmq.*/" -b cppzmq-build --gcov-options '\-lp'
40+
2641
# GCC default, draft disabled, older libzmq with pkg-config
2742
- os: linux
2843
env: ZMQ_VERSION=4.2.0 BUILD_TYPE=pkgconfig
@@ -51,6 +66,7 @@ matrix:
5166
- g++-7
5267
env:
5368
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" ENABLE_DRAFTS=ON
69+
5470
# - env: BUILD_TYPE=cmake DO_CLANG_FORMAT_CHECK=1 CLANG_FORMAT=/usr/local/clang-5.0.0/bin/clang-format
5571
# os: linux
5672
# addons:
@@ -60,14 +76,9 @@ matrix:
6076
# packages:
6177
# - clang-5.0
6278

63-
before_install:
64-
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then pip install --user cpp-coveralls; fi
65-
6679
# Build and check this project
6780
script:
6881
- eval "${MATRIX_EVAL}"
6982
- cmake --version
7083
- ./ci_build.sh
7184

72-
after_success:
73-
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then coveralls --root . -E ".*external.*" -E ".*CMakeFiles.*" -E ".*tests/" -E ".*demo/" -E ".*libzmq/"; fi

ci_build.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ set -e
66
BUILD_TYPE=${BUILD_TYPE:-cmake}
77
ZMQ_VERSION=${ZMQ_VERSION:-4.2.5}
88
ENABLE_DRAFTS=${ENABLE_DRAFTS:-OFF}
9+
COVERAGE=${COVERAGE:-OFF}
910
LIBZMQ=${PWD}/libzmq-build
1011
CPPZMQ=${PWD}/cppzmq-build
1112
# Travis machines have 2 cores
@@ -37,7 +38,8 @@ libzmq_install() {
3738
cppzmq_build() {
3839
pushd .
3940
CMAKE_PREFIX_PATH=${LIBZMQ} \
40-
cmake -H. -B${CPPZMQ} -DENABLE_DRAFTS=${ENABLE_DRAFTS}
41+
cmake -H. -B${CPPZMQ} -DENABLE_DRAFTS=${ENABLE_DRAFTS} \
42+
-DCOVERAGE=${COVERAGE}
4143
cmake --build ${CPPZMQ} -- -j${JOBS}
4244
popd
4345
}

tests/CMakeLists.txt

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,6 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
99
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
1010
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR})
1111

12-
# we use this to get code coverage
13-
if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
14-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
15-
endif()
16-
1712
include(cmake/googletest.cmake)
1813
fetch_googletest(
1914
${PROJECT_SOURCE_DIR}/cmake
@@ -32,10 +27,17 @@ add_executable(
3227

3328
target_link_libraries(
3429
unit_tests
35-
gtest_main
36-
cppzmq
30+
PRIVATE gtest_main
31+
PRIVATE cppzmq
3732
)
3833

34+
OPTION (COVERAGE "Enable gcda file generation needed by lcov" OFF)
35+
36+
if (COVERAGE)
37+
target_compile_options(unit_tests PRIVATE --coverage)
38+
target_link_libraries(unit_tests PRIVATE --coverage)
39+
endif()
40+
3941
add_test(
4042
NAME
4143
unit

0 commit comments

Comments
 (0)