From 3cb34ee99f9be3e866ca63110fec90bc104fe800 Mon Sep 17 00:00:00 2001 From: Brent Cook Date: Sun, 1 Mar 2015 17:37:12 -0600 Subject: 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 --- gen-coverage-report.sh | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 gen-coverage-report.sh diff --git a/gen-coverage-report.sh b/gen-coverage-report.sh new file mode 100755 index 0000000..f99bd8e --- /dev/null +++ b/gen-coverage-report.sh @@ -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" -- cgit v1.2.3-55-g6feb