diff --git a/lib/std/special/test_runner.zig b/lib/std/special/test_runner.zig index 828d3165db..fd8c068f05 100644 --- a/lib/std/special/test_runner.zig +++ b/lib/std/special/test_runner.zig @@ -21,6 +21,7 @@ pub fn main() anyerror!void { for (test_fn_list) |test_fn, i| { std.testing.base_allocator_instance.reset(); + std.testing.log_level = .warn; var test_node = root_node.start(test_fn.name, null); test_node.activate(); @@ -73,3 +74,14 @@ pub fn main() anyerror!void { std.debug.warn("{} passed; {} skipped.\n", .{ ok_count, skip_count }); } } + +pub fn log( + comptime message_level: std.log.Level, + comptime scope: @Type(.EnumLiteral), + comptime format: []const u8, + args: var, +) void { + if (@enumToInt(message_level) <= @enumToInt(std.testing.log_level)) { + std.debug.print("[{}] ({}): " ++ format, .{@tagName(scope), @tagName(message_level)} ++ args); + } +} diff --git a/lib/std/testing.zig b/lib/std/testing.zig index 670d8fd5d6..bdaf759d62 100644 --- a/lib/std/testing.zig +++ b/lib/std/testing.zig @@ -14,6 +14,9 @@ pub var failing_allocator_instance = FailingAllocator.init(&base_allocator_insta pub var base_allocator_instance = std.mem.validationWrap(std.heap.ThreadSafeFixedBufferAllocator.init(allocator_mem[0..])); var allocator_mem: [2 * 1024 * 1024]u8 = undefined; +/// TODO https://github.com/ziglang/zig/issues/5738 +pub var log_level = std.log.Level.warn; + /// This function is intended to be used only in tests. It prints diagnostics to stderr /// and then aborts when actual_error_union is not expected_error. pub fn expectError(expected_error: anyerror, actual_error_union: var) void {