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(...@@ -333,6 +333,7 @@ pub fn GenericReader(
333 a.err = err;333 a.err = err;
334 return error.ReadFailed;334 return error.ReadFailed;
335 };335 };
336 if (n == 0) return error.EndOfStream;
336 w.advance(n);337 w.advance(n);
337 return n;338 return n;
338 }339 }
lib/std/Io/DeprecatedReader.zig+1
...@@ -397,6 +397,7 @@ pub const Adapter = struct {...@@ -397,6 +397,7 @@ pub const Adapter = struct {
397 a.err = err;397 a.err = err;
398 return error.ReadFailed;398 return error.ReadFailed;
399 };399 };
400 if (n == 0) return error.EndOfStream;
400 w.advance(n);401 w.advance(n);
401 return n;402 return n;
402 }403 }
lib/std/Io/test.zig+8
...@@ -180,3 +180,11 @@ test "GenericReader methods can return error.EndOfStream" {...@@ -180,3 +180,11 @@ test "GenericReader methods can return error.EndOfStream" {
180 fbs.reader().isBytes("foo"),180 fbs.reader().isBytes("foo"),
181 );181 );
182}182}
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}