From e480e6773cc9ac48fe46692a7fad46caca23daf9 Mon Sep 17 00:00:00 2001 From: Andrew Duerig Date: Mon, 6 Mar 2023 23:15:20 -0500 Subject: [PATCH] Print the total time and test results at the bottom --- main.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 507adbe..0ded325 100755 --- a/main.py +++ b/main.py @@ -29,6 +29,8 @@ from tqdm import tqdm +from helpers import * + class TestResult(str, Enum): PASSED = "PASSED" @@ -62,6 +64,7 @@ class TestRun: TestResult.RUNNER_EXCEPTION: "🐍", TestResult.TODO_ERROR: "📝", } +EMOJIS_TO_TEST_RESULT = {v: k for k, v in EMOJIS.items()} NON_FAIL_RESULTS = [TestResult.PASSED, TestResult.SKIPPED] @@ -288,6 +291,7 @@ def __init__( self.extra_runner_options = extra_runner_options or [] self.update_function: Callable[[int], None] | None = None self.print_output: Callable[[Optional[Any]], Any] = print + self.emoji_result_counter = Counter() self.forward_stderr_function: Callable[[str], None] | None if forward_stderr: @@ -316,6 +320,10 @@ def find_tests(self, pattern: str, ignore: str) -> None: glob.iglob(str(self.test262_root / ignore), recursive=True) ) for path in glob.iglob(str(self.test262_root / pattern), recursive=True): + import random + + if random.random() < 0.99: + continue found_path = Path(path) if ( found_path.is_dir() @@ -396,6 +404,13 @@ def print_tree(tree, path, level): for k, v in self.directory_result_map.items(): print_tree(v, k, 0) + test_results_pretty = [ + f" {count}: {emoji} ({EMOJIS_TO_TEST_RESULT[emoji]})" + for emoji, count in self.emoji_result_counter.items() + ] + print(f"All test results finished in {self.duration}") + print("\n".join(test_results_pretty)) + def process_list(self, files: list[Path]) -> list[TestRun]: if not files: return [] @@ -449,12 +464,12 @@ def run(self) -> None: total=self.total_count, mininterval=1, unit="tests", smoothing=0.1 ) - def update_progress(value, new_results, total_stats=Counter()): + def update_progress(value, new_results): progress_mutex.acquire() - total_stats.update(new_results) + self.emoji_result_counter.update(new_results) try: progressbar.update(value) - progressbar.set_postfix(**total_stats) + progressbar.set_postfix(**self.emoji_result_counter) finally: progress_mutex.release()