diff options
author | Brent Cook <busterb@gmail.com> | 2015-03-01 17:37:12 -0600 |
---|---|---|
committer | Brent Cook <busterb@gmail.com> | 2015-03-01 17:37:12 -0600 |
commit | 3cb34ee99f9be3e866ca63110fec90bc104fe800 (patch) | |
tree | e7d0e3f7dd7e41e13aca7ef6120b1a8106f7e29a | |
parent | 701aa50e777fcb5ad272f7547bfe10c2e0b9951f (diff) | |
download | portable-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-x | gen-coverage-report.sh | 37 |
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 | |||
3 | VERSION=$(cat VERSION) | ||
4 | DESTDIR=libressl-coverage-$VERSION | ||
5 | |||
6 | echo "This will generate a code coverage report under $DESTDIR" | ||
7 | echo | ||
8 | |||
9 | if [ "x$(which lcov)" = "x" ]; then | ||
10 | echo "'lcov' is required but not found!" | ||
11 | exit 1 | ||
12 | fi | ||
13 | |||
14 | if [ "x$(which genhtml)" = "x" ]; then | ||
15 | echo "'genhtml' is required but not found!" | ||
16 | exit 1 | ||
17 | fi | ||
18 | |||
19 | find -name '*.gcda' -o -name '*.gcno' -delete | ||
20 | rm -fr $DESTDIR | ||
21 | |||
22 | echo "Configuring to build with code coverage support" | ||
23 | ./configure --enable-libtls CFLAGS='-O0 -fprofile-arcs -ftest-coverage' | ||
24 | |||
25 | echo "Running all code paths" | ||
26 | make clean | ||
27 | make check | ||
28 | |||
29 | echo "Generating report" | ||
30 | mkdir -p $DESTDIR | ||
31 | find tests -name '*.gcda' -o -name '*.gcno' -delete | ||
32 | lcov --directory . --capture --output-file $DESTDIR/coverage.tmp \ | ||
33 | --test-name "LibreSSL $VERSION" | ||
34 | genhtml --prefix . --output-directory $DESTDIR \ | ||
35 | --title "LibreSSL $VERSION" --legend --show-detail $DESTDIR/coverage.tmp | ||
36 | |||
37 | echo "Code coverage report is available under $DESTDIR" | ||