From 141c84210f2d74144512100a9f7bfc68d83dc831 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Mon, 22 Oct 2012 17:05:16 +0200 Subject: [PATCH] Find coverage during configure, issue with Debian package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Debian Squeeze and up have a package named βpython-coverageβ, but it doesn't use the same binary name as upstream (βcoverageβ). - Said package includes a patch to use symlinks instead of file copies for jQuery. If files from previous runs are around, an exception is raised. This is fixed by removing all regular files and symlinks before generating a report. Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- Makefile.am | 3 +++ autotools/gen-coverage | 13 ++++++++++++- configure.ac | 11 ++++++++++- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 3314aa2fe..f9b4a9415 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1640,7 +1640,10 @@ endif .PHONY: py-coverage py-coverage: $(GENERATED_FILES) $(python_tests) + @test -n "$(PYCOVERAGE)" || \ + { echo 'python-coverage' not found during configure; exit 1; } set -e; \ + COVERAGE=$(PYCOVERAGE) \ COVERAGE_FILE=$(CURDIR)/$(COVERAGE_PY_DIR)/data \ TEXT_COVERAGE=$(CURDIR)/$(COVERAGE_PY_DIR)/report.txt \ HTML_COVERAGE=$(CURDIR)/$(COVERAGE_PY_DIR) \ diff --git a/autotools/gen-coverage b/autotools/gen-coverage index ab16cc513..38bdd38b8 100755 --- a/autotools/gen-coverage +++ b/autotools/gen-coverage @@ -21,10 +21,11 @@ set -e set -u -: ${COVERAGE:=coverage} : ${PYTHON:=python} +: ${COVERAGE:?} : ${COVERAGE_FILE:?} : ${TEXT_COVERAGE:?} +: ${HTML_COVERAGE:=} : ${GANETI_TEMP_DIR:?} reportargs=( @@ -34,6 +35,16 @@ reportargs=( $COVERAGE erase +if [[ -n "$HTML_COVERAGE" ]]; then + if [[ ! -d "$HTML_COVERAGE" ]]; then + echo "Not a directory: $HTML_COVERAGE" >&2 + exit 1 + fi + + # At least coverage 3.4 fails to overwrite files + find "$HTML_COVERAGE" \( -type f -o -type l \) -delete +fi + for script; do if [[ "$script" == *-runasroot.py ]]; then if [[ -z "$FAKEROOT" ]]; then diff --git a/configure.ac b/configure.ac index 3d7eaa343..da464152b 100644 --- a/configure.ac +++ b/configure.ac @@ -373,7 +373,16 @@ if test -z "$PEP8" then AC_MSG_WARN([pep8 not found, checking code will not be complete]) fi -AM_CONDITIONAL([HAS_PEP8], [test "$PEP8"]) +AM_CONDITIONAL([HAS_PEP8], [test -n "$PEP8"]) + +# Check for python-coverage +AC_ARG_VAR(PYCOVERAGE, [python-coverage path]) +AC_PATH_PROGS(PYCOVERAGE, [python-coverage coverage], []) +if test -z "$PYCOVERAGE" +then + AC_MSG_WARN(m4_normalize([python-coverage or coverage not found, evaluating + Python test coverage will not be possible])) +fi # Check for socat AC_ARG_VAR(SOCAT, [socat path]) -- GitLab