authorgravatar for squeek502@hotmail.comRyan Liptak <squeek502@hotmail.com> 2025-12-18 16:25:57-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-12-23 22:15:10-08:00
log1edae601a1d35caa78eddc4b18f7d613c4af70f9
treee4df3a2cb9e052e173c907c614377b40b2e3cee1
parent3466056478d2ad988b117a89d7cbe3cc1557425a

Test Dir.Reader.min_buffer_len via "max file name component lengths" test


1 files changed, 18 insertions(+), 2 deletions(-)

lib/std/fs/test.zig+18-2
......@@ -1368,13 +1368,29 @@ test "makepath ignores '.'" {
13681368}
13691369
13701370fn testFilenameLimits(io: Io, iterable_dir: Dir, maxed_filename: []const u8) !void {
1371 // setup, create a dir and a nested file both with maxed filenames, and walk the dir
1371 // create a file, a dir, and a nested file all with maxed filenames
13721372 {
1373 try iterable_dir.writeFile(io, .{ .sub_path = maxed_filename, .data = "" });
1374
13731375 var maxed_dir = try iterable_dir.makeOpenPath(io, maxed_filename, .{});
13741376 defer maxed_dir.close(io);
13751377
13761378 try maxed_dir.writeFile(io, .{ .sub_path = maxed_filename, .data = "" });
1379 }
1380 // Low level API with minimum buffer length
1381 {
1382 var reader_buf: [Dir.Reader.min_buffer_len]u8 align(@alignOf(usize)) = undefined;
1383 var reader: Dir.Reader = .init(iterable_dir, &reader_buf);
13771384
1385 var count: usize = 0;
1386 while (try reader.next(io)) |entry| {
1387 try expectEqualStrings(maxed_filename, entry.name);
1388 count += 1;
1389 }
1390 try expectEqual(@as(usize, 2), count);
1391 }
1392 // High level walk API
1393 {
13781394 var walker = try iterable_dir.walk(testing.allocator);
13791395 defer walker.deinit();
13801396
......@@ -1383,7 +1399,7 @@ fn testFilenameLimits(io: Io, iterable_dir: Dir, maxed_filename: []const u8) !vo
13831399 try expectEqualStrings(maxed_filename, entry.basename);
13841400 count += 1;
13851401 }
1386 try expectEqual(@as(usize, 2), count);
1402 try expectEqual(@as(usize, 3), count);
13871403 }
13881404
13891405 // ensure that we can delete the tree