Commit Graph

123 Commits

Author SHA1 Message Date
blob1807
569da5a1cf Revert "Try to ensure the runner's handler gets called first"
This reverts commit 13faedaf4c. As it's causing issues with ASAN, which adds it's own `ExceptionHandler` as the first. Making ours first messes with it. Causing an Access Violation when trying to setup `context` in our handler.
2025-12-24 01:13:06 +10:00
blob1807
13faedaf4c Try to ensure the runner's handler gets called first 2025-12-24 00:39:21 +10:00
blob1807
4eeb509fe8 Fix an OOB & format exception code as hex
Fix an OOB caused when the test runner catches the exception & format exception codes as upper case hex.
2025-12-23 19:17:43 +10:00
blob1807
56194732a8 Remove unneeded Exception_Code enum 2025-12-23 16:45:51 +10:00
blob1807
c9fff456cd [core:testing] Use Windows API for SIG handling 2025-12-23 02:44:36 +10:00
Jeroen van Rijn
5db9afd73b Merge pull request #5963 from Yawning/feature/chacha8rand
runtime: Use chacha8rand as the default RNG (BREAKING)
2025-11-29 14:38:22 +00:00
Jeroen van Rijn
31817be087 Fix #5975
Fix `err` shadowing in test runner. Fixes #5975.
2025-11-29 11:57:34 +01:00
Yawning Angel
73883b70c8 testing: Use xoshiro256** instead of the runtime RNG
While platforms that do not have an entropy source have no rights,
use something that is always guaranteed to work.
2025-11-29 10:45:53 +09:00
gingerBill
e5153a937b Merge pull request #5859 from odin-lang/bill/change-license
Change Odin's LICENSE to zlib from BSD 3-clause
2025-11-04 13:53:13 +00:00
Jeroen van Rijn
6ea7bdbbe5 Add ODIN_TEST_GO_TO_ERROR to print test fail locations in a manner friendly to go-to error in editors 2025-11-01 16:11:43 +01:00
Jeroen van Rijn
f005136592 Also disable OSC codes to update title when ODIN_TEST_FANCY=false 2025-10-31 17:39:29 +01:00
gingerBill
842cfee0f3 Change Odin's LICENSE to zlib from BSD 3-clause
This change was made in order to allow things produced with Odin and using Odin's core library, to not require the LICENSE to also be distributed alongside the binary form.
2025-10-28 14:38:25 +00:00
Jeroen van Rijn
7a9ea3ee6d Further overhaul of package line comments. 2025-10-09 23:05:29 +02:00
Jon Lipstate
57bc45ae30 revert to working build 2025-09-03 22:51:28 -07:00
Jon Lipstate
e0c4c53362 add tls when we have crt 2025-09-03 22:32:33 -07:00
Jon Lipstate
231ce2da59 windows i386 support 2025-08-29 12:41:38 -07:00
Feoramund
c87655525d testing: Make test state changes its own feature
This patch takes the former debug message output of a test changing its
state and makes it its own feature, toggleable with the
`ODIN_TEST_LOG_STATE_CHANGES` configurable. The output will be at the
info level and is disabled by default.
2025-06-26 12:46:03 -04:00
Feoramund
71c6b0c8f0 testing: Add API to expect signals and assertion failures 2025-06-16 11:25:32 -04:00
Feoramund
e659df1a3f Restructure core:terminal for better Windows support 2025-05-21 07:49:08 -04:00
Feoramund
1b407ef207 Add animation detection support to test runner 2025-05-20 19:28:07 -04:00
Feoramund
3c40a54dcd Add terminal color detection to logging in core:testing 2025-05-20 19:28:06 -04:00
Feoramund
a9df1b1cde Rename core:encoding/ansi to core:terminal/ansi 2025-05-20 19:28:06 -04:00
Jeroen van Rijn
8bffd247b7 Restore console mode when test runner exits. 2025-05-20 16:51:24 +02:00
avanspector
0a985f5d02 Haiku: small fixes across core 2025-01-10 07:07:40 +01:00
Karl Zylinski
e5f32e1455 Makes tracking allocator default to crashing on a bad free instead of add to bad_free_array. The bad_free_array remains to not break old code. The new default behavior is implemented in a callback that you can override, there's a second provided callback that provides the old behavior where an element was added to bad_free_array. Rationale: Many people are just checking the allocation_map, but don't check the bad free array. Several examples throughout core that use tracking allocator don't check bad_free_array either, so people have been taught not to check it. 2024-12-21 15:49:48 +01:00
Laytan Laats
f798f0b446 testing: separate the posix import into target files
This is needed for the docs generator to generate all the docs for the
posix package, if it is imported like it was on Windows it would
generate docs for the Windows version of the package which has much less
symbols exposed.
2024-11-01 16:27:45 +01:00
Laytan
afed3ce6b5 remove pthread from sys/unix and use sys/posix where used 2024-10-28 19:20:43 +01:00
Karl Zylinski
29fedc1808 Changed some recently added //+ usages to #+ and also fixed some //+ usages in some code generators. 2024-09-17 19:39:48 +02:00
Karl Zylinski
093ade0504 Merge branch 'master' into file-tags-without-comments 2024-09-17 19:36:17 +02:00
Jeroen van Rijn
9508a1f031 Merge pull request #4255 from avanspector/master
init ansi on a standalone testing exe
2024-09-17 17:15:41 +02:00
avanspector
c794f853e9 init ansi on a standalone testing exe 2024-09-17 16:57:02 +02:00
gingerBill
a16d3b6c9a Merge pull request #4242 from laytan/caller-expression
add '#caller_expression'
2024-09-16 17:36:46 +01:00
Laytan Laats
603efa860a add '#caller_expression' 2024-09-14 22:13:37 +02:00
Karl Zylinski
19f0127e55 Moved all packages in core, base, vendor, tests and examples to use new #+ file tag syntax. 2024-09-14 18:27:49 +02:00
Feoramund
3a60109180 Fix signalling test child threads crashing test 0
A thread made inside a test does not share the test index of its parent,
so any time one of those threads failed an assert, it would tell the
runner to shutdown test index zero.
2024-09-10 14:52:20 -04:00
Karl Zylinski
8c636ac37b Fix build tags that use ! multiple times on one line. Those don't actually do anything since build tags use OR within the line. So something like //+build !windows, !linux would actually build on both linux and windows. What was intended in all these cases was probably AND, which you get by splitting them into separate lines. 2024-09-07 22:02:17 +02:00
Feoramund
0fa24ac3c4 Remove deprecated log procs from core:testing 2024-08-18 21:30:32 -04:00
Jeroen van Rijn
f7234e2ed3 Allow ODIN_TEST_LOG_LEVEL override when -debug. 2024-08-14 16:29:51 +02:00
Feoramund
0af025d056 Add explicit copyright info to core:testing 2024-08-12 14:16:22 -04:00
Feoramund
f42a22369e Fix wrong define name in test runner log messages 2024-08-11 23:01:28 -04:00
Feoramund
675add4d90 Optionally treat memory failures as errors in the test runner
Enable with `-define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true`.
2024-08-11 22:59:20 -04:00
Jeroen van Rijn
a05b73c632 Keep -vet happy when mem tracking is disabled. 2024-08-08 21:02:35 +02:00
Jeroen van Rijn
4d27898418 Use test runner's own tracking allocator. 2024-08-08 20:58:25 +02:00
Jeroen van Rijn
80d1e1ba82 Allow testing for intentional leaks in test runner
Adds `expect_leak_or_bad_free :: proc(t: ^T, client_test: proc(t: ^T), verifier: Memory_Verifier_Proc)`.

