From 7a56c8a66235440fdb4f2375a428564fde341c02 Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Thu, 30 Dec 2021 07:25:58 +0000 Subject: [PATCH] Use line iterator to read file --- src/main.zig | 21 ++++++++++++++++++++- src/test/two-lines.txt | 2 ++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/test/two-lines.txt diff --git a/src/main.zig b/src/main.zig index d687376..073f26b 100644 --- a/src/main.zig +++ b/src/main.zig @@ -43,8 +43,27 @@ fn lineIterator(reader: fs.File.Reader, allocator: mem.Allocator) LineIterator { }; } +test "lineIterator returns lines in buffer" { + const file = try fs.cwd().openFile("src/test/two-lines.txt", .{ .read = true, .write = false }); + defer file.close(); + + var reader = file.reader(); + var it = lineIterator(reader, testing.allocator); + + const line1 = it.next().?; + defer testing.allocator.free(line1); + try testing.expectEqualStrings("line 1", line1); + + const line2 = it.next().?; + defer testing.allocator.free(line2); + try testing.expectEqualStrings("line 2", line2); + const eof = it.next(); + + try testing.expect(eof == null); +} + const LineIterator = struct { - reader: std.io.BufferedReader(4096, fs.File.Reader), + reader: io.BufferedReader(4096, fs.File.Reader), delimiter: u8, allocator: mem.Allocator, diff --git a/src/test/two-lines.txt b/src/test/two-lines.txt new file mode 100644 index 0000000..7bba8c8 --- /dev/null +++ b/src/test/two-lines.txt @@ -0,0 +1,2 @@ +line 1 +line 2