deno.land / std@0.166.0 / node / _tools / test / parallel / test-buffer-slow.js
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970// deno-fmt-ignore-file// deno-lint-ignore-file
// Copyright Joyent and Node contributors. All rights reserved. MIT license.// Taken from Node 18.12.0// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
'use strict';
require('../common');const assert = require('assert');const buffer = require('buffer');const SlowBuffer = buffer.SlowBuffer;
const ones = [1, 1, 1, 1];
// Should create a Bufferlet sb = SlowBuffer(4);assert(sb instanceof Buffer);assert.strictEqual(sb.length, 4);sb.fill(1);for (const [key, value] of sb.entries()) { assert.deepStrictEqual(value, ones[key]);}
// underlying ArrayBuffer should have the same lengthassert.strictEqual(sb.buffer.byteLength, 4);
// Should work without newsb = SlowBuffer(4);assert(sb instanceof Buffer);assert.strictEqual(sb.length, 4);sb.fill(1);for (const [key, value] of sb.entries()) { assert.deepStrictEqual(value, ones[key]);}
// Should work with edge casesassert.strictEqual(SlowBuffer(0).length, 0);try { assert.strictEqual( SlowBuffer(buffer.kMaxLength).length, buffer.kMaxLength);} catch (e) { // Don't match on message as it is from the JavaScript engine. V8 and // ChakraCore provide different messages. assert.strictEqual(e.name, 'RangeError');}
// Should throw with invalid length typeconst bufferInvalidTypeMsg = { code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError', message: /^The "size" argument must be of type number/,};assert.throws(() => SlowBuffer(), bufferInvalidTypeMsg);assert.throws(() => SlowBuffer({}), bufferInvalidTypeMsg);assert.throws(() => SlowBuffer('6'), bufferInvalidTypeMsg);assert.throws(() => SlowBuffer(true), bufferInvalidTypeMsg);
// Should throw with invalid length valueconst bufferMaxSizeMsg = { code: 'ERR_INVALID_ARG_VALUE', name: 'RangeError', message: /^The argument 'size' is invalid\. Received [^"]*$/};assert.throws(() => SlowBuffer(NaN), bufferMaxSizeMsg);assert.throws(() => SlowBuffer(Infinity), bufferMaxSizeMsg);assert.throws(() => SlowBuffer(-1), bufferMaxSizeMsg);assert.throws(() => SlowBuffer(buffer.kMaxLength + 1), bufferMaxSizeMsg);
Version Info