aboutsummaryrefslogtreecommitdiff
path: root/tests/core/mem
Commit message (Collapse)AuthorAgeFilesLines
* Fix out-of-band allocations in dynamic arenasrationalcoder2025-09-161-7/+8
|
* Fix Linux-specific optimized test failureFeoramund2025-07-221-4/+9
| | | | | | | | The stack was not aligned as expected for `buddy_allocator_init` when `-o:speed` was enabled, making this a test failure that only appeared with optimizations enabled. The data is now aligned specifically, as it should be.
* Add a tiny sanity test for `core:mem` allocatorsFeoramund2025-06-151-0/+108
|
* `core:mem/tlsf`: Add early-out in OOM logicJeroen van Rijn2025-04-141-5/+2
| | | | | | | | This implementation doesn't allow for out-of-band allocations to be passed through, as it's not designed to track those. Nor is it able to signal those allocations then need to be freed on the backing allocator, as opposed to regular allocations handled for you when you `destroy` the TLSF instance. So if we're asked for more than we're configured to grow by, we can fail with an OOM error early, without adding a new pool.
* Allow `core:mem/tlsf` to automatically add new pools.Jeroen van Rijn2025-04-141-1/+41
| | | | | | | New features: - If TLSF can't service an allocation made on it, and it's initialized with `new_pool_size` > 0, it will ask the backing allocator for additional memory. - `estimate_pool_size` can tell you what size your initial (and `new_pool_size`) ought to be if you want to make `count` allocations of `size` and `alignment`, or in its other form, how much backing memory is needed for `count` allocations of `type` and its corresponding size and alignment.
* Refactor `core:mem/tlsf`, add `free_all` support.Jeroen van Rijn2025-04-141-0/+102
| | | | | TODO: Allow the TLSF allocator to add additional pools when it would ordinarily OOM by calling its backing allocator.
* cleanup test arenasLaytan Laats2025-02-121-0/+1
|
* fix wrong out of memory in edge cases, just try allocate from block for one ↵Laytan Laats2025-02-121-1/+15
| | | | source of truth
* [mem]: Don't use named params for dynamic pool in testsflysand72024-09-081-2/+2
|
* Use test runner's own tracking allocator.Jeroen van Rijn2024-08-081-0/+6
|
* Allow testing for intentional leaks in test runnerJeroen van Rijn2024-08-081-54/+69
| | | | | | | | | | | 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.
* add test for allocator mem.Dynamic_PoolDerTee2024-07-031-0/+80
| | | | this test currently fails because of bug #3692
* Fix `fls_uint`Jeroen van Rijn2024-06-061-0/+41