diff --git a/regressiontest/modelsim_regression_test_vhdl.py b/regressiontest/modelsim_regression_test_vhdl.py index edc3e137d926c1a578b835a29a74c0f7b14ff8e1..3583c16c73811ed14933dd7f115bbde7421df259 100755 --- a/regressiontest/modelsim_regression_test_vhdl.py +++ b/regressiontest/modelsim_regression_test_vhdl.py @@ -79,7 +79,7 @@ from terminal import Terminal MAX_PROC = 4 # maximum number of processes to run, each process needs a modelsim license MK_TIMEOUT = 20 * 60 # timeout in seconds (1x60 seconds = 1 min(s)) for each *_mk.do command -SIM_TIMEOUT = 3 * 3600 # timeout in seconds (1x3600 seconds = 1 hour(s)) for each *_sim.do command +SIM_TIMEOUT = 4 * 3600 # timeout in seconds (1x3600 seconds = 1 hour(s)) for each *_sim.do command def main(args, time_ordered_tb_dict): @@ -700,11 +700,17 @@ class TestBenchWorker(multiprocessing.Process): The do_log is a string containing e.g. the transcipt output. - For make (mk) the error string is 'Error:' - For simulation there are several error strings. + - Ignore finished Failure: 'Failure: Tb Simulation finished.' """ - if "Fatal:" in do_log or "Error:" in do_log or "Failure:" in do_log: - return True - else: - return False + err = False + for line in do_log.splitlines(): + if "Fatal:" in line: + err = True + if "Error:" in line: + err = True + if "Failure:" in line and "Tb Simulation finished" not in line: + err = True + return err def run_mk_all(self): """