From fa36ceb257c34874fa9169ee5757ec16c8207df6 Mon Sep 17 00:00:00 2001 From: "jose.lausuch" Date: Mon, 2 May 2016 19:05:54 +0200 Subject: Add command to execute the actual tests JIRA: FUNCTEST-190 Run_tests was generating the tests cases to be executed, but not actually running them. This patch also includes a small enhancement to avoid too much output when showing which tiers to be tested. Change-Id: Id70cfe44a8263ce7f598386668a33c67a8961b42 Signed-off-by: jose.lausuch --- ci/exec_test.sh | 17 ----------------- ci/run_tests.py | 23 ++++++++++++++++++++--- ci/tier_handler.py | 3 +++ 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/ci/exec_test.sh b/ci/exec_test.sh index 2e16fbb3f..c0a6841c1 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 3b3ed2c47..106214400 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 581821117..9b444b7ca 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 -- cgit 1.2.3-korg