From: Viktor Tikkanen Date: Thu, 11 Feb 2016 07:04:30 +0000 (+0200) Subject: Enadled --serial option for run_tests.sh X-Git-Tag: colorado.1.0~516 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=66df82a76334015e3e2d25ddcc22b343b110320c;p=functest.git Enadled --serial option for run_tests.sh It could be useful to execute e.g. Tempest test cases in a single thread in order to troubleshoot possible concurrency problems. Change-Id: I5e5fc190fb4483ff075a8f837a8d4116ece90c80 Signed-off-by: Viktor Tikkanen --- diff --git a/docker/run_tests.sh b/docker/run_tests.sh index 83806d6f7..0f9e8a30c 100755 --- a/docker/run_tests.sh +++ b/docker/run_tests.sh @@ -22,6 +22,7 @@ where: -h|--help show this help text -r|--report push results to database (false by default) -n|--no-clean do not clean OpenStack resources after test run + -s|--serial run tests in one thread -t|--test run specific set of tests one or more of the following separated by comma: vping_ssh,vping_userdata,odl,rally,tempest,vims,onos,promise,ovno @@ -38,6 +39,8 @@ examples: offline=false report="" clean=true +serial=false + # Get the list of runnable tests # Check if we are in CI mode @@ -86,6 +89,10 @@ function run_test(){ if [ $clean == "false" ]; then clean_flag="-n" fi + serial_flag="" + if [ $serial == "true" ]; then + serial_flag="-s" + fi case $test_name in "vping_ssh") @@ -115,7 +122,7 @@ function run_test(){ "tempest") info "Running Tempest tests..." python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_tempest.py \ - --debug -m $clean_flag custom ${report} + --debug $serial_flag $clean_flag -m custom ${report} # save tempest.conf for further troubleshooting tempest_conf="${RALLY_VENV_DIR}/tempest/for-deployment-*/tempest.conf" if [ -f ${tempest_conf} ]; then @@ -213,6 +220,9 @@ while [[ $# > 0 ]] -n|--no-clean) clean=false ;; + -s|--serial) + serial=true + ;; -t|--test|--tests) TEST="$2" shift diff --git a/docs/userguide/runfunctest.rst b/docs/userguide/runfunctest.rst index 61511413c..364333740 100644 --- a/docs/userguide/runfunctest.rst +++ b/docs/userguide/runfunctest.rst @@ -26,6 +26,7 @@ several options:: -h|--help show this help text -r|--report push results to database (false by default) -n|--no-clean do not clean up OpenStack resources after test run + -s|--serial run tests in one thread -t|--test run specific set of tests one or more of the following separated by comma: vping_ssh,vping_userdata,odl,rally,tempest,vims,onos,promise,ovno @@ -58,6 +59,10 @@ is called once by *prepare_env.sh* when setting up the Functest environment to snapshot all the OpenStack resources (images, networks, volumes, security groups, tenants, users) so that an eventual cleanup does not remove any of this defaults. +The *-s* option forces execution of test cases in a single thread. Currently this +option affects Tempest test cases only and can be used e.g. for troubleshooting +concurrency problems. + The script *$repos_dir/functest/testcases/VIM/OpenStack/CI/libraries/clean_openstack.py* is normally called after a test execution if the *-n* is not specified. It diff --git a/testcases/VIM/OpenStack/CI/libraries/run_tempest.py b/testcases/VIM/OpenStack/CI/libraries/run_tempest.py index 9638a274d..294669182 100644 --- a/testcases/VIM/OpenStack/CI/libraries/run_tempest.py +++ b/testcases/VIM/OpenStack/CI/libraries/run_tempest.py @@ -33,8 +33,14 @@ modes = ['full', 'smoke', 'baremetal', 'compute', 'data_processing', """ tests configuration """ parser = argparse.ArgumentParser() -parser.add_argument("-d", "--debug", help="Debug mode", action="store_true") -parser.add_argument("-m", "--mode", help="Tempest test mode [smoke, all]", +parser.add_argument("-d", "--debug", + help="Debug mode", + action="store_true") +parser.add_argument("-s", "--serial", + help="Run tests in one thread", + action="store_true") +parser.add_argument("-m", "--mode", + help="Tempest test mode [smoke, all]", default="smoke") parser.add_argument("-r", "--report", help="Create json result file", @@ -292,6 +298,9 @@ def main(): else: MODE = "--set "+args.mode + if args.serial: + MODE = "--concur 1 "+MODE + if not os.path.exists(TEMPEST_RESULTS_DIR): os.makedirs(TEMPEST_RESULTS_DIR)