diff options
author | Matteo Collina <hello@matteocollina.com> | 2019-09-26 11:23:45 +0200 |
---|---|---|
committer | Matteo Collina <hello@matteocollina.com> | 2019-10-10 10:34:12 +0200 |
commit | 9f873b3a659e82eb232785c9e7cfec6df8dd5277 (patch) | |
tree | c1f40c9e4929a58c2e5f218a647b276e18a16f83 /test | |
parent | 8c606851056a1bb38abdcf7ab15df8ae35ba0cf9 (diff) | |
download | android-node-v8-9f873b3a659e82eb232785c9e7cfec6df8dd5277.tar.gz android-node-v8-9f873b3a659e82eb232785c9e7cfec6df8dd5277.tar.bz2 android-node-v8-9f873b3a659e82eb232785c9e7cfec6df8dd5277.zip |
Revert "stream: make finished call the callback if the stream is closed"
This reverts commit b03845b9376aec590b89f753a4b7c1b47729c5f8.
PR-URL: https://github.com/nodejs/node/pull/29717
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/parallel/test-http-client-finished.js | 106 | ||||
-rw-r--r-- | test/parallel/test-stream-finished.js | 188 |
2 files changed, 3 insertions, 291 deletions
diff --git a/test/parallel/test-http-client-finished.js b/test/parallel/test-http-client-finished.js index 337f7b596d..2d7e5b95b3 100644 --- a/test/parallel/test-http-client-finished.js +++ b/test/parallel/test-http-client-finished.js @@ -25,109 +25,3 @@ const { finished } = require('stream'); .end(); })); } - -{ - // Test abort before finished. - - const server = http.createServer(function(req, res) { - }); - - server.listen(0, common.mustCall(function() { - const req = http.request({ - port: this.address().port - }, common.mustNotCall()); - req.abort(); - finished(req, common.mustCall(() => { - server.close(); - })); - })); -} - -{ - // Test abort after request. - - const server = http.createServer(function(req, res) { - }); - - server.listen(0, common.mustCall(function() { - const req = http.request({ - port: this.address().port - }).end(); - finished(req, (err) => { - common.expectsError({ - type: Error, - code: 'ERR_STREAM_PREMATURE_CLOSE' - })(err); - finished(req, common.mustCall(() => { - server.close(); - })); - }); - req.abort(); - })); -} - -{ - // Test abort before end. - - const server = http.createServer(function(req, res) { - res.write('test'); - }); - - server.listen(0, common.mustCall(function() { - const req = http.request({ - port: this.address().port - }).on('response', common.mustCall((res) => { - req.abort(); - finished(res, common.mustCall(() => { - finished(res, common.mustCall(() => { - server.close(); - })); - })); - })).end(); - })); -} - -{ - // Test destroy before end. - - const server = http.createServer(function(req, res) { - res.write('test'); - }); - - server.listen(0, common.mustCall(function() { - http.request({ - port: this.address().port - }).on('response', common.mustCall((res) => { - // TODO(ronag): Bug? Won't emit 'close' unless read. - res.on('data', () => {}); - res.destroy(); - finished(res, common.mustCall(() => { - finished(res, common.mustCall(() => { - server.close(); - })); - })); - })).end(); - })); -} - -{ - // Test finish after end. - - const server = http.createServer(function(req, res) { - res.end('asd'); - }); - - server.listen(0, common.mustCall(function() { - http.request({ - port: this.address().port - }).on('response', common.mustCall((res) => { - // TODO(ronag): Bug? Won't emit 'close' unless read. - res.on('data', () => {}); - finished(res, common.mustCall(() => { - finished(res, common.mustCall(() => { - server.close(); - })); - })); - })).end(); - })); -} diff --git a/test/parallel/test-stream-finished.js b/test/parallel/test-stream-finished.js index 12a40b35b9..d6361ea303 100644 --- a/test/parallel/test-stream-finished.js +++ b/test/parallel/test-stream-finished.js @@ -101,25 +101,11 @@ const { promisify } = require('util'); const rs = new Readable(); finished(rs, common.mustCall((err) => { - assert(err, 'premature close error'); - })); - - rs.push(null); - rs.emit('close'); - rs.resume(); -} - -{ - const rs = new Readable(); - - finished(rs, common.mustCall((err) => { assert(!err, 'no error'); })); rs.push(null); - rs.on('end', common.mustCall(() => { - rs.emit('close'); // Should not trigger an error - })); + rs.emit('close'); // Should not trigger an error rs.resume(); } @@ -169,9 +155,8 @@ const { promisify } = require('util'); rs.resume(); } +// Test that calling returned function removes listeners { - // Nothing happens if disposed. - const ws = new Writable({ write(data, env, cb) { cb(); @@ -183,8 +168,6 @@ const { promisify } = require('util'); } { - // Nothing happens if disposed. - const rs = new Readable(); const removeListeners = finished(rs, common.mustNotCall()); removeListeners(); @@ -195,174 +178,9 @@ const { promisify } = require('util'); } { - // Completed if readable-like is ended before. - const streamLike = new EE(); streamLike.readableEnded = true; streamLike.readable = true; - finished(streamLike, common.mustCall()); -} - -{ - // Completed if readable-like is never ended. - - const streamLike = new EE(); - streamLike.readableEnded = false; - streamLike.readable = true; - finished(streamLike, common.expectsError({ - code: 'ERR_STREAM_PREMATURE_CLOSE' - })); + finished(streamLike, common.mustCall); streamLike.emit('close'); } - -{ - // Completed if writable-like is destroyed before. - - const streamLike = new EE(); - streamLike.destroyed = true; - streamLike.writable = true; - finished(streamLike, common.mustCall()); -} - -{ - // Completed if readable-like is aborted before. - - const streamLike = new EE(); - streamLike.destroyed = true; - streamLike.readable = true; - finished(streamLike, common.mustCall()); -} - -{ - // Completed if writable-like is aborted before. - - const streamLike = new EE(); - streamLike.aborted = true; - streamLike.writable = true; - finished(streamLike, common.mustCall()); -} - -{ - // Completed if readable-like is aborted before. - - const streamLike = new EE(); - streamLike.aborted = true; - streamLike.readable = true; - finished(streamLike, common.mustCall()); -} - -{ - // Completed if streamlike is finished before. - - const streamLike = new EE(); - streamLike.writableFinished = true; - streamLike.writable = true; - finished(streamLike, common.mustCall()); -} - -{ - // Premature close if stream is not finished. - - const streamLike = new EE(); - streamLike.writableFinished = false; - streamLike.writable = true; - finished(streamLike, common.expectsError({ - code: 'ERR_STREAM_PREMATURE_CLOSE' - })); - streamLike.emit('close'); -} - -{ - // Premature close if stream never emitted 'finish' - // even if writableFinished says something else. - - const streamLike = new EE(); - streamLike.writable = true; - finished(streamLike, common.expectsError({ - code: 'ERR_STREAM_PREMATURE_CLOSE' - })); - streamLike.writableFinished = true; - streamLike.emit('close'); -} - - -{ - // Premature close if stream never emitted 'end' - // even if readableEnded says something else. - - const streamLike = new EE(); - streamLike.readable = true; - finished(streamLike, common.expectsError({ - code: 'ERR_STREAM_PREMATURE_CLOSE' - })); - streamLike.readableEnded = true; - streamLike.emit('close'); -} - -{ - // Completes if already finished. - - const w = new Writable(); - finished(w, common.mustCall(() => { - finished(w, common.mustCall()); - })); - w.destroy(); -} - -{ - // Completes if already ended. - - const r = new Readable(); - finished(r, common.mustCall(() => { - finished(r, common.mustCall()); - })); - r.destroy(); -} - -{ - // Test is readable check through readable - const streamLike = new EE(); - streamLike.readable = false; - finished(streamLike, common.mustCall()); - streamLike.emit('end'); -} - -{ - // Test is readable check through readableEnded - const streamLike = new EE(); - streamLike.readableEnded = true; - finished(streamLike, common.mustCall()); - streamLike.emit('end'); -} - -{ - // Test is readable check through _readableState - const streamLike = new EE(); - streamLike._readableState = {}; - finished(streamLike, common.mustCall()); - streamLike.emit('end'); -} - -{ - // Test is writable check through writable - const streamLike = new EE(); - streamLike.writable = false; - finished(streamLike, common.mustCall()); - streamLike.emit('finish'); -} - -{ - // Test is writable check through writableEnded - const streamLike = new EE(); - streamLike.writableEnded = true; - finished(streamLike, common.mustCall()); - streamLike.emit('finish'); -} - -{ - // Test is writable check through _writableState - const streamLike = new EE(); - streamLike._writableState = {}; - finished(streamLike, common.mustCall()); - streamLike.emit('finish'); -} |