add a simple code coverage generation script
The lcov tools (http://ltp.sourceforge.net/coverage/lcov.php) are required to generate reports. Original idea from this PR, thanks to Jim Barlow for doing the initial integration work. https://github.com/libressl-portable/portable/pull/58
This commit is contained in:
parent
701aa50e77
commit
3cb34ee99f
37
gen-coverage-report.sh
Executable file
37
gen-coverage-report.sh
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
VERSION=$(cat VERSION)
|
||||||
|
DESTDIR=libressl-coverage-$VERSION
|
||||||
|
|
||||||
|
echo "This will generate a code coverage report under $DESTDIR"
|
||||||
|
echo
|
||||||
|
|
||||||
|
if [ "x$(which lcov)" = "x" ]; then
|
||||||
|
echo "'lcov' is required but not found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "x$(which genhtml)" = "x" ]; then
|
||||||
|
echo "'genhtml' is required but not found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
find -name '*.gcda' -o -name '*.gcno' -delete
|
||||||
|
rm -fr $DESTDIR
|
||||||
|
|
||||||
|
echo "Configuring to build with code coverage support"
|
||||||
|
./configure --enable-libtls CFLAGS='-O0 -fprofile-arcs -ftest-coverage'
|
||||||
|
|
||||||
|
echo "Running all code paths"
|
||||||
|
make clean
|
||||||
|
make check
|
||||||
|
|
||||||
|
echo "Generating report"
|
||||||
|
mkdir -p $DESTDIR
|
||||||
|
find tests -name '*.gcda' -o -name '*.gcno' -delete
|
||||||
|
lcov --directory . --capture --output-file $DESTDIR/coverage.tmp \
|
||||||
|
--test-name "LibreSSL $VERSION"
|
||||||
|
genhtml --prefix . --output-directory $DESTDIR \
|
||||||
|
--title "LibreSSL $VERSION" --legend --show-detail $DESTDIR/coverage.tmp
|
||||||
|
|
||||||
|
echo "Code coverage report is available under $DESTDIR"
|
Loading…
x
Reference in New Issue
Block a user