authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-10-20 23:26:14-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-10-29 06:20:50-07:00
log67df66c26cdf63a637c9ac86b64f447d2053b6b3
treee354500599dba4825236547e6d2b0c29c679225c
parent4174ac18e9563c79f723e51db6c3abbb4eb3f73a

update some tests and tools for new Io APIs


7 files changed, 38 insertions(+), 16 deletions(-)

test/stack_traces.zig+10-10
...@@ -116,12 +116,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {...@@ -116,12 +116,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
116 .source =116 .source =
117 \\pub fn main() void {117 \\pub fn main() void {
118 \\ var stack_trace_buf: [8]usize = undefined;118 \\ var stack_trace_buf: [8]usize = undefined;
119 \\ dumpIt(&captureIt(&stack_trace_buf));119 \\ dumpIt(captureIt(&stack_trace_buf));
120 \\}120 \\}
121 \\fn captureIt(buf: []usize) std.builtin.StackTrace {121 \\fn captureIt(buf: []usize) std.builtin.StackTrace {
122 \\ return captureItInner(buf);122 \\ return captureItInner(buf);
123 \\}123 \\}
124 \\fn dumpIt(st: *const std.builtin.StackTrace) void {124 \\fn dumpIt(st: std.builtin.StackTrace) void {
125 \\ std.debug.dumpStackTrace(st);125 \\ std.debug.dumpStackTrace(st);
126 \\}126 \\}
127 \\fn captureItInner(buf: []usize) std.builtin.StackTrace {127 \\fn captureItInner(buf: []usize) std.builtin.StackTrace {
...@@ -140,8 +140,8 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {...@@ -140,8 +140,8 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
140 \\ return captureItInner(buf);140 \\ return captureItInner(buf);
141 \\ ^141 \\ ^
142 \\source.zig:3:22: [address] in main142 \\source.zig:3:22: [address] in main
143 \\ dumpIt(&captureIt(&stack_trace_buf));143 \\ dumpIt(captureIt(&stack_trace_buf));
144 \\ ^144 \\ ^
145 \\145 \\
146 ,146 ,
147 .expect_strip =147 .expect_strip =
...@@ -157,12 +157,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {...@@ -157,12 +157,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
157 .source =157 .source =
158 \\pub fn main() void {158 \\pub fn main() void {
159 \\ var stack_trace_buf: [8]usize = undefined;159 \\ var stack_trace_buf: [8]usize = undefined;
160 \\ dumpIt(&captureIt(&stack_trace_buf));160 \\ dumpIt(captureIt(&stack_trace_buf));
161 \\}161 \\}
162 \\fn captureIt(buf: []usize) std.builtin.StackTrace {162 \\fn captureIt(buf: []usize) std.builtin.StackTrace {
163 \\ return captureItInner(buf);163 \\ return captureItInner(buf);
164 \\}164 \\}
165 \\fn dumpIt(st: *const std.builtin.StackTrace) void {165 \\fn dumpIt(st: std.builtin.StackTrace) void {
166 \\ std.debug.dumpStackTrace(st);166 \\ std.debug.dumpStackTrace(st);
167 \\}167 \\}
168 \\fn captureItInner(buf: []usize) std.builtin.StackTrace {168 \\fn captureItInner(buf: []usize) std.builtin.StackTrace {
...@@ -186,12 +186,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {...@@ -186,12 +186,12 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
186 \\ t.join();186 \\ t.join();
187 \\}187 \\}
188 \\fn threadMain(stack_trace_buf: []usize) void {188 \\fn threadMain(stack_trace_buf: []usize) void {
189 \\ dumpIt(&captureIt(stack_trace_buf));189 \\ dumpIt(captureIt(stack_trace_buf));
190 \\}190 \\}
191 \\fn captureIt(buf: []usize) std.builtin.StackTrace {191 \\fn captureIt(buf: []usize) std.builtin.StackTrace {
192 \\ return captureItInner(buf);192 \\ return captureItInner(buf);
193 \\}193 \\}
194 \\fn dumpIt(st: *const std.builtin.StackTrace) void {194 \\fn dumpIt(st: std.builtin.StackTrace) void {
195 \\ std.debug.dumpStackTrace(st);195 \\ std.debug.dumpStackTrace(st);
196 \\}196 \\}
197 \\fn captureItInner(buf: []usize) std.builtin.StackTrace {197 \\fn captureItInner(buf: []usize) std.builtin.StackTrace {
...@@ -210,8 +210,8 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {...@@ -210,8 +210,8 @@ pub fn addCases(cases: *@import("tests.zig").StackTracesContext) void {
210 \\ return captureItInner(buf);210 \\ return captureItInner(buf);
211 \\ ^211 \\ ^
212 \\source.zig:7:22: [address] in threadMain212 \\source.zig:7:22: [address] in threadMain
213 \\ dumpIt(&captureIt(stack_trace_buf));213 \\ dumpIt(captureIt(stack_trace_buf));
214 \\ ^214 \\ ^
215 \\215 \\
216 ,216 ,
217 .expect_strip =217 .expect_strip =
test/standalone/coff_dwarf/main.zig+5-1
...@@ -11,10 +11,14 @@ pub fn main() void {...@@ -11,10 +11,14 @@ pub fn main() void {
11 var di: std.debug.SelfInfo = .init;11 var di: std.debug.SelfInfo = .init;
12 defer di.deinit(gpa);12 defer di.deinit(gpa);
1313
14 var threaded: std.Io.Threaded = .init(gpa);
15 defer threaded.deinit();
16 const io = threaded.io();
17
14 var add_addr: usize = undefined;18 var add_addr: usize = undefined;
15 _ = add(1, 2, &add_addr);19 _ = add(1, 2, &add_addr);
1620
17 const symbol = di.getSymbol(gpa, add_addr) catch |err| fatal("failed to get symbol: {t}", .{err});21 const symbol = di.getSymbol(gpa, io, add_addr) catch |err| fatal("failed to get symbol: {t}", .{err});
18 defer if (symbol.source_location) |sl| gpa.free(sl.file_name);22 defer if (symbol.source_location) |sl| gpa.free(sl.file_name);
1923
20 if (symbol.name == null) fatal("failed to resolve symbol name", .{});24 if (symbol.name == null) fatal("failed to resolve symbol name", .{});
test/standalone/libfuzzer/main.zig+5-1
...@@ -15,6 +15,10 @@ pub fn main() !void {...@@ -15,6 +15,10 @@ pub fn main() !void {
15 defer args.deinit();15 defer args.deinit();
16 _ = args.skip(); // executable name16 _ = args.skip(); // executable name
1717
18 var threaded: std.Io.Threaded = .init(gpa);
19 defer threaded.deinit();
20 const io = threaded.io();
21
18 const cache_dir_path = args.next() orelse @panic("expected cache directory path argument");22 const cache_dir_path = args.next() orelse @panic("expected cache directory path argument");
19 var cache_dir = try std.fs.cwd().openDir(cache_dir_path, .{});23 var cache_dir = try std.fs.cwd().openDir(cache_dir_path, .{});
20 defer cache_dir.close();24 defer cache_dir.close();
...@@ -30,7 +34,7 @@ pub fn main() !void {...@@ -30,7 +34,7 @@ pub fn main() !void {
30 defer coverage_file.close();34 defer coverage_file.close();
3135
32 var read_buf: [@sizeOf(abi.SeenPcsHeader)]u8 = undefined;36 var read_buf: [@sizeOf(abi.SeenPcsHeader)]u8 = undefined;
33 var r = coverage_file.reader(&read_buf);37 var r = coverage_file.reader(io, &read_buf);
34 const pcs_header = r.interface.takeStruct(abi.SeenPcsHeader, native_endian) catch return r.err.?;38 const pcs_header = r.interface.takeStruct(abi.SeenPcsHeader, native_endian) catch return r.err.?;
3539
36 if (pcs_header.pcs_len == 0)40 if (pcs_header.pcs_len == 0)
tools/fetch_them_macos_headers.zig+5-1
...@@ -85,8 +85,12 @@ pub fn main() anyerror!void {...@@ -85,8 +85,12 @@ pub fn main() anyerror!void {
85 } else try argv.append(arg);85 } else try argv.append(arg);
86 }86 }
8787
88 var threaded: std.Io.Threaded = .init(gpa);
89 defer threaded.deinit();
90 const io = threaded.io();
91
88 const sysroot_path = sysroot orelse blk: {92 const sysroot_path = sysroot orelse blk: {
89 const target = try std.zig.system.resolveTargetQuery(.{});93 const target = try std.zig.system.resolveTargetQuery(io, .{});
90 break :blk std.zig.system.darwin.getSdk(allocator, &target) orelse94 break :blk std.zig.system.darwin.getSdk(allocator, &target) orelse
91 fatal("no SDK found; you can provide one explicitly with '--sysroot' flag", .{});95 fatal("no SDK found; you can provide one explicitly with '--sysroot' flag", .{});
92 };96 };
tools/gen_macos_headers_c.zig+1-1
...@@ -33,7 +33,7 @@ pub fn main() anyerror!void {...@@ -33,7 +33,7 @@ pub fn main() anyerror!void {
3333
34 if (positionals.items.len != 1) fatal("expected one positional argument: [dir]", .{});34 if (positionals.items.len != 1) fatal("expected one positional argument: [dir]", .{});
3535
36 var dir = try std.fs.cwd().openDir(positionals.items[0], .{ .no_follow = true });36 var dir = try std.fs.cwd().openDir(positionals.items[0], .{ .follow_symlinks = false });
37 defer dir.close();37 defer dir.close();
38 var paths = std.array_list.Managed([]const u8).init(arena);38 var paths = std.array_list.Managed([]const u8).init(arena);
39 try findHeaders(arena, dir, "", &paths);39 try findHeaders(arena, dir, "", &paths);
tools/generate_c_size_and_align_checks.zig+5-1
...@@ -39,8 +39,12 @@ pub fn main() !void {...@@ -39,8 +39,12 @@ pub fn main() !void {
39 std.process.exit(1);39 std.process.exit(1);
40 }40 }
4141
42 var threaded: std.Io.Threaded = .init(gpa);
43 defer threaded.deinit();
44 const io = threaded.io();
45
42 const query = try std.Target.Query.parse(.{ .arch_os_abi = args[1] });46 const query = try std.Target.Query.parse(.{ .arch_os_abi = args[1] });
43 const target = try std.zig.system.resolveTargetQuery(query);47 const target = try std.zig.system.resolveTargetQuery(io, query);
4448
45 var buffer: [2000]u8 = undefined;49 var buffer: [2000]u8 = undefined;
46 var stdout_writer = std.fs.File.stdout().writerStreaming(&buffer);50 var stdout_writer = std.fs.File.stdout().writerStreaming(&buffer);
tools/migrate_langref.zig+7-1
...@@ -13,10 +13,16 @@ pub fn main() !void {...@@ -13,10 +13,16 @@ pub fn main() !void {
13 defer arena_instance.deinit();13 defer arena_instance.deinit();
14 const arena = arena_instance.allocator();14 const arena = arena_instance.allocator();
1515
16 const gpa = arena;
17
16 const args = try std.process.argsAlloc(arena);18 const args = try std.process.argsAlloc(arena);
17 const input_file = args[1];19 const input_file = args[1];
18 const output_file = args[2];20 const output_file = args[2];
1921
22 var threaded: std.Io.Threaded = .init(gpa);
23 defer threaded.deinit();
24 const io = threaded.io();
25
20 var in_file = try fs.cwd().openFile(input_file, .{ .mode = .read_only });26 var in_file = try fs.cwd().openFile(input_file, .{ .mode = .read_only });
21 defer in_file.close();27 defer in_file.close();
2228
...@@ -28,7 +34,7 @@ pub fn main() !void {...@@ -28,7 +34,7 @@ pub fn main() !void {
28 var out_dir = try fs.cwd().openDir(fs.path.dirname(output_file).?, .{});34 var out_dir = try fs.cwd().openDir(fs.path.dirname(output_file).?, .{});
29 defer out_dir.close();35 defer out_dir.close();
3036
31 var in_file_reader = in_file.reader(&.{});37 var in_file_reader = in_file.reader(io, &.{});
32 const input_file_bytes = try in_file_reader.interface.allocRemaining(arena, .unlimited);38 const input_file_bytes = try in_file_reader.interface.allocRemaining(arena, .unlimited);
3339
34 var tokenizer = Tokenizer.init(input_file, input_file_bytes);40 var tokenizer = Tokenizer.init(input_file, input_file_bytes);