summaryrefslogtreecommitdiffstats
path: root/scripts/coverage_c_combine.sh
blob: a891ded54302b149a2bdf573c0f282a2a1ea7640 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later

# $1 = top source directory
# $2 = coverage data directory path
# $3 = output directory for *.info files

set -o errexit -o nounset
shopt -s nullglob
IFS=$'\n'

TOPSRCDIR="$1"
DATAROOT="$2"
OUTDIR="$3"

cd "${TOPSRCDIR}"
for COVNAME in $(find "${DATAROOT}" -name .topdir_kresd_coverage)
do
	find "${DATAROOT}" -name '*.gcda' -not -path "${DATAROOT}/*" -delete
	COVDIR="$(dirname "${COVNAME}")"
	COVDATA_FILENAMES=("${COVDIR}"/*)  # filenames in BASH array
	(( ${#COVDATA_FILENAMES[*]} )) || continue  # skip empty dirs

	cp -r -t ${TOPSRCDIR} "${COVDIR}"/*
	${LCOV} -q --no-external --capture -d lib -d daemon -d modules -o "$(mktemp -p "${OUTDIR}" -t XXXXXXXX.c.info)" > /dev/null
done