-
Notifications
You must be signed in to change notification settings - Fork 30.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test-http-exit-delay was introduced to confirm the removal of a 1 second delay that can occur when exiting node after an http request. This change refactors the test for simplicity and also in the hopes of either eliminating flakiness on CI or, if not that, at least making the source of the flakiness easier to track down. Ref: 16b59cbc Fixes: #4045
- Loading branch information
Showing
1 changed file
with
17 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,41 +1,30 @@ | ||
'use strict'; | ||
var assert = require('assert'); | ||
var common = require('../common'); | ||
var http = require('http'); | ||
const assert = require('assert'); | ||
const common = require('../common'); | ||
const http = require('http'); | ||
|
||
var start; | ||
var server = http.createServer(function(req, res) { | ||
const server = http.createServer(common.mustCall(function(req, res) { | ||
req.resume(); | ||
req.on('end', function() { | ||
res.end('Success'); | ||
}); | ||
|
||
server.close(); | ||
}); | ||
|
||
server.listen(common.PORT, 'localhost', function() { | ||
var interval_id = setInterval(function() { | ||
start = new Date(); | ||
if (start.getMilliseconds() > 100) | ||
return; | ||
|
||
console.log(start.toISOString()); | ||
var req = http.request({ | ||
'host': 'localhost', | ||
'port': common.PORT, | ||
'agent': false, | ||
'method': 'PUT' | ||
}); | ||
})); | ||
|
||
req.end('Test'); | ||
clearInterval(interval_id); | ||
}, 10); | ||
}); | ||
server.listen(common.PORT, 'localhost', common.mustCall(function() { | ||
start = new Date(); | ||
const req = http.request({ | ||
'host': 'localhost', | ||
'port': common.PORT, | ||
'agent': false, | ||
'method': 'PUT' | ||
}); | ||
req.end('Test'); | ||
})); | ||
|
||
process.on('exit', function() { | ||
var end = new Date(); | ||
console.log(end.toISOString()); | ||
assert.equal(start.getSeconds(), end.getSeconds()); | ||
assert(end.getMilliseconds() < 900); | ||
console.log('ok'); | ||
const end = new Date(); | ||
assert(end - start < 1000, 'Entire test should take less than one second'); | ||
}); |