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 "Composing up dockers"
107 docker-compose -f /home/opnfv/bottlenecks/docker/bottleneck-compose/docker-compose.yml up -d
108 info "Pulling tutum/influxdb for yardstick"
109 docker pull tutum/influxdb:0.13
111 info "Running posca $test_level: $test_exec"
112 docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SUITE}/run_posca.py $test_level $test_exec $REPORT
117 # Process input variables
142 echo "unkown option $1 $2"
149 # Clean up related docker images
150 #bash ${BASEDIR}/docker/docker_cleanup.sh -d bottlenecks --debug
151 #bash ${BASEDIR}/docker/docker_cleanup.sh -d yardstick --debug
152 #bash ${BASEDIR}/docker/docker_cleanup.sh -d kibana --debug
153 #bash ${BASEDIR}/docker/docker_cleanup.sh -d elasticsearch --debug
154 #bash ${BASEDIR}/docker/docker_cleanup.sh -d influxdb --debug
157 if [ "${teststory}" != "" ]; then
158 test_level="teststory"
159 teststory_exec=(${teststory//,/ })
160 check_test $test_level $teststory
161 for i in "${teststory_exec[@]}"; do
162 info "Start to run test story $i"
167 if [ "${testcase}" != "" ]; then
168 test_level="testcase"
169 testcase_exec=(${testcase//,/ })
170 check_test $test_level $testcase
171 for i in "${testcase_exec[@]}"; do
172 info "Start to run test case $i"
177 # Clean up testing dockers
178 if [[ ${cleanup} == true ]]; then
179 info "Cleaning up docker-compose images and dockers"
180 docker-compose -f $BASEDIR/docker/bottleneck-compose/docker-compose.yml down --rmi all
181 bash ${BASEDIR}/docker/docker_cleanup.sh -d influxdb --debug
182 bash ${BASEDIR}/docker/docker_cleanup.sh -d bottlenecks --debug