diff --git a/Build/Scripts/runTests.sh b/Build/Scripts/runTests.sh index a198cf84d8c7..e53f377ce038 100755 --- a/Build/Scripts/runTests.sh +++ b/Build/Scripts/runTests.sh @@ -102,7 +102,7 @@ Options: - pdo_sqlsrv -d - Only with -s install|functional + Only with -s install|functional|acceptance Specifies on which DBMS tests are performed - mariadb (default): use mariadb - mysql: use MySQL server @@ -366,9 +366,30 @@ case ${TEST_SUITE} in if [ ${CHUNKS} -gt 1 ]; then docker-compose run acceptance_split fi - docker-compose run prepare_acceptance_backend_mariadb - docker-compose run acceptance_backend_mariadb - SUITE_EXIT_CODE=$? + case ${DBMS} in + mysql) + [[ ! -z "$DATABASE_DRIVER" ]] && echo "Using driver: ${DATABASE_DRIVER}" + docker-compose run prepare_acceptance_backend_mysql + docker-compose run acceptance_backend_mysql + SUITE_EXIT_CODE=$? + ;; + mariadb) + [[ ! -z "$DATABASE_DRIVER" ]] && echo "Using driver: ${DATABASE_DRIVER}" + docker-compose run prepare_acceptance_backend_mariadb + docker-compose run acceptance_backend_mariadb + SUITE_EXIT_CODE=$? + ;; + postgres) + docker-compose run prepare_acceptance_backend_postgres + docker-compose run acceptance_backend_postgres + SUITE_EXIT_CODE=$? + ;; + *) + echo "Acceptance tests don't run with DBMS ${DBMS}" >&2 + echo >&2 + echo "call \".Build/Scripts/runTests.sh -h\" to display help and valid options" >&2 + exit 1 + esac docker-compose down ;; buildCss) @@ -547,11 +568,13 @@ case ${TEST_SUITE} in setUpDockerComposeDotEnv case ${DBMS} in mysql) + [[ ! -z "$DATABASE_DRIVER" ]] && echo "Using driver: ${DATABASE_DRIVER}" docker-compose run prepare_acceptance_install_mysql docker-compose run acceptance_install_mysql SUITE_EXIT_CODE=$? ;; mariadb) + [[ ! -z "$DATABASE_DRIVER" ]] && echo "Using driver: ${DATABASE_DRIVER}" docker-compose run prepare_acceptance_install_mariadb docker-compose run acceptance_install_mariadb SUITE_EXIT_CODE=$? diff --git a/Build/testing-docker/local/docker-compose.yml b/Build/testing-docker/local/docker-compose.yml index 42791c9f4065..41ec7974efe0 100644 --- a/Build/testing-docker/local/docker-compose.yml +++ b/Build/testing-docker/local/docker-compose.yml @@ -101,6 +101,103 @@ services: $${COMMAND} " + prepare_acceptance_backend_mysql: + image: alpine:3.8 + links: + - mysql + - chrome + - web + command: > + /bin/sh -c " + if [ ${SCRIPT_VERBOSE} -eq 1 ]; then + set -x + fi + echo Waiting for database start...; + while ! nc -z mysql 3306; do + sleep 1; + done; + echo Database is up; + " + acceptance_backend_mysql: + image: typo3/core-testing-${DOCKER_PHP_IMAGE}:latest + user: ${HOST_UID} + environment: + typo3DatabaseName: func_test + typo3DatabaseUsername: root + typo3DatabasePassword: funcp + typo3DatabaseHost: mysql + volumes: + - ${CORE_ROOT}:${CORE_ROOT} + - ${HOST_HOME}:${HOST_HOME} + - /etc/passwd:/etc/passwd:ro + - /etc/group:/etc/group:ro + working_dir: ${CORE_ROOT} + command: > + /bin/sh -c " + if [ ${SCRIPT_VERBOSE} -eq 1 ]; then + set -x + fi + php -v | grep '^PHP' + if [ ${CHUNKS} -gt 0 ]; then + echo \"Running chunk ${THISCHUNK}\" + COMMAND=\"bin/codecept run Backend -d -g AcceptanceTests-Job-${THISCHUNK} -c typo3/sysext/core/Tests/codeception.yml ${TEST_FILE} --xml reports.xml --html reports.html\" + else + COMMAND=\"bin/codecept run Backend -d -c typo3/sysext/core/Tests/codeception.yml ${TEST_FILE} --xml reports.xml --html reports.html\" + fi + mkdir -p typo3temp/var/tests/ + $${COMMAND} + " + + prepare_acceptance_backend_postgres: + image: alpine:3.8 + links: + - postgres + - chrome + - web + command: > + /bin/sh -c " + if [ ${SCRIPT_VERBOSE} -eq 1 ]; then + set -x + fi + echo Waiting for database start...; + while ! nc -z postgres 5432; do + sleep 1; + done; + echo Database is up; + " + acceptance_backend_postgres: + image: typo3/core-testing-${DOCKER_PHP_IMAGE}:latest + user: ${HOST_UID} + volumes: + - ${CORE_ROOT}:${CORE_ROOT} + - ${HOST_HOME}:${HOST_HOME} + - /etc/passwd:/etc/passwd:ro + - /etc/group:/etc/group:ro + environment: + typo3DatabaseDriver: pdo_pgsql + typo3DatabaseName: bamboo + typo3DatabaseUsername: funcu + typo3DatabaseHost: postgres + typo3DatabasePassword: funcp + typo3TestingRedisHost: redis4 + typo3TestingMemcachedHost: memcached1-5 + working_dir: ${CORE_ROOT} + command: > + /bin/sh -c " + if [ ${SCRIPT_VERBOSE} -eq 1 ]; then + set -x + fi + php -v | grep '^PHP' + if [ ${CHUNKS} -gt 0 ]; then + echo \"Running chunk ${THISCHUNK}\" + COMMAND=\"bin/codecept run Backend -d -g AcceptanceTests-Job-${THISCHUNK} -c typo3/sysext/core/Tests/codeception.yml ${TEST_FILE} --xml reports.xml --html reports.html\" + else + COMMAND=\"bin/codecept run Backend -d -c typo3/sysext/core/Tests/codeception.yml ${TEST_FILE} --xml reports.xml --html reports.html\" + fi + mkdir -p typo3temp/var/tests/ + $${COMMAND} + " + prepare_acceptance_install_mysql: image: alpine:3.8 links: