From 1a96a96e101140a2c39114710f93ab21c98fca01 Mon Sep 17 00:00:00 2001 From: Marcos Casagrande Date: Mon, 13 Jul 2020 06:58:59 +0200 Subject: feat(cli): add copy argument to Buffer.bytes (#6697) --- cli/tests/unit/buffer_test.ts | 44 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) (limited to 'cli/tests/unit/buffer_test.ts') diff --git a/cli/tests/unit/buffer_test.ts b/cli/tests/unit/buffer_test.ts index 440dd5495..320dddcc1 100644 --- a/cli/tests/unit/buffer_test.ts +++ b/cli/tests/unit/buffer_test.ts @@ -402,14 +402,50 @@ unitTest(function testWriteAllSync(): void { }); unitTest(function testBufferBytesArrayBufferLength(): void { - const bytes = new TextEncoder().encode("a"); + // defaults to copy + const args = [{}, { copy: undefined }, undefined, { copy: true }]; + for (const arg of args) { + const bufSize = 64 * 1024; + const bytes = new TextEncoder().encode("a".repeat(bufSize)); + const reader = new Deno.Buffer(); + Deno.writeAllSync(reader, bytes); + + const writer = new Deno.Buffer(); + writer.readFromSync(reader); + const actualBytes = writer.bytes(arg); + + assertEquals(actualBytes.byteLength, bufSize); + assert(actualBytes.buffer !== writer.bytes(arg).buffer); + assertEquals(actualBytes.byteLength, actualBytes.buffer.byteLength); + } +}); + +unitTest(function testBufferBytesCopyFalse(): void { + const bufSize = 64 * 1024; + const bytes = new TextEncoder().encode("a".repeat(bufSize)); const reader = new Deno.Buffer(); Deno.writeAllSync(reader, bytes); const writer = new Deno.Buffer(); writer.readFromSync(reader); - const actualBytes = writer.bytes(); + const actualBytes = writer.bytes({ copy: false }); + + assertEquals(actualBytes.byteLength, bufSize); + assertEquals(actualBytes.buffer, writer.bytes({ copy: false }).buffer); + assert(actualBytes.buffer.byteLength > actualBytes.byteLength); +}); + +unitTest(function testBufferBytesCopyFalseGrowExactBytes(): void { + const bufSize = 64 * 1024; + const bytes = new TextEncoder().encode("a".repeat(bufSize)); + const reader = new Deno.Buffer(); + Deno.writeAllSync(reader, bytes); + + const writer = new Deno.Buffer(); + writer.grow(bufSize); + writer.readFromSync(reader); + const actualBytes = writer.bytes({ copy: false }); - assertEquals(bytes.byteLength, 1); - assertEquals(bytes.byteLength, actualBytes.buffer.byteLength); + assertEquals(actualBytes.byteLength, bufSize); + assertEquals(actualBytes.buffer.byteLength, actualBytes.byteLength); }); -- cgit v1.2.3