aboutsummaryrefslogtreecommitdiff
path: root/core/testing
Commit message (Collapse)AuthorAgeFilesLines
* Haiku: small fixes across coreavanspector2025-01-101-1/+1
|
* Makes tracking allocator default to crashing on a bad free instead of add to ↵Karl Zylinski2024-12-211-0/+1
| | | | 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.
* testing: separate the posix import into target filesLaytan Laats2024-11-013-17/+32
| | | | | | | 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.
* remove pthread from sys/unix and use sys/posix where usedLaytan2024-10-281-3/+3
|
* Changed some recently added //+ usages to #+ and also fixed some //+ usages ↵Karl Zylinski2024-09-171-1/+1
| | | | in some code generators.
* Merge branch 'master' into file-tags-without-commentsKarl Zylinski2024-09-174-4/+45
|\
| * Merge pull request #4255 from avanspector/masterJeroen van Rijn2024-09-172-0/+26
| |\ | | | | | | init ansi on a standalone testing exe
| | * init ansi on a standalone testing exeavanspector2024-09-172-0/+26
| | |
| * | Merge pull request #4242 from laytan/caller-expressiongingerBill2024-09-161-4/+8
| |\ \ | | | | | | | | add '#caller_expression'
| | * | add '#caller_expression'Laytan Laats2024-09-141-4/+8
| | | |
| * | | Fix signalling test child threads crashing test 0Feoramund2024-09-101-0/+11
| |/ / | | | | | | | | | | | | | | | 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.
* / / Moved all packages in core, base, vendor, tests and examples to use new #+ ↵Karl Zylinski2024-09-147-15/+15
|/ / | | | | | | file tag syntax.
* / Fix build tags that use ! multiple times on one line. Those don't actually ↵Karl Zylinski2024-09-071-1/+7
|/ | | | 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.
* Remove deprecated `log` procs from `core:testing`Feoramund2024-08-184-49/+28
|
* Allow ODIN_TEST_LOG_LEVEL override when -debug.Jeroen van Rijn2024-08-141-12/+8
|
* Add explicit copyright info to `core:testing`Feoramund2024-08-128-1/+68
|
* Fix wrong define name in test runner log messagesFeoramund2024-08-111-2/+2
|
* Optionally treat memory failures as errors in the test runnerFeoramund2024-08-111-41/+57
| | | | Enable with `-define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true`.
* Keep -vet happy when mem tracking is disabled.Jeroen van Rijn2024-08-081-0/+1
|
* Use test runner's own tracking allocator.Jeroen van Rijn2024-08-081-8/+7
|
* Allow testing for intentional leaks in test runnerJeroen van Rijn2024-08-082-4/+56
| | | | | | | | | | | 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.
* Begin mapping `os.Error` in the rest of the codebasegingerBill2024-08-041-2/+2
|
* testing: add json reportingLaytan Laats2024-07-241-1/+45
|
* fix some bugs with -disable-assertLaytan Laats2024-07-161-2/+2
|
* Imply `#no_capture` to all variadic parametersgingerBill2024-07-141-5/+5
|
* Add more uses of `#no_capture`gingerBill2024-07-141-5/+5
|
* Update `core` to `-strict-style`gingerBill2024-06-291-6/+5
|
* Catch `SIGTRAP` in the test runnerFeoramund2024-06-282-0/+11
| | | | Fixes `panic` for Darwin.
* Let `-vet` be used with `-define:ODIN_TEST_NAMES`Feoramund2024-06-281-1/+4
|
* Work around Windows test failureFeoramund2024-06-181-3/+7
| | | | | | | | | | | | | | | | | | | | I am uncertain why this works, but it does. Previously, `rtti_test` was failing due to non-zero data appearing in the `l_buggy` `Buggy_Struct`. The issue was caused by calling `runtime.default_random_generator` with a pointer to the state, somehow. The pointer could be on the stack or in the heap; it did not matter. I found two workarounds. - One is to move the RNG setup behind the call to `free_all`. - The other is to construct the random generator manually. Despite my digging and testing, I could find no reason as to why this works or what the fundamental issue was to begin with. If anyone comes upon this in the future with direct access to a Windows machine, I recommend stepping through the program with a debugger to investigate more deeply into why this happens.
* Setup default `context.random_generator` for testsFeoramund2024-06-151-0/+4
|
* Merge pull request #3765 from Feoramund/add-short-test-logsJeroen van Rijn2024-06-152-7/+18
|\ | | | | Add `ODIN_TEST_SHORT_LOGS` define
| * Add `ODIN_TEST_SHORT_LOGS` defineFeoramund2024-06-152-7/+18
| | | | | | | | | | Strips out the procedure, date, and time information, for when you just need to know the file, line, and message.
* | Make `testing.fail_now` divergentFeoramund2024-06-152-19/+33
| | | | | | | | This is in line with the old way it worked on Windows.
* | Call `cleanups` after test signalFeoramund2024-06-152-3/+20
|/
* add forced shutdown to new test runnerLaytan Laats2024-06-101-1/+8
| | | | | | | | Currently, a Ctrl+c starts a graceful shutdown of the tests and runner. Sometimes tests get stuck and this would never complete. This simply adds an extra step, if Ctrl+c is given for the second time, just `os.exit` right away.
* add error message for unknown test log levelLaytan Laats2024-06-071-0/+3
| | | | | It would previously just be a compilation error about a missing return statement.
* Fix ad hoc `printf` in test runner signal handlerFeoramund2024-06-021-1/+1
|
* Use `Warning` log level for reporting memory leaksFeoramund2024-06-021-2/+4
| | | | Works well with `-define:ODIN_TEST_LOG_LEVEL=warning`.
* Prevent test runner deadlock on NetBSDFeoramund2024-06-021-0/+13
| | | | Add `pthread_testcancel` to `core:sys/unix`
* Be pedantic about not overwriting Odin errorsFeoramund2024-06-021-4/+5
| | | | | | | | | | | | | | | | | | | I was encountering bounds-check error messages being overwritten during a test, if the test failed for another reason and sent a log message. The original intent of having this check inside of the above `if` block was that if a test sent an error message, then it was assumed an overwrite would be safe, but it's completely possible for a test to fail for a legitimate reason, then do an unrelated bounds check somewhere else that would be buried under the animation. This change will make sure that, no matter what, the progress display will not trigger a clear if a signal was raised. There's still no guarantee that bounds-check messages will be printed properly, and it's best to redirect STDERR. The only way that can be fixed is if they get a similar hook to `context.assertion_failure_proc`.
* Tell user about `ODIN_TEST_RANDOM_SEED` optionFeoramund2024-06-021-1/+5
|
* Keep test runner main thread from using 100% of a CPU coreFeoramund2024-06-021-0/+17
|
* Add `-define:ODIN_TEST_LOG_LEVEL` to set lowest log levelFeoramund2024-06-021-2/+17
|
* Log thread count at test run startFeoramund2024-06-021-0/+10
| | | | | Provides a helpful info message about the option to change how many threads are used per run.
* Make it easier to learn about `ODIN_TEST_CLIPBOARD`Feoramund2024-06-021-0/+1
|
* Add note about `SIGSEGV` edge case on UNIX-likesFeoramund2024-06-021-0/+7
|
* Remove Windows test runner in favor of `libc` implementationFeoramund2024-06-023-251/+1
|
* Expand documentation comment for `ODIN_TEST_NAMES`Feoramund2024-06-021-0/+3
|
* Use more concise way of satisfying `-vet`Feoramund2024-06-021-9/+4
|