It sets up its own `Tracking_Allocator`, runs the `client_test`, and then calls the `verifier` procedure.
The verifier can then inspect the contents of the tracking allocator and call `testing.expect*` as sensible for the test in question.

Any allocations are then cleared so that the test runner doesn't itself complain about leaks.

Additionally, `ODIN_TEST_LOG_LEVEL_MEMORY` has been added as a define to set the severity of the test runner's memory tracker. You can use `-define:ODIN_TEST_LOG_LEVEL_MEMORY=error` to make tests fail rather than warn if leaks or bad frees have been found.
2024-08-08 20:41:32 +02:00
gingerBill
97c499dbb4 Begin mapping os.Error in the rest of the codebase 2024-08-04 11:58:04 +01:00
Laytan Laats
545fbc54c7 testing: add json reporting 2024-07-24 01:33:22 +02:00
Laytan Laats
28fac62a02 fix some bugs with -disable-assert 2024-07-16 18:44:18 +02:00
gingerBill
8642d719f0 Imply #no_capture to all variadic parameters 2024-07-14 12:19:47 +01:00
gingerBill
c7bd954752 Add more uses of #no_capture 2024-07-14 11:56:04 +01:00
gingerBill
663661db53 Update core to -strict-style 2024-06-29 19:16:32 +01:00