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" {...@@ -299,19 +299,18 @@ test "io.BufferedTee io.BufferedReader Block" {
299}299}
300300
301test "io.BufferedTee with zero lookahead" {301test "io.BufferedTee with zero lookahead" {
302 // output is has same bytes as reader302 // output has same bytes as consumer
303 const data = [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } ** 12;303 const data = [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } ** 12;
304 var in = io.fixedBufferStream(&data);304 var in = io.fixedBufferStream(&data);
305 var out = std.ArrayList(u8).init(testing.allocator);305 var out = std.ArrayList(u8).init(testing.allocator);
306 defer out.deinit();306 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
310 var buf: [16]u8 = undefined;310 var buf: [16]u8 = undefined;
311
312 var read_len: usize = 0;311 var read_len: usize = 0;
313 for (0..buf.len) |i| {312 for (0..buf.len) |i| {
314 const n = try lbr.read(buf[0..i]);313 const n = try bt.read(buf[0..i]);
315 try testing.expectEqual(i, n);314 try testing.expectEqual(i, n);
316 read_len += i;315 read_len += i;
317 try testing.expectEqual(read_len, out.items.len);316 try testing.expectEqual(read_len, out.items.len);
...@@ -319,72 +318,71 @@ test "io.BufferedTee with zero lookahead" {...@@ -319,72 +318,71 @@ test "io.BufferedTee with zero lookahead" {
319}318}
320319
321test "io.BufferedTee with lookahead" {320test "io.BufferedTee with lookahead" {
322 // output is lookahead bytes behind reader321 // output is lookahead bytes behind consumer
323 inline for (1..8) |lookahead| {322 inline for (1..8) |lookahead| {
324 const data = [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } ** 12;323 const data = [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } ** 12;
325 var in = io.fixedBufferStream(&data);324 var in = io.fixedBufferStream(&data);
326 var out = std.ArrayList(u8).init(testing.allocator);325 var out = std.ArrayList(u8).init(testing.allocator);
327 defer out.deinit();326 defer out.deinit();
328327
329 var lbr = bufferedTee(8, lookahead, in.reader(), out.writer());328 var bt = bufferedTee(8, lookahead, in.reader(), out.writer());
330 var buf: [16]u8 = undefined;329 var buf: [16]u8 = undefined;
331330
332 var read_len: usize = 0;331 var read_len: usize = 0;
333 for (1..buf.len) |i| {332 for (1..buf.len) |i| {
334 const n = try lbr.read(buf[0..i]);333 const n = try bt.read(buf[0..i]);
335 try testing.expectEqual(i, n);334 try testing.expectEqual(i, n);
336 read_len += i;335 read_len += i;
337 const out_len = if (read_len < lookahead) 0 else read_len - lookahead;336 const out_len = if (read_len < lookahead) 0 else read_len - lookahead;
338 try testing.expectEqual(out_len, out.items.len);337 try testing.expectEqual(out_len, out.items.len);
339 // std.debug.print("{d} {d} {d}\n", .{ lookahead, read_len, out_len });
340 }338 }
341 try testing.expectEqual(read_len, out.items.len + lookahead);339 try testing.expectEqual(read_len, out.items.len + lookahead);
342 try lbr.flush();340 try bt.flush();
343 try testing.expectEqual(read_len, out.items.len);341 try testing.expectEqual(read_len, out.items.len);
344 }342 }
345}343}
346344
347test "io.BufferedTee internal state" {345test "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;
349 var in = io.fixedBufferStream(&data);347 var in = io.fixedBufferStream(&data);
350 var out = std.ArrayList(u8).init(testing.allocator);348 var out = std.ArrayList(u8).init(testing.allocator);
351 defer out.deinit();349 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
355 var buf: [16]u8 = undefined;353 var buf: [16]u8 = undefined;
356 var n = try lbr.read(buf[0..3]);354 var n = try bt.read(buf[0..3]);
357 try testing.expectEqual(3, n);355 try testing.expectEqual(3, n);
358 try testing.expectEqualSlices(u8, data[0..3], buf[0..n]);356 try testing.expectEqualSlices(u8, data[0..3], buf[0..n]);
359 try testing.expectEqual(8, lbr.tail);357 try testing.expectEqual(8, bt.tail);
360 try testing.expectEqual(3, lbr.rp);358 try testing.expectEqual(3, bt.rp);
361 try testing.expectEqual(0, out.items.len);359 try testing.expectEqual(0, out.items.len);
362360
363 n = try lbr.read(buf[0..6]);361 n = try bt.read(buf[0..6]);
364 try testing.expectEqual(6, n);362 try testing.expectEqual(6, n);
365 try testing.expectEqualSlices(u8, data[3..9], buf[0..n]);363 try testing.expectEqualSlices(u8, data[3..9], buf[0..n]);
366 try testing.expectEqual(8, lbr.tail);364 try testing.expectEqual(8, bt.tail);
367 try testing.expectEqual(5, lbr.rp);365 try testing.expectEqual(5, bt.rp);
368 try testing.expectEqualSlices(u8, data[4..12], &lbr.buf);366 try testing.expectEqualSlices(u8, data[4..12], &bt.buf);
369 try testing.expectEqual(5, out.items.len);367 try testing.expectEqual(5, out.items.len);
370368
371 n = try lbr.read(buf[0..9]);369 n = try bt.read(buf[0..9]);
372 try testing.expectEqual(9, n);370 try testing.expectEqual(9, n);
373 try testing.expectEqualSlices(u8, data[9..18], buf[0..n]);371 try testing.expectEqualSlices(u8, data[9..18], buf[0..n]);
374 try testing.expectEqual(8, lbr.tail);372 try testing.expectEqual(8, bt.tail);
375 try testing.expectEqual(6, lbr.rp);373 try testing.expectEqual(6, bt.rp);
376 try testing.expectEqualSlices(u8, data[12..20], &lbr.buf);374 try testing.expectEqualSlices(u8, data[12..20], &bt.buf);
377 try testing.expectEqual(14, out.items.len);375 try testing.expectEqual(14, out.items.len);
378376
379 try lbr.flush();377 try bt.flush();
380 try testing.expectEqual(18, out.items.len);378 try testing.expectEqual(18, out.items.len);
381379
382 lbr.putBack(4);380 bt.putBack(4);
383 n = try lbr.read(buf[0..4]);381 n = try bt.read(buf[0..4]);
384 try testing.expectEqual(4, n);382 try testing.expectEqual(4, n);
385 try testing.expectEqualSlices(u8, data[14..18], buf[0..n]);383 try testing.expectEqualSlices(u8, data[14..18], buf[0..n]);
386384
387 try testing.expectEqual(18, out.items.len);385 try testing.expectEqual(18, out.items.len);
388 try lbr.flush();386 try bt.flush();
389 try testing.expectEqual(18, out.items.len);387 try testing.expectEqual(18, out.items.len);
390}388}