node/test/parallel/test-http-timeout-client-warning.js
Anna Henningsen 648d668fcc
http: emit timeout duration overflow warning sync
Emit the `TimeoutOverflowWarning` synchronously, even when
still connecting, to get a better stack trace.

With thanks to Anatoli Papirovski for providing helpful
tips when writing the test.

PR-URL: https://github.com/nodejs/node/pull/18906
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2018-03-04 21:55:21 +00:00

22 lines
629 B
JavaScript

'use strict';
const common = require('../common');
const http = require('http');
const assert = require('assert');
// Checks that the setTimeout duration overflow warning is emitted
// synchronously and therefore contains a meaningful stacktrace.
process.on('warning', common.mustCall((warning) => {
assert(warning.stack.includes(__filename));
}));
const server = http.createServer((req, resp) => resp.end());
server.listen(common.mustCall(() => {
http.request(`http://localhost:${server.address().port}`)
.setTimeout(2 ** 40)
.on('response', common.mustCall(() => {
server.close();
}))
.end();
}));