Testcase.load()
-def run_test(testsuite, testarea, logger):
+def run_test(testsuite, testarea, logger, kwargs):
testcase_list = Testcase.get_testcase_list(testsuite, testarea)
duration = 0
start_time = time.time()
if run_testcase:
testcase.run()
- check_tc_result(testcase, logger)
+ stop_on_fail = check_tc_result(testcase, logger)
+ if stop_on_fail['criteria'] == "FAIL" and kwargs['stop']:
+ return "stop_on_fail"
end_time = time.time()
duration = end_time - start_time
else:
logger.error(
"Failed to store results with file {}.".format(result_file))
- result = Report.get_result(testcase)
- Report.check_result(testcase, result)
+ result = Report.get_result(testcase)
+ Report.check_result(testcase, result)
+ return result
def validate_input(input_dict, check_dict, logger):
if testsuite_validation and testarea_validation:
testsuite_yaml = load_testsuite(kwargs['testsuite'])
load_testcase()
- duration = run_test(testsuite_yaml, testarea, logger)
- if dt_cfg.dovetail_config['report_dest'] == "file":
+ duration = run_test(testsuite_yaml, testarea, logger, kwargs)
+ if (dt_cfg.dovetail_config['report_dest'] == "file" and
+ duration != "stop_on_fail"):
Report.generate(testsuite_yaml, testarea, duration)
- if dt_cfg.dovetail_config['report_dest'].startswith("http"):
+ if (dt_cfg.dovetail_config['report_dest'].startswith("http") and
+ duration != "stop_on_fail"):
Report.save_logs()
else:
logger.error('Invalid input commands, testsuite {} testarea {}'