project-config/jenkins/scripts/run-selenium.sh
Clark Boylan 25541f1ec5 We want to run freese in venv not with tox target
Running the freeze command as posargs to tox targets is unreliable as
those commands may be interpreted as arguments to other commands rather
than as commands themselves. For example `tox -epy26 -- pbr freeze` is
likely pass 'pbr freeze' as test name filters to the py26 test runner.

Instead what we want is to run pbr/pip freeze directly out of the venv
in question.

Change-Id: Iefb8ae4e82dcd31306d03befdc9766f2c1291571
2014-12-23 10:44:10 -08:00

32 lines
927 B
Bash
Executable File

#!/bin/bash -xe
# If a bundle file is present, call tox with the jenkins version of
# the test environment so it is used. Otherwise, use the normal
# (non-bundle) test environment. Also, run pbr freeze on the
# resulting environment at the end so that we have a record of exactly
# what packages we ended up testing.
#
venv=venv
VDISPLAY=99
DIMENSIONS='1280x1024x24'
/usr/bin/Xvfb :${VDISPLAY} -screen 0 ${DIMENSIONS} 2>&1 > /dev/null &
set +e
DISPLAY=:${VDISPLAY} NOSE_WITH_XUNIT=1 tox -e$venv -- \
/bin/bash run_tests.sh -N --only-selenium
result=$?
pkill Xvfb 2>&1 > /dev/null
set -e
[ -e .tox/$venv/bin/pbr ] && freezecmd=pbr || freezecmd=pip
echo "Begin $freezecmd freeze output from test virtualenv:"
echo "======================================================================"
.tox/${venv}/bin/${freezecmd} freeze
echo "======================================================================"
exit $result