diff options
-rw-r--r-- | lib/fs.js | 2 | ||||
-rw-r--r-- | test/simple/test-fs-read-stream.js | 26 |
2 files changed, 17 insertions, 11 deletions
@@ -1494,7 +1494,7 @@ ReadStream.prototype.open = function() { var self = this; fs.open(this.path, this.flags, this.mode, function(er, fd) { if (er) { - if (this.autoClose) { + if (self.autoClose) { self.destroy(); } self.emit('error', er); diff --git a/test/simple/test-fs-read-stream.js b/test/simple/test-fs-read-stream.js index 9452f95c6..4d1eebb2c 100644 --- a/test/simple/test-fs-read-stream.js +++ b/test/simple/test-fs-read-stream.js @@ -171,10 +171,6 @@ function file7Next(){ }); file7.on('end', function(err) { assert.equal(file7.data, 'xyz\n'); - process.nextTick(function() { - assert(file7.closed); - assert(file7.destroyed); - }); }); } @@ -182,10 +178,20 @@ function file7Next(){ var file8 = fs.createReadStream(null, {fd: 13337, autoClose: false }); file8.on('data', function() {}); file8.on('error', common.mustCall(function() {})); -file8.on('end', function() { - process.nextTick(function() { - assert(!file8.closed); - assert(!file8.destroyed); - assert(file8.fd); - }); + +// Make sure stream is destroyed when file does not exist. +var file9 = fs.createReadStream('/path/to/file/that/does/not/exist'); +file9.on('data', function() {}); +file9.on('error', common.mustCall(function() {})); + +process.on('exit', function() { + assert(file7.closed); + assert(file7.destroyed); + + assert(!file8.closed); + assert(!file8.destroyed); + assert(file8.fd); + + assert(!file9.closed); + assert(file9.destroyed); }); |