zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit ecd3ea9bd2f543f44813da21fd6b77d53dd72d7c (tree)
parent 147a852806a5c20680d8be4ec63bea9f972feee6
Author: Kendall Condon <goon.pri.low@gmail.com>
Date:   Mon, 28 Jul 2025 19:13:22 -0400

DeprecatedReader.Adapted: fix EndOfStream handling

Diffstat:
Mlib/std/Io.zig | 1+
Mlib/std/Io/DeprecatedReader.zig | 1+
Mlib/std/Io/test.zig | 8++++++++
3 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/lib/std/Io.zig b/lib/std/Io.zig @@ -333,6 +333,7 @@ pub fn GenericReader( a.err = err; return error.ReadFailed; }; + if (n == 0) return error.EndOfStream; w.advance(n); return n; } diff --git a/lib/std/Io/DeprecatedReader.zig b/lib/std/Io/DeprecatedReader.zig @@ -397,6 +397,7 @@ pub const Adapter = struct { a.err = err; return error.ReadFailed; }; + if (n == 0) return error.EndOfStream; w.advance(n); return n; } diff --git a/lib/std/Io/test.zig b/lib/std/Io/test.zig @@ -180,3 +180,11 @@ test "GenericReader methods can return error.EndOfStream" { fbs.reader().isBytes("foo"), ); } + +test "Adapted DeprecatedReader EndOfStream" { + var fbs: io.FixedBufferStream([]const u8) = .{ .buffer = &.{}, .pos = 0 }; + const reader = fbs.reader(); + var buf: [1]u8 = undefined; + var adapted = reader.adaptToNewApi(&buf); + try std.testing.expectError(error.EndOfStream, adapted.new_interface.takeByte()); +}