node/test/parallel/test-http-pause-no-dump.js
Anatoli Papirovski 3d480dcf4c
http: fix _dump regression
A recent set of changes removed _consuming tracking from server
incoming messages which ensures that _dump only runs if the
user has never attempted to read the incoming data. Fix by
reintroducing _consuming which tracks whether _read was ever
successfully called.

PR-URL: https://github.com/nodejs/node/pull/20088
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2018-04-19 08:41:17 +02:00

34 lines
768 B
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
const http = require('http');
const server = http.createServer(common.mustCall(function(req, res) {
req.once('data', common.mustCall(() => {
req.pause();
res.writeHead(200);
res.end();
res.on('finish', common.mustCall(() => {
assert(!req._dumped);
}));
}));
}));
server.listen(0);
server.on('listening', common.mustCall(function() {
const req = http.request({
port: this.address().port,
method: 'POST',
path: '/'
}, common.mustCall(function(res) {
assert.strictEqual(res.statusCode, 200);
res.resume();
res.on('end', common.mustCall(() => {
server.close();
}));
}));
req.end(Buffer.allocUnsafe(1024));
}));