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

Method _run_tests

Lib/test/libregrtest/main.py:524–581  ·  view source on GitHub ↗
(self, selected: TestTuple, tests: TestList | None)

Source from the content-addressed store, hash-verified

522 )
523
524 def _run_tests(self, selected: TestTuple, tests: TestList | None) -> int:
525 if self.hunt_refleak and self.hunt_refleak.warmups < 3:
526 msg = ("WARNING: Running tests with --huntrleaks/-R and "
527 "less than 3 warmup repetitions can give false positives!")
528 print(msg, file=sys.stdout, flush=True)
529
530 if self.num_workers < 0:
531 # Use all CPUs + 2 extra worker processes for tests
532 # that like to sleep
533 #
534 # os.process.cpu_count() is new in Python 3.13;
535 # mypy doesn't know about it yet
536 self.num_workers = (os.process_cpu_count() or 1) + 2 # type: ignore[attr-defined]
537
538 # For a partial run, we do not need to clutter the output.
539 if (self.want_header
540 or not(self.pgo or self.quiet or self.single_test_run
541 or tests or self.cmdline_args)):
542 display_header(self.use_resources, self.python_cmd)
543
544 print("Using random seed:", self.random_seed)
545
546 runtests = self.create_run_tests(selected)
547 self.first_runtests = runtests
548 self.logger.set_tests(runtests)
549
550 if (runtests.hunt_refleak is not None) and (not self.num_workers):
551 # gh-109739: WindowsLoadTracker thread interferes with refleak check
552 use_load_tracker = False
553 else:
554 # WindowsLoadTracker is only needed on Windows
555 use_load_tracker = MS_WINDOWS
556
557 if use_load_tracker:
558 self.logger.start_load_tracker()
559 try:
560 if self.num_workers:
561 self._run_tests_mp(runtests, self.num_workers)
562 else:
563 self.run_tests_sequentially(runtests)
564
565 coverage = self.results.get_coverage_results()
566 self.display_result(runtests)
567
568 if self.want_rerun and self.results.need_rerun():
569 self.rerun_failed_tests(runtests)
570
571 if self.want_bisect and self.results.need_rerun():
572 self.run_bisect(runtests)
573 finally:
574 if use_load_tracker:
575 self.logger.stop_load_tracker()
576
577 self.display_summary()
578 self.finalize_tests(coverage)
579
580 return self.results.get_exitcode(self.fail_env_changed,
581 self.fail_rerun)

Callers 1

run_testsMethod · 0.95

Calls 15

create_run_testsMethod · 0.95
_run_tests_mpMethod · 0.95
display_resultMethod · 0.95
rerun_failed_testsMethod · 0.95
run_bisectMethod · 0.95
display_summaryMethod · 0.95
finalize_testsMethod · 0.95
display_headerFunction · 0.85
set_testsMethod · 0.80
start_load_trackerMethod · 0.80
get_coverage_resultsMethod · 0.80

Tested by

no test coverage detected