diff --git a/t/coverage.sh b/t/coverage.sh
index 460089753a9d75f733118e26592e205b9b87841a..3a8a4167cca689839ed6dc8faaeb07ac4ec101f0 100755 (executable)
--- a/t/coverage.sh
+++ b/t/coverage.sh
cp -a "$srcdir"/.git .
# reset all files which are not part of the tarball
- # (e.g. .gitignore, .travis.yml which would else cause a "dirty" version)
- git reset --hard
+ git checkout HEAD .gitignore .travis.yml t/cibuild.sh
fi
-./configure --enable-gcov --disable-shared CFLAGS="-O0 -g"
-make
+# rebuild build system to refresh version number, etc.
+rm -f version
+touch configure.ac && make configure
-V1=$( grep '^PACKAGE_VERSION' Makefile | cut -d' ' -f3 )
-if test -z "$V1"; then
- # this should not happen
- V1="$V"
-fi
+./configure --enable-gcov CFLAGS="-O0 -g"
+make
lcov --base-directory src --directory src --zerocount
-make test
+make -j25 test || (status=$?; cat t/test-suite.log 2> /dev/null; exit $status)
+
+# old versions of lcov don't support --no-external
lcov --base-directory src --directory src --no-external \
- --capture -o sysdb_coverage.info
+ --capture -o sysdb_coverage.info \
+ || lcov --base-directory src --directory src \
+ --capture -o sysdb_coverage.info
+for pattern in '*.y' '*.l' \
+ 'sysdb/scanner.c' 'frontend/scanner.c' 'liboconfig/scanner.c' \
+ 'frontend/grammar.c' 'liboconfig/parser.c'
+do
+ lcov --remove sysdb_coverage.info "$pattern" -o sysdb_coverage.info
+done
+V=$( ./version-gen.sh )
genhtml -o "$srcdir"/t/coverage \
- -t "SysDB $V1 test coverage" --num-spaces=4 --legend \
+ -t "SysDB $V test coverage" --num-spaces=4 --legend \
sysdb_coverage.info