Skip to content

Commit 71f6bcd

Browse files
committed
fixup!
1 parent bde8bf4 commit 71f6bcd

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

test/parallel/test-cli-node-options-docs.js renamed to test/doctool/test-manpage-node-options.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,22 @@ const addOptionRE = /AddOption[\s\n\r]*\([\s\n\r]*"([^"]+)"(.*?)\);/gs;
2222
const nodeOptionsText = cliText.match(/<!-- node-options-node start -->(.*)<!-- node-options-others end -->/s)[1];
2323
const v8OptionsText = cliText.match(/<!-- v8-options start -->(.*)<!-- v8-options end -->/s)[1];
2424

25+
const manPage = path.join(rootDir, 'out', 'doc', 'node.1');
26+
const manPageText = fs.readFileSync(manPage, { encoding: 'utf8' });
27+
2528
// Documented in /doc/api/deprecations.md
2629
const deprecated = [
2730
'--debug',
2831
'--debug-brk',
2932
];
3033

3134

35+
const manPagesOptions = new Set();
36+
37+
for (const [, envVar] of manPageText.matchAll(/\.It Fl (-[a-zA-Z0-9._-]+)/g)) {
38+
manPagesOptions.add(envVar);
39+
}
40+
3241
for (const [, envVar, config] of nodeOptionsCC.matchAll(addOptionRE)) {
3342
const hasTrueAsDefaultValue = /,\s*(?:true|HAVE_[A-Z_]+)\s*$/.test(config);
3443
const isInNodeOption = config.includes('kAllowedInEnvvar') && !config.includes('kDisallowedInEnvvar');
@@ -41,18 +50,22 @@ for (const [, envVar, config] of nodeOptionsCC.matchAll(addOptionRE)) {
4150
isNoOp
4251
) {
4352
// assert(!manPagesOptions.has(envVar.slice(1)), `Option ${envVar} should not be documented`)
53+
manPagesOptions.delete(envVar.slice(1));
4454
continue;
4555
}
4656

4757
// Internal API options are documented in /doc/contributing/internal-api.md
4858
if (new RegExp(`####.*\`${RegExp.escape(envVar)}[[=\\s\\b\`]`).test(internalApiText)) {
59+
manPagesOptions.delete(envVar.slice(1));
4960
continue;
5061
}
5162

5263
// CLI options
5364
if (!isV8Option && !hasTrueAsDefaultValue) {
5465
if (!new RegExp(`###.*\`${RegExp.escape(envVar)}[[=\\s\\b\`]`).test(cliText)) {
5566
assert.fail(`Should have option ${envVar} documented`);
67+
} else {
68+
manPagesOptions.delete(envVar.slice(1));
5669
}
5770
}
5871

@@ -63,6 +76,8 @@ for (const [, envVar, config] of nodeOptionsCC.matchAll(addOptionRE)) {
6376
if (!isV8Option && hasTrueAsDefaultValue) {
6477
if (!new RegExp(`###.*\`--no${RegExp.escape(envVar.slice(1))}[[=\\s\\b\`]`).test(cliText)) {
6578
assert.fail(`Should have option --no${envVar.slice(1)} documented`);
79+
} else {
80+
manPagesOptions.delete(`-no${envVar.slice(1)}`);
6681
}
6782
}
6883

@@ -84,6 +99,8 @@ for (const [, envVar, config] of nodeOptionsCC.matchAll(addOptionRE)) {
8499
if (isV8Option) {
85100
if (!new RegExp(`###.*\`${RegExp.escape(envVar)}[[=\\s\\b\`]`).test(v8OptionsText)) {
86101
assert.fail(`Should have option ${envVar} in V8 options documented`);
102+
} else {
103+
manPagesOptions.delete(envVar.slice(1));
87104
}
88105
}
89106
}
@@ -102,3 +119,8 @@ for (const [, envVar, config] of nodeOptionsCC.matchAll(addOptionRE)) {
102119
previousIndex = match?.index;
103120
} while (match);
104121
}
122+
123+
// add alias handling
124+
manPagesOptions.delete('-trace-events-enabled');
125+
126+
assert.strictEqual(manPagesOptions.size, 0, `Man page options not documented: ${[...manPagesOptions]}`);

0 commit comments

Comments
 (0)