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:
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());
+}