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" | ||
