Skip to content

Commit

Permalink
test: fix test http upload timeout
Browse files Browse the repository at this point in the history
PR-URL: nodejs/node#43935
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
  • Loading branch information
theanarkh authored and guangwong committed Oct 10, 2022
1 parent 4e3b55a commit bdd3d7a
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions test/pummel/test-http-upload-timeout.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,20 @@
// This tests setTimeout() by having multiple clients connecting and sending
// data in random intervals. Clients are also randomly disconnecting until there
// are no more clients left. If no false timeout occurs, this test has passed.
require('../common');
const common = require('../common');
const http = require('http');
const server = http.createServer();
let connections = 0;

const ontimeout = common.mustNotCall('Unexpected timeout');

server.on('request', function(req, res) {
req.socket.setTimeout(1000);
req.socket.on('timeout', function() {
throw new Error('Unexpected timeout');
});
req.socket.on('timeout', ontimeout);
req.on('end', function() {
connections--;
res.writeHead(200);
req.socket.off('timeout', ontimeout);
res.end('done\n');
if (connections === 0) {
server.close();
Expand All @@ -47,7 +48,7 @@ server.on('request', function(req, res) {
server.listen(0, '127.0.0.1', function() {
for (let i = 0; i < 10; i++) {
connections++;

let count = 0;
setTimeout(function() {
const request = http.request({
port: server.address().port,
Expand All @@ -56,13 +57,12 @@ server.listen(0, '127.0.0.1', function() {
});

function ping() {
const nextPing = (Math.random() * 900).toFixed();
if (nextPing > 600) {
if (++count === 10) {
request.end();
return;
}
request.write('ping');
setTimeout(ping, nextPing);
setTimeout(ping, 300);
}
ping();
}, i * 50);
Expand Down

0 comments on commit bdd3d7a

Please sign in to comment.