'use strict'; const common = require('../common'); if (!common.hasCrypto) { common.skip('missing crypto'); }; const { isMainThread } = require('worker_threads'); if (!isMainThread) { common.skip('This test only works on a main thread'); } const assert = require('assert'); const https = require('https'); const fs = require('fs'); const { spawnSync } = require('child_process'); const fixtures = require('../common/fixtures'); const file = fixtures.path('permission', 'net-https.js'); const options = { key: fs.readFileSync(fixtures.path('keys', 'agent1-key.pem')), cert: fs.readFileSync(fixtures.path('keys', 'agent1-cert.pem')) }; const server = https.createServer(options, (req, res) => { res.writeHead(200); res.end('Hello'); }).listen(0, common.mustCall(() => { const port = server.address().port; const url = `https://localhost:${port}`; const { status, stderr } = spawnSync( process.execPath, [ '--permission', '--allow-fs-read=*', file, ], { env: { ...process.env, URL: url, }, } ); server.close(); assert.strictEqual(status, 0, stderr.toString()); }));