summaryrefslogtreecommitdiff
path: root/cli/tests/node_compat/test/parallel/test-process-env-allowed-flags.js
diff options
context:
space:
mode:
authorYoshiya Hinosawa <stibium121@gmail.com>2023-02-21 00:35:04 +0900
committerGitHub <noreply@github.com>2023-02-20 16:35:04 +0100
commit6915a9b7a701dde0e1078867961c9a91811c1850 (patch)
treee6822f2b8400c7c7941d3cb9ace59842389b5bc9 /cli/tests/node_compat/test/parallel/test-process-env-allowed-flags.js
parenta1cd2a5915c13f6a9b8eafa3807e143a02616bc1 (diff)
test(ext/node): more node compat tests (#17827)
This PR adds the remaining ~650 Node.js compat test cases from std/node. Among these 650 cases, about 130 cases are now failing. These failing cases are prefixed with `TODO:` in `tests/node_compat/config.json`. These will be addressed in later PRs.
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-process-env-allowed-flags.js')
-rw-r--r--cli/tests/node_compat/test/parallel/test-process-env-allowed-flags.js109
1 files changed, 109 insertions, 0 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-process-env-allowed-flags.js b/cli/tests/node_compat/test/parallel/test-process-env-allowed-flags.js
new file mode 100644
index 000000000..3ea6d4dda
--- /dev/null
+++ b/cli/tests/node_compat/test/parallel/test-process-env-allowed-flags.js
@@ -0,0 +1,109 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
+
+'use strict';
+
+const common = require('../common');
+const assert = require('assert');
+
+// Assert legit flags are allowed, and bogus flags are disallowed
+{
+ const goodFlags = [
+ '--perf_basic_prof',
+ '--perf-basic-prof',
+ 'perf-basic-prof',
+ '--perf_basic-prof',
+ 'perf_basic-prof',
+ 'perf_basic_prof',
+ '-r',
+ 'r',
+ '--stack-trace-limit=100',
+ '--stack-trace-limit=-=xX_nodejs_Xx=-',
+ ].concat(process.features.inspector ? [
+ '--inspect-brk',
+ 'inspect-brk',
+ '--inspect_brk',
+ ] : []);
+
+ const badFlags = [
+ 'INSPECT-BRK',
+ '--INSPECT-BRK',
+ '--r',
+ '-R',
+ '---inspect-brk',
+ '--cheeseburgers',
+ ];
+
+ goodFlags.forEach((flag) => {
+ assert.strictEqual(
+ process.allowedNodeEnvironmentFlags.has(flag),
+ true,
+ `flag should be in set: ${flag}`
+ );
+ });
+
+ badFlags.forEach((flag) => {
+ assert.strictEqual(
+ process.allowedNodeEnvironmentFlags.has(flag),
+ false,
+ `flag should not be in set: ${flag}`
+ );
+ });
+}
+
+// Assert all "canonical" flags begin with dash(es)
+{
+ process.allowedNodeEnvironmentFlags.forEach((flag) => {
+ assert.match(flag, /^--?[a-zA-Z0-9._-]+$/);
+ });
+}
+
+// Assert immutability of process.allowedNodeEnvironmentFlags
+{
+ assert.strictEqual(Object.isFrozen(process.allowedNodeEnvironmentFlags),
+ true);
+
+ process.allowedNodeEnvironmentFlags.add('foo');
+ assert.strictEqual(process.allowedNodeEnvironmentFlags.has('foo'), false);
+ Set.prototype.add.call(process.allowedNodeEnvironmentFlags, 'foo');
+ assert.strictEqual(process.allowedNodeEnvironmentFlags.has('foo'), false);
+
+ const thisArg = {};
+ process.allowedNodeEnvironmentFlags.forEach(
+ common.mustCallAtLeast(function(flag, _, set) {
+ assert.notStrictEqual(flag, 'foo');
+ assert.strictEqual(this, thisArg);
+ assert.strictEqual(set, process.allowedNodeEnvironmentFlags);
+ }),
+ thisArg
+ );
+
+ for (const flag of process.allowedNodeEnvironmentFlags.keys()) {
+ assert.notStrictEqual(flag, 'foo');
+ }
+ for (const flag of process.allowedNodeEnvironmentFlags.values()) {
+ assert.notStrictEqual(flag, 'foo');
+ }
+ for (const flag of process.allowedNodeEnvironmentFlags) {
+ assert.notStrictEqual(flag, 'foo');
+ }
+ for (const [flag] of process.allowedNodeEnvironmentFlags.entries()) {
+ assert.notStrictEqual(flag, 'foo');
+ }
+
+ const size = process.allowedNodeEnvironmentFlags.size;
+
+ process.allowedNodeEnvironmentFlags.clear();
+ assert.strictEqual(process.allowedNodeEnvironmentFlags.size, size);
+ Set.prototype.clear.call(process.allowedNodeEnvironmentFlags);
+ assert.strictEqual(process.allowedNodeEnvironmentFlags.size, size);
+
+ process.allowedNodeEnvironmentFlags.delete('-r');
+ assert.strictEqual(process.allowedNodeEnvironmentFlags.size, size);
+ Set.prototype.delete.call(process.allowedNodeEnvironmentFlags, '-r');
+ assert.strictEqual(process.allowedNodeEnvironmentFlags.size, size);
+}