aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrent Cook <busterb@gmail.com>2015-03-01 17:37:12 -0600
committerBrent Cook <busterb@gmail.com>2015-03-01 17:37:12 -0600
commit3cb34ee99f9be3e866ca63110fec90bc104fe800 (patch)
treee7d0e3f7dd7e41e13aca7ef6120b1a8106f7e29a
parent701aa50e777fcb5ad272f7547bfe10c2e0b9951f (diff)
downloadportable-3cb34ee99f9be3e866ca63110fec90bc104fe800.tar.gz
portable-3cb34ee99f9be3e866ca63110fec90bc104fe800.tar.bz2
portable-3cb34ee99f9be3e866ca63110fec90bc104fe800.zip
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
-rwxr-xr-xgen-coverage-report.sh37
1 files changed, 37 insertions, 0 deletions
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 @@
1#!/bin/sh
2
3VERSION=$(cat VERSION)
4DESTDIR=libressl-coverage-$VERSION
5
6echo "This will generate a code coverage report under $DESTDIR"
7echo
8
9if [ "x$(which lcov)" = "x" ]; then
10 echo "'lcov' is required but not found!"
11 exit 1
12fi
13
14if [ "x$(which genhtml)" = "x" ]; then
15 echo "'genhtml' is required but not found!"
16 exit 1
17fi
18
19find -name '*.gcda' -o -name '*.gcno' -delete
20rm -fr $DESTDIR
21
22echo "Configuring to build with code coverage support"
23./configure --enable-libtls CFLAGS='-O0 -fprofile-arcs -ftest-coverage'
24
25echo "Running all code paths"
26make clean
27make check
28
29echo "Generating report"
30mkdir -p $DESTDIR
31find tests -name '*.gcda' -o -name '*.gcno' -delete
32lcov --directory . --capture --output-file $DESTDIR/coverage.tmp \
33 --test-name "LibreSSL $VERSION"
34genhtml --prefix . --output-directory $DESTDIR \
35 --title "LibreSSL $VERSION" --legend --show-detail $DESTDIR/coverage.tmp
36
37echo "Code coverage report is available under $DESTDIR"