diff options
author | Maarten Hoes <hoes.maarten@gmail.com> | 2014-11-08 23:10:51 +0100 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2014-11-08 22:55:43 +0000 |
commit | a9b64f309fdae9135d7223f0aec55d95a7517f13 (patch) | |
tree | 2a76934231a8b44b3eb6667cdb47c57a24bc162c | |
parent | fd188bda674ab20148dadcd802bcbbc78b8ca921 (diff) |
shell script to generate lcov code coverage reports.
Change-Id: I684207b6aad4549a9f333ab800dae0ed0b507bab
Reviewed-on: https://gerrit.libreoffice.org/12315
Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
-rwxr-xr-x | lcov-report/lcov-report.sh | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/lcov-report/lcov-report.sh b/lcov-report/lcov-report.sh new file mode 100755 index 0000000..7f5c2b6 --- /dev/null +++ b/lcov-report/lcov-report.sh @@ -0,0 +1,116 @@ +#!/bin/sh + +SRC_DIR=/home/buildslave/source/libo-core +TRACEFILE_DIR=/home/buildslave/lcov +HTML_DIR=/home/buildslave/lcov/html + +if [ ! -d "$SRC_DIR" ] +then + echo "ERROR: Failed to locate directory $SRC_DIR" >&2 + exit 1 +fi + +rm -rf "$TRACEFILE_DIR" "$HTML_DIR" + +mkdir "$TRACEFILE_DIR" +if [ "$?" != "0" ] +then + echo "ERROR: Failed to create directory $TRACEFILE_DIR" >&2 +fi + +mkdir "$HTML_DIR" +if [ "$?" != "0" ] +then + echo "ERROR: Failed to create directory $HTML_DIR" >&2 +fi + +lcov --zerocounters --directory "$SRC_DIR" + +cd "$SRC_DIR" +make distclean +MY_EXITCODE=$? +if [ "$MY_EXITCODE" != "0" ] +then + echo "ERROR: make distclean failed with exitcode $MY_EXITCODE" >&2 + exit "$MY_EXITCODE" +fi + +./autogen.sh + +LDFLAGS+='-fprofile-arcs' CFLAGS+='-fprofile-arcs -ftest-coverage' CXXFLAGS+='-fprofile-arcs -ftest-coverage' CPPFLAGS+='-fprofile-arcs -ftest-coverage' ./configure --disable-online-update --without-system-libs --without-system-headers +MY_EXITCODE=$? +if [ "$MY_EXITCODE" != "0" ] +then + echo "ERROR: configure failed with exitcode $MY_EXITCODE" >&2 + exit "$MY_EXITCODE" +fi + +make build-nocheck +MY_EXITCODE=$? +if [ "$MY_EXITCODE" != "0" ] +then + echo "ERROR: make build-nocheck failed with exitcode $MY_EXITCODE" >&2 + exit "$MY_EXITCODE" +fi + + +lcov --rc geninfo_auto_base=1 --no-external --capture --initial --directory "$SRC_DIR" --output-file "$TRACEFILE_DIR"/libreoffice_base.info +MY_EXITCODE=$? +if [ "$MY_EXITCODE" != "0" ] +then + echo "ERROR: tracefile $TRACEFILE_DIR/libreoffice_base.info generation failed with exitcode $MY_EXITCODE" >&2 + exit "$MY_EXITCODE" +fi + +make check +MY_EXITCODE=$? +if [ "$MY_EXITCODE" != "0" ] +then + echo "ERROR: make check failed with exitcode $MY_EXITCODE" >&2 + exit "$MY_EXITCODE" +fi + +lcov --rc geninfo_auto_base=1 --no-external --capture --directory "$SRC_DIR" --output-file "$TRACEFILE_DIR"/libreoffice_test.info +MY_EXITCODE=$? +if [ "$MY_EXITCODE" != "0" ] +then + echo "ERROR: tracefile $TRACEFILE_DIR/libreoffice_test.info generation failed with exitcode $MY_EXITCODE" >&2 + exit "$MY_EXITCODE" +fi + +lcov --rc geninfo_auto_base=1 --add-tracefile "$TRACEFILE_DIR"/libreoffice_base.info --add-tracefile "$TRACEFILE_DIR"/libreoffice_test.info --output-file "$TRACEFILE_DIR"/libreoffice_total.info +MY_EXITCODE=$? +if [ "$MY_EXITCODE" != "0" ] +then + echo "ERROR: tracefile generation $TRACEFILE_DIR/libreoffice_total.info failed with exitcode $MY_EXITCODE" >&2 + exit "$MY_EXITCODE" +fi + +lcov --rc geninfo_auto_base=1 --remove "$TRACEFILE_DIR"/libreoffice_total.info "/usr/include/*" "/usr/lib/*" "$SRC_DIR/*/UnpackedTarball/*" "$SRC_DIR/workdir/*" "$SRC_DIR/instdir/*" "$SRC_DIR/external/*" -o "$TRACEFILE_DIR"/libreoffice_filtered.info +MY_EXITCODE=$? +if [ "$MY_EXITCODE" != "0" ] +then + echo "ERROR: tracefile generation $TRACEFILE_DIR/libreoffice_filtered.info failed with exitcode $MY_EXITCODE" >&2 + exit "$MY_EXITCODE" +fi + +cd "$SRC_DIR" +COMMIT_SHA1=$(git log --date=iso | head -3 | awk '/^commit/ {print $2}') +COMMIT_DATE=$(git log --date=iso | head -3 | awk '/^Date/ {print $2}') +COMMIT_TIME=$(git log --date=iso | head -3 | awk '/^Date/ {print $3}') +mkdir "$HTML_DIR"/master~"$COMMIT_DATE"_"$COMMIT_TIME" +MY_EXITCODE=$? +if [ ! -d "$HTML_DIR"/master~"$COMMIT_DATE"_"$COMMIT_TIME" ] +then + echo >&2 ERROR: failed to create subdirectory in $HTML_DIR/master~"$COMMIT_DATE"_"$COMMIT_TIME" with exitcode $MY_EXITCODE + exit "$MY_EXITCODE" +fi + +genhtml --rc geninfo_auto_base=1 --prefix "$SRC_DIR" --ignore-errors source "$TRACEFILE_DIR"/libreoffice_filtered.info --legend --title "commit $COMMIT_SHA1" --output-directory="$HTML_DIR"/master~"$COMMIT_DATE"_"$COMMIT_TIME" +MY_EXITCODE=$? +if [ "$MY_EXITCODE" != "0" ] +then + echo >&2 ERROR: Generation of html files in $HTML_DIR/master~"$COMMIT_DATE"_"$COMMIT_TIME" failed with exitcode $MY_EXITCODE + exit "$MY_EXITCODE" +fi + |