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