better functional test collection

straight up copied from glanceclient [1]

[1] https://github.com/openstack/python-glanceclient/blob/master/glanceclient/tests/functional/hooks/post_test_hook.sh

Change-Id: I9fad6d5c86831a2b872f3a61d4c7fa7383fc1266
This commit is contained in:
Steve Martinelli 2016-06-15 14:25:51 -04:00
parent 20ad61b9d4
commit eba1bc04f4

View File

@ -6,15 +6,38 @@
# For more information refer to:
# http://docs.openstack.org/developer/python-openstackclient/
set -xe
function generate_testr_results {
if [ -f .testrepository/0 ]; then
sudo .tox/functional/bin/testr last --subunit > $WORKSPACE/testrepository.subunit
sudo mv $WORKSPACE/testrepository.subunit $BASE/logs/testrepository.subunit
sudo .tox/functional/bin/subunit2html $BASE/logs/testrepository.subunit $BASE/logs/testr_results.html
sudo gzip -9 $BASE/logs/testrepository.subunit
sudo gzip -9 $BASE/logs/testr_results.html
sudo chown jenkins:jenkins $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
sudo chmod a+r $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
fi
}
OPENSTACKCLIENT_DIR=$(cd $(dirname "$0") && pwd)
sudo chown -R jenkins:stack $OPENSTACKCLIENT_DIR
# Run tests
echo "Running openstackclient functional test suite"
sudo -H -u stack -i <<!
set +e
# Go to the openstackclient dir
cd $OPENSTACKCLIENT_DIR
# Source environment variables to kick things off
source ~stack/devstack/openrc admin admin
echo 'Running tests with:'
env | grep OS_
cd ${OPENSTACKCLIENT_DIR}
tox -e functional
!
env | grep OS
# Preserve env for OS_ credentials
sudo -E -H -u jenkins tox -efunctional
EXIT_CODE=$?
set -e
# Collect and parse result
generate_testr_results
exit $EXIT_CODE