.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) \
set -e
set -u
-: ${COVERAGE:=coverage}
: ${PYTHON:=python}
+: ${COVERAGE:?}
: ${COVERAGE_FILE:?}
: ${TEXT_COVERAGE:?}
+: ${HTML_COVERAGE:=}
: ${GANETI_TEMP_DIR:?}
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
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])