diff options
Diffstat (limited to 'cli/tests')
-rw-r--r-- | cli/tests/unit/buffer_test.ts | 44 |
1 files changed, 40 insertions, 4 deletions
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); }); |