Adapt lcov.sh to multiple source directories
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
diff --git a/scripts/lcov.sh b/scripts/lcov.sh
index 2d2f42b..79c5c9f 100755
--- a/scripts/lcov.sh
+++ b/scripts/lcov.sh
@@ -51,8 +51,8 @@
# Ubuntu 16.04 is affected, 18.04 and above are not.
# https://github.com/linux-test-project/lcov/commit/632c25a0d1f5e4d2f4fd5b28ce7c8b86d388c91f
COVTMP=$PWD/Coverage/tmp
- lcov --capture --initial --directory $library_dir -o "$COVTMP/files.info"
- lcov --rc lcov_branch_coverage=1 --capture --directory $library_dir -o "$COVTMP/tests.info"
+ lcov --capture --initial ${lcov_dirs} -o "$COVTMP/files.info"
+ lcov --rc lcov_branch_coverage=1 --capture ${lcov_dirs} -o "$COVTMP/tests.info"
lcov --rc lcov_branch_coverage=1 --add-tracefile "$COVTMP/files.info" --add-tracefile "$COVTMP/tests.info" -o "$COVTMP/all.info"
lcov --rc lcov_branch_coverage=1 --remove "$COVTMP/all.info" -o "$COVTMP/final.info" '*.h'
gendesc tests/Descriptions.txt -o "$COVTMP/descriptions"
@@ -64,9 +64,13 @@
# Reset the traces to 0.
lcov_reset_traces () {
# Location with plain make
- rm -f $library_dir/*.gcda
+ for dir in ${library_dirs}; do
+ rm -f ${dir}/*.gcda
+ done
# Location with CMake
- rm -f $library_dir/CMakeFiles/*.dir/*.gcda
+ for dir in ${library_dirs}; do
+ rm -f ${dir}/CMakeFiles/*.dir/*.gcda
+ done
}
if [ $# -gt 0 ] && [ "$1" = "--help" ]; then
@@ -75,13 +79,18 @@
fi
if in_mbedtls_repo; then
- library_dir='library'
+ library_dirs='library tf-psa-crypto/core tf-psa-crypto/drivers/builtin'
title='Mbed TLS'
else
- library_dir='core'
+ library_dirs='core drivers/builtin'
title='TF-PSA-Crypto'
fi
+lcov_dirs=""
+for dir in ${library_dirs}; do
+ lcov_dirs="${lcov_dirs} --directory ${dir}"
+done
+
main=lcov_library_report
while getopts r OPTLET; do
case $OPTLET in