From ff62751cce77b6fb89914710c2e2506544f34ba2 Mon Sep 17 00:00:00 2001 From: Eric <5089238+emizzle@users.noreply.github.com> Date: Tue, 25 Feb 2025 17:54:43 +1100 Subject: [PATCH] Colorise stdout from test runs Adds terminal colour to [OK], [FAILED], and [Suite] # Conflicts: # tests/integration/testmanager.nim --- tests/integration/testmanager.nim | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/integration/testmanager.nim b/tests/integration/testmanager.nim index 843f06dd..7d415e9f 100644 --- a/tests/integration/testmanager.nim +++ b/tests/integration/testmanager.nim @@ -246,6 +246,15 @@ proc printOutputMarker(test: IntegrationTest, position: MarkerPosition, msg: str if position == MarkerPosition.Finish: echo "" +proc colorise(output: string): string = + proc setColour(text: string, colour: ForegroundColor): string = + &"{ansiForegroundColorCode(colour, true)}{text}{ansiResetCode}" + + let replacements = @[("[OK]", fgGreen), ("[FAILED]", fgRed), ("[Suite]", fgBlue)] + result = output + for (text, colour) in replacements: + result = result.replace(text, text.setColour(colour)) + proc printResult( test: IntegrationTest, printStdOut = test.manager.debugCodexNodes, @@ -271,19 +280,19 @@ proc printResult( test.printOutputMarker(MarkerPosition.Finish, "test file errors (stderr)") # if printStdOut: test.printOutputMarker(MarkerPosition.Start, "codex node output (stdout)") - echo output.stdOut + echo output.stdOut.colorise test.printOutputMarker(MarkerPosition.Finish, "codex node output (stdout)") test.printResult(fgRed) of IntegrationTestStatus.Timeout: if printStdOut and output =? test.output: test.printOutputMarker(MarkerPosition.Start, "codex node output (stdout)") - echo output.stdOut + echo output.stdOut.colorise test.printOutputMarker(MarkerPosition.Finish, "codex node output (stdout)") test.printResult(fgYellow) of IntegrationTestStatus.Ok: if printStdOut and output =? test.output: test.printOutputMarker(MarkerPosition.Start, "codex node output (stdout)") - echo output.stdOut + echo output.stdOut.colorise test.printOutputMarker(MarkerPosition.Finish, "codex node output (stdout)") test.printResult(fgGreen)