authorgravatar for goon.pri.low@gmail.comKendall Condon <goon.pri.low@gmail.com> 2025-07-28 19:13:22-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-28 21:41:19-07:00
logecd3ea9bd2f543f44813da21fd6b77d53dd72d7c
tree6012d72945bb05a5ecd842c0d4aada1e037b6a61
parent147a852806a5c20680d8be4ec63bea9f972feee6

DeprecatedReader.Adapted: fix EndOfStream handling


3 files changed, 10 insertions(+), 0 deletions(-)

lib/std/Io.zig+1
......@@ -333,6 +333,7 @@ pub fn GenericReader(
333333 a.err = err;
334334 return error.ReadFailed;
335335 };
336 if (n == 0) return error.EndOfStream;
336337 w.advance(n);
337338 return n;
338339 }
lib/std/Io/DeprecatedReader.zig+1
......@@ -397,6 +397,7 @@ pub const Adapter = struct {
397397 a.err = err;
398398 return error.ReadFailed;
399399 };
400 if (n == 0) return error.EndOfStream;
400401 w.advance(n);
401402 return n;
402403 }
lib/std/Io/test.zig+8
......@@ -180,3 +180,11 @@ test "GenericReader methods can return error.EndOfStream" {
180180 fbs.reader().isBytes("foo"),
181181 );
182182}
183
184test "Adapted DeprecatedReader EndOfStream" {
185 var fbs: io.FixedBufferStream([]const u8) = .{ .buffer = &.{}, .pos = 0 };
186 const reader = fbs.reader();
187 var buf: [1]u8 = undefined;
188 var adapted = reader.adaptToNewApi(&buf);
189 try std.testing.expectError(error.EndOfStream, adapted.new_interface.takeByte());
190}