From 1ca67e98d63b3d5b059fb37ee798c452199ffa9c Mon Sep 17 00:00:00 2001 From: He Yin Ling Date: Thu, 31 Jan 2019 10:12:17 +0800 Subject: [PATCH] test: fix CI UT job pass even ut app bootup fail --- tools/unit-test-app/unit_test.py | 33 ++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/tools/unit-test-app/unit_test.py b/tools/unit-test-app/unit_test.py index eb3005641..565e38710 100755 --- a/tools/unit-test-app/unit_test.py +++ b/tools/unit-test-app/unit_test.py @@ -276,9 +276,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 @@ -397,7 +398,7 @@ def get_dut(duts, env, name, ut_config, app_bin=None): return dut -def run_one_multiple_devices_case(duts, ut_config, env, one_case, failed_cases, app_bin, junit_test_case): +def run_one_multiple_devices_case(duts, ut_config, env, one_case, app_bin, junit_test_case): lock = threading.RLock() threads = [] send_signal_list = [] @@ -419,12 +420,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) @@ -455,13 +453,19 @@ 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, - one_case.get('app_bin'), junit_test_case) - TinyFW.JunitReport.test_case_finish(junit_test_case) + result = run_one_multiple_devices_case(duts, ut_config, env, one_case, + one_case.get('app_bin'), 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: @@ -604,9 +608,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