From f32f888288be0c98a96fa420da087a1ed3fe9e26 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Mon, 3 Jun 2013 09:14:54 +0100 Subject: [PATCH 4/5] Adapt run-test.sh to be able to run the tests uninstalled When autoreconfiscated with Automake 1.13, the way in which we were (ab?)using Automake's test driver no longer works. We can't just switch back to the old serial test driver without a dependency on at least Automake 1.12, either. However, run-test.sh (which was already used for installed tests) is quite capable of running uninstalled tests, with a bit of adjustment: * if GABBLE_TEST_UNINSTALLED is set, expect GABBLE_ABS_TOP_SRCDIR, GABBLE_ABS_TOP_BUILDDIR and optionally GABBLE_TEST_SLEEP in the environment * look for installed or uninstalled files, as appropriate * use TEST_PYTHON (which might differ from PYTHON) * use python -u (unbuffered stdout) for better debugging --- tests/twisted/Makefile.am | 1 + tests/twisted/run-test.sh.in | 52 +++++++++++++++++++++++++++++++----------- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/tests/twisted/Makefile.am b/tests/twisted/Makefile.am index fdc6d61..e8ffeb1 100644 --- a/tests/twisted/Makefile.am +++ b/tests/twisted/Makefile.am @@ -451,6 +451,7 @@ gabble-twisted-tests.list: run-test.sh: run-test.sh.in Makefile $(AM_V_GEN)sed -e "s|[@]gabbletestsdir[@]|@gabbletestsdir@|g" \ -e "s|[@]PYTHON[@]|$(PYTHON)|g" \ + -e "s|[@]TEST_PYTHON[@]|$(TEST_PYTHON)|g" \ $< > $@ @chmod +x $@ diff --git a/tests/twisted/run-test.sh.in b/tests/twisted/run-test.sh.in index e663855..e0b146c 100644 --- a/tests/twisted/run-test.sh.in +++ b/tests/twisted/run-test.sh.in @@ -1,30 +1,56 @@ #!/bin/sh -script_fullname=`readlink -e "@gabbletestsdir@/twisted/run-test.sh"` -if [ `readlink -e "$0"` != "$script_fullname" ] ; then - echo "This script is meant to be installed at $script_fullname" - exit 1 -fi +if test "x$GABBLE_TEST_UNINSTALLED" = x; then + script_fullname=`readlink -e "@gabbletestsdir@/twisted/run-test.sh"` + if [ `readlink -e "$0"` != "$script_fullname" ] ; then + echo "This script is meant to be installed at $script_fullname" >&2 + exit 1 + fi + + test_src="@gabbletestsdir@" + test_build="@gabbletestsdir@" + config_file="@gabbletestsdir@/twisted/tools/servicedir/tmp-session-bus.conf" -PYTHONPATH=@gabbletestsdir@/twisted -export PYTHONPATH + PYTHONPATH="@gabbletestsdir@/twisted" + export PYTHONPATH + + GABBLE_TWISTED_PATH="@gabbletestsdir@/twisted" + export GABBLE_TWISTED_PATH +else + if test -z "$GABBLE_ABS_TOP_SRCDIR"; then + echo "GABBLE_ABS_TOP_SRCDIR must be set" >&2 + exit 1 + fi + if test -z "$GABBLE_ABS_TOP_BUILDDIR"; then + echo "GABBLE_ABS_TOP_BUILDDIR must be set" >&2 + exit 1 + fi -GABBLE_TWISTED_PATH=@gabbletestsdir@/twisted -export GABBLE_TWISTED_PATH + test_src="${GABBLE_ABS_TOP_SRCDIR}/tests" + test_build="${GABBLE_ABS_TOP_BUILDDIR}/tests" + config_file="${test_build}/twisted/tools/servicedir-uninstalled/tmp-session-bus.conf" + + PYTHONPATH="${test_src}/twisted:${test_build}/twisted" + export PYTHONPATH + + GABBLE_TWISTED_PATH="${test_src}/twisted" + export GABBLE_TWISTED_PATH +fi if [ -n "$1" ] ; then list="$1" else - list=$(cat @gabbletestsdir@/twisted/gabble-twisted-tests.list) + list=$(cat "${test_build}"/twisted/gabble-twisted-tests.list) fi any_failed=0 for i in $list ; do echo "Testing $i ..." - sh @gabbletestsdir@/twisted/tools/with-session-bus.sh \ - --config-file=@gabbletestsdir@/twisted/tools/servicedir/tmp-session-bus.conf \ + sh "${test_src}/twisted/tools/with-session-bus.sh" \ + ${GABBLE_TEST_SLEEP} \ + --config-file="${config_file}" \ -- \ - @PYTHON@ @gabbletestsdir@/twisted/$i + @TEST_PYTHON@ -u "${test_src}/twisted/$i" e=$? case "$e" in (0) -- 1.7.10.4