From 51e1bd5d040b37056c0baf028497a20fa74d84b2 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 19 Dec 2013 16:47:17 +0100 Subject: [PATCH] Enforce required phpunit version This will prevent frustration and confusion when unit tests fail because the wrong phpunit version was used --- autotest.sh | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/autotest.sh b/autotest.sh index 3562b0feb04..94fc692a94d 100755 --- a/autotest.sh +++ b/autotest.sh @@ -13,6 +13,7 @@ ADMINLOGIN=admin$EXECUTOR_NUMBER BASEDIR=$PWD DBCONFIGS="sqlite mysql pgsql oci" +PHPUNIT=$(which phpunit) function print_syntax { echo -e "Syntax: ./autotest.sh [dbconfigname] [testfile]\n" >&2 @@ -23,6 +24,20 @@ function print_syntax { echo -e "\nIf no arguments are specified, all tests will be run with all database configs" >&2 } +if ! [ -x $PHPUNIT ]; then + echo "phpunit executable not found, please install phpunit version >= 3.7" >&2 + exit 3 +fi + +PHPUNIT_VERSION=$($PHPUNIT --version | cut -d" " -f2) +PHPUNIT_MAJOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f1) +PHPUNIT_MINOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f2) + +if ! [ $PHPUNIT_MAJOR_VERSION -gt 3 -o \( $PHPUNIT_MAJOR_VERSION -eq 3 -a $PHPUNIT_MINOR_VERSION -ge 7 \) ]; then + echo "phpunit version >= 3.7 required. Version found: $PHPUNIT_VERSION" >&2 + exit 4 +fi + if ! [ -w config -a -w config/config.php ]; then echo "Please enable write permissions on config and config/config.php" >&2 exit 1 @@ -179,10 +194,10 @@ EOF mkdir coverage-html-$1 php -f enable_all.php if [ -z "$NOCOVERAGE" ]; then - phpunit --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml --coverage-clover autotest-clover-$1.xml --coverage-html coverage-html-$1 $2 $3 + $PHPUNIT --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml --coverage-clover autotest-clover-$1.xml --coverage-html coverage-html-$1 $2 $3 else echo "No coverage" - phpunit --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml $2 $3 + $PHPUNIT --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml $2 $3 fi }