• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3require('../common');
4const assert = require('assert');
5
6// Assert legit flags are allowed, and bogus flags are disallowed
7{
8  const goodFlags = [
9    '--perf_basic_prof',
10    '--perf-basic-prof',
11    'perf-basic-prof',
12    '--perf_basic-prof',
13    'perf_basic-prof',
14    'perf_basic_prof',
15    '-r',
16    'r',
17    '--stack-trace-limit=100',
18    '--stack-trace-limit=-=xX_nodejs_Xx=-',
19  ].concat(process.features.inspector ? [
20    '--inspect-brk',
21    'inspect-brk',
22    '--inspect_brk',
23  ] : []);
24
25  const badFlags = [
26    'INSPECT-BRK',
27    '--INSPECT-BRK',
28    '--r',
29    '-R',
30    '---inspect-brk',
31    '--cheeseburgers',
32  ];
33
34  goodFlags.forEach((flag) => {
35    assert.strictEqual(
36      process.allowedNodeEnvironmentFlags.has(flag),
37      true,
38      `flag should be in set: ${flag}`
39    );
40  });
41
42  badFlags.forEach((flag) => {
43    assert.strictEqual(
44      process.allowedNodeEnvironmentFlags.has(flag),
45      false,
46      `flag should not be in set: ${flag}`
47    );
48  });
49}
50
51// Assert all "canonical" flags begin with dash(es)
52{
53  process.allowedNodeEnvironmentFlags.forEach((flag) => {
54    assert(/^--?[a-zA-Z0-9._-]+$/.test(flag),
55           `Unexpected format for flag ${flag}`);
56  });
57}
58
59// Assert immutability of process.allowedNodeEnvironmentFlags
60{
61  assert.strictEqual(Object.isFrozen(process.allowedNodeEnvironmentFlags),
62                     true);
63
64  process.allowedNodeEnvironmentFlags.add('foo');
65  assert.strictEqual(process.allowedNodeEnvironmentFlags.has('foo'), false);
66  process.allowedNodeEnvironmentFlags.forEach((flag) => {
67    assert.strictEqual(flag === 'foo', false);
68  });
69
70  process.allowedNodeEnvironmentFlags.clear();
71  assert.strictEqual(process.allowedNodeEnvironmentFlags.size > 0, true);
72
73  const size = process.allowedNodeEnvironmentFlags.size;
74  process.allowedNodeEnvironmentFlags.delete('-r');
75  assert.strictEqual(process.allowedNodeEnvironmentFlags.size, size);
76}
77