zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 0a76e11617a76d884a52bf49c7b2b9a706e7bc8c (tree)
parent 0c7397b49f8c434cf1f714c08ab37d1429ab1be7
Author: Jonathan Marler <johnnymarler@gmail.com>
Date:   Wed,  6 May 2020 23:56:48 -0600

add failAllocator to enable some regression tests

Diffstat:
Mlib/std/mem.zig | 16++++++++++++++++
1 file changed, 16 insertions(+), 0 deletions(-)

diff --git a/lib/std/mem.zig b/lib/std/mem.zig @@ -281,6 +281,22 @@ pub const Allocator = struct { } }; +var failAllocator = Allocator { + .reallocFn = failAllocatorRealloc, + .shrinkFn = failAllocatorShrink, +}; +fn failAllocatorRealloc(self: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) ![]u8 { + return error.OutOfMemory; +} +fn failAllocatorShrink(self: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) []u8 { + @panic("failAllocatorShrink should never be called because it cannot allocate"); +} + +test "mem.Allocator basics" { + testing.expectError(error.OutOfMemory, failAllocator.alloc(u8, 1)); + testing.expectError(error.OutOfMemory, failAllocator.allocSentinel(u8, 1, 0)); +} + /// Copy all of source into dest at position 0. /// dest.len must be >= source.len. /// dest.ptr must be <= src.ptr.