Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
test: Use countdown in test file
Fixes: #17169
  • Loading branch information
sreepurnajasti committed Dec 15, 2017
commit 2879207e428183403a4d7346c7c63fe4e150de71
25 changes: 6 additions & 19 deletions test/parallel/test-http-pipeline-regr-3332.js
Original file line number Diff line number Diff line change
@@ -1,40 +1,27 @@
'use strict';
require('../common');
const assert = require('assert');
const http = require('http');
const net = require('net');
const Countdown = require('../common/countdown');

const big = Buffer.alloc(16 * 1024, 'A');

const COUNT = 1e4;

let received = 0;
const countdown = new Countdown(COUNT, () => {
server.close();
client.end();
});

let client;
const server = http.createServer(function(req, res) {
res.end(big, function() {
if (++received === COUNT) {
server.close();
client.end();
}
countdown.dec();
});
}).listen(0, function() {
const req = 'GET / HTTP/1.1\r\n\r\n'.repeat(COUNT);
client = net.connect(this.address().port, function() {
client.write(req);
});

// Just let the test terminate instead of hanging
client.on('close', function() {
if (received !== COUNT)
server.close();
});
client.resume();
});

process.on('exit', function() {
// The server should pause connection on pipeline flood, but it shoul still
// resume it and finish processing the requests, when its output queue will
// be empty again.
assert.strictEqual(received, COUNT);
});