| ... | ... | @@ -1368,13 +1368,29 @@ test "makepath ignores '.'" { |
| 1368 | 1368 | } |
| 1369 | 1369 | |
| 1370 | 1370 | fn 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 |
| 1372 | 1372 | { |
| 1373 | try iterable_dir.writeFile(io, .{ .sub_path = maxed_filename, .data = "" }); |
| 1374 | |
| 1373 | 1375 | var maxed_dir = try iterable_dir.makeOpenPath(io, maxed_filename, .{}); |
| 1374 | 1376 | defer maxed_dir.close(io); |
| 1375 | 1377 | |
| 1376 | 1378 | 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); |
| 1377 | 1384 | |
| 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 | { |
| 1378 | 1394 | var walker = try iterable_dir.walk(testing.allocator); |
| 1379 | 1395 | defer walker.deinit(); |
| 1380 | 1396 | |
| ... | ... | @@ -1383,7 +1399,7 @@ fn testFilenameLimits(io: Io, iterable_dir: Dir, maxed_filename: []const u8) !vo |
| 1383 | 1399 | try expectEqualStrings(maxed_filename, entry.basename); |
| 1384 | 1400 | count += 1; |
| 1385 | 1401 | } |
| 1386 | | try expectEqual(@as(usize, 2), count); |
| 1402 | try expectEqual(@as(usize, 3), count); |
| 1387 | 1403 | } |
| 1388 | 1404 | |
| 1389 | 1405 | // ensure that we can delete the tree |