tox: fix too much test running in specific envs

When running a specific env such as e.g. py27-postgresql-file, the lines
in the global commands variable starting with "py27:" also matches,
which means we ended up running the global test suite too!

This refactor the code a bit so we always call run-tests.sh with just
some environment variable set using `setenv'.

Change-Id: Icb2879f383c1d0a09a1cd1fce1cbadfa1207c6c9
This commit is contained in:
Julien Danjou
2015-09-24 16:51:04 +02:00
parent c04e7ada15
commit 0357ea6c28
2 changed files with 24 additions and 22 deletions

View File

@@ -1,14 +1,16 @@
#!/bin/bash -x
set -e
EXIT_CODE=0
INDEXER_DRIVERS="$1"
shift
STORAGE_DRIVERS="$1"
shift
for storage in $STORAGE_DRIVERS
GNOCCHI_TEST_STORAGE_DRIVERS=${GNOCCHI_TEST_STORAGE_DRIVERS:-file}
GNOCCHI_TEST_INDEXER_DRIVERS=${GNOCCHI_TEST_INDEXER_DRIVERS:-postgresql}
for storage in ${GNOCCHI_TEST_STORAGE_DRIVERS}
do
for indexer in $INDEXER_DRIVERS
for indexer in ${GNOCCHI_TEST_INDEXER_DRIVERS}
do
GNOCCHI_TEST_STORAGE_DRIVER=$storage ./setup-${indexer}-tests.sh ./tools/pretty_tox.sh $*
storage_setup_script=./setup-${storage}-tests.sh
if [ ! -x "$storage_setup_script" ]
then
unset storage_setup_script
fi
GNOCCHI_TEST_STORAGE_DRIVER=$storage ./setup-${indexer}-tests.sh "${storage_setup_script}" ./tools/pretty_tox.sh $*
done
done

28
tox.ini
View File

@@ -5,23 +5,23 @@ envlist = py{27,34},py{27,34}-{postgresql,mysql}-{file,swift,ceph,influxdb},pep8
[testenv]
usedevelop = True
sitepackages = False
passenv = LANG OS_TEST_TIMEOUT OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE
passenv = LANG OS_TEST_TIMEOUT OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE GNOCCHI_TEST_*
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
py{27,34}-postgresql-{file,swift,ceph}: {toxinidir}/setup-postgresql-tests.sh {toxinidir}/tools/pretty_tox.sh '{posargs}'
py{27,34}-mysql-{file,swift,ceph}: {toxinidir}/setup-mysql-tests.sh {toxinidir}/tools/pretty_tox.sh '{posargs}'
py{27,34}-postgresql-influxdb: {toxinidir}/setup-postgresql-tests.sh {toxinidir}/setup-influxdb-tests.sh {toxinidir}/tools/pretty_tox.sh '{posargs}'
py{27,34}-mysql-influxdb: {toxinidir}/setup-mysql-tests.sh {toxinidir}/setup-influxdb-tests.sh {toxinidir}/tools/pretty_tox.sh '{posargs}'
py{27,34}: doc8 --ignore-path doc/source/rest.rst doc/source
py{27,34}: {toxinidir}/run-tests.sh "postgresql mysql" "file swift ceph" {posargs}
py{27,34}: {toxinidir}/generate-config-file.sh
setenv =
py{27,34}-{postgresql,mysql}-file: GNOCCHI_TEST_STORAGE_DRIVER=file
py{27,34}-{postgresql,mysql}-swift: GNOCCHI_TEST_STORAGE_DRIVER=swift
py{27,34}-{postgresql,mysql}-ceph: GNOCCHI_TEST_STORAGE_DRIVER=ceph
py{27,34}-{postgresql,mysql}-influxdb: GNOCCHI_TEST_STORAGE_DRIVER=influxdb
GNOCCHI_TEST_STORAGE_DRIVERS=file swift ceph
GNOCCHI_TEST_INDEXER_DRIVERS=postgresql mysql
py{27,34}-{postgresql,mysql}-file: GNOCCHI_TEST_STORAGE_DRIVERS=file
py{27,34}-{postgresql,mysql}-swift: GNOCCHI_TEST_STORAGE_DRIVERS=swift
py{27,34}-{postgresql,mysql}-ceph: GNOCCHI_TEST_STORAGE_DRIVERS=ceph
py{27,34}-{postgresql,mysql}-influxdb: GNOCCHI_TEST_STORAGE_DRIVERS=influxdb
py{27,34}-postgresql-{file,swift,ceph,influxdb}: GNOCCHI_TEST_INDEXER_DRIVERS=postgresql
py{27,34}-mysql-{file,swift,ceph,influxdb}: GNOCCHI_TEST_INDEXER_DRIVERS=mysql
commands =
doc8 --ignore-path doc/source/rest.rst doc/source
{toxinidir}/generate-config-file.sh
{toxinidir}/run-tests.sh {posargs}
[testenv:bashate]
deps = bashate