zig

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

commit bf56cdd9edffd5b97d2084b46cda6e6a89a391c1 (tree)
parent 7bd0500589f02a6f2ba75525d803b2c1d7409ebe
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Wed,  8 Jul 2020 21:01:13 -0700

start to make test runner aware of logging

by default the test runner will only print logs with "warning" or
higher. this can be configured via the std.testing API.

See #5738 for future plans

Diffstat:
Mlib/std/special/test_runner.zig | 12++++++++++++
Mlib/std/testing.zig | 3+++
2 files changed, 15 insertions(+), 0 deletions(-)

diff --git 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 @@ -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 {