2 ##############################################################################
3 # Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
11 usage="Script to run the tests in Bottlenecks.
14 bash $(basename "$0") [-h|--help] [-s <test suite>] [-c <test case>] [--report] [--cleanup]
17 -h|--help show the help text
18 -s|--teststory run specific test story
19 <test story> one of the following:
20 (rubbos, vstf, posca_factor_test)
21 user can also define their own test story and pass as var to this file,
22 please refer to testsuites/posca/testsuite_story/ for details
23 -c|--testcase run specific test case
24 <test case> one of the following:
25 (posca_factor_system_bandwidth, posca_factor_ping)
26 --cleanup cleanup test dockers runing when test is done (false by default)
27 --report push results to DB (false by default)
31 $(basename "$0") -s posca_factor_test"
33 # Define global variables
34 Bottlenecks_key_dir="/home/opnfv/bottlenecks/utils/infra_setup"
35 POSCA_SUITE="/home/opnfv/bottlenecks/testsuites/posca"
36 POSCA_TESTCASE="/home/opnfv/bottlenecks/testsuites/posca/testcase_cfg"
37 POSCA_TESTSTORY="/home/opnfv/bottlenecks/testsuites/posca/testsuite_story"
43 # Define alias for log printing
45 logger -s -t "bottlenecks.info" "$*"
49 logger -s -t "bottlenecks.error" "$*"
53 # Define check_test function for test case/story list check
54 function check_test(){
59 if [[ "${TEST_LEVEL}" == "testcase" ]]; then
60 TEST_CONFIG="${POSCA_TESTCASE}"
62 if [[ "${TEST_LEVEL}" == "teststory" ]]; then
63 TEST_CONFIG="${POSCA_TESTSTORY}"
65 info "Invalid name for test level: testcase or teststory"
69 # Find all the test case yaml files first
70 find $TEST_CONFIG -name "*yaml" > /tmp/all_tests.yaml
71 all_tests_insuite=`cat /tmp/all_tests.yaml | awk -F '/' '{print $NF}' | awk -F '.' '{print $1}'`
72 all_tests=(${all_tests_insuite})
74 if [ "${TEST_NAME}" != "" ]; then
75 TEST_EXEC=(${TEST_NAME// /})
76 for i in "${TEST_EXEC[@]}"; do
77 if [[ " ${all_tests[*]} " != *" $i "* ]]; then
78 error "Unknown $TEST_LEVEL: $i. Available $TEST_LEVEL are: ${all_tests[@]}"
81 info "Tests to execute: ${TEST_NAME}."
83 error "Lack of $TEST_LEVEL name"
87 # Define run test function
94 info "After OPNFV Colorado release, Rubbos testsuite is not updating anymore.
95 This entrance for running Rubbos within Bottlenecks is no longer supported.
96 This testsuite is also not in the release plan with Bottlenecks since then.
97 If you want to run Rubbos, please refer to earlier releases."
100 info "After OPNFV Colorado release, VSTF testsuite is not updating anymore.
101 This entrance for running VSTF within Bottlenecks is no longer supported.
102 This testsuite is also not in the release plan with Bottlenecks since then.
103 If you want to run VSTF, please refer to earlier releases."
106 info "Running posca $test_level: $test_exec"
107 python ${POSCA_SUITE}/../run_testsuite.py $test_level $test_exec $REPORT
112 # Process input variables
137 echo "unkown option $1 $2"
144 # Clean up related docker images
145 #bash ${BASEDIR}/docker/docker_cleanup.sh -d bottlenecks --debug
146 #bash ${BASEDIR}/docker/docker_cleanup.sh -d yardstick --debug
147 #bash ${BASEDIR}/docker/docker_cleanup.sh -d kibana --debug
148 #bash ${BASEDIR}/docker/docker_cleanup.sh -d elasticsearch --debug
149 #bash ${BASEDIR}/docker/docker_cleanup.sh -d influxdb --debug
152 if [ "${teststory}" != "" ]; then
153 test_level="teststory"
154 teststory_exec=(${teststory//,/ })
155 check_test $test_level $teststory
156 for i in "${teststory_exec[@]}"; do
157 info "Start to run test story $i"
162 if [ "${testcase}" != "" ]; then
163 test_level="testcase"
164 testcase_exec=(${testcase//,/ })
165 check_test $test_level $testcase
166 for i in "${testcase_exec[@]}"; do
167 info "Start to run test case $i"
172 # Clean up testing dockers
173 if [[ ${cleanup} == true ]]; then
174 info "Cleaning up docker-compose images and dockers"
175 docker-compose -f $BASEDIR/docker/bottleneck-compose/docker-compose.yml down --rmi all
176 bash ${BASEDIR}/docker/docker_cleanup.sh -d influxdb --debug
177 bash ${BASEDIR}/docker/docker_cleanup.sh -d bottlenecks --debug