mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
fix test failures by adding readVec
This commit is contained in:
parent
afe9f3a9ec
commit
84e4343b0c
1 changed files with 21 additions and 4 deletions
|
|
@ -60,7 +60,7 @@ pub fn init(input: *Reader, container: Container, buffer: []u8) Decompress {
|
|||
.stream = stream,
|
||||
.rebase = rebase,
|
||||
.discard = discard,
|
||||
.readVec = Reader.indirectReadVec,
|
||||
.readVec = readVec,
|
||||
},
|
||||
.buffer = buffer,
|
||||
.seek = 0,
|
||||
|
|
@ -109,6 +109,22 @@ fn discard(r: *Reader, limit: std.Io.Limit) Reader.Error!usize {
|
|||
return n;
|
||||
}
|
||||
|
||||
fn readVec(r: *Reader, data: []const []u8) Reader.Error!usize {
|
||||
_ = data;
|
||||
assert(r.seek == r.end);
|
||||
r.rebase(flate.history_len) catch unreachable;
|
||||
var writer: Writer = .{
|
||||
.buffer = r.buffer,
|
||||
.end = r.end,
|
||||
.vtable = &.{ .drain = Writer.fixedDrain },
|
||||
};
|
||||
r.end += r.vtable.stream(r, &writer, .limited(writer.buffer.len - writer.end)) catch |err| switch (err) {
|
||||
error.WriteFailed => unreachable,
|
||||
else => |e| return e,
|
||||
};
|
||||
return 0;
|
||||
}
|
||||
|
||||
fn decodeLength(self: *Decompress, code: u8) !u16 {
|
||||
if (code > 28) return error.InvalidCode;
|
||||
const ml = Token.matchLength(code);
|
||||
|
|
@ -1073,8 +1089,8 @@ test "reading into empty buffer" {
|
|||
var in: Reader = .fixed(input);
|
||||
var decomp: Decompress = .init(&in, .raw, &.{});
|
||||
const r = &decomp.reader;
|
||||
var buf: [0]u8 = undefined;
|
||||
try testing.expectEqual(0, try r.readVec(&.{&buf}));
|
||||
var bufs: [1][]u8 = .{&.{}};
|
||||
try testing.expectEqual(0, try r.readVec(&bufs));
|
||||
}
|
||||
|
||||
test "zlib header" {
|
||||
|
|
@ -1135,7 +1151,8 @@ test "zlib should not overshoot" {
|
|||
|
||||
var reader: std.Io.Reader = .fixed(&data);
|
||||
|
||||
var decompress: Decompress = .init(&reader, .zlib, &.{});
|
||||
var decompress_buffer: [flate.max_window_len]u8 = undefined;
|
||||
var decompress: Decompress = .init(&reader, .zlib, &decompress_buffer);
|
||||
var out: [128]u8 = undefined;
|
||||
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue