X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=run_tests.sh;h=f6744bf1e623325d6243f1767e7f12cfaa01c293;hb=8a80ab6d0991efc41e45ab8293a8572efb331072;hp=42d42e2b1e6c7da880cf53d5be80f6c59fc25eff;hpb=4f7e0f0d057c7b92c979e9e1d7a55f84a2ff7091;p=bottlenecks.git diff --git a/run_tests.sh b/run_tests.sh index 42d42e2b..f6744bf1 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -11,91 +11,64 @@ usage="Script to run the tests in bottlenecks auto. usage: - bash $(basename "$0") [-h|--help] [-s ] + bash $(basename "$0") [-h|--help] [-s ] [-c ] where: -h|--help show the help text -r|--report push results to DB(true by default) - -s|--suite run specific test suite - one of the following: - rubbos, vstf + -s|--teststory run specific test story + one of the following: + (rubbos, vstf, posca_factor_test) + user can also define their own test story and pass as var to this file, + please refer to testsuites/posca/testsuite_story/ for details + -c|--testcase run specific test case + one of the following: + (posca_factor_system_bandwidth, posca_factor_ping) examples: $(basename "$0") - $(basename "$0") -s rubbos" + $(basename "$0") -s posca_factor_test" -report=true +Bottlenecks_key_dir="/home/opnfv/bottlenecks/utils/infra_setup" +POSCA_SCRIPT="/home/opnfv/bottlenecks/testsuites/posca" +SUITE_PREFIX="/home/opnfv/bottlenecks/testsuites/posca/testcase_cfg" -arr_test_suite=(rubbos vstf) +report=true -function check_testcase(){ +#TO-DO add auto-find for test story as for test case +all_test_story=(rubbos vstf posca_factor_test) - check_suite="$1" - case $check_suite in - "-rubbos") - $SUITE_PREFIX=$SUITE_PREFIX_CONFIG/rubbos/testcase_cfg - ;; - "-vstf") - $SUITE_PREFIX=$SUITE_PREFIX_CONFIG/vstf/testcase_cfg - ;; - esac +find $SUITE_PREFIX -name "*yaml" > /tmp/all_testcases.yaml +all_testcases_posca=`cat /tmp/all_testcases.yaml | awk -F '/' '{print $NF}' | awk -F '.' '{print $1}'` +all_test_case=(${all_testcases_posca}) - TEST_CASE=$2 - - #find all the test case yaml files first - find $SUITE_PREFIX -name "*yaml" > /tmp/all_testcases.yaml - all_testcases_insuite=`cat /tmp/all_testcases.yaml | awk -F '/' '{print $NF}' | awk -F '.' '{print $1}'` - all_testcases=(${all_testcases_insuite}) - - if [ "${TEST_CASE}" != "" ]; then - testcase_exec=(${TEST_CASE// /}) - for i in "${testcase_exec[@]}"; do - if [[ " ${all_test_cases[*]} " != *" $i "* ]]; then - error "unknown test case: $i. available test cases are: ${all_test_cases[@]}" - fi - done - info "tests to execute: ${TEST_CASE}." - else - error "lack of testcase name" - fi -} function run_test(){ - test_suite=$1 - echo "Running test suite $test_suite" + test_exec=$1 - case $test_suite in + case $test_exec in "rubbos") - info "Running rubbos test suite" - test_file="/home/opnfv/bottlenecks/testsuites/rubbos/testsuite_story/rubbos_story1" - if [[ -f $test_file ]]; then - testcases=($(cat $test_file)) - else - error "no rubbos test suite file" - fi - for i in "${testcases[@]}"; do - #check if the testcase is legal or not - check_testcase -rubbos $i - #adjust config parameters, different test suite has different methods, take rubbos as an example - #run test case, different test suite has different methods - file={$BASEDIR}/testsuites/rubbos/testcase_cfg/{$i}.yaml - python /home/opnfv/bottlenecks/testsuites/rubbos/run_rubbos.py -c $file - done + info "After OPNFV Colorado release, Rubbos testsuite is not updating anymore. + This entrance for running Rubbos within Bottlenecks is no longer supported. + This testsuite is also not in the release plan with Bottlenecks since then. + If you want to run Rubbos, please refer to earlier releases." ;; "vstf") - info "Running vstf test suite" - test_file="/home/opnfv/bottlenecks/testsuite/vstf/testsuite_story/vstf_story1" - if [[ -f $test_file ]]; then - testcases=($(cat $test_file)) - else - error "no vstf test suite file " - fi - for i in "${testcases[@]}"; do - #check if the testcase is legal or not - check_testcase -vstf $i - #adjust config parameters - #run test case - done + info "After OPNFV Colorado release, VSTF testsuite is not updating anymore. + This entrance for running VSTF within Bottlenecks is no longer supported. + This testsuite is also not in the release plan with Bottlenecks since then. + If you want to run VSTF, please refer to earlier releases." + ;; + *) + info "Composing up dockers" + docker-compose -f /home/opnfv/bottlenecks/docker/bottleneck-compose/docker-compose.yml up -d + info "Pulling tutum/influxdb for yardstick" + docker pull tutum/influxdb:0.13 +# info "Copying testing scripts to docker" +# docker cp /home/opnfv/bottlenecks/run_posca.sh bottleneckcompose_bottlenecks_1:/home/opnfv/bottlenecks + sleep 5 + info "Running posca test story: $test_exec" + docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py $test_level $test_exec ;; esac } @@ -112,8 +85,12 @@ while [[ $# > 0 ]] -r|--report) report="-r" ;; - -s|--suite) - SUITE="$2" + -s|--teststory) + teststory="$2" + shift + ;; + -c|--testcase) + testcase="$2" shift ;; *) @@ -127,20 +104,51 @@ done BASEDIR=`dirname $0` source ${BASEDIR}/common.sh +#Add random key generation +if [ ! -d $Bottlenecks_key_dir/bottlenecks_key ]; then + mkdir $Bottlenecks_key_dir/bottlenecks_key +else + rm -rf $Bottlenecks_key_dir/bottlenecks_key + mkdir $Bottlenecks_key_dir/bottlenecks_key +fi +chmod 700 $Bottlenecks_key_dir/bottlenecks_key + +ssh-keygen -t rsa -f $Bottlenecks_key_dir/bottlenecks_key/bottlenecks_key -q -N "" +chmod 600 $Bottlenecks_key_dir/bottlenecks_key/* + #check the test suite name is correct -if [ "${SUITE}" != "" ]; then - suite_exec=(${SUITE//,/ }) - for i in "${suite_exec[@]}"; do - if [[ " ${arr_test_suite[*]} " != *" $i "* ]]; then - error "unkown test suite: $i" +if [ "${teststory}" != "" ]; then + teststory_exec=(${teststory//,/ }) + for i in "${teststory_exec[@]}"; do + if [[ " ${all_test_story[*]} " != *" $i "* ]]; then + error "Unkown test story: $i" + fi + done +fi + +#check the test case name is correct +if [ "${testcase}" != "" ]; then + testcase_exec=(${testcase//,/ }) + for i in "${testcase_exec[@]}"; do + if [[ " ${all_test_case[*]} " != *" $i "* ]]; then + error "Unkown test case: $i" fi done - info "Tests to execute: ${SUITE}" fi #run tests -if [ "${SUITE}" != "" ]; then - for i in "${suite_exec[@]}"; do +if [ "${teststory}" != "" ]; then + test_level="teststory" + for i in "${teststory_exec[@]}"; do + info "Start to run test story $i" run_test $i done fi + +if [ "${testcase}" != "" ]; then + test_level="testcase" + for i in "${testcase_exec[@]}"; do + info "Start to run test case $i" + run_test $i + done +fi \ No newline at end of file