46 lines
1.2 KiB
Bash
46 lines
1.2 KiB
Bash
|
#!/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
|