authorgravatar for sebastiankeller@fastmail.netSebsatian Keller <sebastiankeller@fastmail.net> 2022-02-13 14:19:33+01:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2022-02-13 15:19:33+02:00
logf22443bb05a6be6c3ade08254f52fdd05eeb2910
tree56b847d89439c66bc3e116e8a465658a83b5815f
parentf516e2c5b1d0e073d9ab4cd417aeb21f6cdf4a99
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

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]

2 files changed, 5 insertions(+), 4 deletions(-)

lib/std/Progress.zig+3-2
......@@ -261,6 +261,7 @@ fn refreshWithHeldLock(self: *Progress) void {
261261 need_ellipse = false;
262262 const eti = @atomicLoad(usize, &node.unprotected_estimated_total_items, .Monotonic);
263263 const completed_items = @atomicLoad(usize, &node.unprotected_completed_items, .Monotonic);
264 const current_item = completed_items + 1;
264265 if (node.name.len != 0 or eti > 0) {
265266 if (node.name.len != 0) {
266267 self.bufWrite(&end, "{s}", .{node.name});
......@@ -268,11 +269,11 @@ fn refreshWithHeldLock(self: *Progress) void {
268269 }
269270 if (eti > 0) {
270271 if (need_ellipse) self.bufWrite(&end, " ", .{});
271 self.bufWrite(&end, "[{d}/{d}] ", .{ completed_items, eti });
272 self.bufWrite(&end, "[{d}/{d}] ", .{ current_item, eti });
272273 need_ellipse = false;
273274 } else if (completed_items != 0) {
274275 if (need_ellipse) self.bufWrite(&end, " ", .{});
275 self.bufWrite(&end, "[{d}] ", .{completed_items});
276 self.bufWrite(&end, "[{d}] ", .{current_item});
276277 need_ellipse = false;
277278 }
278279 }
lib/std/special/test_runner.zig+2-2
......@@ -82,18 +82,18 @@ pub fn main() void {
8282 } else |err| switch (err) {
8383 error.SkipZigTest => {
8484 skip_count += 1;
85 test_node.end();
8685 progress.log("{s}... SKIP\n", .{test_fn.name});
8786 if (!have_tty) std.debug.print("SKIP\n", .{});
87 test_node.end();
8888 },
8989 else => {
9090 fail_count += 1;
91 test_node.end();
9291 progress.log("{s}... FAIL ({s})\n", .{ test_fn.name, @errorName(err) });
9392 if (!have_tty) std.debug.print("FAIL ({s})\n", .{@errorName(err)});
9493 if (@errorReturnTrace()) |trace| {
9594 std.debug.dumpStackTrace(trace.*);
9695 }
96 test_node.end();
9797 },
9898 }
9999 }