Hash :
134f3239
        
        Author :
  
        
        Date :
2015-05-07T07:56:19
        
      
add branch coverage, skip coverage check of tests themselves
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"