| ... | @@ -129,12 +129,11 @@ fn mainTerminal() void { | ... | @@ -129,12 +129,11 @@ fn mainTerminal() void { |
| 129 | var ok_count: usize = 0; | 129 | var ok_count: usize = 0; |
| 130 | var skip_count: usize = 0; | 130 | var skip_count: usize = 0; |
| 131 | var fail_count: usize = 0; | 131 | var fail_count: usize = 0; |
| 132 | var progress = std.Progress{ | 132 | const root_node = std.Progress.start(.{ |
| 133 | .dont_print_on_dumb = true, | 133 | .root_name = "Test", |
| 134 | }; | 134 | .estimated_total_items = test_fn_list.len, |
| 135 | const root_node = progress.start("Test", test_fn_list.len); | 135 | }); |
| 136 | const have_tty = progress.terminal != null and | 136 | const have_tty = std.io.getStdErr().isTty(); |
| 137 | (progress.supports_ansi_escape_codes or progress.is_windows_terminal); | | |
| 138 | | 137 | |
| 139 | var async_frame_buffer: []align(builtin.target.stackAlignment()) u8 = undefined; | 138 | var async_frame_buffer: []align(builtin.target.stackAlignment()) u8 = undefined; |
| 140 | // TODO this is on the next line (using `undefined` above) because otherwise zig incorrectly | 139 | // TODO this is on the next line (using `undefined` above) because otherwise zig incorrectly |
| ... | @@ -151,11 +150,9 @@ fn mainTerminal() void { | ... | @@ -151,11 +150,9 @@ fn mainTerminal() void { |
| 151 | } | 150 | } |
| 152 | std.testing.log_level = .warn; | 151 | std.testing.log_level = .warn; |
| 153 | | 152 | |
| 154 | var test_node = root_node.start(test_fn.name, 0); | 153 | const test_node = root_node.start(test_fn.name, 0); |
| 155 | test_node.activate(); | | |
| 156 | progress.refresh(); | | |
| 157 | if (!have_tty) { | 154 | if (!have_tty) { |
| 158 | std.debug.print("{d}/{d} {s}... ", .{ i + 1, test_fn_list.len, test_fn.name }); | 155 | std.debug.print("{d}/{d} {s}...", .{ i + 1, test_fn_list.len, test_fn.name }); |
| 159 | } | 156 | } |
| 160 | if (test_fn.func()) |_| { | 157 | if (test_fn.func()) |_| { |
| 161 | ok_count += 1; | 158 | ok_count += 1; |
| ... | @@ -164,12 +161,22 @@ fn mainTerminal() void { | ... | @@ -164,12 +161,22 @@ fn mainTerminal() void { |
| 164 | } else |err| switch (err) { | 161 | } else |err| switch (err) { |
| 165 | error.SkipZigTest => { | 162 | error.SkipZigTest => { |
| 166 | skip_count += 1; | 163 | skip_count += 1; |
| 167 | progress.log("SKIP\n", .{}); | 164 | if (have_tty) { |
| | 165 | std.debug.print("{d}/{d} {s}...SKIP\n", .{ i + 1, test_fn_list.len, test_fn.name }); |
| | 166 | } else { |
| | 167 | std.debug.print("SKIP\n", .{}); |
| | 168 | } |
| 168 | test_node.end(); | 169 | test_node.end(); |
| 169 | }, | 170 | }, |
| 170 | else => { | 171 | else => { |
| 171 | fail_count += 1; | 172 | fail_count += 1; |
| 172 | progress.log("FAIL ({s})\n", .{@errorName(err)}); | 173 | if (have_tty) { |
| | 174 | std.debug.print("{d}/{d} {s}...FAIL ({s})\n", .{ |
| | 175 | i + 1, test_fn_list.len, test_fn.name, @errorName(err), |
| | 176 | }); |
| | 177 | } else { |
| | 178 | std.debug.print("FAIL ({s})\n", .{@errorName(err)}); |
| | 179 | } |
| 173 | if (@errorReturnTrace()) |trace| { | 180 | if (@errorReturnTrace()) |trace| { |
| 174 | std.debug.dumpStackTrace(trace.*); | 181 | std.debug.dumpStackTrace(trace.*); |
| 175 | } | 182 | } |