summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoshiya Hinosawa <stibium121@gmail.com>2023-12-11 19:17:36 +0900
committerGitHub <noreply@github.com>2023-12-11 19:17:36 +0900
commite9ab9ba9f0c47f01ebc41f3013b3f78962aaeca7 (patch)
treed14e6f2c4074bf40f44d4a3bf8b12ba5c5e7c8b8
parent02e138dca9c9fd79f47d352114b45b21dbb2b2ba (diff)
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
-rw-r--r--cli/tests/node_compat/config.jsonc1
-rw-r--r--cli/tests/node_compat/test/parallel/test-buffer-alloc.js10
-rw-r--r--cli/tests/node_compat/test/parallel/test-buffer-bytelength.js8
-rw-r--r--cli/tests/node_compat/test/parallel/test-querystring.js7
-rw-r--r--cli/tests/node_compat/test/parallel/test-util-inspect.js22
-rw-r--r--cli/tests/node_compat/test/parallel/test-util-promisify.js11
-rw-r--r--cli/tests/node_compat/test/parallel/test-util-types.js60
7 files changed, 55 insertions, 64 deletions
diff --git a/cli/tests/node_compat/config.jsonc b/cli/tests/node_compat/config.jsonc
index ea4e723fc..943be9759 100644
--- a/cli/tests/node_compat/config.jsonc
+++ b/cli/tests/node_compat/config.jsonc
@@ -21,7 +21,6 @@
"test-assert.js",
"test-buffer-alloc.js",
"test-buffer-arraybuffer.js",
- "test-buffer-bytelength.js",
"test-buffer-from.js",
"test-buffer-includes.js",
"test-buffer-indexof.js",
diff --git a/cli/tests/node_compat/test/parallel/test-buffer-alloc.js b/cli/tests/node_compat/test/parallel/test-buffer-alloc.js
index dee9128a8..bb0af6456 100644
--- a/cli/tests/node_compat/test/parallel/test-buffer-alloc.js
+++ b/cli/tests/node_compat/test/parallel/test-buffer-alloc.js
@@ -9,7 +9,7 @@
const common = require('../common');
const assert = require('assert');
-// const vm = require('vm');
+const vm = require('vm');
const SlowBuffer = require('buffer').SlowBuffer;
@@ -1154,11 +1154,11 @@ assert.throws(() => {
// Regression test to verify that an empty ArrayBuffer does not throw.
Buffer.from(new ArrayBuffer());
-// TODO(kt3k): Enable this test when vm.runInNewContext is available
+
// Test that ArrayBuffer from a different context is detected correctly.
-// const arrayBuf = vm.runInNewContext('new ArrayBuffer()');
-// Buffer.from(arrayBuf);
-// Buffer.from({ buffer: arrayBuf });
+const arrayBuf = vm.runInNewContext('new ArrayBuffer()');
+Buffer.from(arrayBuf);
+Buffer.from({ buffer: arrayBuf });
assert.throws(() => Buffer.alloc({ valueOf: () => 1 }),
/"size" argument must be of type number/);
diff --git a/cli/tests/node_compat/test/parallel/test-buffer-bytelength.js b/cli/tests/node_compat/test/parallel/test-buffer-bytelength.js
index 7fb62c78f..4f10596a2 100644
--- a/cli/tests/node_compat/test/parallel/test-buffer-bytelength.js
+++ b/cli/tests/node_compat/test/parallel/test-buffer-bytelength.js
@@ -10,7 +10,7 @@
const common = require('../common');
const assert = require('assert');
const SlowBuffer = require('buffer').SlowBuffer;
-// const vm = require('vm');
+const vm = require('vm');
[
[32, 'latin1'],
@@ -125,11 +125,9 @@ assert.strictEqual(Buffer.byteLength('Il était tué', 'utf8'), 14);
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
-// const arrayBuf = vm.runInNewContext('new ArrayBuffer()');
-// assert.strictEqual(Buffer.byteLength(arrayBuf), 0);
+const arrayBuf = vm.runInNewContext('new ArrayBuffer()');
+assert.strictEqual(Buffer.byteLength(arrayBuf), 0);
// Verify that invalid encodings are treated as utf8
for (let i = 1; i < 10; i++) {
diff --git a/cli/tests/node_compat/test/parallel/test-querystring.js b/cli/tests/node_compat/test/parallel/test-querystring.js
index 933f6b1ba..fb8176da5 100644
--- a/cli/tests/node_compat/test/parallel/test-querystring.js
+++ b/cli/tests/node_compat/test/parallel/test-querystring.js
@@ -155,14 +155,13 @@ const qsWeirdObjects = [
[{ a: 1, b: [] }, 'a=1', { 'a': '1' }],
];
-// TODO(wafuwafu13): Enable this when `vm` is implemented.
-// const vm = require('vm');
-// const foreignObject = vm.runInNewContext('({"foo": ["bar", "baz"]})');
+const vm = require('vm');
+const foreignObject = vm.runInNewContext('({"foo": ["bar", "baz"]})');
const qsNoMungeTestCases = [
['', {}],
['foo=bar&foo=baz', { 'foo': ['bar', 'baz'] }],
- // ['foo=bar&foo=baz', foreignObject],
+ ['foo=bar&foo=baz', foreignObject],
['blah=burp', { 'blah': 'burp' }],
['a=!-._~\'()*', { 'a': '!-._~\'()*' }],
['a=abcdefghijklmnopqrstuvwxyz', { 'a': 'abcdefghijklmnopqrstuvwxyz' }],
diff --git a/cli/tests/node_compat/test/parallel/test-util-inspect.js b/cli/tests/node_compat/test/parallel/test-util-inspect.js
index c875b9c6a..17fafed2e 100644
--- a/cli/tests/node_compat/test/parallel/test-util-inspect.js
+++ b/cli/tests/node_compat/test/parallel/test-util-inspect.js
@@ -33,8 +33,7 @@ const assert = require('assert');
// const { internalBinding } = require('internal/test/binding');
// const JSStream = internalBinding('js_stream').JSStream;
const util = require('util');
-// TODO(wafuwafu13): Implement 'vm'
-// const vm = require('vm');
+const vm = require('vm');
// TODO(wafuwafu13): Implement 'v8'
// const v8 = require('v8');
// TODO(wafuwafu13): Implement 'internal/test/binding'
@@ -566,16 +565,15 @@ assert.strictEqual(
'2010-02-14T11:48:40.000Z { aprop: 42 }');
}
-// TODO(wafuwafu13): Implement 'vm'
-// // Test the internal isDate implementation.
-// {
-// const Date2 = vm.runInNewContext('Date');
-// const d = new Date2();
-// const orig = util.inspect(d);
-// Date2.prototype.foo = 'bar';
-// const after = util.inspect(d);
-// assert.strictEqual(orig, after);
-// }
+// Test the internal isDate implementation.
+{
+ const Date2 = vm.runInNewContext('Date');
+ const d = new Date2();
+ const orig = util.inspect(d);
+ Date2.prototype.foo = 'bar';
+ const after = util.inspect(d);
+ assert.strictEqual(orig, after);
+}
// Test positive/negative zero.
assert.strictEqual(util.inspect(0), '0');
diff --git a/cli/tests/node_compat/test/parallel/test-util-promisify.js b/cli/tests/node_compat/test/parallel/test-util-promisify.js
index 0c5b64349..8046f6fb8 100644
--- a/cli/tests/node_compat/test/parallel/test-util-promisify.js
+++ b/cli/tests/node_compat/test/parallel/test-util-promisify.js
@@ -81,12 +81,11 @@ const stat = promisify(fs.stat);
// }));
// }
-// TODO(wafuwafu13): Implement "vm.runInNewContext"
-// {
-// const fn = vm.runInNewContext('(function() {})');
-// assert.notStrictEqual(Object.getPrototypeOf(promisify(fn)),
-// Function.prototype);
-// }
+{
+ const fn = vm.runInNewContext('(function() {})');
+ assert.notStrictEqual(Object.getPrototypeOf(promisify(fn)),
+ Function.prototype);
+}
{
function fn(callback) {
diff --git a/cli/tests/node_compat/test/parallel/test-util-types.js b/cli/tests/node_compat/test/parallel/test-util-types.js
index 00e3d0fd0..d401a282c 100644
--- a/cli/tests/node_compat/test/parallel/test-util-types.js
+++ b/cli/tests/node_compat/test/parallel/test-util-types.js
@@ -10,8 +10,7 @@
const common = require('../common');
const assert = require('assert');
const { types, inspect } = require('util');
-// TODO(wafuwafu13): Implement "vm"
-// const vm = require('vm');
+const vm = require('vm');
// TODO(wafuwafu13): Implement "internalBinding"
// const { internalBinding } = require('internal/test/binding');
// const { JSStream } = internalBinding('js_stream');
@@ -87,45 +86,44 @@ for (const [ value, _method ] of [
Object(BigInt(0)),
].forEach((entry) => assert(types.isBoxedPrimitive(entry)));
-// TODO(wafuwafu13): Fix
-// {
-// assert(!types.isUint8Array({ [Symbol.toStringTag]: 'Uint8Array' }));
-// assert(types.isUint8Array(vm.runInNewContext('new Uint8Array')));
+{
+ assert(!types.isUint8Array({ [Symbol.toStringTag]: 'Uint8Array' }));
+ assert(types.isUint8Array(vm.runInNewContext('new Uint8Array')));
-// assert(!types.isUint8ClampedArray({
-// [Symbol.toStringTag]: 'Uint8ClampedArray'
-// }));
-// assert(types.isUint8ClampedArray(
-// vm.runInNewContext('new Uint8ClampedArray')
-// ));
+ assert(!types.isUint8ClampedArray({
+ [Symbol.toStringTag]: 'Uint8ClampedArray'
+ }));
+ assert(types.isUint8ClampedArray(
+ vm.runInNewContext('new Uint8ClampedArray')
+ ));
-// assert(!types.isUint16Array({ [Symbol.toStringTag]: 'Uint16Array' }));
-// assert(types.isUint16Array(vm.runInNewContext('new Uint16Array')));
+ assert(!types.isUint16Array({ [Symbol.toStringTag]: 'Uint16Array' }));
+ assert(types.isUint16Array(vm.runInNewContext('new Uint16Array')));
-// assert(!types.isUint32Array({ [Symbol.toStringTag]: 'Uint32Array' }));
-// assert(types.isUint32Array(vm.runInNewContext('new Uint32Array')));
+ assert(!types.isUint32Array({ [Symbol.toStringTag]: 'Uint32Array' }));
+ assert(types.isUint32Array(vm.runInNewContext('new Uint32Array')));
-// assert(!types.isInt8Array({ [Symbol.toStringTag]: 'Int8Array' }));
-// assert(types.isInt8Array(vm.runInNewContext('new Int8Array')));
+ assert(!types.isInt8Array({ [Symbol.toStringTag]: 'Int8Array' }));
+ assert(types.isInt8Array(vm.runInNewContext('new Int8Array')));
-// assert(!types.isInt16Array({ [Symbol.toStringTag]: 'Int16Array' }));
-// assert(types.isInt16Array(vm.runInNewContext('new Int16Array')));
+ assert(!types.isInt16Array({ [Symbol.toStringTag]: 'Int16Array' }));
+ assert(types.isInt16Array(vm.runInNewContext('new Int16Array')));
-// assert(!types.isInt32Array({ [Symbol.toStringTag]: 'Int32Array' }));
-// assert(types.isInt32Array(vm.runInNewContext('new Int32Array')));
+ assert(!types.isInt32Array({ [Symbol.toStringTag]: 'Int32Array' }));
+ assert(types.isInt32Array(vm.runInNewContext('new Int32Array')));
-// assert(!types.isFloat32Array({ [Symbol.toStringTag]: 'Float32Array' }));
-// assert(types.isFloat32Array(vm.runInNewContext('new Float32Array')));
+ assert(!types.isFloat32Array({ [Symbol.toStringTag]: 'Float32Array' }));
+ assert(types.isFloat32Array(vm.runInNewContext('new Float32Array')));
-// assert(!types.isFloat64Array({ [Symbol.toStringTag]: 'Float64Array' }));
-// assert(types.isFloat64Array(vm.runInNewContext('new Float64Array')));
+ assert(!types.isFloat64Array({ [Symbol.toStringTag]: 'Float64Array' }));
+ assert(types.isFloat64Array(vm.runInNewContext('new Float64Array')));
-// assert(!types.isBigInt64Array({ [Symbol.toStringTag]: 'BigInt64Array' }));
-// assert(types.isBigInt64Array(vm.runInNewContext('new BigInt64Array')));
+ assert(!types.isBigInt64Array({ [Symbol.toStringTag]: 'BigInt64Array' }));
+ assert(types.isBigInt64Array(vm.runInNewContext('new BigInt64Array')));
-// assert(!types.isBigUint64Array({ [Symbol.toStringTag]: 'BigUint64Array' }));
-// assert(types.isBigUint64Array(vm.runInNewContext('new BigUint64Array')));
-// }
+ assert(!types.isBigUint64Array({ [Symbol.toStringTag]: 'BigUint64Array' }));
+ assert(types.isBigUint64Array(vm.runInNewContext('new BigUint64Array')));
+}
{
const primitive = true;