aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xci/exec_test.sh17
-rw-r--r--ci/run_tests.py23
-rw-r--r--ci/tier_handler.py3
3 files changed, 23 insertions, 20 deletions
diff --git a/ci/exec_test.sh b/ci/exec_test.sh
index 2e16fbb3..c0a6841c 100755
--- a/ci/exec_test.sh
+++ b/ci/exec_test.sh
@@ -66,11 +66,6 @@ function odl_tests(){
}
function run_test(){
test_name=$1
- echo -e "\n\n\n\n"
- echo "----------------------------------------------"
- echo " Running test case: ${test_name}"
- echo "----------------------------------------------"
- echo ""
serial_flag=""
if [ $serial == "true" ]; then
serial_flag="-s"
@@ -78,21 +73,17 @@ function run_test(){
case $test_name in
"healthcheck")
- echo "Running health check test..."
${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/healthcheck.sh
;;
"vping_ssh")
- echo "Running vPing-SSH test..."
python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing_ssh.py \
$debug $report
;;
"vping_userdata")
- echo "Running vPing-userdata test... "
python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing_userdata.py \
$debug $report
;;
"odl")
- echo "Running ODL test..."
odl_tests
ODL_PORT=$odl_port ODL_IP=$odl_ip KEYSTONE_IP=$keystone_ip NEUTRON_IP=$neutron_ip USR_NAME=$usr_name PASS=$password \
${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh
@@ -106,7 +97,6 @@ function run_test(){
fi
;;
"tempest")
- echo "Running Tempest tests..."
python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_tempest.py \
$debug $serial_flag $clean_flag -m smoke $report
# save tempest.conf for further troubleshooting
@@ -116,18 +106,15 @@ function run_test(){
fi
;;
"vims")
- echo "Running vIMS test..."
python ${FUNCTEST_REPO_DIR}/testcases/vIMS/CI/vIMS.py \
$debug $clean_flag $report
;;
"rally")
- echo "Running Rally benchmark suite..."
python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_rally-cert.py \
$debug $clean_flag all $report
;;
"bgpvpn")
- echo "Running BGPVPN Tempest test case..."
pushd ${repos_dir}/bgpvpn/
pip install --no-deps -e .
popd
@@ -146,7 +133,6 @@ bgpvpn = True" >> /etc/tempest/tempest.conf
popd
;;
"onos")
- echo "Running ONOS test case..."
if [ $INSTALLER_TYPE == "joid" ]; then
python ${FUNCTEST_REPO_DIR}/testcases/Controllers/ONOS/Teston/CI/onosfunctest.py -i joid
else
@@ -154,16 +140,13 @@ bgpvpn = True" >> /etc/tempest/tempest.conf
fi
;;
"promise")
- echo "Running PROMISE test case..."
python ${FUNCTEST_REPO_DIR}/testcases/features/promise.py $debug $report
sleep 10 # to let the instances terminate
;;
"doctor")
- echo "Running Doctor test..."
python ${FUNCTEST_REPO_DIR}/testcases/features/doctor.py
;;
"ovno")
- echo "Running OpenContrail test..."
${repos_dir}/ovno/Testcases/RunTests.sh
;;
esac
diff --git a/ci/run_tests.py b/ci/run_tests.py
index 3b3ed2c4..10621440 100644
--- a/ci/run_tests.py
+++ b/ci/run_tests.py
@@ -10,6 +10,7 @@
import argparse
import os
+import subprocess
import sys
import functest.ci.tier_builder as tb
@@ -80,14 +81,26 @@ def run_test(test):
flags += " -r"
cmd = ("%s%s" % (EXEC_SCRIPT, flags))
- logger.debug("Executing command %s" % cmd)
-
+ logger.debug("Executing command '%s'" % cmd)
print_separator("")
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
+
+ while p.poll() is None:
+ line = p.stdout.readline().rstrip()
+ logger.debug(line)
+
+ if p != 0:
+ logger.error("The command '%s' failed. Cleaning and exiting." % cmd)
+ if CLEAN_FLAG:
+ cleanup()
+ sys.exit(1)
+
if CLEAN_FLAG:
cleanup()
+
def run_tier(tier):
print_separator("#")
logger.info("Running tier '%s'" % tier.get_name())
@@ -98,7 +111,11 @@ def run_tier(tier):
def run_all(tiers):
- logger.debug("Tiers to be executed:\n\n%s" % tiers)
+ logger.debug("Tiers to be executed:")
+ for tier in tiers.get_tiers():
+ logger.info("\n - %s. %s:\n\t%s"
+ % (tier.get_order(), tier.get_name(), tier.get_tests()))
+
for tier in tiers.get_tiers():
run_tier(tier)
diff --git a/ci/tier_handler.py b/ci/tier_handler.py
index 58182111..9b444b7c 100644
--- a/ci/tier_handler.py
+++ b/ci/tier_handler.py
@@ -50,6 +50,9 @@ class Tier:
def get_name(self):
return self.name
+ def get_order(self):
+ return self.order
+
def __str__(self):
lines = []
line_max = 50