mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-11-14 04:02:31 +03:00
Merge pull request #10450 from bjwtaylor/move-lcov
Remove lcov.sh as this will be moved to the framework
This commit is contained in:
@@ -489,9 +489,9 @@ if(ENABLE_TESTING)
|
|||||||
# 2. Run the relevant tests for the part of the code you're interested in.
|
# 2. Run the relevant tests for the part of the code you're interested in.
|
||||||
# For the reference coverage measurement, see
|
# For the reference coverage measurement, see
|
||||||
# tests/scripts/basic-build-test.sh
|
# tests/scripts/basic-build-test.sh
|
||||||
# 3. Run scripts/lcov.sh to generate an HTML report.
|
# 3. Run ${MBEDTLS_FRAMEWORK_DIR}/scripts/lcov.sh to generate an HTML report.
|
||||||
ADD_CUSTOM_TARGET(lcov
|
ADD_CUSTOM_TARGET(lcov
|
||||||
COMMAND scripts/lcov.sh
|
COMMAND ${MBEDTLS_FRAMEWORK_DIR}/scripts/lcov.sh
|
||||||
)
|
)
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(memcheck
|
ADD_CUSTOM_TARGET(memcheck
|
||||||
|
|||||||
Submodule framework updated: 4579964747...875ec308e7
@@ -1,96 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
help () {
|
|
||||||
cat <<EOF
|
|
||||||
Usage: $0 [-r]
|
|
||||||
Collect coverage statistics of library code into an HTML report.
|
|
||||||
|
|
||||||
General instructions:
|
|
||||||
1. Build the library with CFLAGS="--coverage -O0 -g3" and link the test
|
|
||||||
programs with LDFLAGS="--coverage".
|
|
||||||
This can be an out-of-tree build.
|
|
||||||
For example (in-tree):
|
|
||||||
make CFLAGS="--coverage -O0 -g3" LDFLAGS="--coverage"
|
|
||||||
Or (out-of-tree):
|
|
||||||
mkdir build-coverage && cd build-coverage &&
|
|
||||||
cmake -D CMAKE_BUILD_TYPE=Coverage .. && make
|
|
||||||
2. Run whatever tests you want.
|
|
||||||
3. Run this script from the parent of the directory containing the library
|
|
||||||
object files and coverage statistics files.
|
|
||||||
4. Browse the coverage report in Coverage/index.html.
|
|
||||||
5. After rework, run "$0 -r", then re-test and run "$0" to get a fresh report.
|
|
||||||
|
|
||||||
Options
|
|
||||||
-r Reset traces. Run this before re-testing to get fresh measurements.
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
# Copyright The Mbed TLS Contributors
|
|
||||||
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
|
|
||||||
|
|
||||||
# This script must be invoked from the project's root.
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
. framework/scripts/project_detection.sh
|
|
||||||
|
|
||||||
# Collect stats and build a HTML report.
|
|
||||||
lcov_library_report () {
|
|
||||||
rm -rf Coverage
|
|
||||||
mkdir Coverage Coverage/tmp
|
|
||||||
# Pass absolute paths as lcov output files. This works around a bug
|
|
||||||
# whereby lcov tries to create the output file in the root directory
|
|
||||||
# if it has emitted a warning. A fix was released in lcov 1.13 in 2016.
|
|
||||||
# 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 ${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"
|
|
||||||
genhtml --title "$title" --description-file "$COVTMP/descriptions" --keep-descriptions --legend --branch-coverage -o Coverage "$COVTMP/final.info"
|
|
||||||
rm -f "$COVTMP/"*.info "$COVTMP/descriptions"
|
|
||||||
echo "Coverage report in: Coverage/index.html"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Reset the traces to 0.
|
|
||||||
lcov_reset_traces () {
|
|
||||||
# Location with plain make
|
|
||||||
for dir in ${library_dirs}; do
|
|
||||||
rm -f ${dir}/*.gcda
|
|
||||||
done
|
|
||||||
# Location with CMake
|
|
||||||
for dir in ${library_dirs}; do
|
|
||||||
rm -f ${dir}/CMakeFiles/*.dir/*.gcda
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ $# -gt 0 ] && [ "$1" = "--help" ]; then
|
|
||||||
help
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if in_mbedtls_repo; then
|
|
||||||
library_dirs='library tf-psa-crypto/core tf-psa-crypto/drivers/builtin'
|
|
||||||
title='Mbed TLS'
|
|
||||||
else
|
|
||||||
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
|
|
||||||
r) main=lcov_reset_traces;;
|
|
||||||
*) help 2>&1; exit 120;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift $((OPTIND - 1))
|
|
||||||
|
|
||||||
"$main" "$@"
|
|
||||||
@@ -154,9 +154,9 @@ ifndef WINDOWS
|
|||||||
# 2. Run the relevant tests for the part of the code you're interested in.
|
# 2. Run the relevant tests for the part of the code you're interested in.
|
||||||
# For the reference coverage measurement, see
|
# For the reference coverage measurement, see
|
||||||
# tests/scripts/basic-build-test.sh
|
# tests/scripts/basic-build-test.sh
|
||||||
# 3. Run scripts/lcov.sh to generate an HTML report.
|
# 3. Run framework/scripts/lcov.sh to generate an HTML report.
|
||||||
lcov:
|
lcov:
|
||||||
scripts/lcov.sh
|
framework/scripts/lcov.sh
|
||||||
|
|
||||||
apidoc:
|
apidoc:
|
||||||
mkdir -p apidoc
|
mkdir -p apidoc
|
||||||
|
|||||||
Submodule tf-psa-crypto updated: 609a7064cb...0a7317cc51
Reference in New Issue
Block a user