fs: use correct self reference for autoClose test
authorGil Pedersen <git@gpost.dk>
Tue, 20 Aug 2013 13:53:54 +0000 (15:53 +0200)
committerBen Noordhuis <info@bnoordhuis.nl>
Tue, 20 Aug 2013 15:10:18 +0000 (17:10 +0200)
lib/fs.js
test/simple/test-fs-read-stream.js

index 00496d9..222efd1 100644 (file)
--- a/lib/fs.js
+++ b/lib/fs.js
@@ -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);
index 9452f95..4d1eebb 100644 (file)
@@ -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);
 });