authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-12-19 18:58:52-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-12-23 22:15:11-08:00
log2e4a6c88b535f049fd52a84d9b9e510cf70a42fd
tree09e831f13992f3c542601c677225f3547ba9f79f
parent99f25bfc23a902d7cf047ae2b95e1d9d7e3b09ee

compiler: fix test-unit compilation failures


2 files changed, 23 insertions(+), 20 deletions(-)

src/Package/Fetch.zig+21-18
......@@ -2040,7 +2040,7 @@ const UnpackResult = struct {
20402040 defer errors.deinit(gpa);
20412041 var aw: Io.Writer.Allocating = .init(gpa);
20422042 defer aw.deinit();
2043 try errors.renderToWriter(.{}, &aw.writer, .no_color);
2043 try errors.renderToWriter(.{}, &aw.writer);
20442044 try std.testing.expectEqualStrings(
20452045 \\error: unable to unpack
20462046 \\ note: unable to create symlink from 'dir2/file2' to 'filename': SymlinkError
......@@ -2210,13 +2210,13 @@ test "set executable bit based on file content" {
22102210 defer out.close(io);
22112211 const S = std.posix.S;
22122212 // expect executable bit not set
2213 try std.testing.expect((try out.statFile(io, "file1", .{})).mode & S.IXUSR == 0);
2214 try std.testing.expect((try out.statFile(io, "script_without_shebang", .{})).mode & S.IXUSR == 0);
2213 try std.testing.expect((try out.statFile(io, "file1", .{})).permissions.toMode() & S.IXUSR == 0);
2214 try std.testing.expect((try out.statFile(io, "script_without_shebang", .{})).permissions.toMode() & S.IXUSR == 0);
22152215 // expect executable bit set
2216 try std.testing.expect((try out.statFile(io, "hello", .{})).mode & S.IXUSR != 0);
2217 try std.testing.expect((try out.statFile(io, "script", .{})).mode & S.IXUSR != 0);
2218 try std.testing.expect((try out.statFile(io, "script_with_shebang_without_exec_bit", .{})).mode & S.IXUSR != 0);
2219 try std.testing.expect((try out.statFile(io, "hello_ln", .{})).mode & S.IXUSR != 0);
2216 try std.testing.expect((try out.statFile(io, "hello", .{})).permissions.toMode() & S.IXUSR != 0);
2217 try std.testing.expect((try out.statFile(io, "script", .{})).permissions.toMode() & S.IXUSR != 0);
2218 try std.testing.expect((try out.statFile(io, "script_with_shebang_without_exec_bit", .{})).permissions.toMode() & S.IXUSR != 0);
2219 try std.testing.expect((try out.statFile(io, "hello_ln", .{})).permissions.toMode() & S.IXUSR != 0);
22202220
22212221 //
22222222 // $ ls -al zig-cache/tmp/OCz9ovUcstDjTC_U/zig-global-cache/p/1220fecb4c06a9da8673c87fe8810e15785f1699212f01728eadce094d21effeeef3
......@@ -2233,7 +2233,7 @@ fn saveEmbedFile(io: Io, comptime tarball_name: []const u8, dir: Io.Dir) !void {
22332233 const tarball_content = @embedFile("Fetch/testdata/" ++ tarball_name);
22342234 var tmp_file = try dir.createFile(io, tarball_name, .{});
22352235 defer tmp_file.close(io);
2236 try tmp_file.writeAll(tarball_content);
2236 try tmp_file.writeStreamingAll(io, tarball_content);
22372237}
22382238
22392239// Builds Fetch with required dependencies, clears dependencies on deinit().
......@@ -2316,21 +2316,22 @@ const TestFetchBuilder = struct {
23162316 // expected_files must be sorted.
23172317 fn expectPackageFiles(self: *TestFetchBuilder, expected_files: []const []const u8) !void {
23182318 const io = self.job_queue.io;
2319 const gpa = std.testing.allocator;
23192320
23202321 var package_dir = try self.packageDir();
23212322 defer package_dir.close(io);
23222323
23232324 var actual_files: std.ArrayList([]u8) = .empty;
2324 defer actual_files.deinit(std.testing.allocator);
2325 defer for (actual_files.items) |file| std.testing.allocator.free(file);
2326 var walker = try package_dir.walk(std.testing.allocator);
2325 defer actual_files.deinit(gpa);
2326 defer for (actual_files.items) |file| gpa.free(file);
2327 var walker = try package_dir.walk(gpa);
23272328 defer walker.deinit();
2328 while (try walker.next()) |entry| {
2329 while (try walker.next(io)) |entry| {
23292330 if (entry.kind != .file) continue;
2330 const path = try std.testing.allocator.dupe(u8, entry.path);
2331 errdefer std.testing.allocator.free(path);
2331 const path = try gpa.dupe(u8, entry.path);
2332 errdefer gpa.free(path);
23322333 std.mem.replaceScalar(u8, path, std.fs.path.sep, '/');
2333 try actual_files.append(std.testing.allocator, path);
2334 try actual_files.append(gpa, path);
23342335 }
23352336 std.mem.sortUnstable([]u8, actual_files.items, {}, struct {
23362337 fn lessThan(_: void, a: []u8, b: []u8) bool {
......@@ -2347,17 +2348,19 @@ const TestFetchBuilder = struct {
23472348
23482349 // Test helper, asserts that fetch has failed with `msg` error message.
23492350 fn expectFetchErrors(self: *TestFetchBuilder, notes_len: usize, msg: []const u8) !void {
2351 const gpa = std.testing.allocator;
2352
23502353 var errors = try self.fetch.error_bundle.toOwnedBundle("");
2351 defer errors.deinit(std.testing.allocator);
2354 defer errors.deinit(gpa);
23522355
23532356 const em = errors.getErrorMessage(errors.getMessages()[0]);
23542357 try std.testing.expectEqual(1, em.count);
23552358 if (notes_len > 0) {
23562359 try std.testing.expectEqual(notes_len, em.notes_len);
23572360 }
2358 var aw: Io.Writer.Allocating = .init(std.testing.allocator);
2361 var aw: Io.Writer.Allocating = .init(gpa);
23592362 defer aw.deinit();
2360 try errors.renderToWriter(.{}, &aw.writer, .no_color);
2363 try errors.renderToWriter(.{}, &aw.writer);
23612364 try std.testing.expectEqualStrings(msg, aw.written());
23622365 }
23632366};
src/Package/Fetch/git.zig+2-2
......@@ -1586,7 +1586,7 @@ fn runRepositoryTest(io: Io, comptime format: Oid.Format, head_commit: []const u
15861586 defer git_dir.cleanup();
15871587 var pack_file = try git_dir.dir.createFile(io, "testrepo.pack", .{ .read = true });
15881588 defer pack_file.close(io);
1589 try pack_file.writeAll(testrepo_pack);
1589 try pack_file.writeStreamingAll(io, testrepo_pack);
15901590
15911591 var pack_file_buffer: [2000]u8 = undefined;
15921592 var pack_file_reader = pack_file.reader(io, &pack_file_buffer);
......@@ -1648,7 +1648,7 @@ fn runRepositoryTest(io: Io, comptime format: Oid.Format, head_commit: []const u
16481648 defer for (actual_files.items) |file| testing.allocator.free(file);
16491649 var walker = try worktree.dir.walk(testing.allocator);
16501650 defer walker.deinit();
1651 while (try walker.next()) |entry| {
1651 while (try walker.next(io)) |entry| {
16521652 if (entry.kind != .file) continue;
16531653 const path = try testing.allocator.dupe(u8, entry.path);
16541654 errdefer testing.allocator.free(path);