Skip to content

Commit bf56cdd

Browse files
committed
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
1 parent 7bd0500 commit bf56cdd

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

lib/std/special/test_runner.zig

+12
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ pub fn main() anyerror!void {
2121

2222
for (test_fn_list) |test_fn, i| {
2323
std.testing.base_allocator_instance.reset();
24+
std.testing.log_level = .warn;
2425

2526
var test_node = root_node.start(test_fn.name, null);
2627
test_node.activate();
@@ -73,3 +74,14 @@ pub fn main() anyerror!void {
7374
std.debug.warn("{} passed; {} skipped.\n", .{ ok_count, skip_count });
7475
}
7576
}
77+
78+
pub fn log(
79+
comptime message_level: std.log.Level,
80+
comptime scope: @Type(.EnumLiteral),
81+
comptime format: []const u8,
82+
args: var,
83+
) void {
84+
if (@enumToInt(message_level) <= @enumToInt(std.testing.log_level)) {
85+
std.debug.print("[{}] ({}): " ++ format, .{@tagName(scope), @tagName(message_level)} ++ args);
86+
}
87+
}

lib/std/testing.zig

+3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ pub var failing_allocator_instance = FailingAllocator.init(&base_allocator_insta
1414
pub var base_allocator_instance = std.mem.validationWrap(std.heap.ThreadSafeFixedBufferAllocator.init(allocator_mem[0..]));
1515
var allocator_mem: [2 * 1024 * 1024]u8 = undefined;
1616

17+
/// TODO https://github.com/ziglang/zig/issues/5738
18+
pub var log_level = std.log.Level.warn;
19+
1720
/// This function is intended to be used only in tests. It prints diagnostics to stderr
1821
/// and then aborts when actual_error_union is not expected_error.
1922
pub fn expectError(expected_error: anyerror, actual_error_union: var) void {

0 commit comments

Comments
 (0)