authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-05-24 10:33:35-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-05-27 20:56:48-07:00
log795c5791a962e4d4b46fa9fd0470fe8162d65521
tree1c79de1dff485e13e03f7e97eb8dc5b55f4ec36b
parentf97c2f28fdc3061bc7e30ccfcafaccbee77993b6

test runner: update to new std.Progress API


1 files changed, 19 insertions(+), 12 deletions(-)

lib/compiler/test_runner.zig+19-12
...@@ -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 and136 const have_tty = std.io.getStdErr().isTty();
137 (progress.supports_ansi_escape_codes or progress.is_windows_terminal);
138137
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 incorrectly139 // 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;
153152
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 }