- Notifications
You must be signed in to change notification settings - Fork 273
/
Copy pathgen-coverage-report.sh
executable file
·43 lines (34 loc) · 1.06 KB
/
gen-coverage-report.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/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 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 --capture --output-file $DESTDIR/coverage.tmp \
--rc lcov_branch_coverage=1 \
--directory crypto \
--directory ssl \
--directory tls \
--test-name "LibreSSL $VERSION"
genhtml --prefix . --output-directory $DESTDIR \
--branch-coverage --function-coverage \
--rc lcov_branch_coverage=1 \
--title "LibreSSL $VERSION" --legend --show-detail $DESTDIR/coverage.tmp
echo"Code coverage report is available under $DESTDIR"