Enadled --serial option for run_tests.sh 75/9775/1
authorViktor Tikkanen <viktor.tikkanen@nokia.com>
Thu, 11 Feb 2016 07:04:30 +0000 (09:04 +0200)
committerViktor Tikkanen <viktor.tikkanen@nokia.com>
Thu, 11 Feb 2016 07:07:44 +0000 (09:07 +0200)
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>
docker/run_tests.sh
docs/userguide/runfunctest.rst
testcases/VIM/OpenStack/CI/libraries/run_tempest.py

index 83806d6..0f9e8a3 100755 (executable)
@@ -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
index 6151141..3643337 100644 (file)
@@ -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
index 9638a27..2946691 100644 (file)
@@ -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)