diff options
author | binaryta <naritatakuya0000@gmail.com> | 2018-12-10 05:38:30 +0900 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-12-09 15:38:30 -0500 |
commit | c427c2df427f477eb1214d8ff3fdfad36e191a6c (patch) | |
tree | f14068269fba8e495b5d5f5bb289257792a04255 /js/buffer_test.ts | |
parent | f2447f6a2307369c16322861735a87fdd30f7233 (diff) |
Add TooLarge error code for buffers (#1298)
In collaboration with @yushimatenjin
Diffstat (limited to 'js/buffer_test.ts')
-rw-r--r-- | js/buffer_test.ts | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/js/buffer_test.ts b/js/buffer_test.ts index 58668de26..2683b3862 100644 --- a/js/buffer_test.ts +++ b/js/buffer_test.ts @@ -1,9 +1,9 @@ import { Buffer, readAll } from "deno"; +import * as deno from "deno"; // This code has been ported almost directly from Go's src/bytes/buffer_test.go // Copyright 2009 The Go Authors. All rights reserved. BSD license. // https://github.com/golang/go/blob/master/LICENSE import { assert, assertEqual, test } from "./test_util.ts"; - // N controls how many iterations of certain checks are performed. const N = 100; let testBytes: Uint8Array | null; @@ -130,6 +130,25 @@ test(async function bufferLargeByteWrites() { check(buf, ""); }); +test(async function bufferTooLargeByteWrites() { + init(); + const tmp = new Uint8Array(72); + const growLen = Number.MAX_VALUE; + const xBytes = repeat("x", 0); + const buf = new Buffer(xBytes.buffer as ArrayBuffer); + const { nread, eof } = await buf.read(tmp); + + let err; + try { + buf.grow(growLen); + } catch (e) { + err = e; + } + + assertEqual(err.kind, deno.ErrorKind.TooLarge); + assertEqual(err.name, "TooLarge"); +}); + test(async function bufferLargeByteReads() { init(); const buf = new Buffer(); |