diff --git a/test/parallel/test-http-get-pipeline-problem.js b/test/parallel/test-http-get-pipeline-problem.js index b10e2e6c9f31b0..3182c1faacd802 100644 --- a/test/parallel/test-http-get-pipeline-problem.js +++ b/test/parallel/test-http-get-pipeline-problem.js @@ -28,6 +28,7 @@ const fixtures = require('../common/fixtures'); const assert = require('assert'); const http = require('http'); const fs = require('fs'); +const Countdown = require('../common/countdown'); http.globalAgent.maxSockets = 1; @@ -38,14 +39,12 @@ const image = fixtures.readSync('/person.jpg'); console.log(`image.length = ${image.length}`); const total = 10; -let requests = 0; -let responses = 0; +const responseCountdown = new Countdown(total, common.mustCall(() => { + checkFiles(); + server.close(); +})); const server = http.Server(function(req, res) { - if (++requests === total) { - server.close(); - } - setTimeout(function() { res.writeHead(200, { 'content-type': 'image/jpeg', @@ -74,9 +73,7 @@ server.listen(0, function() { s.on('finish', function() { console.error(`done ${x}`); - if (++responses === total) { - checkFiles(); - } + responseCountdown.dec(); }); }).on('error', function(e) { console.error('error! ', e.message); @@ -86,8 +83,6 @@ server.listen(0, function() { } }); - -let checkedFiles = false; function checkFiles() { // Should see 1.jpg, 2.jpg, ..., 100.jpg in tmpDir const files = fs.readdirSync(common.tmpDir); @@ -101,13 +96,4 @@ function checkFiles() { image.length, stat.size, `size doesn't match on '${fn}'. Got ${stat.size} bytes`); } - - checkedFiles = true; } - - -process.on('exit', function() { - assert.strictEqual(total, requests); - assert.strictEqual(total, responses); - assert.ok(checkedFiles); -});