Publish cross-test runner as part of oslotest

Move the latest version of run_cross_test.sh from the incubator here to
oslotest and rename it so we can publish it as a tool that comes with
oslotest instead of syncing it into the other projects.

Change-Id: I1aec3bda9e46b1667cfd7b68aa2d654327d1c8fb
This commit is contained in:
Doug Hellmann 2015-01-30 12:15:19 -05:00
parent baf76c5986
commit e50b8b390e
2 changed files with 34 additions and 3 deletions

View File

@ -24,6 +24,7 @@ packages =
oslotest
scripts =
tools/oslo_debug_helper
tools/oslo_run_cross_tests
[global]
setup-hooks =

View File

@ -1,12 +1,37 @@
#!/bin/bash
#
# Run cross-project tests
#
# Usage:
#
# oslo_run_cross_tests project_dir venv
# Fail the build if any command fails
set -e
project_dir="$1"
venv="$2"
shift
venv="$1"
shift
posargs="$*"
if [ -z "$project_dir" -o -z "$venv" ]
then
cat - <<EOF
ERROR: Missing argument(s)
Usage:
$0 PROJECT_DIR VIRTUAL_ENV [POSARGS]
Example, run the python 2.7 tests for python-neutronclient:
$0 /opt/stack/python-neutronclient py27
$0 /opt/stack/nova py27 xenapi
EOF
exit 1
fi
# Set up the virtualenv without running the tests
(cd $project_dir && tox --notest -e $venv)
@ -15,18 +40,23 @@ tox_envbin=$project_dir/.tox/$venv/bin
our_name=$(python setup.py --name)
# Build the egg-info, including the source file list,
# so we install all of the files, even if the package
# list or name has changed.
python setup.py egg_info
# Replace the pip-installed package with the version in our source
# tree. Look to see if we are already installed before trying to
# uninstall ourselves, to avoid failures from packages that do not use us
# yet.
if $tox_envbin/pip freeze | grep -q $our_name
then
$tox_envbin/pip uninstall -y $our_name
$tox_envbin/pip uninstall -y $our_name || echo "Ignoring error"
fi
$tox_envbin/pip install -U .
# Run the tests
(cd $project_dir && tox -e $venv)
(cd $project_dir && tox -e $venv -- $posargs)
result=$?