aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorViktor Tikkanen <viktor.tikkanen@nokia.com>2016-02-11 09:04:30 +0200
committerViktor Tikkanen <viktor.tikkanen@nokia.com>2016-02-11 09:07:44 +0200
commit66df82a76334015e3e2d25ddcc22b343b110320c (patch)
treea55d1771611edfb67704f0b84516ffaac6e05b60
parent188aef4912beee7a8eb87272de1500a1bded99f0 (diff)
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 <viktor.tikkanen@nokia.com>
-rwxr-xr-xdocker/run_tests.sh12
-rw-r--r--docs/userguide/runfunctest.rst5
-rw-r--r--testcases/VIM/OpenStack/CI/libraries/run_tempest.py13
3 files changed, 27 insertions, 3 deletions
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
<test_name> 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
<test_name> 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)