neutron-lbaas/neutron_lbaas/tests/contrib/post_test_hook.sh
Doug Wiegley 53f34e39e3 Expand gate hooks to allow for more than just octavia testing
If we are going to continue to tweak the namespace driver, we should
really be testing it. An experimental api job using it will be added
to project-config as well.

Change-Id: Ie0d8f1a2a4071d0ee38a1688253a04f3d7330acb
2016-02-23 15:36:34 -06:00

112 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
set -xe
NEUTRON_LBAAS_DIR="$BASE/new/neutron-lbaas"
TEMPEST_CONFIG_DIR="$BASE/new/tempest/etc"
SCRIPTS_DIR="/usr/os-testr-env/bin"
OCTAVIA_DIR="$BASE/new/octavia"
# Sort out our gate args
. `dirname "$0"`/decode_args.sh
LBAAS_VERSION=$lbaasversion
LBAAS_TEST=$lbaasenv
if [ "$LBAAS_VERSION" = "lbaasv1" ]; then
testenv="apiv1"
else
testenv="apiv2"
case "$LBAAS_TEST" in
api)
# Temporarily only test a small subset
# Remove this once zuul/layout.yaml is updated
test_subset="load_balancers"
;;
minimal)
# Temporarily just do the happy path
test_subset="neutron_lbaas.tests.tempest.v2.api.test_load_balancers_non_admin.LoadBalancersTestJSON.test_create_load_balancer(?!_) "
test_subset+="neutron_lbaas.tests.tempest.v2.api.test_load_balancers_non_admin.LoadBalancersTestJSON.test_get_load_balancer_stats(?!_) "
test_subset+="neutron_lbaas.tests.tempest.v2.api.test_load_balancers_non_admin.LoadBalancersTestJSON.test_get_load_balancer_status_tree(?!_) "
test_subset+="neutron_lbaas.tests.tempest.v2.api.test_listeners_non_admin.ListenersTestJSON.test_create_listener(?!_) "
test_subset+="neutron_lbaas.tests.tempest.v2.api.test_pools_non_admin.TestPools.test_create_pool(?!_) "
test_subset+="neutron_lbaas.tests.tempest.v2.api.test_members_non_admin.MemberTestJSON.test_add_member(?!_) "
test_subset+="neutron_lbaas.tests.tempest.v2.api.test_health_monitors_non_admin.TestHealthMonitors.test_create_health_monitor(?!_)"
;;
healthmonitor)
test_subset="health_monitor"
;;
listener)
test_subset="listeners"
;;
loadbalancer)
test_subset="load_balancers"
;;
member)
test_subset="members"
;;
pool)
test_subset="pools"
;;
scenario)
testenv="scenario"
;;
*)
testenv=${LBAAS_TEST:-"apiv2"}
;;
esac
fi
function generate_testr_results {
# Give job user rights to access tox logs
sudo -H -u $owner chmod o+rw .
sudo -H -u $owner chmod o+rw -R .testrepository
if [ -f ".testrepository/0" ] ; then
subunit-1to2 < .testrepository/0 > ./testrepository.subunit
$SCRIPTS_DIR/subunit2html ./testrepository.subunit testr_results.html
gzip -9 ./testrepository.subunit
gzip -9 ./testr_results.html
sudo mv ./*.gz /opt/stack/logs/
fi
}
owner=tempest
# Set owner permissions according to job's requirements.
cd $NEUTRON_LBAAS_DIR
sudo chown -R $owner:stack $NEUTRON_LBAAS_DIR
if [ "$lbaasdriver" = "octavia" ]; then
sudo chown -R $owner:stack $OCTAVIA_DIR
fi
sudo_env=" OS_TESTR_CONCURRENCY=1"
# Configure the api and scenario tests to use the tempest.conf set by devstack
sudo_env+=" TEMPEST_CONFIG_DIR=$TEMPEST_CONFIG_DIR"
if [ "$testenv" = "apiv2" ]; then
sudo_env+=" OS_TEST_PATH=$NEUTRON_LBAAS_DIR/neutron_lbaas/tests/tempest/v2/api"
elif [ "$testenv" = "apiv1" ]; then
sudo_env+=" OS_TEST_PATH=$NEUTRON_LBAAS_DIR/neutron_lbaas/tests/tempest/v1/api"
elif [ "$testenv" = "scenario" ]; then
sudo_env+=" OS_TEST_PATH=$NEUTRON_LBAAS_DIR/neutron_lbaas/tests/tempest/v2/scenario"
else
echo "ERROR: unsupported testenv: $testenv"
exit 1
fi
# Run tests
echo "Running neutron lbaas $testenv test suite"
set +e
sudo -H -u $owner $sudo_env tox -e $testenv -- $test_subset
# sudo -H -u $owner $sudo_env testr init
# sudo -H -u $owner $sudo_env testr run
testr_exit_code=$?
set -e
# Collect and parse results
generate_testr_results
exit $testr_exit_code