Merge "Add control to redirect rally stderr"
[functest.git] / docker / run_tests.sh
index 00d5348..6ae12b9 100755 (executable)
@@ -2,51 +2,67 @@
 
 #
 # Author: Jose Lausuch (jose.lausuch@ericsson.com)
-#
+#         Morgan Richomme (morgan.richomme@orange.com)
 # Installs the Functest framework within the Docker container
 # and run the tests automatically
 #
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
 
 usage="Script to trigger the tests automatically.
 
 usage:
-    bash $(basename "$0") [--offline] [-h|--help] [-t <test_name>]
+    bash $(basename "$0") [-h|--help] [-t <test_name>]
 
 where:
-    -o|--offline      optional offline mode (experimental)
     -h|--help         show this help text
     -r|--report       push results to database (false by default)
     -t|--test         run specific set of tests
-      <test_name>     one or more of the following: vping,odl,rally,tempest,vims. Separated by comma.
+      <test_name>     one or more of the following: vping,odl,rally,tempest,vims,onos,promise,ovno. Separated by comma.
 
 
 examples:
     $(basename "$0")
     $(basename "$0") --test vping,odl
-    $(basename "$0") --offline -t tempest,rally"
+    $(basename "$0") -t tempest,rally"
 
 
 # Support for Functest offline
 # NOTE: Still not 100% working when running the tests
 offline=false
 report=""
-arr_test=(vping odl tempest vims rally)
+# Get the list of runnable tests
+# Check if we are in CI mode
+
 
 function clean_openstack(){
+    echo -e "\n\nCleaning Openstack environment..."
     python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/clean_openstack.py \
-        --debug ${FUNCTEST_REPO_DIR}/
+        --debug
+    echo -e "\n\n"
 }
 
 function run_test(){
     test_name=$1
+    echo ""
     echo "----------------------------------------------"
-    echo "------------- Running $i test case  "
+    echo "  Running test cases: $i"
     echo "----------------------------------------------"
+    echo ""
     case $test_name in
         "vping")
             info "Running vPing test..."
+            python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing2.py \
+                --debug ${report}
+        ;;
+        "vping_userdata")
+            info "Running vPing test using userdata/cloudinit.... "
             python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing.py \
-                --debug ${FUNCTEST_REPO_DIR}/ ${report}
+                --debug ${report}
         ;;
         "odl")
             info "Running ODL test..."
@@ -58,11 +74,11 @@ function run_test(){
             if [ $INSTALLER_TYPE == "fuel" ]; then
                 odl_port=8282
             elif [ $INSTALLER_TYPE == "apex" ]; then
-                pass
+                :
             elif [ $INSTALLER_TYPE == "joid" ]; then
-                pass
+                :
             elif [ $INSTALLER_TYPE == "compass" ]; then
-                pass
+                :
             else
                 error "INSTALLER_TYPE not valid."
                 exit 1
@@ -77,9 +93,9 @@ function run_test(){
             fi
         ;;
         "tempest")
-            info "Running Tempest smoke tests..."
+            info "Running Tempest tests..."
             python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_tempest.py \
-                --debug ${FUNCTEST_REPO_DIR}/ -m smoke ${report}
+                --debug -m custom ${report}
             # save tempest.conf for further troubleshooting
             tempest_conf="${RALLY_VENV_DIR}/tempest/for-deployment-*/tempest.conf"
             if [ -f ${tempest_conf} ]; then
@@ -90,14 +106,17 @@ function run_test(){
         "vims")
             info "Running vIMS test..."
             python ${FUNCTEST_REPO_DIR}/testcases/vIMS/CI/vIMS.py \
-                --debug ${FUNCTEST_REPO_DIR}/ ${report}
+                --debug ${report}
             clean_openstack
         ;;
         "rally")
             info "Running Rally benchmark suite..."
+            cinder type-create volume-test #provisional
             python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_rally.py \
-                --debug ${FUNCTEST_REPO_DIR}/ all ${report}
+                --debug all ${report}
+            cinder type-delete $(cinder type-list|grep test|awk '{print $2}')
             clean_openstack
+
         ;;
         "bgpvpn_template")
             info "Running BGPVPN Tempest test case..."
@@ -111,6 +130,23 @@ function run_test(){
             #   cp ${BGPVPN_REPO_DIR}/networking_bgpvpn_tempest/<whatever you need> \
             #       ${tempest_dir}/tempest/api/bgpvpn/
             #   ${tempest_dir}/run_tempest.sh tempest.api.bgpvpn.<test_case_name>
+       ;;
+        "onos")
+            info "Running ONOS test case..."
+            python ${FUNCTEST_REPO_DIR}/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py
+      ;;
+        "promise")
+            info "Running PROMISE test case..."
+            # TODO
+        ;;
+        "doctor")
+            info "Running Doctor test..."
+            python ${FUNCTEST_REPO_DIR}/testcases/features/doctor.py
+        ;;
+        "ovno")
+            info "Running OpenContrail test..."
+            # TODO
+        ;;
     esac
 }
 
@@ -143,6 +179,17 @@ while [[ $# > 0 ]]
     shift # past argument or value
 done
 
+
+tests_file="/home/opnfv/functest/conf/testcase-list.txt"
+if [[ -n "$DEPLOY_SCENARIO" && "$DEPLOY_SCENARIO" != "none" ]] &&\
+   [[ -f $tests_file ]]; then
+    echo "testcase-list.txt content:";cat $test_file; echo ""
+    arr_test=($(cat $tests_file))
+else
+    arr_test=(vping tempest vims rally)
+fi
+echo "arr_test: "${arr_test[@]}
+
 BASEDIR=`dirname $0`
 source ${BASEDIR}/common.sh
 
@@ -175,21 +222,13 @@ fi
 info "Sourcing Credentials ${FUNCTEST_CONF_DIR}/openstack.creds to run the tests.."
 source ${FUNCTEST_CONF_DIR}/openstack.creds
 
-# Check OpenStack
-info "Checking that the basic OpenStack services are functional..."
-${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/check_os.sh
-RETVAL=$?
-if [ $RETVAL -ne 0 ]; then
-    exit 1
-fi
-
 # Run tests
 if [ "${TEST}" != "" ]; then
     for i in "${arr_test_exec[@]}"; do
         run_test $i
     done
 else
-    info "Executing all the tests"
+    info "Executing tests..."
     for i in "${arr_test[@]}"; do
         run_test $i
     done