From 42be210d67efae63458a5d554add961a448c646c Mon Sep 17 00:00:00 2001 From: sreepurnajasti Date: Wed, 27 Dec 2017 11:52:49 +0530 Subject: [PATCH] test: use countdown in test file Fixes: https://github.com/nodejs/node/issues/17169 PR-URL: https://github.com/nodejs/node/pull/17874 Fixes: https://github.com/nodejs/node/issues/17169 Reviewed-By: Weijia Wang Reviewed-By: James M Snell Reviewed-By: Anatoli Papirovski Reviewed-By: Anna Henningsen Reviewed-By: Gireesh Punathil Reviewed-By: Luigi Pinca --- .../test-http-get-pipeline-problem.js | 26 +++++-------------- 1 file changed, 6 insertions(+), 20 deletions(-) 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); -});