summaryrefslogtreecommitdiff
path: root/tests/node_compat/test/parallel/test-process-env-allowed-flags.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/node_compat/test/parallel/test-process-env-allowed-flags.js')
-rw-r--r--tests/node_compat/test/parallel/test-process-env-allowed-flags.js109
1 files changed, 109 insertions, 0 deletions
diff --git a/tests/node_compat/test/parallel/test-process-env-allowed-flags.js b/tests/node_compat/test/parallel/test-process-env-allowed-flags.js
new file mode 100644
index 000000000..1b2c96e68
--- /dev/null
+++ b/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 `tools/node_compat/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);
+}