diff --git a/autotest.sh b/autotest.sh index 3831e181245..a411780d49c 100755 --- a/autotest.sh +++ b/autotest.sh @@ -12,11 +12,37 @@ DATABASEUSER=oc_autotest$EXECUTOR_NUMBER ADMINLOGIN=admin$EXECUTOR_NUMBER BASEDIR=$PWD +DBCONFIGS="sqlite mysql pgsql oci" + +function print_syntax { + echo -e "Syntax: ./autotest.sh [dbconfigname] [testfile]\n" >&2 + echo -e "\t\"dbconfigname\" can be one of: $DBCONFIGS" >&2 + echo -e "\t\"testfile\" is the name of a test file, for example lib/template.php" >&2 + echo -e "\nExample: ./autotest.sh sqlite lib/template.php" >&2 + echo "will run the test suite from \"tests/lib/template.php\"" >&2 + echo -e "\nIf no arguments are specified, all tests will be run with all database configs" >&2 +} + if ! [ -w config -a -w config/config.php ]; then echo "Please enable write permissions on config and config/config.php" >&2 exit 1 fi +if [ $1 ]; then + FOUND=0 + for DBCONFIG in $DBCONFIGS; do + if [ $1 = $DBCONFIG ]; then + FOUND=1 + break + fi + done + if [ $FOUND = 0 ]; then + echo -e "Unknown database config name \"$1\"\n" >&2 + print_syntax + exit 2 + fi +fi + # Back up existing (dev) config if one exists if [ -f config/config.php ]; then mv config/config.php config/config-autotest-backup.php @@ -160,10 +186,10 @@ EOF # if [ -z "$1" ] then - execute_tests 'sqlite' - execute_tests 'mysql' - execute_tests 'pgsql' - execute_tests 'oci' + # run all known database configs + for DBCONFIG in $DBCONFIGS; do + execute_tests $DBCONFIG + done else execute_tests $1 $2 $3 fi