aboutsummaryrefslogtreecommitdiff
path: root/lib/std/testing.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-07-16 23:02:39 -0700
committerAndrew Kelley <andrew@ziglang.org>2025-07-17 09:26:31 -0700
commit86699acbb951ceed3ecdd3bd93a00ceb02028361 (patch)
tree772b69fba09b04071a840ddfdedcdd3ed0da249b /lib/std/testing.zig
parentb7d7446fbbfc35f291ffb641470233a7a9e18b9b (diff)
downloadzig-86699acbb951ceed3ecdd3bd93a00ceb02028361.tar.gz
zig-86699acbb951ceed3ecdd3bd93a00ceb02028361.zip
std.Io.Reader: update OneByteReader usage to std.testing.Reader
Diffstat (limited to 'lib/std/testing.zig')
-rw-r--r--lib/std/testing.zig10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/std/testing.zig b/lib/std/testing.zig
index 8e7ffd3f23..f9027a4f47 100644
--- a/lib/std/testing.zig
+++ b/lib/std/testing.zig
@@ -1207,12 +1207,14 @@ pub inline fn fuzz(
return @import("root").fuzz(context, testOne, options);
}
-/// A `std.io.Reader` that writes a predetermined list of buffers during `stream`.
+/// A `std.Io.Reader` that writes a predetermined list of buffers during `stream`.
pub const Reader = struct {
calls: []const Call,
- interface: std.io.Reader,
+ interface: std.Io.Reader,
next_call_index: usize,
next_offset: usize,
+ /// Further reduces how many bytes are written in each `stream` call.
+ artificial_limit: std.Io.Limit = .unlimited,
pub const Call = struct {
buffer: []const u8,
@@ -1232,11 +1234,11 @@ pub const Reader = struct {
};
}
- fn stream(io_r: *std.io.Reader, w: *std.io.Writer, limit: std.io.Limit) std.io.Reader.StreamError!usize {
+ fn stream(io_r: *std.Io.Reader, w: *std.Io.Writer, limit: std.Io.Limit) std.Io.Reader.StreamError!usize {
const r: *Reader = @alignCast(@fieldParentPtr("interface", io_r));
if (r.calls.len - r.next_call_index == 0) return error.EndOfStream;
const call = r.calls[r.next_call_index];
- const buffer = limit.sliceConst(call.buffer[r.next_offset..]);
+ const buffer = r.artificial_limit.sliceConst(limit.sliceConst(call.buffer[r.next_offset..]));
const n = try w.write(buffer);
r.next_offset += n;
if (call.buffer.len - r.next_offset == 0) {