mirror of
https://github.com/nodejs/node.git
synced 2025-05-06 20:08:02 +00:00

Remove `setTimeout()` in test and instead rely on `common.mustCall()` on a `timeout` event handler. The test was flaky on CI. The flakiness was replicable by running the test under load. This version, in contrast, is robust under load. Took the opportunity to do some `var` -> `const` while refactoring. PR-URL: https://github.com/nodejs/node/pull/10404 Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Italo A. Casas <me@italoacasas.com> Reviewed-By: James M Snell <jasnell@gmail.com>
42 lines
949 B
JavaScript
42 lines
949 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
|
|
if (!common.hasCrypto) {
|
|
common.skip('missing crypto');
|
|
return;
|
|
}
|
|
const https = require('https');
|
|
|
|
const fs = require('fs');
|
|
|
|
const options = {
|
|
key: fs.readFileSync(common.fixturesDir + '/keys/agent1-key.pem'),
|
|
cert: fs.readFileSync(common.fixturesDir + '/keys/agent1-cert.pem')
|
|
};
|
|
|
|
// a server that never replies
|
|
const server = https.createServer(options, function() {
|
|
console.log('Got request. Doing nothing.');
|
|
}).listen(0, common.mustCall(function() {
|
|
const req = https.request({
|
|
host: 'localhost',
|
|
port: this.address().port,
|
|
path: '/',
|
|
method: 'GET',
|
|
rejectUnauthorized: false
|
|
});
|
|
req.setTimeout(10);
|
|
req.end();
|
|
|
|
req.on('response', function() {
|
|
console.log('got response');
|
|
});
|
|
|
|
req.on('timeout', common.mustCall(function() {
|
|
console.log('timeout occurred outside');
|
|
req.destroy();
|
|
server.close();
|
|
process.exit(0);
|
|
}));
|
|
}));
|