From 95f095607986ee7af8b78ac1ab06bee6466be0a4 Mon Sep 17 00:00:00 2001 From: liusheng Date: Thu, 13 Oct 2016 17:05:34 +0800 Subject: [PATCH] Add gate hooks for functional tests Change-Id: Ie7777f1c916b6d93c9041c7473513de6e7967b8b --- devstack/gate/gate_hook.sh | 29 +++++++++++ .../tests/functional/hooks/post_test_hook.sh | 50 +++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 devstack/gate/gate_hook.sh create mode 100644 nimble/tests/functional/hooks/post_test_hook.sh diff --git a/devstack/gate/gate_hook.sh b/devstack/gate/gate_hook.sh new file mode 100644 index 00000000..c4e3e85f --- /dev/null +++ b/devstack/gate/gate_hook.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# +# 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 gate_hook function in devstack gate. + +# TODO(liusheng): will enable ironic services if add more functional tests +ENABLED_SERVICES="key" + +# The backend is passed in by the job as the first and only argument +export DEVSTACK_GATE_INSTALL_TESTONLY=1 +export DEVSTACK_GATE_NO_SERVICES=1 +export DEVSTACK_GATE_TEMPEST=0 +export DEVSTACK_GATE_EXERCISES=0 +export KEEP_LOCALRC=1 + +export ENABLED_SERVICES + +$BASE/new/devstack-gate/devstack-vm-gate.sh diff --git a/nimble/tests/functional/hooks/post_test_hook.sh b/nimble/tests/functional/hooks/post_test_hook.sh new file mode 100644 index 00000000..9b859327 --- /dev/null +++ b/nimble/tests/functional/hooks/post_test_hook.sh @@ -0,0 +1,50 @@ +#!/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 NIMBLE_DIR="$BASE/new/nimble" + +# Go to the nimble dir +cd $NIMBLE_DIR + +if [[ -z "$STACK_USER" ]]; then + export STACK_USER=stack +fi + +sudo chown -R $STACK_USER:stack $NIMBLE_DIR + +# Run tests +echo "Running nimble functional test suite" +set +e + +sudo -E -H -u ${STACK_USER:-${USER}} tox -efunctional +EXIT_CODE=$? +set -e + +# Collect and parse result +generate_testr_results +exit $EXIT_CODE