| ... | ... | @@ -5,6 +5,7 @@ const fs = std.fs; |
| 5 | 5 | const mem = std.mem; |
| 6 | 6 | const wasi = std.os.wasi; |
| 7 | 7 | |
| 8 | const ArenaAllocator = std.heap.ArenaAllocator; |
| 8 | 9 | const Dir = std.fs.Dir; |
| 9 | 10 | const File = std.fs.File; |
| 10 | 11 | const tmpDir = testing.tmpDir; |
| ... | ... | @@ -19,13 +20,18 @@ test "Dir.Iterator" { |
| 19 | 20 | |
| 20 | 21 | try tmp_dir.dir.makeDir("some_dir"); |
| 21 | 22 | |
| 23 | var arena = ArenaAllocator.init(testing.allocator); |
| 24 | defer arena.deinit(); |
| 25 | |
| 26 | var entries = std.ArrayList(Dir.Entry).init(&arena.allocator); |
| 27 | |
| 22 | 28 | // Create iterator. |
| 23 | 29 | var iter = tmp_dir.dir.iterate(); |
| 24 | | var entries = std.ArrayList(Dir.Entry).init(testing.allocator); |
| 25 | | defer entries.deinit(); |
| 26 | | |
| 27 | 30 | while (try iter.next()) |entry| { |
| 28 | | try entries.append(entry); |
| 31 | // We cannot just store `entry` as on Windows, we're re-using the name buffer |
| 32 | // which means we'll actually share the `name` pointer between entries! |
| 33 | const name = try mem.dupe(&arena.allocator, u8, entry.name); |
| 34 | try entries.append(Dir.Entry{ .name = name, .kind = entry.kind }); |
| 29 | 35 | } |
| 30 | 36 | |
| 31 | 37 | testing.expect(entries.items.len == 2); // note that the Iterator skips '.' and '..' |