MCPcopy Index your code
hub / github.com/RustPython/RustPython / _runtest

Function _runtest

Lib/test/libregrtest/single.py:271–329  ·  view source on GitHub ↗
(result: TestResult, runtests: RunTests)

Source from the content-addressed store, hash-verified

269
270
271def _runtest(result: TestResult, runtests: RunTests) -> None:
272 # Capture stdout and stderr, set faulthandler timeout,
273 # and create JUnit XML report.
274 verbose = runtests.verbose
275 output_on_failure = runtests.output_on_failure
276 timeout = runtests.timeout
277
278 if timeout is not None and threading_helper.can_start_thread:
279 use_timeout = True
280 faulthandler.dump_traceback_later(timeout, exit=True)
281 else:
282 use_timeout = False
283
284 try:
285 setup_tests(runtests)
286
287 if output_on_failure or runtests.pgo:
288 support.verbose = True
289
290 stream = io.StringIO()
291 orig_stdout = sys.stdout
292 orig_stderr = sys.stderr
293 print_warning = support.print_warning
294 orig_print_warnings_stderr = print_warning.orig_stderr
295
296 output = None
297 try:
298 sys.stdout = stream
299 sys.stderr = stream
300 # print_warning() writes into the temporary stream to preserve
301 # messages order. If support.environment_altered becomes true,
302 # warnings will be written to sys.stderr below.
303 print_warning.orig_stderr = stream
304
305 _runtest_env_changed_exc(result, runtests, display_failure=False)
306 # Ignore output if the test passed successfully
307 if result.state != State.PASSED:
308 output = stream.getvalue()
309 finally:
310 sys.stdout = orig_stdout
311 sys.stderr = orig_stderr
312 print_warning.orig_stderr = orig_print_warnings_stderr
313
314 if output is not None:
315 sys.stderr.write(output)
316 sys.stderr.flush()
317 else:
318 # Tell tests to be moderately quiet
319 support.verbose = verbose
320 _runtest_env_changed_exc(result, runtests,
321 display_failure=not verbose)
322
323 xml_list = support.junit_xml_list
324 if xml_list:
325 result.xml_data = xml_list
326 finally:
327 if use_timeout:
328 faulthandler.cancel_dump_traceback_later()

Callers 1

run_single_testFunction · 0.85

Calls 5

getvalueMethod · 0.95
setup_testsFunction · 0.85
_runtest_env_changed_excFunction · 0.85
writeMethod · 0.45
flushMethod · 0.45

Tested by

no test coverage detected