1
0
Fork 0
knot-resolver/scripts/coverage_env.sh
Daniel Baumann fbc604e215
Adding upstream version 5.7.5.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-21 13:56:17 +02:00

42 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later
# generate variables for coverage testing
# $1 = top source directory
# $2 = coverage data directory path
# $3 = name of test/new subdirectory name
# $4 = [optional] --export to generate export commands
set -o errexit -o nounset
shopt -s nullglob
test -z "${COVERAGE:-}" && exit 0 # not enabled, do nothing
test ! -z "${V:-}" && set -o xtrace # verbose mode
EXPORT=""
test "${4:-}" == "--export" && EXPORT="export "
TOPSRCDIR="$1"
DATAROOT="$2"
OUTPATH="$2/$3"
# check that output directory is empty
# beware: Makefile will always call coverage_env.sh for all targets
# so directories get created but not populated
# i.e. test -d is not sufficient check
OUTPATH_FILENAMES=("${OUTPATH}"/*) # filenames in BASH array
(( ${#OUTPATH_FILENAMES[*]} )) && echo "false" && >&2 echo "fatal: output directory ${OUTPATH} must be empty (or non-existent)" && exit 1
mkdir -p "${OUTPATH}"
# convert paths to absolute
pushd "${OUTPATH}" &> /dev/null
touch .topdir_kresd_coverage
OUTPATH="$(pwd -P)"
popd &> /dev/null
# determine GCOV_PREFIX_STRIP value for current source directory
TOPSRCDIR_SLASHES="${TOPSRCDIR//[^\/]/}" # remove everything except /
GCOV_PREFIX_STRIP="${#TOPSRCDIR_SLASHES}" # number of / == number of components
KRESD_COVERAGE_STATS="${OUTPATH}/luacov.stats.out"
GCOV_PREFIX="${OUTPATH}"
echo "${EXPORT}KRESD_COVERAGE_STATS=\"${KRESD_COVERAGE_STATS}\" ${EXPORT}GCOV_PREFIX=\"${GCOV_PREFIX}\" ${EXPORT}GCOV_PREFIX_STRIP=\"${GCOV_PREFIX_STRIP}\""