]> granicus.if.org Git - esp-idf/commitdiff
test: fix CI UT job pass even ut app bootup fail
authorHe Yin Ling <heyinling@espressif.com>
Thu, 31 Jan 2019 02:12:17 +0000 (10:12 +0800)
committerbot <bot@espressif.com>
Tue, 5 Mar 2019 08:07:30 +0000 (08:07 +0000)
tools/unit-test-app/unit_test.py

index ac4c779dd19a11774544f1f80e5799b15ad8e1ff..a18fbeb9f3802ec25f3084461bf23a733b780228 100644 (file)
@@ -246,9 +246,10 @@ def run_unit_test_cases(env, extra_data):
             junit_test_case = TinyFW.JunitReport.create_test_case("[{}] {}".format(ut_config, one_case["name"]))
             try:
                 run_one_normal_case(dut, one_case, junit_test_case, failed_cases)
-                TinyFW.JunitReport.test_case_finish(junit_test_case)
             except Exception as e:
-                junit_test_case.add_error_info("Unexpected exception: " + str(e))
+                junit_test_case.add_failure_info("Unexpected exception: " + str(e))
+                failed_cases.append(one_case["name"])
+            finally:
                 TinyFW.JunitReport.test_case_finish(junit_test_case)
 
     # raise exception if any case fails
@@ -365,7 +366,7 @@ def get_dut(duts, env, name, ut_config):
     return dut
 
 
-def run_one_multiple_devices_case(duts, ut_config, env, one_case, failed_cases, junit_test_case):
+def run_one_multiple_devices_case(duts, ut_config, env, one_case, junit_test_case):
     lock = threading.RLock()
     threads = []
     send_signal_list = []
@@ -387,12 +388,9 @@ def run_one_multiple_devices_case(duts, ut_config, env, one_case, failed_cases,
         if not thread.result:
             [thd.stop() for thd in threads]
 
-    if result:
-        Utility.console_log("Success: " + one_case["name"], color="green")
-    else:
-        failed_cases.append(one_case["name"])
+    if not result:
         junit_test_case.add_failure_info(output)
-        Utility.console_log("Failed: " + one_case["name"], color="red")
+    return result
 
 
 @IDF.idf_unit_test(env_tag="UT_T2_1", junit_report_by_case=True)
@@ -423,12 +421,18 @@ def run_multiple_devices_cases(env, extra_data):
     for ut_config in case_config:
         Utility.console_log("Running unit test for config: " + ut_config, "O")
         for one_case in case_config[ut_config]:
+            result = False
             junit_test_case = TinyFW.JunitReport.create_test_case("[{}] {}".format(ut_config, one_case["name"]))
             try:
-                run_one_multiple_devices_case(duts, ut_config, env, one_case, failed_cases, junit_test_case)
-                TinyFW.JunitReport.test_case_finish(junit_test_case)
+                result = run_one_multiple_devices_case(duts, ut_config, env, one_case, junit_test_case)
             except Exception as e:
-                junit_test_case.add_error_info("Unexpected exception: " + str(e))
+                junit_test_case.add_failure_info("Unexpected exception: " + str(e))
+            finally:
+                if result:
+                    Utility.console_log("Success: " + one_case["name"], color="green")
+                else:
+                    failed_cases.append(one_case["name"])
+                    Utility.console_log("Failed: " + one_case["name"], color="red")
                 TinyFW.JunitReport.test_case_finish(junit_test_case)
 
     if failed_cases:
@@ -568,9 +572,10 @@ def run_multiple_stage_cases(env, extra_data):
             junit_test_case = TinyFW.JunitReport.create_test_case("[{}] {}".format(ut_config, one_case["name"]))
             try:
                 run_one_multiple_stage_case(dut, one_case, failed_cases, junit_test_case)
-                TinyFW.JunitReport.test_case_finish(junit_test_case)
             except Exception as e:
-                junit_test_case.add_error_info("Unexpected exception: " + str(e))
+                junit_test_case.add_failure_info("Unexpected exception: " + str(e))
+                failed_cases.append(one_case["name"])
+            finally:
                 TinyFW.JunitReport.test_case_finish(junit_test_case)
 
     # raise exception if any case fails