for testspec in input_iter: if isinstance(testspec, TestResult): # test already failed during discovery, probably an # import failure yield testspec else: yield run_isolated(testspec, self.args) if __name__ == '__main__': exitcode = 0 try: options = _get_parser().parse_args() runner = TestRunner(options) for result in runner.get_iter([options.tests[0]]): break if result.status != 'OK': sys.stderr.write(result.err_msg) exitcode = exit_codes[result.status] save_coverage() except: sys.stderr.write(traceback.format_exc()) exitcode = exit_codes['FAIL'] finally: sys.stdout.flush() sys.stderr.flush()
import traceback from mpi4py import MPI from testflo.main import _get_parser from testflo.runner import TestRunner, exit_codes from testflo.result import TestResult from testflo.cover import save_coverage exitcode = 0 # use 0 for exit code of all ranks != 0 because otherwise, # MPI will terminate other processes try: try: comm = MPI.COMM_WORLD options = _get_parser().parse_args() runner = TestRunner(options) result = runner.run_testspec(options.tests[0]) except: result = TestResult(options.tests[0], 0.0, 0.0, "FAIL", traceback.format_exc()) results = comm.gather(result, root=0) if comm.rank == 0: for r in results: if r.status != "OK": sys.stderr.write(r.err_msg) exitcode = exit_codes[r.status] break save_coverage() except Exception: