summaryrefslogtreecommitdiffstats
path: root/test/functest/results.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/functest/results.py')
-rw-r--r--test/functest/results.py50
1 files changed, 38 insertions, 12 deletions
diff --git a/test/functest/results.py b/test/functest/results.py
index 7c73556..66e399e 100644
--- a/test/functest/results.py
+++ b/test/functest/results.py
@@ -10,6 +10,7 @@
import time
import functest.utils.functest_logger as ft_logger
+import functest.utils.functest_utils as ft_utils
logger = ft_logger.Logger("sdnvpn-results").getLogger()
@@ -25,11 +26,14 @@ class Results(object):
self.num_tests_failed = 0
def get_ping_status(self,
- vm_source, ip_source,
- vm_target, ip_target,
+ vm_source,
+ vm_target,
expected="PASS", timeout=30):
console_log = vm_source.get_console_output()
+ ip_source = vm_source.networks.itervalues().next()[0]
+ ip_target = vm_target.networks.itervalues().next()[0]
+
if "request failed" in console_log:
# Normally, cirros displays this message when userdata fails
logger.debug("It seems userdata is not supported in "
@@ -59,11 +63,11 @@ class Results(object):
% (vm_source.name, vm_target.name))
if expected == "PASS":
logger.debug("[PASS] %s" % msg)
- self.add_to_summary(2, "PASS", test_case_name)
+ self.add_success(test_case_name)
else:
logger.debug("[FAIL] %s" % msg)
self.test_result = "FAIL"
- self.add_to_summary(2, "FAIL", test_case_name)
+ self.add_failure(test_case_name)
logger.debug("\n%s" % last_n_lines)
break
elif ("ping %s KO" % ip_target) in last_n_lines:
@@ -71,11 +75,11 @@ class Results(object):
(vm_source.name, vm_target.name))
if expected == "FAIL":
logger.debug("[PASS] %s" % msg)
- self.add_to_summary(2, "PASS", test_case_name)
+ self.add_success(test_case_name)
else:
logger.debug("[FAIL] %s" % msg)
self.test_result = "FAIL"
- self.add_to_summary(2, "FAIL", test_case_name)
+ self.add_failure(test_case_name)
break
time.sleep(1)
timeout -= 1
@@ -84,7 +88,7 @@ class Results(object):
logger.debug("[FAIL] Timeout reached for '%s'. "
"No ping output captured in the console log"
% vm_source.name)
- self.add_to_summary(2, "FAIL", test_case_name)
+ self.add_failure(test_case_name)
break
def add_to_summary(self, num_cols, col1, col2=""):
@@ -101,10 +105,22 @@ class Results(object):
if col1 == "FAIL":
self.num_tests_failed += 1
- def check_ssh_output(self, vm_source, ip_source,
- vm_target, ip_target,
+ def record_action(self, msg):
+ """Record and log an action and display it in the summary."""
+ logger.info(msg)
+ self.add_to_summary(1, msg)
+
+ def add_failure(self, test):
+ self.add_to_summary(2, "FAIL", test)
+
+ def add_success(self, test):
+ self.add_to_summary(2, "PASS", test)
+
+ def check_ssh_output(self, vm_source, vm_target,
expected, timeout=30):
console_log = vm_source.get_console_output()
+ ip_source = vm_source.networks.itervalues().next()[0]
+ ip_target = vm_target.networks.itervalues().next()[0]
if "request failed" in console_log:
# Normally, cirros displays this message when userdata fails
@@ -129,11 +145,11 @@ class Results(object):
last_n_lines = lines[-5:]
if ("%s %s" % (ip_target, expected)) in last_n_lines:
logger.debug("[PASS] %s" % test_case_name)
- self.add_to_summary(2, "PASS", test_case_name)
+ self.add_success(test_case_name)
break
elif ("%s not reachable" % ip_target) in last_n_lines:
logger.debug("[FAIL] %s" % test_case_name)
- self.add_to_summary(2, "FAIL", test_case_name)
+ self.add_failure(test_case_name)
self.test_result = "FAIL"
break
time.sleep(1)
@@ -143,9 +159,19 @@ class Results(object):
logger.debug("[FAIL] Timeout reached for '%s'."
" No ping output captured in the console log"
% vm_source.name)
- self.add_to_summary(2, "FAIL", test_case_name)
+ self.add_failure(test_case_name)
break
+ def ping_ip_test(self, address):
+ ping = "ping %s -c 3" % address
+ testcase_name = "Ping IP %s" % address
+ exit_code = ft_utils.execute_command(ping)
+
+ if exit_code != 0:
+ self.add_failure(testcase_name)
+ else:
+ self.add_success(testcase_name)
+
def compile_summary(self, SUCCESS_CRITERIA):
success_message = "All the subtests have passed."
failure_message = "One or more subtests have failed."