summaryrefslogtreecommitdiff
path: root/test/simple/test-fs-read-stream-err.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/simple/test-fs-read-stream-err.js')
-rw-r--r--test/simple/test-fs-read-stream-err.js39
1 files changed, 26 insertions, 13 deletions
diff --git a/test/simple/test-fs-read-stream-err.js b/test/simple/test-fs-read-stream-err.js
index 2c285f183..54aa21799 100644
--- a/test/simple/test-fs-read-stream-err.js
+++ b/test/simple/test-fs-read-stream-err.js
@@ -23,28 +23,41 @@ var common = require('../common');
var assert = require('assert');
var fs = require('fs');
-var stream = fs.createReadStream(__filename, { bufferSize: 64 });
+var stream = fs.createReadStream(__filename, {
+ bufferSize: 64
+});
var err = new Error('BAM');
-stream.on('data', function(buf) {
- var fd = stream.fd;
+stream.on('error', common.mustCall(function errorHandler(err_) {
+ console.error('error event');
+ process.nextTick(function() {
+ assert.equal(stream.fd, null);
+ assert.equal(err_, err);
+ });
+}));
+
+fs.close = common.mustCall(function(fd_, cb) {
+ assert.equal(fd_, stream.fd);
+ process.nextTick(cb);
+});
+var read = fs.read;
+fs.read = function() {
+ // first time is ok.
+ read.apply(fs, arguments);
+ // then it breaks
fs.read = function() {
var cb = arguments[arguments.length - 1];
process.nextTick(function() {
cb(err);
});
+ // and should not be called again!
+ fs.read = function() {
+ throw new Error('BOOM!');
+ };
};
+};
- fs.close = common.mustCall(function(fd_, cb) {
- assert.equal(fd_, fd);
- process.nextTick(cb);
- });
-
- stream.on('error', common.mustCall(function(err_) {
- assert.equal(stream.fd, null);
- assert.equal(err_, err);
- }));
-
+stream.on('data', function(buf) {
stream.on('data', assert.fail); // no more 'data' events should follow
});