#!/usr/bin/env bash CIDIR=$(dirname $(readlink -fn $0)) source $CIDIR/ci.functions if [ ! -r main/asterisk.gcno ]; then # Coverage is not enabled. exit 0 fi if [ -z $LCOV_DIR ]; then LCOV_DIR="${OUTPUT_DIR:+${OUTPUT_DIR}/}lcov" fi if [ -z $COVERAGE_DIR ]; then COVERAGE_DIR="${OUTPUT_DIR:+${OUTPUT_DIR}/}coverage" fi if [ -z $ASTERISK_VERSION ]; then ASTERISK_VERSION=$(./build_tools/make_version .) fi set -x # Capture counter data from testing lcov --no-external --capture --directory . --output-file ${LCOV_DIR}/tested.info > /dev/null # Combine initial and tested data. lcov \ --add-tracefile ${LCOV_DIR}/initial.info \ --add-tracefile ${LCOV_DIR}/tested.info \ --output-file ${LCOV_DIR}/combined.info > /dev/null # We don't care about coverage reporting for tests, utils or third-party. lcov --remove ${LCOV_DIR}/combined.info \ "${PWD}/main/dns_test.*" \ "${PWD}/main/test.*" \ "${PWD}/tests/*" \ "${PWD}/utils/*" \ "${PWD}/third-party/*" \ --output-file ${LCOV_DIR}/filtered.info > /dev/null # Generate HTML coverage report. mkdir -p ${COVERAGE_DIR} genhtml --prefix ${PWD} --ignore-errors source ${LCOV_DIR}/filtered.info \ --legend --title "Asterisk ${ASTERISK_VERSION}" --output-directory=${COVERAGE_DIR} > /dev/null