Bugfix: dont stop execution when a test case is not blocking
authorjose.lausuch <jose.lausuch@ericsson.com>
Thu, 28 Jul 2016 07:14:48 +0000 (09:14 +0200)
committerJose Lausuch <jose.lausuch@ericsson.com>
Thu, 28 Jul 2016 09:43:31 +0000 (09:43 +0000)
Change-Id: I3564b6f2d8f8057ec2c9753837e3a5fe16a4a866
Signed-off-by: jose.lausuch <jose.lausuch@ericsson.com>
ci/generate_report.py
ci/run_tests.py
ci/tier_handler.py

index 16962fe..53aef0c 100644 (file)
@@ -8,7 +8,7 @@ import functest.utils.functest_logger as ft_logger
 COL_1_LEN = 25
 COL_2_LEN = 15
 COL_3_LEN = 12
-COL_4_LEN = 10
+COL_4_LEN = 15
 COL_5_LEN = 75
 
 # If we run from CI (Jenkins) we will push the results to the DB
index a024dd7..383a20f 100755 (executable)
@@ -75,6 +75,13 @@ def cleanup():
     os_clean.main()
 
 
+def update_test_info(test_name, result, duration):
+    for test in EXECUTED_TEST_CASES:
+        if test['test_name'] == test_name:
+            test.update({"result": result,
+                         "duration": duration})
+
+
 def run_test(test, tier_name):
     global OVERALL_RESULT, EXECUTED_TEST_CASES
     result_str = "PASS"
@@ -109,14 +116,17 @@ def run_test(test, tier_name):
         OVERALL_RESULT = -1
         result_str = "FAIL"
 
-        if test.get_blocking():
-            logger.info("This test case is blocking. Exiting...")
+        if test.is_blocking():
+            if not args.test or args.test == "all":
+                logger.info("This test case is blocking. Aborting overall "
+                            "execution.")
+                # if it is a single test we don't print the whole results table
+                update_test_info(test_name, result_str, duration_str)
+                generate_report.main(EXECUTED_TEST_CASES)
+            logger.info("Execution exit value: %s" % OVERALL_RESULT)
             sys.exit(OVERALL_RESULT)
 
-    for test in EXECUTED_TEST_CASES:
-        if test['test_name'] == test_name:
-            test.update({"result": result_str,
-                         "duration": duration_str})
+    update_test_info(test_name, result_str, duration_str)
 
     return result
 
@@ -207,6 +217,7 @@ def main():
     else:
         run_all(_tiers)
 
+    logger.info("Execution exit value: %s" % OVERALL_RESULT)
     sys.exit(OVERALL_RESULT)
 
 if __name__ == '__main__':
index 27b9cbc..e50fbe6 100644 (file)
@@ -131,7 +131,7 @@ class TestCase:
     def get_criteria(self):
         return self.criteria
 
-    def get_blocking(self):
+    def is_blocking(self):
         return self.blocking
 
     def __str__(self):