authorgravatar for igor.anic@gmail.comIgor Anić <igor.anic@gmail.com> 2024-02-21 20:26:29+01:00
committergravatar for igor.anic@gmail.comIgor Anić <igor.anic@gmail.com> 2024-02-21 20:26:29+01:00
logce1a590fc9f57cde58c973d27461209ea2c34d37
treef49ccb1829d56d1c99c5f10935b630308e85af5e
parentd9950298444c3a3c9d2e5ec7efbf45e722bbed02

cleanup tests


1 files changed, 24 insertions(+), 26 deletions(-)

lib/std/io/buffered_tee.zig+24-26
......@@ -299,19 +299,18 @@ test "io.BufferedTee io.BufferedReader Block" {
299299}
300300
301301test "io.BufferedTee with zero lookahead" {
302 // output is has same bytes as reader
302 // output has same bytes as consumer
303303 const data = [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } ** 12;
304304 var in = io.fixedBufferStream(&data);
305305 var out = std.ArrayList(u8).init(testing.allocator);
306306 defer out.deinit();
307307
308 var lbr = bufferedTee(8, 0, in.reader(), out.writer());
308 var bt = bufferedTee(8, 0, in.reader(), out.writer());
309309
310310 var buf: [16]u8 = undefined;
311
312311 var read_len: usize = 0;
313312 for (0..buf.len) |i| {
314 const n = try lbr.read(buf[0..i]);
313 const n = try bt.read(buf[0..i]);
315314 try testing.expectEqual(i, n);
316315 read_len += i;
317316 try testing.expectEqual(read_len, out.items.len);
......@@ -319,72 +318,71 @@ test "io.BufferedTee with zero lookahead" {
319318}
320319
321320test "io.BufferedTee with lookahead" {
322 // output is lookahead bytes behind reader
321 // output is lookahead bytes behind consumer
323322 inline for (1..8) |lookahead| {
324323 const data = [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } ** 12;
325324 var in = io.fixedBufferStream(&data);
326325 var out = std.ArrayList(u8).init(testing.allocator);
327326 defer out.deinit();
328327
329 var lbr = bufferedTee(8, lookahead, in.reader(), out.writer());
328 var bt = bufferedTee(8, lookahead, in.reader(), out.writer());
330329 var buf: [16]u8 = undefined;
331330
332331 var read_len: usize = 0;
333332 for (1..buf.len) |i| {
334 const n = try lbr.read(buf[0..i]);
333 const n = try bt.read(buf[0..i]);
335334 try testing.expectEqual(i, n);
336335 read_len += i;
337336 const out_len = if (read_len < lookahead) 0 else read_len - lookahead;
338337 try testing.expectEqual(out_len, out.items.len);
339 // std.debug.print("{d} {d} {d}\n", .{ lookahead, read_len, out_len });
340338 }
341339 try testing.expectEqual(read_len, out.items.len + lookahead);
342 try lbr.flush();
340 try bt.flush();
343341 try testing.expectEqual(read_len, out.items.len);
344342 }
345343}
346344
347345test "io.BufferedTee internal state" {
348 const data = [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } ** 10;
346 const data = [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } ** 2;
349347 var in = io.fixedBufferStream(&data);
350348 var out = std.ArrayList(u8).init(testing.allocator);
351349 defer out.deinit();
352350
353 var lbr = bufferedTee(8, 4, in.reader(), out.writer());
351 var bt = bufferedTee(8, 4, in.reader(), out.writer());
354352
355353 var buf: [16]u8 = undefined;
356 var n = try lbr.read(buf[0..3]);
354 var n = try bt.read(buf[0..3]);
357355 try testing.expectEqual(3, n);
358356 try testing.expectEqualSlices(u8, data[0..3], buf[0..n]);
359 try testing.expectEqual(8, lbr.tail);
360 try testing.expectEqual(3, lbr.rp);
357 try testing.expectEqual(8, bt.tail);
358 try testing.expectEqual(3, bt.rp);
361359 try testing.expectEqual(0, out.items.len);
362360
363 n = try lbr.read(buf[0..6]);
361 n = try bt.read(buf[0..6]);
364362 try testing.expectEqual(6, n);
365363 try testing.expectEqualSlices(u8, data[3..9], buf[0..n]);
366 try testing.expectEqual(8, lbr.tail);
367 try testing.expectEqual(5, lbr.rp);
368 try testing.expectEqualSlices(u8, data[4..12], &lbr.buf);
364 try testing.expectEqual(8, bt.tail);
365 try testing.expectEqual(5, bt.rp);
366 try testing.expectEqualSlices(u8, data[4..12], &bt.buf);
369367 try testing.expectEqual(5, out.items.len);
370368
371 n = try lbr.read(buf[0..9]);
369 n = try bt.read(buf[0..9]);
372370 try testing.expectEqual(9, n);
373371 try testing.expectEqualSlices(u8, data[9..18], buf[0..n]);
374 try testing.expectEqual(8, lbr.tail);
375 try testing.expectEqual(6, lbr.rp);
376 try testing.expectEqualSlices(u8, data[12..20], &lbr.buf);
372 try testing.expectEqual(8, bt.tail);
373 try testing.expectEqual(6, bt.rp);
374 try testing.expectEqualSlices(u8, data[12..20], &bt.buf);
377375 try testing.expectEqual(14, out.items.len);
378376
379 try lbr.flush();
377 try bt.flush();
380378 try testing.expectEqual(18, out.items.len);
381379
382 lbr.putBack(4);
383 n = try lbr.read(buf[0..4]);
380 bt.putBack(4);
381 n = try bt.read(buf[0..4]);
384382 try testing.expectEqual(4, n);
385383 try testing.expectEqualSlices(u8, data[14..18], buf[0..n]);
386384
387385 try testing.expectEqual(18, out.items.len);
388 try lbr.flush();
386 try bt.flush();
389387 try testing.expectEqual(18, out.items.len);
390388}