Skip to content

permission: add kNet check to Open() in TCPWrap/PipeWrap/UDPWrap #77207

permission: add kNet check to Open() in TCPWrap/PipeWrap/UDPWrap

permission: add kNet check to Open() in TCPWrap/PipeWrap/UDPWrap #77207

Re-run triggered June 11, 2026 15:55
Status Failure
Total duration 1h 7m 12s
Artifacts

test-macos.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

10 errors and 1 notice
test-macOS: test/parallel/test-permission-audit-child-process-inherit-flags.js#L37
--- stderr --- node:internal/assert/utils:146 throw error; ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: 1 !== 0 at Object.<anonymous> (/Users/runner/work/node/node/node/test/parallel/test-permission-audit-child-process-inherit-flags.js:37:10) at Module._compile (node:internal/modules/cjs/loader:1880:14) at Object..js (node:internal/modules/cjs/loader:2020:10) at Module.load (node:internal/modules/cjs/loader:1602:32) at Module._load (node:internal/modules/cjs/loader:1404:12) at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5) at node:internal/main/run_main_module:33:47 { generatedMessage: true, code: 'ERR_ASSERTION', actual: 1, expected: 0, operator: 'strictEqual', diff: 'simple' } Node.js v27.0.0-pre Command: out/Release/node --permission-audit --allow-child-process --allow-fs-read=* --allow-fs-write=* /Users/runner/work/node/node/node/test/parallel/test-permission-audit-child-process-inherit-flags.js
test-macOS: test/parallel/test-permission-allow-child-process-cli.js#L48
--- stderr --- node:child_process:180 p.open(fd); ^ Error: Access to this API has been restricted. Use --allow-net to manage permissions. at Object._forkChild (node:child_process:180:5) at setupChildProcessIpcChannel (node:internal/process/pre_execution:653:30) at prepareExecution (node:internal/process/pre_execution:156:5) at prepareMainThreadExecution (node:internal/process/pre_execution:46:10) at node:internal/main/run_main_module:15:19 { code: 'ERR_ACCESS_DENIED', permission: 'Net', resource: '' } Node.js v27.0.0-pre node:internal/assert/utils:146 throw error; ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: 1 !== 0 at Object.<anonymous> (/Users/runner/work/node/node/node/test/parallel/test-permission-allow-child-process-cli.js:48:10) at Module._compile (node:internal/modules/cjs/loader:1880:14) at Object..js (node:internal/modules/cjs/loader:2020:10) at Module.load (node:internal/modules/cjs/loader:1602:32) at Module._load (node:internal/modules/cjs/loader:1404:12) at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5) at node:internal/main/run_main_module:33:47 { generatedMessage: true, code: 'ERR_ASSERTION', actual: 1, expected: 0, operator: 'strictEqual', diff: 'simple' } Node.js v27.0.0-pre Command: out/Release/node --permission --allow-child-process --allow-fs-read=* /Users/runner/work/node/node/node/test/parallel/test-permission-allow-child-process-cli.js
test-macOS: test/parallel/test-dotenv-node-options.js#L28
--- stdout --- Test failure: 'should have access to permission scope' Location: test/parallel/test-dotenv-node-options.js:15:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + 'node:net:432\n' + + ' err = this._handle.open(fd);\n' + + ' ^\n' + + '\n' + + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + + ' at new Socket (node:net:432:24)\n' + + ' at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18)\n' + + ' at process.getStderr [as stderr] (node:internal/bootstrap/switches/is_main_thread:175:12)\n' + + ' at Object.refresh (node:internal/util/colors:27:47)\n' + + ' at node:internal/util/colors:51:16\n' + + ' at BuiltinModule.compileForInternalLoader (node:internal/bootstrap/realm:409:7)\n' + + ' at requireBuiltin (node:internal/bootstrap/realm:440:14)\n' + + ' at node:internal/assert/assertion_error:23:16\n' + + ' at BuiltinModule.compileForInternalLoader (node:internal/bootstrap/realm:409:7)\n' + + ' at requireBuiltin (node:internal/bootstrap/realm:440:14)\n' + + '\n' + + 'Node.js v27.0.0-pre\n' - '' at TestContext.<anonymous> (/Users/runner/work/node/node/node/test/parallel/test-dotenv-node-options.js:28:12) at async Test.run (node:internal/test_runner/test:1389:7) at async Promise.all (index 0) at async Suite.run (node:internal/test_runner/test:1869:7) at async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'node:net:432\n' + ' err = this._handle.open(fd);\n' + ' ^\n' + '\n' + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + ' at new Socket (node:net:432:24)\n' + ' at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18)\n' + ' at process.getStderr [as stderr] (node:internal/bootstrap/switches/is_main_thread:175:12)\n' + ' at Object.refresh (node:internal/util/colors:27:47)\n' + ' at node:internal/util/colors:51:16\n' + '...', expected: '', operator: 'strictEqual', diff: 'simple' } Test failure: 'validate only read permissions are enabled' Location: test/parallel/test-dotenv-node-options.js:32:3 AssertionError [ERR_ASSERTION]: The input did not match the regular expression /code: 'ERR_ACCESS_DENIED'/. Input: 'node:fs:2853\n' + ' return binding.writeFileUtf8(\n' + ' ^\n' + '\n' + 'Error: Access to this API has been restricted. Use --allow-fs-write to manage permissions.\n' + ' at Object.writeFileSync (node:fs:2853:20)\n' + ' at [eval]:1:15\n' + ' at runScriptInThisContext (node:internal/vm:219:10)\n' + ' at node:internal/process/execution:483:12\n' + ' at [eval]-wrapper:6:24\n' + ' at runScriptInContext (node:internal/process/execution:481:60)\n' + ' at evalFunction (node:internal/process/execution:315:30)\n' + ' at evalTypeScript (node:internal/process/execution:327:3)\n' + ' at node:internal/main/eval_string:71:3\n' + '\n' + 'Node.js v27.0.0-pre\n' at TestContext.<anonymous> (/Users/runner/work/node/node/node/test/parallel/test-dotenv-node-options.js:42:12) at async Test.run (node:internal/test_runner/test:1389:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:960:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'node:fs:2853\n' + ' return binding.writeFileUtf8(\n' + ' ^\n' + '\n' + 'Error: Access to this API has been restricted. Use --allow-fs-write to manage permissions.\n' + ' at Object.writeFileSync (node:fs:2853:20)\n' + ' at [eval]:1:15\n' + ' at runScriptInThisContext (node:internal/vm:219:10)\n' + ' at node:internal/process/execution:483:12\n' + ' at [eval]-wrapper:6:24\n' + '...', expected: /code: 'ERR_ACCESS_DENIED'/, operator: 'match',
test-macOS: test/parallel/test-dotenv-edge-cases.js#L34
--- stdout --- Test failure: 'supports multiple declarations, including optional ones' Location: test/parallel/test-dotenv-edge-cases.js:16:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal: + actual - expected [ { + code: 1, - code: 0, signal: null, + stderr: 'node:net:432\n' + + ' err = this._handle.open(fd);\n' + + ' ^\n' + + '\n' + + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + + ' at new Socket (node:net:432:24)\n' + + ' at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18)\n' + + ' at process.getStderr [as stderr] (node:internal/bootstrap/switches/is_main_thread:175:12)\n' + + ' at Object.refresh (node:internal/util/colors:27:47)\n' + + ' at node:internal/util/colors:51:16\n' + + ' at BuiltinModule.compileForInternalLoader (node:internal/bootstrap/realm:409:7)\n' + + ' at requireBuiltin (node:internal/bootstrap/realm:440:14)\n' + + ' at node:internal/assert/assertion_error:23:16\n' + + ' at BuiltinModule.compileForInternalLoader (node:internal/bootstrap/realm:409:7)\n' + + ' at requireBuiltin (node:internal/bootstrap/realm:440:14)\n' + + '\n' + + 'Node.js v27.0.0-pre\n', - stderr: '', stdout: '' }, { + code: 1, - code: 0, signal: null, + stderr: 'node:net:432\n' + + ' err = this._handle.open(fd);\n' + + ' ^\n' + + '\n' + + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + + ' at new Socket (node:net:432:24)\n' + + ' at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18)\n' + + ' at process.getStderr [as stderr] (node:internal/bootstrap/switches/is_main_thread:175:12)\n' + + ' at Object.refresh (node:internal/util/colors:27:47)\n' + + ' at node:internal/util/colors:51:16\n' + + ' at BuiltinModule.compileForInternalLoader (node:internal/bootstrap/realm:409:7)\n' + + ' at requireBuiltin (node:internal/bootstrap/realm:440:14)\n' + + ' at node:internal/assert/assertion_error:23:16\n' + + ' at BuiltinModule.compileForInternalLoader (node:internal/bootstrap/realm:409:7)\n' + + ' at requireBuiltin (node:internal/bootstrap/realm:440:14)\n' + + '\n' + + 'Node.js v27.0.0-pre\n', - stderr: '', stdout: '' }, { + code: 1, - code: 0, signal: null, + stderr: 'node:net:432\n' + + ' err = this._handle.open(fd);\n' + + ' ^\n' + + '\n' + + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + + ' at new Socket (node:net:432:24)\n' + + ' at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18)\n' + + ' at process.getStderr [as stderr] (node:internal/bootstrap/switches/is_main_thread:175:12)\n' + + ' at Object.refresh (node:internal/util/colors:27:47)\n' + + ' at node:internal/util/colors:51:16\n' + + ' at BuiltinModule.compileForInternalLoader (node:internal/bootstrap/realm:409:7)\n' + + ' at requireBuiltin (node:internal/bootstrap/realm:440:14)\n' + + ' at node:internal/assert/assertion_error:23:16\n' + + ' at BuiltinModule.compileForInternalLoader (node:internal/bootstrap/realm:409:7)\n' + + ' at requireBuiltin (node:internal/bootstrap/realm:440:14)\n' + + '\n' + + 'Node.js v27.0.0-pre\n', - stderr: '', stdout: '' }, { + code: 1, - code: 0, signal: null, + stderr: 'node:net:432\n' + + ' err = this._handle.open(fd);\n' + + ' ^\n' + + '\n' + + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + + ' at new Socket (node:net:432:2
test-macOS: test/parallel/test-config-file.js#L776
--- stdout --- Test failure: 'should handle an empty namespace valid namespace' Location: test/parallel/test-config-file.js:770:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + 'node:net:432\n' + + ' err = this._handle.open(fd);\n' + + ' ^\n' + + '\n' + + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + + ' at new Socket (node:net:432:24)\n' + + ' at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18)\n' + + ' at process.getStdout [as stdout] (node:internal/bootstrap/switches/is_main_thread:153:12)\n' + + ' at console.get (node:internal/console/constructor:221:38)\n' + + ' at console.value (node:internal/console/constructor:290:39)\n' + + ' at console.log (node:internal/console/constructor:416:26)\n' + + ' at printResult (node:internal/process/execution:490:31)\n' + + ' at process.<anonymous> (node:internal/process/execution:494:7)\n' + + ' at Object.onceWrapper (node:events:631:12)\n' + + ' at process.emit (node:events:509:20)\n' + + '\n' + + 'Node.js v27.0.0-pre\n' - '' at TestContext.<anonymous> (/Users/runner/work/node/node/node/test/parallel/test-config-file.js:776:12) at async Test.run (node:internal/test_runner/test:1389:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:960:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'node:net:432\n' + ' err = this._handle.open(fd);\n' + ' ^\n' + '\n' + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + ' at new Socket (node:net:432:24)\n' + ' at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18)\n' + ' at process.getStdout [as stdout] (node:internal/bootstrap/switches/is_main_thread:153:12)\n' + ' at console.get (node:internal/console/constructor:221:38)\n' + ' at console.value (node:internal/console/constructor:290:39)\n' + '...', expected: '', operator: 'strictEqual', diff: 'simple' } Test failure: 'should automatically enable --permission flag when permission namespace is present' Location: test/parallel/test-config-file.js:893:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + 'node:net:432\n' + + ' err = this._handle.open(fd);\n' + + ' ^\n' + + '\n' + + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + + ' at new Socket (node:net:432:24)\n' + + ' at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18)\n' + + ' at process.getStdout [as stdout] (node:internal/bootstrap/switches/is_main_thread:153:12)\n' + + ' at console.get (node:internal/console/constructor:221:38)\n' + + ' at console.value (node:internal/console/constructor:358:50)\n' + + ' at console.log (node:internal/console/constructor:416:61)\n' + + ' at printResult (node:internal/process/execution:490:31)\n' + + ' at process.<anonymous> (node:internal/process/execution:494:7)\n' + + ' at Object.onceWrapper (node:events:631:12)\n' + + ' at process.emit (node:events:509:20)\n' + + '\n' + + 'Node.js v27.0.0-pre\n' - '' at TestContext.<anonymous> (/Users/runner/work/node/node/node/test/parallel/test-config-file.js:900:12) at async Test.run (node:internal/test_runner/test:1389:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:960:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'node:net:432\n' + ' err = this._handle.open(fd);\n' + ' ^\n' + '\n' + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + ' at new Socket (node:net:432:24)\n' + ' at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18)\n' + ' at process.getStdout [as stdou
test-macOS: test/parallel/test-compile-cache-api-permission.js#L26
--- stderr --- [process 54668]: --- stderr --- node:net:432 err = this._handle.open(fd); ^ Error: Access to this API has been restricted. Use --allow-net to manage permissions. at new Socket (node:net:432:24) at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18) at process.getStdout [as stdout] (node:internal/bootstrap/switches/is_main_thread:153:12) at console.get (node:internal/console/constructor:221:38) at console.value (node:internal/console/constructor:358:50) at console.log (node:internal/console/constructor:416:61) at Object.<anonymous> (/Users/runner/work/node/node/node/test/.tmp.411/scripts/compile-cache-wrapper.js:5:9) at Module._compile (node:internal/modules/cjs/loader:1880:14) at Object..js (node:internal/modules/cjs/loader:2020:10) at Module.load (node:internal/modules/cjs/loader:1602:32) Node.js v27.0.0-pre [process 54668]: --- stdout --- [process 54668]: status = 1, signal = null /Users/runner/work/node/node/node/test/common/child_process.js:112 throw error; ^ Error: - process terminated with status 1, expected 0 at Object.<anonymous> (/Users/runner/work/node/node/node/test/parallel/test-compile-cache-api-permission.js:26:3) at Module._compile (node:internal/modules/cjs/loader:1880:14) at Object..js (node:internal/modules/cjs/loader:2020:10) at Module.load (node:internal/modules/cjs/loader:1602:32) at Module._load (node:internal/modules/cjs/loader:1404:12) at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5) at node:internal/main/run_main_module:33:47 { options: { env: { NODE_DEBUG_NATIVE: 'COMPILE_CACHE', NODE_TEST_COMPILE_CACHE_DIR: '/Users/runner/work/node/node/node/test/.tmp.411/compile-cache' }, cwd: '/Users/runner/work/node/node/node/test/.tmp.411' }, command: '/Users/runner/work/node/node/node/out/Release/node --permission --allow-fs-read=/Users/runner/work/node/node/node/test/.tmp.411/scripts --allow-fs-write=/Users/runner/work/node/node/node/test/.tmp.411/scripts -r /Users/runner/work/node/node/node/test/.tmp.411/scripts/compile-cache-wrapper.js /Users/runner/work/node/node/node/test/.tmp.411/scripts/empty.js' } Node.js v27.0.0-pre Command: out/Release/node /Users/runner/work/node/node/node/test/parallel/test-compile-cache-api-permission.js
test-macOS: test/parallel/test-cli-permission-deny-fs.js#L23
--- stderr --- node:internal/assert/utils:146 throw error; ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: '' !== 'false' at Object.<anonymous> (/Users/runner/work/node/node/node/test/parallel/test-cli-permission-deny-fs.js:23:10) at Module._compile (node:internal/modules/cjs/loader:1880:14) at Object..js (node:internal/modules/cjs/loader:2020:10) at Module.load (node:internal/modules/cjs/loader:1602:32) at Module._load (node:internal/modules/cjs/loader:1404:12) at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5) at node:internal/main/run_main_module:33:47 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '', expected: 'false', operator: 'strictEqual', diff: 'simple' } Node.js v27.0.0-pre Command: out/Release/node /Users/runner/work/node/node/node/test/parallel/test-cli-permission-deny-fs.js
test-macOS: test/parallel/test-cli-permission-multiple-allow.js#L25
--- stderr --- node:internal/assert/utils:146 throw error; ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: '' !== 'false' at Object.<anonymous> (/Users/runner/work/node/node/node/test/parallel/test-cli-permission-multiple-allow.js:25:10) at Module._compile (node:internal/modules/cjs/loader:1880:14) at Object..js (node:internal/modules/cjs/loader:2020:10) at Module.load (node:internal/modules/cjs/loader:1602:32) at Module._load (node:internal/modules/cjs/loader:1404:12) at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5) at node:internal/main/run_main_module:33:47 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '', expected: 'false', operator: 'strictEqual', diff: 'simple' } Node.js v27.0.0-pre Command: out/Release/node /Users/runner/work/node/node/node/test/parallel/test-cli-permission-multiple-allow.js
test-macOS: test/ffi/test-ffi-permission-audit.js#L24
--- stdout --- Test failure: 'permission audit does not deny ffi access' Location: test/ffi/test-ffi-permission-audit.js:10:1 AssertionError [ERR_ASSERTION]: The input did not match the regular expression /ExperimentalWarning: FFI is an experimental feature/. Input: 'node:net:432\n' + ' err = this._handle.open(fd);\n' + ' ^\n' + '\n' + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + ' at new Socket (node:net:432:24)\n' + ' at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18)\n' + ' at process.getStdout [as stdout] (node:internal/bootstrap/switches/is_main_thread:153:12)\n' + ' at console.get (node:internal/console/constructor:221:38)\n' + ' at console.value (node:internal/console/constructor:290:39)\n' + ' at console.log (node:internal/console/constructor:416:26)\n' + ' at [eval]:1:42\n' + ' at runScriptInThisContext (node:internal/vm:219:10)\n' + ' at node:internal/process/execution:483:12\n' + ' at [eval]-wrapper:6:24\n' + '\n' + 'Node.js v27.0.0-pre\n' at TestContext.<anonymous> (/Users/runner/work/node/node/node/test/ffi/test-ffi-permission-audit.js:24:10) at Test.runInAsyncScope (node:async_hooks:226:14) at Test.run (node:internal/test_runner/test:1382:25) at Test.start (node:internal/test_runner/test:1242:17) at startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'node:net:432\n' + ' err = this._handle.open(fd);\n' + ' ^\n' + '\n' + 'Error: Access to this API has been restricted. Use --allow-net to manage permissions.\n' + ' at new Socket (node:net:432:24)\n' + ' at createWritableStdioStream (node:internal/bootstrap/switches/is_main_thread:83:18)\n' + ' at process.getStdout [as stdout] (node:internal/bootstrap/switches/is_main_thread:153:12)\n' + ' at console.get (node:internal/console/constructor:221:38)\n' + ' at console.value (node:internal/console/constructor:290:39)\n' + '...', expected: /ExperimentalWarning: FFI is an experimental feature/, operator: 'match', diff: 'simple' } Command: out/Release/node --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /Users/runner/work/node/node/node/test/ffi/test-ffi-permission-audit.js
test-macOS: test/ffi/test-ffi-permission-allow-cli.js#L29
--- stderr --- (node:47120) SecurityWarning: The flag --allow-child-process must be used with extreme caution. It could invalidate the permission model. (Use `node --trace-warnings ...` to show where the warning was created) (node:47120) SecurityWarning: The flag --allow-ffi must be used with extreme caution. It could invalidate the permission model. (node:47120) ExperimentalWarning: FFI is an experimental feature and might change at any time --- stdout --- Test failure: 'allow-ffi enables ffi APIs and permission flag discovery' Location: test/ffi/test-ffi-permission-allow-cli.js:14:1 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: 1 !== 0 at TestContext.<anonymous> (/Users/runner/work/node/node/node/test/ffi/test-ffi-permission-allow-cli.js:29:10) at Test.runInAsyncScope (node:async_hooks:226:14) at Test.run (node:internal/test_runner/test:1382:25) at Test.start (node:internal/test_runner/test:1242:17) at startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 1, expected: 0, operator: 'strictEqual', diff: 'simple' } Command: out/Release/node --permission --allow-ffi --allow-child-process --experimental-ffi --allow-fs-read=* --allow-fs-write=* --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /Users/runner/work/node/node/node/test/ffi/test-ffi-permission-allow-cli.js
sccache stats - test-macOS
54% - 2675 hits, 2303 misses, 0 errors