From 156ca47f92aba711c4c6a34d53003d2192886b86 Mon Sep 17 00:00:00 2001 From: Anton Arefiev Date: Wed, 26 Aug 2015 14:35:09 +0300 Subject: [PATCH] Fix functional tests job Functional tests job are broken. This change proposes add post test hook in ironicclient, which will be executed inside post_test_hook function in devstack gate. The benefit from this approach is it will immediately pick up proposed fixes on ironicclient side and runs job. It allows us to see the change breaks tests or not w/o merging related changes. post_test_hook runs functional tests and generate testr results (original implementation was stolen from novaclient). Closes-Bug: #1491778 Change-Id: Id476430d01a57a83bd4ee42b2d03e681835dfec3 --- .../tests/functional/hooks/post_test_hook.sh | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 ironicclient/tests/functional/hooks/post_test_hook.sh diff --git a/ironicclient/tests/functional/hooks/post_test_hook.sh b/ironicclient/tests/functional/hooks/post_test_hook.sh new file mode 100755 index 000000000..418523c6e --- /dev/null +++ b/ironicclient/tests/functional/hooks/post_test_hook.sh @@ -0,0 +1,49 @@ +#!/bin/bash -xe + +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +# This script is executed inside post_test_hook function in devstack gate. + +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 /usr/os-testr-env/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 +} + +export IRONICCLIENT_DIR="$BASE/new/python-ironicclient" + +sudo chown -R jenkins:stack $IRONICCLIENT_DIR + +cd $IRONICCLIENT_DIR + +# Run tests +echo "Running ironicclient functional test suite" +set +e + +# Only admin credentials needed for ironic api +source $BASE/new/devstack/openrc admin admin + +# Preserve env for OS_ credentials +sudo -E -H -u jenkins ./tools/run_functional.sh +EXIT_CODE=$? +set -e + +# Collect and parse result +generate_testr_results +exit $EXIT_CODE