diff options
Diffstat (limited to 'src/boost/libs/histogram/tools/cov.sh')
-rwxr-xr-x | src/boost/libs/histogram/tools/cov.sh | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/boost/libs/histogram/tools/cov.sh b/src/boost/libs/histogram/tools/cov.sh new file mode 100755 index 000000000..f9fd8cece --- /dev/null +++ b/src/boost/libs/histogram/tools/cov.sh @@ -0,0 +1,50 @@ +#!/bin/sh +# must be executed in project root folder + +# Copyright Hans Dembinski 2018-2019 +# Distributed under the Boost Software License, Version 1.0. +# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt + +if [ -z $GCOV ]; then + # gcov-9, gcov-7, gcov-6 do not work + for i in 8 5; do + if test $(which gcov-$i); then + GCOV=gcov-$i + break; + fi; + done +fi + +LCOV_VERSION="1.14" +LCOV_DIR="tools/lcov-${LCOV_VERSION}" + +if [ ! -e $LCOV_DIR ]; then + cd tools + curl -L https://github.com/linux-test-project/lcov/releases/download/v${LCOV_VERSION}/lcov-${LCOV_VERSION}.tar.gz | tar zxf - + cd .. +fi + +# --rc lcov_branch_coverage=1 doesn't work on travis +# LCOV="${LCOV_DIR}/bin/lcov --gcov-tool=${GCOV} --rc lcov_branch_coverage=1" +LCOV="${LCOV_DIR}/bin/lcov --gcov-tool=${GCOV}" + +# collect raw data +$LCOV --base-directory `pwd` \ + --directory `pwd`/../../bin.v2/libs/histogram/test \ + --capture --output-file coverage.info + +# remove uninteresting entries +$LCOV --extract coverage.info "*/boost/histogram/*" --output-file coverage.info + +if [ $CI ] || [ $1 ]; then + # upload if on CI or when token is passed as argument + which cpp-coveralls || echo "Error: you need to install cpp-coveralls" + if [ $1 ]; then + cpp-coveralls -l coverage.info -r ../.. -n -t $1 + else + cpp-coveralls -l coverage.info -r ../.. -n + fi +else + # otherwise generate html report + $LCOV_DIR/bin/genhtml coverage.info --demangle-cpp -o coverage-report +fi |