You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
923 lines
30 KiB
923 lines
30 KiB
diff --git a/lib/_stream_duplex.js b/lib/_stream_duplex.js |
|
index c5a741c..a2e0d8e 100644 |
|
--- a/lib/_stream_duplex.js |
|
+++ b/lib/_stream_duplex.js |
|
@@ -26,8 +26,8 @@ |
|
|
|
module.exports = Duplex; |
|
var util = require('util'); |
|
-var Readable = require('_stream_readable'); |
|
-var Writable = require('_stream_writable'); |
|
+var Readable = require('./_stream_readable'); |
|
+var Writable = require('./_stream_writable'); |
|
|
|
util.inherits(Duplex, Readable); |
|
|
|
diff --git a/lib/_stream_passthrough.js b/lib/_stream_passthrough.js |
|
index a5e9864..330c247 100644 |
|
--- a/lib/_stream_passthrough.js |
|
+++ b/lib/_stream_passthrough.js |
|
@@ -25,7 +25,7 @@ |
|
|
|
module.exports = PassThrough; |
|
|
|
-var Transform = require('_stream_transform'); |
|
+var Transform = require('./_stream_transform'); |
|
var util = require('util'); |
|
util.inherits(PassThrough, Transform); |
|
|
|
diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js |
|
index 0c3fe3e..90a8298 100644 |
|
--- a/lib/_stream_readable.js |
|
+++ b/lib/_stream_readable.js |
|
@@ -23,10 +23,34 @@ module.exports = Readable; |
|
Readable.ReadableState = ReadableState; |
|
|
|
var EE = require('events').EventEmitter; |
|
+if (!EE.listenerCount) EE.listenerCount = function(emitter, type) { |
|
+ return emitter.listeners(type).length; |
|
+}; |
|
+ |
|
+if (!global.setImmediate) global.setImmediate = function setImmediate(fn) { |
|
+ return setTimeout(fn, 0); |
|
+}; |
|
+if (!global.clearImmediate) global.clearImmediate = function clearImmediate(i) { |
|
+ return clearTimeout(i); |
|
+}; |
|
+ |
|
var Stream = require('stream'); |
|
var util = require('util'); |
|
+if (!util.isUndefined) { |
|
+ var utilIs = require('core-util-is'); |
|
+ for (var f in utilIs) { |
|
+ util[f] = utilIs[f]; |
|
+ } |
|
+} |
|
var StringDecoder; |
|
-var debug = util.debuglog('stream'); |
|
+var debug; |
|
+if (util.debuglog) |
|
+ debug = util.debuglog('stream'); |
|
+else try { |
|
+ debug = require('debuglog')('stream'); |
|
+} catch (er) { |
|
+ debug = function() {}; |
|
+} |
|
|
|
util.inherits(Readable, Stream); |
|
|
|
@@ -380,7 +404,7 @@ function chunkInvalid(state, chunk) { |
|
|
|
|
|
function onEofChunk(stream, state) { |
|
- if (state.decoder && !state.ended) { |
|
+ if (state.decoder && !state.ended && state.decoder.end) { |
|
var chunk = state.decoder.end(); |
|
if (chunk && chunk.length) { |
|
state.buffer.push(chunk); |
|
diff --git a/lib/_stream_transform.js b/lib/_stream_transform.js |
|
index b1f9fcc..b0caf57 100644 |
|
--- a/lib/_stream_transform.js |
|
+++ b/lib/_stream_transform.js |
|
@@ -64,8 +64,14 @@ |
|
|
|
module.exports = Transform; |
|
|
|
-var Duplex = require('_stream_duplex'); |
|
+var Duplex = require('./_stream_duplex'); |
|
var util = require('util'); |
|
+if (!util.isUndefined) { |
|
+ var utilIs = require('core-util-is'); |
|
+ for (var f in utilIs) { |
|
+ util[f] = utilIs[f]; |
|
+ } |
|
+} |
|
util.inherits(Transform, Duplex); |
|
|
|
|
|
diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js |
|
index ba2e920..f49288b 100644 |
|
--- a/lib/_stream_writable.js |
|
+++ b/lib/_stream_writable.js |
|
@@ -27,6 +27,12 @@ module.exports = Writable; |
|
Writable.WritableState = WritableState; |
|
|
|
var util = require('util'); |
|
+if (!util.isUndefined) { |
|
+ var utilIs = require('core-util-is'); |
|
+ for (var f in utilIs) { |
|
+ util[f] = utilIs[f]; |
|
+ } |
|
+} |
|
var Stream = require('stream'); |
|
|
|
util.inherits(Writable, Stream); |
|
@@ -119,7 +125,7 @@ function WritableState(options, stream) { |
|
function Writable(options) { |
|
// Writable ctor is applied to Duplexes, though they're not |
|
// instanceof Writable, they're instanceof Readable. |
|
- if (!(this instanceof Writable) && !(this instanceof Stream.Duplex)) |
|
+ if (!(this instanceof Writable) && !(this instanceof require('./_stream_duplex'))) |
|
return new Writable(options); |
|
|
|
this._writableState = new WritableState(options, this); |
|
diff --git a/test/simple/test-stream-big-push.js b/test/simple/test-stream-big-push.js |
|
index e3787e4..8cd2127 100644 |
|
--- a/test/simple/test-stream-big-push.js |
|
+++ b/test/simple/test-stream-big-push.js |
|
@@ -21,7 +21,7 @@ |
|
|
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
-var stream = require('stream'); |
|
+var stream = require('../../'); |
|
var str = 'asdfasdfasdfasdfasdf'; |
|
|
|
var r = new stream.Readable({ |
|
diff --git a/test/simple/test-stream-end-paused.js b/test/simple/test-stream-end-paused.js |
|
index bb73777..d40efc7 100644 |
|
--- a/test/simple/test-stream-end-paused.js |
|
+++ b/test/simple/test-stream-end-paused.js |
|
@@ -25,7 +25,7 @@ var gotEnd = false; |
|
|
|
// Make sure we don't miss the end event for paused 0-length streams |
|
|
|
-var Readable = require('stream').Readable; |
|
+var Readable = require('../../').Readable; |
|
var stream = new Readable(); |
|
var calledRead = false; |
|
stream._read = function() { |
|
diff --git a/test/simple/test-stream-pipe-after-end.js b/test/simple/test-stream-pipe-after-end.js |
|
index b46ee90..0be8366 100644 |
|
--- a/test/simple/test-stream-pipe-after-end.js |
|
+++ b/test/simple/test-stream-pipe-after-end.js |
|
@@ -22,8 +22,8 @@ |
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
|
|
-var Readable = require('_stream_readable'); |
|
-var Writable = require('_stream_writable'); |
|
+var Readable = require('../../lib/_stream_readable'); |
|
+var Writable = require('../../lib/_stream_writable'); |
|
var util = require('util'); |
|
|
|
util.inherits(TestReadable, Readable); |
|
diff --git a/test/simple/test-stream-pipe-cleanup.js b/test/simple/test-stream-pipe-cleanup.js |
|
deleted file mode 100644 |
|
index f689358..0000000 |
|
--- a/test/simple/test-stream-pipe-cleanup.js |
|
+++ /dev/null |
|
@@ -1,122 +0,0 @@ |
|
-// Copyright Joyent, Inc. and other Node contributors. |
|
-// |
|
-// Permission is hereby granted, free of charge, to any person obtaining a |
|
-// copy of this software and associated documentation files (the |
|
-// "Software"), to deal in the Software without restriction, including |
|
-// without limitation the rights to use, copy, modify, merge, publish, |
|
-// distribute, sublicense, and/or sell copies of the Software, and to permit |
|
-// persons to whom the Software is furnished to do so, subject to the |
|
-// following conditions: |
|
-// |
|
-// The above copyright notice and this permission notice shall be included |
|
-// in all copies or substantial portions of the Software. |
|
-// |
|
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
|
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN |
|
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
|
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
|
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
|
-// USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
- |
|
-// This test asserts that Stream.prototype.pipe does not leave listeners |
|
-// hanging on the source or dest. |
|
- |
|
-var common = require('../common'); |
|
-var stream = require('stream'); |
|
-var assert = require('assert'); |
|
-var util = require('util'); |
|
- |
|
-function Writable() { |
|
- this.writable = true; |
|
- this.endCalls = 0; |
|
- stream.Stream.call(this); |
|
-} |
|
-util.inherits(Writable, stream.Stream); |
|
-Writable.prototype.end = function() { |
|
- this.endCalls++; |
|
-}; |
|
- |
|
-Writable.prototype.destroy = function() { |
|
- this.endCalls++; |
|
-}; |
|
- |
|
-function Readable() { |
|
- this.readable = true; |
|
- stream.Stream.call(this); |
|
-} |
|
-util.inherits(Readable, stream.Stream); |
|
- |
|
-function Duplex() { |
|
- this.readable = true; |
|
- Writable.call(this); |
|
-} |
|
-util.inherits(Duplex, Writable); |
|
- |
|
-var i = 0; |
|
-var limit = 100; |
|
- |
|
-var w = new Writable(); |
|
- |
|
-var r; |
|
- |
|
-for (i = 0; i < limit; i++) { |
|
- r = new Readable(); |
|
- r.pipe(w); |
|
- r.emit('end'); |
|
-} |
|
-assert.equal(0, r.listeners('end').length); |
|
-assert.equal(limit, w.endCalls); |
|
- |
|
-w.endCalls = 0; |
|
- |
|
-for (i = 0; i < limit; i++) { |
|
- r = new Readable(); |
|
- r.pipe(w); |
|
- r.emit('close'); |
|
-} |
|
-assert.equal(0, r.listeners('close').length); |
|
-assert.equal(limit, w.endCalls); |
|
- |
|
-w.endCalls = 0; |
|
- |
|
-r = new Readable(); |
|
- |
|
-for (i = 0; i < limit; i++) { |
|
- w = new Writable(); |
|
- r.pipe(w); |
|
- w.emit('close'); |
|
-} |
|
-assert.equal(0, w.listeners('close').length); |
|
- |
|
-r = new Readable(); |
|
-w = new Writable(); |
|
-var d = new Duplex(); |
|
-r.pipe(d); // pipeline A |
|
-d.pipe(w); // pipeline B |
|
-assert.equal(r.listeners('end').length, 2); // A.onend, A.cleanup |
|
-assert.equal(r.listeners('close').length, 2); // A.onclose, A.cleanup |
|
-assert.equal(d.listeners('end').length, 2); // B.onend, B.cleanup |
|
-assert.equal(d.listeners('close').length, 3); // A.cleanup, B.onclose, B.cleanup |
|
-assert.equal(w.listeners('end').length, 0); |
|
-assert.equal(w.listeners('close').length, 1); // B.cleanup |
|
- |
|
-r.emit('end'); |
|
-assert.equal(d.endCalls, 1); |
|
-assert.equal(w.endCalls, 0); |
|
-assert.equal(r.listeners('end').length, 0); |
|
-assert.equal(r.listeners('close').length, 0); |
|
-assert.equal(d.listeners('end').length, 2); // B.onend, B.cleanup |
|
-assert.equal(d.listeners('close').length, 2); // B.onclose, B.cleanup |
|
-assert.equal(w.listeners('end').length, 0); |
|
-assert.equal(w.listeners('close').length, 1); // B.cleanup |
|
- |
|
-d.emit('end'); |
|
-assert.equal(d.endCalls, 1); |
|
-assert.equal(w.endCalls, 1); |
|
-assert.equal(r.listeners('end').length, 0); |
|
-assert.equal(r.listeners('close').length, 0); |
|
-assert.equal(d.listeners('end').length, 0); |
|
-assert.equal(d.listeners('close').length, 0); |
|
-assert.equal(w.listeners('end').length, 0); |
|
-assert.equal(w.listeners('close').length, 0); |
|
diff --git a/test/simple/test-stream-pipe-error-handling.js b/test/simple/test-stream-pipe-error-handling.js |
|
index c5d724b..c7d6b7d 100644 |
|
--- a/test/simple/test-stream-pipe-error-handling.js |
|
+++ b/test/simple/test-stream-pipe-error-handling.js |
|
@@ -21,7 +21,7 @@ |
|
|
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
-var Stream = require('stream').Stream; |
|
+var Stream = require('../../').Stream; |
|
|
|
(function testErrorListenerCatches() { |
|
var source = new Stream(); |
|
diff --git a/test/simple/test-stream-pipe-event.js b/test/simple/test-stream-pipe-event.js |
|
index cb9d5fe..56f8d61 100644 |
|
--- a/test/simple/test-stream-pipe-event.js |
|
+++ b/test/simple/test-stream-pipe-event.js |
|
@@ -20,7 +20,7 @@ |
|
// USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
|
|
var common = require('../common'); |
|
-var stream = require('stream'); |
|
+var stream = require('../../'); |
|
var assert = require('assert'); |
|
var util = require('util'); |
|
|
|
diff --git a/test/simple/test-stream-push-order.js b/test/simple/test-stream-push-order.js |
|
index f2e6ec2..a5c9bf9 100644 |
|
--- a/test/simple/test-stream-push-order.js |
|
+++ b/test/simple/test-stream-push-order.js |
|
@@ -20,7 +20,7 @@ |
|
// USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
|
|
var common = require('../common.js'); |
|
-var Readable = require('stream').Readable; |
|
+var Readable = require('../../').Readable; |
|
var assert = require('assert'); |
|
|
|
var s = new Readable({ |
|
diff --git a/test/simple/test-stream-push-strings.js b/test/simple/test-stream-push-strings.js |
|
index 06f43dc..1701a9a 100644 |
|
--- a/test/simple/test-stream-push-strings.js |
|
+++ b/test/simple/test-stream-push-strings.js |
|
@@ -22,7 +22,7 @@ |
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
|
|
-var Readable = require('stream').Readable; |
|
+var Readable = require('../../').Readable; |
|
var util = require('util'); |
|
|
|
util.inherits(MyStream, Readable); |
|
diff --git a/test/simple/test-stream-readable-event.js b/test/simple/test-stream-readable-event.js |
|
index ba6a577..a8e6f7b 100644 |
|
--- a/test/simple/test-stream-readable-event.js |
|
+++ b/test/simple/test-stream-readable-event.js |
|
@@ -22,7 +22,7 @@ |
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
|
|
-var Readable = require('stream').Readable; |
|
+var Readable = require('../../').Readable; |
|
|
|
(function first() { |
|
// First test, not reading when the readable is added. |
|
diff --git a/test/simple/test-stream-readable-flow-recursion.js b/test/simple/test-stream-readable-flow-recursion.js |
|
index 2891ad6..11689ba 100644 |
|
--- a/test/simple/test-stream-readable-flow-recursion.js |
|
+++ b/test/simple/test-stream-readable-flow-recursion.js |
|
@@ -27,7 +27,7 @@ var assert = require('assert'); |
|
// more data continuously, but without triggering a nextTick |
|
// warning or RangeError. |
|
|
|
-var Readable = require('stream').Readable; |
|
+var Readable = require('../../').Readable; |
|
|
|
// throw an error if we trigger a nextTick warning. |
|
process.throwDeprecation = true; |
|
diff --git a/test/simple/test-stream-unshift-empty-chunk.js b/test/simple/test-stream-unshift-empty-chunk.js |
|
index 0c96476..7827538 100644 |
|
--- a/test/simple/test-stream-unshift-empty-chunk.js |
|
+++ b/test/simple/test-stream-unshift-empty-chunk.js |
|
@@ -24,7 +24,7 @@ var assert = require('assert'); |
|
|
|
// This test verifies that stream.unshift(Buffer(0)) or |
|
// stream.unshift('') does not set state.reading=false. |
|
-var Readable = require('stream').Readable; |
|
+var Readable = require('../../').Readable; |
|
|
|
var r = new Readable(); |
|
var nChunks = 10; |
|
diff --git a/test/simple/test-stream-unshift-read-race.js b/test/simple/test-stream-unshift-read-race.js |
|
index 83fd9fa..17c18aa 100644 |
|
--- a/test/simple/test-stream-unshift-read-race.js |
|
+++ b/test/simple/test-stream-unshift-read-race.js |
|
@@ -29,7 +29,7 @@ var assert = require('assert'); |
|
// 3. push() after the EOF signaling null is an error. |
|
// 4. _read() is not called after pushing the EOF null chunk. |
|
|
|
-var stream = require('stream'); |
|
+var stream = require('../../'); |
|
var hwm = 10; |
|
var r = stream.Readable({ highWaterMark: hwm }); |
|
var chunks = 10; |
|
@@ -51,7 +51,14 @@ r._read = function(n) { |
|
|
|
function push(fast) { |
|
assert(!pushedNull, 'push() after null push'); |
|
- var c = pos >= data.length ? null : data.slice(pos, pos + n); |
|
+ var c; |
|
+ if (pos >= data.length) |
|
+ c = null; |
|
+ else { |
|
+ if (n + pos > data.length) |
|
+ n = data.length - pos; |
|
+ c = data.slice(pos, pos + n); |
|
+ } |
|
pushedNull = c === null; |
|
if (fast) { |
|
pos += n; |
|
diff --git a/test/simple/test-stream-writev.js b/test/simple/test-stream-writev.js |
|
index 5b49e6e..b5321f3 100644 |
|
--- a/test/simple/test-stream-writev.js |
|
+++ b/test/simple/test-stream-writev.js |
|
@@ -22,7 +22,7 @@ |
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
|
|
-var stream = require('stream'); |
|
+var stream = require('../../'); |
|
|
|
var queue = []; |
|
for (var decode = 0; decode < 2; decode++) { |
|
diff --git a/test/simple/test-stream2-basic.js b/test/simple/test-stream2-basic.js |
|
index 3814bf0..248c1be 100644 |
|
--- a/test/simple/test-stream2-basic.js |
|
+++ b/test/simple/test-stream2-basic.js |
|
@@ -21,7 +21,7 @@ |
|
|
|
|
|
var common = require('../common.js'); |
|
-var R = require('_stream_readable'); |
|
+var R = require('../../lib/_stream_readable'); |
|
var assert = require('assert'); |
|
|
|
var util = require('util'); |
|
diff --git a/test/simple/test-stream2-compatibility.js b/test/simple/test-stream2-compatibility.js |
|
index 6cdd4e9..f0fa84b 100644 |
|
--- a/test/simple/test-stream2-compatibility.js |
|
+++ b/test/simple/test-stream2-compatibility.js |
|
@@ -21,7 +21,7 @@ |
|
|
|
|
|
var common = require('../common.js'); |
|
-var R = require('_stream_readable'); |
|
+var R = require('../../lib/_stream_readable'); |
|
var assert = require('assert'); |
|
|
|
var util = require('util'); |
|
diff --git a/test/simple/test-stream2-finish-pipe.js b/test/simple/test-stream2-finish-pipe.js |
|
index 39b274f..006a19b 100644 |
|
--- a/test/simple/test-stream2-finish-pipe.js |
|
+++ b/test/simple/test-stream2-finish-pipe.js |
|
@@ -20,7 +20,7 @@ |
|
// USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
|
|
var common = require('../common.js'); |
|
-var stream = require('stream'); |
|
+var stream = require('../../'); |
|
var Buffer = require('buffer').Buffer; |
|
|
|
var r = new stream.Readable(); |
|
diff --git a/test/simple/test-stream2-fs.js b/test/simple/test-stream2-fs.js |
|
deleted file mode 100644 |
|
index e162406..0000000 |
|
--- a/test/simple/test-stream2-fs.js |
|
+++ /dev/null |
|
@@ -1,72 +0,0 @@ |
|
-// Copyright Joyent, Inc. and other Node contributors. |
|
-// |
|
-// Permission is hereby granted, free of charge, to any person obtaining a |
|
-// copy of this software and associated documentation files (the |
|
-// "Software"), to deal in the Software without restriction, including |
|
-// without limitation the rights to use, copy, modify, merge, publish, |
|
-// distribute, sublicense, and/or sell copies of the Software, and to permit |
|
-// persons to whom the Software is furnished to do so, subject to the |
|
-// following conditions: |
|
-// |
|
-// The above copyright notice and this permission notice shall be included |
|
-// in all copies or substantial portions of the Software. |
|
-// |
|
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
|
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN |
|
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
|
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
|
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
|
-// USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
- |
|
- |
|
-var common = require('../common.js'); |
|
-var R = require('_stream_readable'); |
|
-var assert = require('assert'); |
|
- |
|
-var fs = require('fs'); |
|
-var FSReadable = fs.ReadStream; |
|
- |
|
-var path = require('path'); |
|
-var file = path.resolve(common.fixturesDir, 'x1024.txt'); |
|
- |
|
-var size = fs.statSync(file).size; |
|
- |
|
-var expectLengths = [1024]; |
|
- |
|
-var util = require('util'); |
|
-var Stream = require('stream'); |
|
- |
|
-util.inherits(TestWriter, Stream); |
|
- |
|
-function TestWriter() { |
|
- Stream.apply(this); |
|
- this.buffer = []; |
|
- this.length = 0; |
|
-} |
|
- |
|
-TestWriter.prototype.write = function(c) { |
|
- this.buffer.push(c.toString()); |
|
- this.length += c.length; |
|
- return true; |
|
-}; |
|
- |
|
-TestWriter.prototype.end = function(c) { |
|
- if (c) this.buffer.push(c.toString()); |
|
- this.emit('results', this.buffer); |
|
-} |
|
- |
|
-var r = new FSReadable(file); |
|
-var w = new TestWriter(); |
|
- |
|
-w.on('results', function(res) { |
|
- console.error(res, w.length); |
|
- assert.equal(w.length, size); |
|
- var l = 0; |
|
- assert.deepEqual(res.map(function (c) { |
|
- return c.length; |
|
- }), expectLengths); |
|
- console.log('ok'); |
|
-}); |
|
- |
|
-r.pipe(w); |
|
diff --git a/test/simple/test-stream2-httpclient-response-end.js b/test/simple/test-stream2-httpclient-response-end.js |
|
deleted file mode 100644 |
|
index 15cffc2..0000000 |
|
--- a/test/simple/test-stream2-httpclient-response-end.js |
|
+++ /dev/null |
|
@@ -1,52 +0,0 @@ |
|
-// Copyright Joyent, Inc. and other Node contributors. |
|
-// |
|
-// Permission is hereby granted, free of charge, to any person obtaining a |
|
-// copy of this software and associated documentation files (the |
|
-// "Software"), to deal in the Software without restriction, including |
|
-// without limitation the rights to use, copy, modify, merge, publish, |
|
-// distribute, sublicense, and/or sell copies of the Software, and to permit |
|
-// persons to whom the Software is furnished to do so, subject to the |
|
-// following conditions: |
|
-// |
|
-// The above copyright notice and this permission notice shall be included |
|
-// in all copies or substantial portions of the Software. |
|
-// |
|
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
|
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN |
|
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
|
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
|
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
|
-// USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
- |
|
-var common = require('../common.js'); |
|
-var assert = require('assert'); |
|
-var http = require('http'); |
|
-var msg = 'Hello'; |
|
-var readable_event = false; |
|
-var end_event = false; |
|
-var server = http.createServer(function(req, res) { |
|
- res.writeHead(200, {'Content-Type': 'text/plain'}); |
|
- res.end(msg); |
|
-}).listen(common.PORT, function() { |
|
- http.get({port: common.PORT}, function(res) { |
|
- var data = ''; |
|
- res.on('readable', function() { |
|
- console.log('readable event'); |
|
- readable_event = true; |
|
- data += res.read(); |
|
- }); |
|
- res.on('end', function() { |
|
- console.log('end event'); |
|
- end_event = true; |
|
- assert.strictEqual(msg, data); |
|
- server.close(); |
|
- }); |
|
- }); |
|
-}); |
|
- |
|
-process.on('exit', function() { |
|
- assert(readable_event); |
|
- assert(end_event); |
|
-}); |
|
- |
|
diff --git a/test/simple/test-stream2-large-read-stall.js b/test/simple/test-stream2-large-read-stall.js |
|
index 2fbfbca..667985b 100644 |
|
--- a/test/simple/test-stream2-large-read-stall.js |
|
+++ b/test/simple/test-stream2-large-read-stall.js |
|
@@ -30,7 +30,7 @@ var PUSHSIZE = 20; |
|
var PUSHCOUNT = 1000; |
|
var HWM = 50; |
|
|
|
-var Readable = require('stream').Readable; |
|
+var Readable = require('../../').Readable; |
|
var r = new Readable({ |
|
highWaterMark: HWM |
|
}); |
|
@@ -39,23 +39,23 @@ var rs = r._readableState; |
|
r._read = push; |
|
|
|
r.on('readable', function() { |
|
- console.error('>> readable'); |
|
+ //console.error('>> readable'); |
|
do { |
|
- console.error(' > read(%d)', READSIZE); |
|
+ //console.error(' > read(%d)', READSIZE); |
|
var ret = r.read(READSIZE); |
|
- console.error(' < %j (%d remain)', ret && ret.length, rs.length); |
|
+ //console.error(' < %j (%d remain)', ret && ret.length, rs.length); |
|
} while (ret && ret.length === READSIZE); |
|
|
|
- console.error('<< after read()', |
|
- ret && ret.length, |
|
- rs.needReadable, |
|
- rs.length); |
|
+ //console.error('<< after read()', |
|
+ // ret && ret.length, |
|
+ // rs.needReadable, |
|
+ // rs.length); |
|
}); |
|
|
|
var endEmitted = false; |
|
r.on('end', function() { |
|
endEmitted = true; |
|
- console.error('end'); |
|
+ //console.error('end'); |
|
}); |
|
|
|
var pushes = 0; |
|
@@ -64,11 +64,11 @@ function push() { |
|
return; |
|
|
|
if (pushes++ === PUSHCOUNT) { |
|
- console.error(' push(EOF)'); |
|
+ //console.error(' push(EOF)'); |
|
return r.push(null); |
|
} |
|
|
|
- console.error(' push #%d', pushes); |
|
+ //console.error(' push #%d', pushes); |
|
if (r.push(new Buffer(PUSHSIZE))) |
|
setTimeout(push); |
|
} |
|
diff --git a/test/simple/test-stream2-objects.js b/test/simple/test-stream2-objects.js |
|
index 3e6931d..ff47d89 100644 |
|
--- a/test/simple/test-stream2-objects.js |
|
+++ b/test/simple/test-stream2-objects.js |
|
@@ -21,8 +21,8 @@ |
|
|
|
|
|
var common = require('../common.js'); |
|
-var Readable = require('_stream_readable'); |
|
-var Writable = require('_stream_writable'); |
|
+var Readable = require('../../lib/_stream_readable'); |
|
+var Writable = require('../../lib/_stream_writable'); |
|
var assert = require('assert'); |
|
|
|
// tiny node-tap lookalike. |
|
diff --git a/test/simple/test-stream2-pipe-error-handling.js b/test/simple/test-stream2-pipe-error-handling.js |
|
index cf7531c..e3f3e4e 100644 |
|
--- a/test/simple/test-stream2-pipe-error-handling.js |
|
+++ b/test/simple/test-stream2-pipe-error-handling.js |
|
@@ -21,7 +21,7 @@ |
|
|
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
-var stream = require('stream'); |
|
+var stream = require('../../'); |
|
|
|
(function testErrorListenerCatches() { |
|
var count = 1000; |
|
diff --git a/test/simple/test-stream2-pipe-error-once-listener.js b/test/simple/test-stream2-pipe-error-once-listener.js |
|
index 5e8e3cb..53b2616 100755 |
|
--- a/test/simple/test-stream2-pipe-error-once-listener.js |
|
+++ b/test/simple/test-stream2-pipe-error-once-listener.js |
|
@@ -24,7 +24,7 @@ var common = require('../common.js'); |
|
var assert = require('assert'); |
|
|
|
var util = require('util'); |
|
-var stream = require('stream'); |
|
+var stream = require('../../'); |
|
|
|
|
|
var Read = function() { |
|
diff --git a/test/simple/test-stream2-push.js b/test/simple/test-stream2-push.js |
|
index b63edc3..eb2b0e9 100644 |
|
--- a/test/simple/test-stream2-push.js |
|
+++ b/test/simple/test-stream2-push.js |
|
@@ -20,7 +20,7 @@ |
|
// USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
|
|
var common = require('../common.js'); |
|
-var stream = require('stream'); |
|
+var stream = require('../../'); |
|
var Readable = stream.Readable; |
|
var Writable = stream.Writable; |
|
var assert = require('assert'); |
|
diff --git a/test/simple/test-stream2-read-sync-stack.js b/test/simple/test-stream2-read-sync-stack.js |
|
index e8a7305..9740a47 100644 |
|
--- a/test/simple/test-stream2-read-sync-stack.js |
|
+++ b/test/simple/test-stream2-read-sync-stack.js |
|
@@ -21,7 +21,7 @@ |
|
|
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
-var Readable = require('stream').Readable; |
|
+var Readable = require('../../').Readable; |
|
var r = new Readable(); |
|
var N = 256 * 1024; |
|
|
|
diff --git a/test/simple/test-stream2-readable-empty-buffer-no-eof.js b/test/simple/test-stream2-readable-empty-buffer-no-eof.js |
|
index cd30178..4b1659d 100644 |
|
--- a/test/simple/test-stream2-readable-empty-buffer-no-eof.js |
|
+++ b/test/simple/test-stream2-readable-empty-buffer-no-eof.js |
|
@@ -22,10 +22,9 @@ |
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
|
|
-var Readable = require('stream').Readable; |
|
+var Readable = require('../../').Readable; |
|
|
|
test1(); |
|
-test2(); |
|
|
|
function test1() { |
|
var r = new Readable(); |
|
@@ -88,31 +87,3 @@ function test1() { |
|
console.log('ok'); |
|
}); |
|
} |
|
- |
|
-function test2() { |
|
- var r = new Readable({ encoding: 'base64' }); |
|
- var reads = 5; |
|
- r._read = function(n) { |
|
- if (!reads--) |
|
- return r.push(null); // EOF |
|
- else |
|
- return r.push(new Buffer('x')); |
|
- }; |
|
- |
|
- var results = []; |
|
- function flow() { |
|
- var chunk; |
|
- while (null !== (chunk = r.read())) |
|
- results.push(chunk + ''); |
|
- } |
|
- r.on('readable', flow); |
|
- r.on('end', function() { |
|
- results.push('EOF'); |
|
- }); |
|
- flow(); |
|
- |
|
- process.on('exit', function() { |
|
- assert.deepEqual(results, [ 'eHh4', 'eHg=', 'EOF' ]); |
|
- console.log('ok'); |
|
- }); |
|
-} |
|
diff --git a/test/simple/test-stream2-readable-from-list.js b/test/simple/test-stream2-readable-from-list.js |
|
index 7c96ffe..04a96f5 100644 |
|
--- a/test/simple/test-stream2-readable-from-list.js |
|
+++ b/test/simple/test-stream2-readable-from-list.js |
|
@@ -21,7 +21,7 @@ |
|
|
|
var assert = require('assert'); |
|
var common = require('../common.js'); |
|
-var fromList = require('_stream_readable')._fromList; |
|
+var fromList = require('../../lib/_stream_readable')._fromList; |
|
|
|
// tiny node-tap lookalike. |
|
var tests = []; |
|
diff --git a/test/simple/test-stream2-readable-legacy-drain.js b/test/simple/test-stream2-readable-legacy-drain.js |
|
index 675da8e..51fd3d5 100644 |
|
--- a/test/simple/test-stream2-readable-legacy-drain.js |
|
+++ b/test/simple/test-stream2-readable-legacy-drain.js |
|
@@ -22,7 +22,7 @@ |
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
|
|
-var Stream = require('stream'); |
|
+var Stream = require('../../'); |
|
var Readable = Stream.Readable; |
|
|
|
var r = new Readable(); |
|
diff --git a/test/simple/test-stream2-readable-non-empty-end.js b/test/simple/test-stream2-readable-non-empty-end.js |
|
index 7314ae7..c971898 100644 |
|
--- a/test/simple/test-stream2-readable-non-empty-end.js |
|
+++ b/test/simple/test-stream2-readable-non-empty-end.js |
|
@@ -21,7 +21,7 @@ |
|
|
|
var assert = require('assert'); |
|
var common = require('../common.js'); |
|
-var Readable = require('_stream_readable'); |
|
+var Readable = require('../../lib/_stream_readable'); |
|
|
|
var len = 0; |
|
var chunks = new Array(10); |
|
diff --git a/test/simple/test-stream2-readable-wrap-empty.js b/test/simple/test-stream2-readable-wrap-empty.js |
|
index 2e5cf25..fd8a3dc 100644 |
|
--- a/test/simple/test-stream2-readable-wrap-empty.js |
|
+++ b/test/simple/test-stream2-readable-wrap-empty.js |
|
@@ -22,7 +22,7 @@ |
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
|
|
-var Readable = require('_stream_readable'); |
|
+var Readable = require('../../lib/_stream_readable'); |
|
var EE = require('events').EventEmitter; |
|
|
|
var oldStream = new EE(); |
|
diff --git a/test/simple/test-stream2-readable-wrap.js b/test/simple/test-stream2-readable-wrap.js |
|
index 90eea01..6b177f7 100644 |
|
--- a/test/simple/test-stream2-readable-wrap.js |
|
+++ b/test/simple/test-stream2-readable-wrap.js |
|
@@ -22,8 +22,8 @@ |
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
|
|
-var Readable = require('_stream_readable'); |
|
-var Writable = require('_stream_writable'); |
|
+var Readable = require('../../lib/_stream_readable'); |
|
+var Writable = require('../../lib/_stream_writable'); |
|
var EE = require('events').EventEmitter; |
|
|
|
var testRuns = 0, completedRuns = 0; |
|
diff --git a/test/simple/test-stream2-set-encoding.js b/test/simple/test-stream2-set-encoding.js |
|
index 5d2c32a..685531b 100644 |
|
--- a/test/simple/test-stream2-set-encoding.js |
|
+++ b/test/simple/test-stream2-set-encoding.js |
|
@@ -22,7 +22,7 @@ |
|
|
|
var common = require('../common.js'); |
|
var assert = require('assert'); |
|
-var R = require('_stream_readable'); |
|
+var R = require('../../lib/_stream_readable'); |
|
var util = require('util'); |
|
|
|
// tiny node-tap lookalike. |
|
diff --git a/test/simple/test-stream2-transform.js b/test/simple/test-stream2-transform.js |
|
index 9c9ddd8..a0cacc6 100644 |
|
--- a/test/simple/test-stream2-transform.js |
|
+++ b/test/simple/test-stream2-transform.js |
|
@@ -21,8 +21,8 @@ |
|
|
|
var assert = require('assert'); |
|
var common = require('../common.js'); |
|
-var PassThrough = require('_stream_passthrough'); |
|
-var Transform = require('_stream_transform'); |
|
+var PassThrough = require('../../').PassThrough; |
|
+var Transform = require('../../').Transform; |
|
|
|
// tiny node-tap lookalike. |
|
var tests = []; |
|
diff --git a/test/simple/test-stream2-unpipe-drain.js b/test/simple/test-stream2-unpipe-drain.js |
|
index d66dc3c..365b327 100644 |
|
--- a/test/simple/test-stream2-unpipe-drain.js |
|
+++ b/test/simple/test-stream2-unpipe-drain.js |
|
@@ -22,7 +22,7 @@ |
|
|
|
var common = require('../common.js'); |
|
var assert = require('assert'); |
|
-var stream = require('stream'); |
|
+var stream = require('../../'); |
|
var crypto = require('crypto'); |
|
|
|
var util = require('util'); |
|
diff --git a/test/simple/test-stream2-unpipe-leak.js b/test/simple/test-stream2-unpipe-leak.js |
|
index 99f8746..17c92ae 100644 |
|
--- a/test/simple/test-stream2-unpipe-leak.js |
|
+++ b/test/simple/test-stream2-unpipe-leak.js |
|
@@ -22,7 +22,7 @@ |
|
|
|
var common = require('../common.js'); |
|
var assert = require('assert'); |
|
-var stream = require('stream'); |
|
+var stream = require('../../'); |
|
|
|
var chunk = new Buffer('hallo'); |
|
|
|
diff --git a/test/simple/test-stream2-writable.js b/test/simple/test-stream2-writable.js |
|
index 704100c..209c3a6 100644 |
|
--- a/test/simple/test-stream2-writable.js |
|
+++ b/test/simple/test-stream2-writable.js |
|
@@ -20,8 +20,8 @@ |
|
// USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
|
|
var common = require('../common.js'); |
|
-var W = require('_stream_writable'); |
|
-var D = require('_stream_duplex'); |
|
+var W = require('../../').Writable; |
|
+var D = require('../../').Duplex; |
|
var assert = require('assert'); |
|
|
|
var util = require('util'); |
|
diff --git a/test/simple/test-stream3-pause-then-read.js b/test/simple/test-stream3-pause-then-read.js |
|
index b91bde3..2f72c15 100644 |
|
--- a/test/simple/test-stream3-pause-then-read.js |
|
+++ b/test/simple/test-stream3-pause-then-read.js |
|
@@ -22,7 +22,7 @@ |
|
var common = require('../common'); |
|
var assert = require('assert'); |
|
|
|
-var stream = require('stream'); |
|
+var stream = require('../../'); |
|
var Readable = stream.Readable; |
|
var Writable = stream.Writable; |
|
|
|
|