0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-03-03 17:34:47 -05:00

test(ext/node): enable some compat test cases (#21532)

This change uncomments Node.js compat test cases which was enabled by the
addition of `vm.runInNewContext`
https://github.com/denoland/deno/pull/21527
This commit is contained in:
Yoshiya Hinosawa 2023-12-11 19:17:36 +09:00 committed by GitHub
parent 02e138dca9
commit e9ab9ba9f0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 55 additions and 64 deletions

View file

@ -21,7 +21,6 @@
"test-assert.js", "test-assert.js",
"test-buffer-alloc.js", "test-buffer-alloc.js",
"test-buffer-arraybuffer.js", "test-buffer-arraybuffer.js",
"test-buffer-bytelength.js",
"test-buffer-from.js", "test-buffer-from.js",
"test-buffer-includes.js", "test-buffer-includes.js",
"test-buffer-indexof.js", "test-buffer-indexof.js",

View file

@ -9,7 +9,7 @@
const common = require('../common'); const common = require('../common');
const assert = require('assert'); const assert = require('assert');
// const vm = require('vm'); const vm = require('vm');
const SlowBuffer = require('buffer').SlowBuffer; const SlowBuffer = require('buffer').SlowBuffer;
@ -1154,11 +1154,11 @@ assert.throws(() => {
// Regression test to verify that an empty ArrayBuffer does not throw. // Regression test to verify that an empty ArrayBuffer does not throw.
Buffer.from(new ArrayBuffer()); Buffer.from(new ArrayBuffer());
// TODO(kt3k): Enable this test when vm.runInNewContext is available
// Test that ArrayBuffer from a different context is detected correctly. // Test that ArrayBuffer from a different context is detected correctly.
// const arrayBuf = vm.runInNewContext('new ArrayBuffer()'); const arrayBuf = vm.runInNewContext('new ArrayBuffer()');
// Buffer.from(arrayBuf); Buffer.from(arrayBuf);
// Buffer.from({ buffer: arrayBuf }); Buffer.from({ buffer: arrayBuf });
assert.throws(() => Buffer.alloc({ valueOf: () => 1 }), assert.throws(() => Buffer.alloc({ valueOf: () => 1 }),
/"size" argument must be of type number/); /"size" argument must be of type number/);

View file

@ -10,7 +10,7 @@
const common = require('../common'); const common = require('../common');
const assert = require('assert'); const assert = require('assert');
const SlowBuffer = require('buffer').SlowBuffer; const SlowBuffer = require('buffer').SlowBuffer;
// const vm = require('vm'); const vm = require('vm');
[ [
[32, 'latin1'], [32, 'latin1'],
@ -125,11 +125,9 @@ assert.strictEqual(Buffer.byteLength('Il était tué', 'utf8'), 14);
assert.strictEqual(Buffer.byteLength('Il était tué', encoding), 24); assert.strictEqual(Buffer.byteLength('Il était tué', encoding), 24);
}); });
// TODO(Soremwar)
// Enable once vm module is available
// Test that ArrayBuffer from a different context is detected correctly // Test that ArrayBuffer from a different context is detected correctly
// const arrayBuf = vm.runInNewContext('new ArrayBuffer()'); const arrayBuf = vm.runInNewContext('new ArrayBuffer()');
// assert.strictEqual(Buffer.byteLength(arrayBuf), 0); assert.strictEqual(Buffer.byteLength(arrayBuf), 0);
// Verify that invalid encodings are treated as utf8 // Verify that invalid encodings are treated as utf8
for (let i = 1; i < 10; i++) { for (let i = 1; i < 10; i++) {

View file

@ -155,14 +155,13 @@ const qsWeirdObjects = [
[{ a: 1, b: [] }, 'a=1', { 'a': '1' }], [{ a: 1, b: [] }, 'a=1', { 'a': '1' }],
]; ];
// TODO(wafuwafu13): Enable this when `vm` is implemented. const vm = require('vm');
// const vm = require('vm'); const foreignObject = vm.runInNewContext('({"foo": ["bar", "baz"]})');
// const foreignObject = vm.runInNewContext('({"foo": ["bar", "baz"]})');
const qsNoMungeTestCases = [ const qsNoMungeTestCases = [
['', {}], ['', {}],
['foo=bar&foo=baz', { 'foo': ['bar', 'baz'] }], ['foo=bar&foo=baz', { 'foo': ['bar', 'baz'] }],
// ['foo=bar&foo=baz', foreignObject], ['foo=bar&foo=baz', foreignObject],
['blah=burp', { 'blah': 'burp' }], ['blah=burp', { 'blah': 'burp' }],
['a=!-._~\'()*', { 'a': '!-._~\'()*' }], ['a=!-._~\'()*', { 'a': '!-._~\'()*' }],
['a=abcdefghijklmnopqrstuvwxyz', { 'a': 'abcdefghijklmnopqrstuvwxyz' }], ['a=abcdefghijklmnopqrstuvwxyz', { 'a': 'abcdefghijklmnopqrstuvwxyz' }],

View file

@ -33,8 +33,7 @@ const assert = require('assert');
// const { internalBinding } = require('internal/test/binding'); // const { internalBinding } = require('internal/test/binding');
// const JSStream = internalBinding('js_stream').JSStream; // const JSStream = internalBinding('js_stream').JSStream;
const util = require('util'); const util = require('util');
// TODO(wafuwafu13): Implement 'vm' const vm = require('vm');
// const vm = require('vm');
// TODO(wafuwafu13): Implement 'v8' // TODO(wafuwafu13): Implement 'v8'
// const v8 = require('v8'); // const v8 = require('v8');
// TODO(wafuwafu13): Implement 'internal/test/binding' // TODO(wafuwafu13): Implement 'internal/test/binding'
@ -566,16 +565,15 @@ assert.strictEqual(
'2010-02-14T11:48:40.000Z { aprop: 42 }'); '2010-02-14T11:48:40.000Z { aprop: 42 }');
} }
// TODO(wafuwafu13): Implement 'vm' // Test the internal isDate implementation.
// // Test the internal isDate implementation. {
// { const Date2 = vm.runInNewContext('Date');
// const Date2 = vm.runInNewContext('Date'); const d = new Date2();
// const d = new Date2(); const orig = util.inspect(d);
// const orig = util.inspect(d); Date2.prototype.foo = 'bar';
// Date2.prototype.foo = 'bar'; const after = util.inspect(d);
// const after = util.inspect(d); assert.strictEqual(orig, after);
// assert.strictEqual(orig, after); }
// }
// Test positive/negative zero. // Test positive/negative zero.
assert.strictEqual(util.inspect(0), '0'); assert.strictEqual(util.inspect(0), '0');

View file

@ -81,12 +81,11 @@ const stat = promisify(fs.stat);
// })); // }));
// } // }
// TODO(wafuwafu13): Implement "vm.runInNewContext" {
// { const fn = vm.runInNewContext('(function() {})');
// const fn = vm.runInNewContext('(function() {})'); assert.notStrictEqual(Object.getPrototypeOf(promisify(fn)),
// assert.notStrictEqual(Object.getPrototypeOf(promisify(fn)), Function.prototype);
// Function.prototype); }
// }
{ {
function fn(callback) { function fn(callback) {

View file

@ -10,8 +10,7 @@
const common = require('../common'); const common = require('../common');
const assert = require('assert'); const assert = require('assert');
const { types, inspect } = require('util'); const { types, inspect } = require('util');
// TODO(wafuwafu13): Implement "vm" const vm = require('vm');
// const vm = require('vm');
// TODO(wafuwafu13): Implement "internalBinding" // TODO(wafuwafu13): Implement "internalBinding"
// const { internalBinding } = require('internal/test/binding'); // const { internalBinding } = require('internal/test/binding');
// const { JSStream } = internalBinding('js_stream'); // const { JSStream } = internalBinding('js_stream');
@ -87,45 +86,44 @@ for (const [ value, _method ] of [
Object(BigInt(0)), Object(BigInt(0)),
].forEach((entry) => assert(types.isBoxedPrimitive(entry))); ].forEach((entry) => assert(types.isBoxedPrimitive(entry)));
// TODO(wafuwafu13): Fix {
// { assert(!types.isUint8Array({ [Symbol.toStringTag]: 'Uint8Array' }));
// assert(!types.isUint8Array({ [Symbol.toStringTag]: 'Uint8Array' })); assert(types.isUint8Array(vm.runInNewContext('new Uint8Array')));
// assert(types.isUint8Array(vm.runInNewContext('new Uint8Array')));
// assert(!types.isUint8ClampedArray({ assert(!types.isUint8ClampedArray({
// [Symbol.toStringTag]: 'Uint8ClampedArray' [Symbol.toStringTag]: 'Uint8ClampedArray'
// })); }));
// assert(types.isUint8ClampedArray( assert(types.isUint8ClampedArray(
// vm.runInNewContext('new Uint8ClampedArray') vm.runInNewContext('new Uint8ClampedArray')
// )); ));
// assert(!types.isUint16Array({ [Symbol.toStringTag]: 'Uint16Array' })); assert(!types.isUint16Array({ [Symbol.toStringTag]: 'Uint16Array' }));
// assert(types.isUint16Array(vm.runInNewContext('new Uint16Array'))); assert(types.isUint16Array(vm.runInNewContext('new Uint16Array')));
// assert(!types.isUint32Array({ [Symbol.toStringTag]: 'Uint32Array' })); assert(!types.isUint32Array({ [Symbol.toStringTag]: 'Uint32Array' }));
// assert(types.isUint32Array(vm.runInNewContext('new Uint32Array'))); assert(types.isUint32Array(vm.runInNewContext('new Uint32Array')));
// assert(!types.isInt8Array({ [Symbol.toStringTag]: 'Int8Array' })); assert(!types.isInt8Array({ [Symbol.toStringTag]: 'Int8Array' }));
// assert(types.isInt8Array(vm.runInNewContext('new Int8Array'))); assert(types.isInt8Array(vm.runInNewContext('new Int8Array')));
// assert(!types.isInt16Array({ [Symbol.toStringTag]: 'Int16Array' })); assert(!types.isInt16Array({ [Symbol.toStringTag]: 'Int16Array' }));
// assert(types.isInt16Array(vm.runInNewContext('new Int16Array'))); assert(types.isInt16Array(vm.runInNewContext('new Int16Array')));
// assert(!types.isInt32Array({ [Symbol.toStringTag]: 'Int32Array' })); assert(!types.isInt32Array({ [Symbol.toStringTag]: 'Int32Array' }));
// assert(types.isInt32Array(vm.runInNewContext('new Int32Array'))); assert(types.isInt32Array(vm.runInNewContext('new Int32Array')));
// assert(!types.isFloat32Array({ [Symbol.toStringTag]: 'Float32Array' })); assert(!types.isFloat32Array({ [Symbol.toStringTag]: 'Float32Array' }));
// assert(types.isFloat32Array(vm.runInNewContext('new Float32Array'))); assert(types.isFloat32Array(vm.runInNewContext('new Float32Array')));
// assert(!types.isFloat64Array({ [Symbol.toStringTag]: 'Float64Array' })); assert(!types.isFloat64Array({ [Symbol.toStringTag]: 'Float64Array' }));
// assert(types.isFloat64Array(vm.runInNewContext('new Float64Array'))); assert(types.isFloat64Array(vm.runInNewContext('new Float64Array')));
// assert(!types.isBigInt64Array({ [Symbol.toStringTag]: 'BigInt64Array' })); assert(!types.isBigInt64Array({ [Symbol.toStringTag]: 'BigInt64Array' }));
// assert(types.isBigInt64Array(vm.runInNewContext('new BigInt64Array'))); assert(types.isBigInt64Array(vm.runInNewContext('new BigInt64Array')));
// assert(!types.isBigUint64Array({ [Symbol.toStringTag]: 'BigUint64Array' })); assert(!types.isBigUint64Array({ [Symbol.toStringTag]: 'BigUint64Array' }));
// assert(types.isBigUint64Array(vm.runInNewContext('new BigUint64Array'))); assert(types.isBigUint64Array(vm.runInNewContext('new BigUint64Array')));
// } }
{ {
const primitive = true; const primitive = true;