Unverified Commit 1df04a35 authored by Dennis Jenkins's avatar Dennis Jenkins Committed by GitHub

Merge pull request #445 from arthurafarias/arthurafarias-add-coverage

Add coverage test and integration with codecov.io
parents c03dc7e0 7b1e8e23
...@@ -16,14 +16,7 @@ matrix: ...@@ -16,14 +16,7 @@ matrix:
addons: addons:
apt: apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-4.0'] sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-4.0']
packages: [ packages: [ 'cmake', 'clang-4.0', 'libstdc++-6-dev', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb', 'lcov' ]
'cmake',
'clang-4.0',
'libstdc++-6-dev',
'libssl-dev',
'libcurl4-openssl-dev',
'gdb'
]
- os: linux - os: linux
compiler: clang compiler: clang
...@@ -31,14 +24,7 @@ matrix: ...@@ -31,14 +24,7 @@ matrix:
addons: addons:
apt: apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-5.0'] sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-5.0']
packages: [ packages: [ 'cmake', 'clang-5.0', 'libstdc++-6-dev', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb', 'lcov' ]
'cmake',
'clang-5.0',
'libstdc++-6-dev',
'libssl-dev',
'libcurl4-openssl-dev',
'gdb'
]
- os: linux - os: linux
compiler: clang compiler: clang
...@@ -46,14 +32,7 @@ matrix: ...@@ -46,14 +32,7 @@ matrix:
addons: addons:
apt: apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-6.0'] sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-6.0']
packages: [ packages: [ 'cmake', 'clang-6.0', 'libstdc++-6-dev', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb', 'lcov' ]
'cmake',
'clang-6.0',
'libstdc++-6-dev',
'libssl-dev',
'libcurl4-openssl-dev',
'gdb'
]
# Linux GCC builds # Linux GCC builds
- os: linux - os: linux
...@@ -62,7 +41,7 @@ matrix: ...@@ -62,7 +41,7 @@ matrix:
addons: addons:
apt: apt:
sources: ['ubuntu-toolchain-r-test'] sources: ['ubuntu-toolchain-r-test']
packages: ['g++-4.9', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb'] packages: ['g++-4.9', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb', 'lcov']
- os: linux - os: linux
compiler: gcc compiler: gcc
...@@ -70,7 +49,7 @@ matrix: ...@@ -70,7 +49,7 @@ matrix:
addons: addons:
apt: apt:
sources: ['ubuntu-toolchain-r-test'] sources: ['ubuntu-toolchain-r-test']
packages: ['g++-5', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb'] packages: ['g++-5', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb', 'lcov']
- os: linux - os: linux
compiler: gcc compiler: gcc
...@@ -78,7 +57,7 @@ matrix: ...@@ -78,7 +57,7 @@ matrix:
addons: addons:
apt: apt:
sources: ['ubuntu-toolchain-r-test'] sources: ['ubuntu-toolchain-r-test']
packages: ['g++-6', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb'] packages: ['g++-6', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb', 'lcov']
- os: linux - os: linux
compiler: gcc compiler: gcc
...@@ -86,7 +65,7 @@ matrix: ...@@ -86,7 +65,7 @@ matrix:
addons: addons:
apt: apt:
sources: ['ubuntu-toolchain-r-test'] sources: ['ubuntu-toolchain-r-test']
packages: ['g++-7', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb'] packages: ['g++-7', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb', 'lcov']
- os: linux - os: linux
compiler: gcc compiler: gcc
...@@ -94,7 +73,7 @@ matrix: ...@@ -94,7 +73,7 @@ matrix:
addons: addons:
apt: apt:
sources: ['ubuntu-toolchain-r-test'] sources: ['ubuntu-toolchain-r-test']
packages: ['g++-8', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb'] packages: ['g++-8', 'libssl-dev', 'libcurl4-openssl-dev', 'gdb', 'lcov']
install: install:
- DEPS_DIR="${TRAVIS_BUILD_DIR}/deps" - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
...@@ -116,14 +95,18 @@ before_script: ...@@ -116,14 +95,18 @@ before_script:
- initctl list || true - initctl list || true
# Debug build # Debug build
- cmake -H. -BBuild-Debug - cmake -H.
-BBuild-Debug
-DCMAKE_BUILD_TYPE=Debug -DCMAKE_BUILD_TYPE=Debug
-DPISTACHE_BUILD_EXAMPLES=true -DPISTACHE_BUILD_EXAMPLES=true
-DPISTACHE_BUILD_TESTS=true -DPISTACHE_BUILD_TESTS=true
-DPISTACHE_SSL=true -DPISTACHE_SSL=true
# Release build # Release build
- cmake -H. -BBuild-Release -DCMAKE_BUILD_TYPE=Release -DPISTACHE_SSL=true - cmake -H.
-BBuild-Release
-DCMAKE_BUILD_TYPE=Release
-DPISTACHE_SSL=true
script: script:
- # Debug build - # Debug build
...@@ -135,9 +118,17 @@ script: ...@@ -135,9 +118,17 @@ script:
- make -j 2 - make -j 2
after_failure: after_failure:
# find and print core file
- ls -lta /var/crash - ls -lta /var/crash
- COREFILE=$(find ./ -maxdepth 1 -name "core*" -print | head -n 1) - COREFILE=$(find ./ -maxdepth 1 -name "core*" -print | head -n 1)
- if [[ -f "$COREFILE" ]]; then - if [[ -f "$COREFILE" ]]; then
gdb -c "$COREFILE" -ex "thread apply all bt" -ex "set pagination 0" -batch; gdb -c "$COREFILE" -ex "thread apply all bt" -ex "set pagination 0" -batch;
fi fi
after_success:
- cd ../Build-Debug
- export PISTACHE_SRC_ROOT=$(realpath $(pwd)/..)
- lcov --capture --directory . --output-file coverage.info
- lcov --remove coverage.info '/usr/*' "$PISTACHE_SRC_ROOT/test/*" "$PISTACHE_SRC_ROOT/googletest-release-1.7.0" --output-file coverage.info
- lcov --list coverage.info
- bash <(curl -s https://codecov.io/bash) -f coverage.info -t 1db5f955-be83-4bb5-8a8a-eeb4ad07ce11 || echo "Codecov did not collect coverage reports"
\ No newline at end of file
...@@ -3,15 +3,27 @@ project (pistache) ...@@ -3,15 +3,27 @@ project (pistache)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wextra -Wno-missing-field-initializers") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wextra -Wno-missing-field-initializers")
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
if(CMAKE_BUILD_TYPE MATCHES "Debug")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
endif()
option(PISTACHE_BUILD_TESTS "build tests alongside the project" OFF) option(PISTACHE_BUILD_TESTS "build tests alongside the project" OFF)
option(PISTACHE_BUILD_EXAMPLES "build examples alongside the project" OFF) option(PISTACHE_BUILD_EXAMPLES "build examples alongside the project" OFF)
option(PISTACHE_INSTALL "add pistache as install target (recommended)" ON) option(PISTACHE_INSTALL "add pistache as install target (recommended)" ON)
option(PISTACHE_SSL "add support for SSL server" OFF) option(PISTACHE_SSL "add support for SSL server" OFF)
find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind) find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind)
find_program(CTEST_COVERAGE_COMMAND NAMES gcov)
INCLUDE(Dart) INCLUDE(Dart)
add_custom_target(test_memcheck COMMAND ${CMAKE_CTEST_COMMAND} --force-new-ctest-process --test-action memcheck) add_custom_target(test_memcheck COMMAND ${CMAKE_CTEST_COMMAND} --force-new-ctest-process --test-action memcheck)
add_custom_target(coverage COMMAND ${CMAKE_CTEST_COMMAND} --force-new-ctest-process --test-action coverage)
# CMAKE version less than 3.8 does not understand the CMAKE_CXX_FLAGS # CMAKE version less than 3.8 does not understand the CMAKE_CXX_FLAGS
# set to 17, so a manual check if performed on older version # set to 17, so a manual check if performed on older version
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment