- 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>
.PHONY: py-coverage
py-coverage: $(GENERATED_FILES) $(python_tests)
.PHONY: py-coverage
py-coverage: $(GENERATED_FILES) $(python_tests)
+ @test -n "$(PYCOVERAGE)" || \
+ { echo 'python-coverage' not found during configure; exit 1; }
+ COVERAGE=$(PYCOVERAGE) \
COVERAGE_FILE=$(CURDIR)/$(COVERAGE_PY_DIR)/data \
TEXT_COVERAGE=$(CURDIR)/$(COVERAGE_PY_DIR)/report.txt \
HTML_COVERAGE=$(CURDIR)/$(COVERAGE_PY_DIR) \
COVERAGE_FILE=$(CURDIR)/$(COVERAGE_PY_DIR)/data \
TEXT_COVERAGE=$(CURDIR)/$(COVERAGE_PY_DIR)/report.txt \
HTML_COVERAGE=$(CURDIR)/$(COVERAGE_PY_DIR) \
: ${COVERAGE_FILE:?}
: ${TEXT_COVERAGE:?}
: ${COVERAGE_FILE:?}
: ${TEXT_COVERAGE:?}
: ${GANETI_TEMP_DIR:?}
reportargs=(
: ${GANETI_TEMP_DIR:?}
reportargs=(
+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
for script; do
if [[ "$script" == *-runasroot.py ]]; then
if [[ -z "$FAKEROOT" ]]; then
then
AC_MSG_WARN([pep8 not found, checking code will not be complete])
fi
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])
# Check for socat
AC_ARG_VAR(SOCAT, [socat path])