aboutsummaryrefslogtreecommitdiff
path: root/core/testing
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2024-09-17 17:15:41 +0200
committerGitHub <noreply@github.com>2024-09-17 17:15:41 +0200
commit9508a1f0319f6e9c19c31f15474085d508d42580 (patch)
treead464e633df6985ed1dbb9788fae219d4281fc39 /core/testing
parent0975820c48f8e876c2838a5ef94400fdb5db0f87 (diff)
parentc794f853e943ba0f70c0e927c50ada1bf5136117 (diff)
Merge pull request #4255 from avanspector/master
init ansi on a standalone testing exe
Diffstat (limited to 'core/testing')
-rw-r--r--core/testing/runner.odin4
-rw-r--r--core/testing/runner_windows.odin22
2 files changed, 26 insertions, 0 deletions
diff --git a/core/testing/runner.odin b/core/testing/runner.odin
index 386ba8cb5..10d5dca5c 100644
--- a/core/testing/runner.odin
+++ b/core/testing/runner.odin
@@ -204,6 +204,10 @@ runner :: proc(internal_tests: []Internal_Test) -> bool {
}
}
+ when ODIN_OS == .Windows {
+ console_ansi_init()
+ }
+
stdout := io.to_writer(os.stream_from_handle(os.stdout))
stderr := io.to_writer(os.stream_from_handle(os.stderr))
diff --git a/core/testing/runner_windows.odin b/core/testing/runner_windows.odin
new file mode 100644
index 000000000..fa233ff84
--- /dev/null
+++ b/core/testing/runner_windows.odin
@@ -0,0 +1,22 @@
+//+private
+package testing
+
+import win32 "core:sys/windows"
+
+console_ansi_init :: proc() {
+ stdout := win32.GetStdHandle(win32.STD_OUTPUT_HANDLE)
+ if stdout != win32.INVALID_HANDLE && stdout != nil {
+ old_console_mode: u32
+ if win32.GetConsoleMode(stdout, &old_console_mode) {
+ win32.SetConsoleMode(stdout, old_console_mode | win32.ENABLE_VIRTUAL_TERMINAL_PROCESSING)
+ }
+ }
+
+ stderr := win32.GetStdHandle(win32.STD_ERROR_HANDLE)
+ if stderr != win32.INVALID_HANDLE && stderr != nil {
+ old_console_mode: u32
+ if win32.GetConsoleMode(stderr, &old_console_mode) {
+ win32.SetConsoleMode(stderr, old_console_mode | win32.ENABLE_VIRTUAL_TERMINAL_PROCESSING)
+ }
+ }
+}