Skip to content

Commit 1309a5e

Browse files
authored
Add colored print to test harness output (emscripten-core#25495)
Another take at adding colors to test harness: <img width="2183" height="1668" alt="image" src="https://github.com/user-attachments/assets/095e3207-600c-419f-962d-b430acc05f6e" /> Tested to work on: - Windows 10 x64 - Windows 11 ARM64 - MacOS 15.5 Sequoia Apple M1 - Linux Debian 13 Trixie ARM64
1 parent b4ffae4 commit 1309a5e

File tree

2 files changed

+27
-13
lines changed

2 files changed

+27
-13
lines changed

test/parallel_testsuite.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import common
1717
from common import errlog
1818

19+
from tools.diagnostics import with_color, CYAN, GREEN, RED
1920
from tools.utils import WINDOWS
2021

2122

@@ -304,35 +305,41 @@ def compute_progress(self):
304305
with self.lock:
305306
val = f'[{int(self.progress_counter.value * 100 / self.num_tests)}%] '
306307
self.progress_counter.value += 1
307-
return val
308+
return with_color(CYAN, val)
308309

309310
def addSuccess(self, test):
310-
errlog(f'{self.compute_progress()}{test} ... ok ({self.calculateElapsed():.2f}s)')
311+
msg = f'ok ({self.calculateElapsed():.2f}s)'
312+
errlog(f'{self.compute_progress()}{test} ... {with_color(GREEN, msg)}')
311313
self.buffered_result = BufferedTestSuccess(test)
312314
self.test_result = 'success'
313315

314316
def addExpectedFailure(self, test, err):
315-
errlog(f'{self.compute_progress()}{test} ... expected failure ({self.calculateElapsed():.2f}s)')
317+
msg = f'expected failure ({self.calculateElapsed():.2f}s)'
318+
errlog(f'{self.compute_progress()}{test} ... {with_color(RED, msg)}')
316319
self.buffered_result = BufferedTestExpectedFailure(test, err)
317320
self.test_result = 'expected failure'
318321

319322
def addUnexpectedSuccess(self, test):
320-
errlog(f'{self.compute_progress()}{test} ... unexpected success ({self.calculateElapsed():.2f}s)')
323+
msg = f'unexpected success ({self.calculateElapsed():.2f}s)'
324+
errlog(f'{self.compute_progress()}{test} ... {with_color(RED, msg)}')
321325
self.buffered_result = BufferedTestUnexpectedSuccess(test)
322326
self.test_result = 'unexpected success'
323327

324328
def addSkip(self, test, reason):
325-
errlog(f"{self.compute_progress()}{test} ... skipped '{reason}'")
329+
msg = f"skipped '{reason}'"
330+
errlog(f"{self.compute_progress()}{test} ... {with_color(CYAN, msg)}")
326331
self.buffered_result = BufferedTestSkip(test, reason)
327332
self.test_result = 'skipped'
328333

329334
def addFailure(self, test, err):
330-
errlog(f'{self.compute_progress()}{test} ... FAIL')
335+
msg = f'{test} ... FAIL'
336+
errlog(f'{self.compute_progress()}{with_color(RED, msg)}')
331337
self.buffered_result = BufferedTestFailure(test, err)
332338
self.test_result = 'failed'
333339

334340
def addError(self, test, err):
335-
errlog(f'{self.compute_progress()}{test} ... ERROR')
341+
msg = f'{test} ... ERROR'
342+
errlog(f'{self.compute_progress()}{with_color(RED, msg)}')
336343
self.buffered_result = BufferedTestError(test, err)
337344
self.test_result = 'errored'
338345

tools/diagnostics.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,25 @@
4343

4444

4545
def output_color(color):
46-
assert color_enabled
47-
return '\033[3%sm' % color
46+
if color_enabled:
47+
return '\033[3%sm' % color
48+
return ''
4849

4950

5051
def bold():
51-
assert color_enabled
52-
return '\033[1m'
52+
if color_enabled:
53+
return '\033[1m'
54+
return ''
5355

5456

5557
def reset_color():
56-
assert color_enabled
57-
return '\033[0m'
58+
if color_enabled:
59+
return '\033[0m'
60+
return ''
61+
62+
63+
def with_color(color, text):
64+
return output_color(color) + text + reset_color()
5865

5966

6067
def diag(level, msg, *args):

0 commit comments

Comments
 (0)