diff --git a/openstack-common.conf b/openstack-common.conf index 932266ea7..24d2fc0fc 100644 --- a/openstack-common.conf +++ b/openstack-common.conf @@ -7,6 +7,8 @@ module=jsonutils module=timeutils module=uuidutils +script=tools/run_cross_tests.sh + # The base module to hold the copy of openstack.common base=taskflow diff --git a/tools/run_cross_tests.sh b/tools/run_cross_tests.sh new file mode 100755 index 000000000..5e7bc1189 --- /dev/null +++ b/tools/run_cross_tests.sh @@ -0,0 +1,91 @@ +#!/bin/bash +# +# Run cross-project tests +# +# Usage: +# +# run_cross_tests.sh project_dir venv + +# Fail the build if any command fails +set -e + +project_dir="$1" +venv="$2" + +if [ -z "$project_dir" -o -z "$venv" ] +then + cat - < ./subunit_log.txt + fi + .tox/$venv/bin/python /usr/local/jenkins/slave_scripts/subunit2html.py ./subunit_log.txt testr_results.html + gzip -9 ./subunit_log.txt + gzip -9 ./testr_results.html + + export PYTHON=.tox/$venv/bin/python + set -e + rancount=$(.tox/$venv/bin/testr last | sed -ne 's/Ran \([0-9]\+\).*tests in.*/\1/p') + if [ "$rancount" -eq "0" ] ; then + echo + echo "Zero tests were run. At least one test should have been run." + echo "Failing this test as a result" + echo + exit 1 + fi +fi + +# If we make it this far, report status based on the tests that were +# run. +exit $result