From 138ee983b08bc62485b5aa8dad6d35ab6ae98274 Mon Sep 17 00:00:00 2001 From: Santiago Gimeno Date: Sat, 30 Jan 2016 11:00:20 +0100 Subject: [PATCH] test: refactor test-http-destroyed-socket-write2 Remove the limit of requests to be sent (128) as in some conditions it was reached without the `error` event being fired, causing the test to fail. Remove the initial timeout. Remove some variables used to check the validity of the test and replace them with `common.mustCall` and `common.fail` calls. PR-URL: https://github.com/nodejs/node/pull/4970 Reviewed-By: James M Snell Reviewed-By: Roman Klauke Reviewed-By: Rich Trott --- .../test-http-destroyed-socket-write2.js | 58 ++++--------------- 1 file changed, 12 insertions(+), 46 deletions(-) diff --git a/test/parallel/test-http-destroyed-socket-write2.js b/test/parallel/test-http-destroyed-socket-write2.js index 9065939ccbd798..ac6ab92c17c072 100644 --- a/test/parallel/test-http-destroyed-socket-write2.js +++ b/test/parallel/test-http-destroyed-socket-write2.js @@ -19,28 +19,13 @@ server.listen(common.PORT, function() { method: 'POST' }); - var timer = setTimeout(write, 50); - var writes = 0; - function write() { - if (++writes === 128) { - clearTimeout(timer); - req.end(); - test(); - } else { - req.write('hello', function() { - timer = setImmediate(write); - }); - } + req.write('hello', function() { + setImmediate(write); + }); } - var gotError = false; - var sawData = false; - var sawEnd = false; - - req.on('error', function(er) { - assert(!gotError); - gotError = true; + req.on('error', common.mustCall(function(er) { switch (er.code) { // This is the expected case case 'ECONNRESET': @@ -56,39 +41,20 @@ server.listen(common.PORT, function() { 'Writing to a torn down client should RESET or ABORT'); break; } - clearTimeout(timer); - console.log('ECONNRESET was raised after %d writes', writes); - test(); - }); + + assert.equal(req.output.length, 0); + assert.equal(req.outputEncodings.length, 0); + server.close(); + })); req.on('response', function(res) { res.on('data', function(chunk) { - console.error('saw data: ' + chunk); - sawData = true; + common.fail('Should not receive response data'); }); res.on('end', function() { - console.error('saw end'); - sawEnd = true; + common.fail('Should not receive response end'); }); }); - var closed = false; - - function test() { - if (closed) - return; - - server.close(); - closed = true; - - if (req.output.length || req.outputEncodings.length) - console.error('bad happened', req.output, req.outputEncodings); - - assert.equal(req.output.length, 0); - assert.equal(req.outputEncodings, 0); - assert(gotError); - assert(!sawData); - assert(!sawEnd); - console.log('ok'); - } + write(); });