From 2bb17116d8aa67ddb6b731539d4f1b5dad3ecaa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jukka=20Jyl=C3=A4nki?= Date: Sat, 4 Oct 2025 17:30:16 +0300 Subject: [PATCH 1/4] Add colored print to test harness output --- test/parallel_testsuite.py | 21 ++++++++++++++------- tools/diagnostics.py | 4 ++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/test/parallel_testsuite.py b/test/parallel_testsuite.py index 769803b299bae..778e1e8361495 100644 --- a/test/parallel_testsuite.py +++ b/test/parallel_testsuite.py @@ -16,6 +16,7 @@ import common from common import errlog +from tools.diagnostics import with_color, CYAN, GREEN, RED from tools.utils import WINDOWS @@ -304,35 +305,41 @@ def compute_progress(self): with self.lock: val = f'[{int(self.progress_counter.value * 100 / self.num_tests)}%] ' self.progress_counter.value += 1 - return val + return with_color(CYAN, val) def addSuccess(self, test): - errlog(f'{self.compute_progress()}{test} ... ok ({self.calculateElapsed():.2f}s)') + msg = f'ok ({self.calculateElapsed():.2f}s)' + errlog(f'{self.compute_progress()}{test} ... {with_color(GREEN, msg)}') self.buffered_result = BufferedTestSuccess(test) self.test_result = 'success' def addExpectedFailure(self, test, err): - errlog(f'{self.compute_progress()}{test} ... expected failure ({self.calculateElapsed():.2f}s)') + msg = f'expected failure ({self.calculateElapsed():.2f}s)' + errlog(f'{self.compute_progress()}{test} ... {with_color(RED, msg)}') self.buffered_result = BufferedTestExpectedFailure(test, err) self.test_result = 'expected failure' def addUnexpectedSuccess(self, test): - errlog(f'{self.compute_progress()}{test} ... unexpected success ({self.calculateElapsed():.2f}s)') + msg = f'unexpected success ({self.calculateElapsed():.2f}s)' + errlog(f'{self.compute_progress()}{test} ... {with_color(RED, msg)}') self.buffered_result = BufferedTestUnexpectedSuccess(test) self.test_result = 'unexpected success' def addSkip(self, test, reason): - errlog(f"{self.compute_progress()}{test} ... skipped '{reason}'") + msg = f"skipped '{reason}'" + errlog(f"{self.compute_progress()}{test} ... {with_color(CYAN, msg)}") self.buffered_result = BufferedTestSkip(test, reason) self.test_result = 'skipped' def addFailure(self, test, err): - errlog(f'{self.compute_progress()}{test} ... FAIL') + msg = f'{test} ... FAIL' + errlog(f'{self.compute_progress()}{with_color(RED, msg)}') self.buffered_result = BufferedTestFailure(test, err) self.test_result = 'failed' def addError(self, test, err): - errlog(f'{self.compute_progress()}{test} ... ERROR') + msg = f'{test} ... ERROR' + errlog(f'{self.compute_progress()}{with_color(RED, msg)}') self.buffered_result = BufferedTestError(test, err) self.test_result = 'errored' diff --git a/tools/diagnostics.py b/tools/diagnostics.py index 3bf3a00357745..81184aaa4ae70 100644 --- a/tools/diagnostics.py +++ b/tools/diagnostics.py @@ -57,6 +57,10 @@ def reset_color(): return '\033[0m' +def with_color(color, text): + return f'\033[9{color}m{text}\033[0m' + + def diag(level, msg, *args): # Format output message as: # : : msg From 8fc77098dc96bebed2387d2216123303a9780b35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jukka=20Jyl=C3=A4nki?= Date: Tue, 7 Oct 2025 01:34:51 +0300 Subject: [PATCH 2/4] Update to use output_color --- tools/diagnostics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/diagnostics.py b/tools/diagnostics.py index 81184aaa4ae70..8b8303334a8d1 100644 --- a/tools/diagnostics.py +++ b/tools/diagnostics.py @@ -58,7 +58,7 @@ def reset_color(): def with_color(color, text): - return f'\033[9{color}m{text}\033[0m' + return output_color(color) + text + reset_color() def diag(level, msg, *args): From db84948d78e35f4fb33173b59905c4024eeca868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jukka=20Jyl=C3=A4nki?= Date: Tue, 7 Oct 2025 01:58:55 +0300 Subject: [PATCH 3/4] Demote asserts --- tools/diagnostics.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/tools/diagnostics.py b/tools/diagnostics.py index 8b8303334a8d1..1d98d17754cd3 100644 --- a/tools/diagnostics.py +++ b/tools/diagnostics.py @@ -43,18 +43,23 @@ def output_color(color): - assert color_enabled - return '\033[3%sm' % color + if color_enabled: + return '\033[3%sm' % color + else: + return '' def bold(): - assert color_enabled - return '\033[1m' + if color_enabled: + return '\033[1m' + else: + return '' def reset_color(): - assert color_enabled - return '\033[0m' + if color_enabled: + return '\033[0m' + return '' def with_color(color, text): From 80beb16323008fe102c7b68b684edb08801e092e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jukka=20Jyl=C3=A4nki?= Date: Tue, 7 Oct 2025 02:00:13 +0300 Subject: [PATCH 4/4] No redundant else --- tools/diagnostics.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/diagnostics.py b/tools/diagnostics.py index 1d98d17754cd3..f3989f84baa8c 100644 --- a/tools/diagnostics.py +++ b/tools/diagnostics.py @@ -45,15 +45,13 @@ def output_color(color): if color_enabled: return '\033[3%sm' % color - else: - return '' + return '' def bold(): if color_enabled: return '\033[1m' - else: - return '' + return '' def reset_color():