From f82ec3f02af68ca25870f8ae3861a416225af554 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 5 Feb 2025 16:39:14 -0800 Subject: [PATCH] std.testing.allocator: different canary + enable resize traces Accept a slight performance degradation when unit testing for better debuggability when a leak or double-free is detected. --- lib/std/testing.zig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/std/testing.zig b/lib/std/testing.zig index 9b56a2ad51..616a138cbd 100644 --- a/lib/std/testing.zig +++ b/lib/std/testing.zig @@ -18,6 +18,11 @@ var base_allocator_instance = std.heap.FixedBufferAllocator.init(""); pub const allocator = allocator_instance.allocator(); pub var allocator_instance: std.heap.GeneralPurposeAllocator(.{ .stack_trace_frames = 10, + .resize_stack_traces = true, + // A unique value so that when a default-constructed + // GeneralPurposeAllocator is incorrectly passed to testing allocator, or + // vice versa, panic occurs. + .canary = @truncate(0x2731e675c3a701ba), }) = b: { if (!builtin.is_test) @compileError("testing allocator used when not testing"); break :b .init;