From 141c84210f2d74144512100a9f7bfc68d83dc831 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann 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=utf8 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 Reviewed-by: Iustin Pop --- 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 3314aa2..f9b4a94 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 ab16cc5..38bdd38 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 3d7eaa3..da46415 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]) -- 1.7.10.4