zig

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

commit f22443bb05a6be6c3ade08254f52fdd05eeb2910 (tree)
parent f516e2c5b1d0e073d9ab4cd417aeb21f6cdf4a99
Author: Sebsatian Keller <sebastiankeller@fastmail.net>
Date:   Sun, 13 Feb 2022 14:19:33 +0100

Fixed progress indicator for `zig test` (#10859)

Previously the progress displayed the first item as [0/x]. This was
misleading when x is the number of items. The first item should be
displayed as [1/x]
Diffstat:
Mlib/std/Progress.zig | 5+++--
Mlib/std/special/test_runner.zig | 4++--
2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/lib/std/Progress.zig b/lib/std/Progress.zig @@ -261,6 +261,7 @@ fn refreshWithHeldLock(self: *Progress) void { need_ellipse = false; const eti = @atomicLoad(usize, &node.unprotected_estimated_total_items, .Monotonic); const completed_items = @atomicLoad(usize, &node.unprotected_completed_items, .Monotonic); + const current_item = completed_items + 1; if (node.name.len != 0 or eti > 0) { if (node.name.len != 0) { self.bufWrite(&end, "{s}", .{node.name}); @@ -268,11 +269,11 @@ fn refreshWithHeldLock(self: *Progress) void { } if (eti > 0) { if (need_ellipse) self.bufWrite(&end, " ", .{}); - self.bufWrite(&end, "[{d}/{d}] ", .{ completed_items, eti }); + self.bufWrite(&end, "[{d}/{d}] ", .{ current_item, eti }); need_ellipse = false; } else if (completed_items != 0) { if (need_ellipse) self.bufWrite(&end, " ", .{}); - self.bufWrite(&end, "[{d}] ", .{completed_items}); + self.bufWrite(&end, "[{d}] ", .{current_item}); need_ellipse = false; } } diff --git a/lib/std/special/test_runner.zig b/lib/std/special/test_runner.zig @@ -82,18 +82,18 @@ pub fn main() void { } else |err| switch (err) { error.SkipZigTest => { skip_count += 1; - test_node.end(); progress.log("{s}... SKIP\n", .{test_fn.name}); if (!have_tty) std.debug.print("SKIP\n", .{}); + test_node.end(); }, else => { fail_count += 1; - test_node.end(); progress.log("{s}... FAIL ({s})\n", .{ test_fn.name, @errorName(err) }); if (!have_tty) std.debug.print("FAIL ({s})\n", .{@errorName(err)}); if (@errorReturnTrace()) |trace| { std.debug.dumpStackTrace(trace.*); } + test_node.end(); }, } }