test: test intended code-paths
The tests did not agree with the test comments. Tests first and second were both testing the !state.reading case. Now second tests the state.reading && state.length case. Fixes joyent/node#5183
This commit is contained in:
parent
164d5b3465
commit
db8ce89fe4
@ -26,13 +26,14 @@ var Readable = require('stream').Readable;
|
|||||||
|
|
||||||
(function first() {
|
(function first() {
|
||||||
// First test, not reading when the readable is added.
|
// First test, not reading when the readable is added.
|
||||||
// make sure that read(0) triggers a readable event.
|
// make sure that on('readable', ...) triggers a readable event.
|
||||||
var r = new Readable({
|
var r = new Readable({
|
||||||
highWaterMark: 3
|
highWaterMark: 3
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var _readCalled = false;
|
||||||
r._read = function(n) {
|
r._read = function(n) {
|
||||||
r.push(new Buffer(new Array(n + 1).join('x')));
|
_readCalled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
// This triggers a 'readable' event, which is lost.
|
// This triggers a 'readable' event, which is lost.
|
||||||
@ -40,12 +41,17 @@ var Readable = require('stream').Readable;
|
|||||||
|
|
||||||
var caughtReadable = false;
|
var caughtReadable = false;
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
|
// we're testing what we think we are
|
||||||
|
assert(!r._readableState.reading);
|
||||||
r.on('readable', function() {
|
r.on('readable', function() {
|
||||||
caughtReadable = true;
|
caughtReadable = true;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
process.on('exit', function() {
|
process.on('exit', function() {
|
||||||
|
// we're testing what we think we are
|
||||||
|
assert(!_readCalled);
|
||||||
|
|
||||||
assert(caughtReadable);
|
assert(caughtReadable);
|
||||||
console.log('ok 1');
|
console.log('ok 1');
|
||||||
});
|
});
|
||||||
@ -59,23 +65,27 @@ var Readable = require('stream').Readable;
|
|||||||
highWaterMark: 3
|
highWaterMark: 3
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var _readCalled = false;
|
||||||
r._read = function(n) {
|
r._read = function(n) {
|
||||||
setTimeout(function() {
|
_readCalled = true;
|
||||||
r.push(new Buffer(new Array(n + 1).join('x')));
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// This triggers a 'readable' event, which is lost.
|
// This triggers a 'readable' event, which is lost.
|
||||||
r.push(new Buffer('blerg'));
|
r.push(new Buffer('bl'));
|
||||||
|
|
||||||
var caughtReadable = false;
|
var caughtReadable = false;
|
||||||
process.nextTick(function() {
|
setTimeout(function() {
|
||||||
|
// assert we're testing what we think we are
|
||||||
|
assert(r._readableState.reading);
|
||||||
r.on('readable', function() {
|
r.on('readable', function() {
|
||||||
caughtReadable = true;
|
caughtReadable = true;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
process.on('exit', function() {
|
process.on('exit', function() {
|
||||||
|
// we're testing what we think we are
|
||||||
|
assert(_readCalled);
|
||||||
|
|
||||||
assert(caughtReadable);
|
assert(caughtReadable);
|
||||||
console.log('ok 2');
|
console.log('ok 2');
|
||||||
});
|
});
|
||||||
@ -88,18 +98,28 @@ var Readable = require('stream').Readable;
|
|||||||
highWaterMark: 30
|
highWaterMark: 30
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var _readCalled = false;
|
||||||
|
r._read = function(n) {
|
||||||
|
_readCalled = true;
|
||||||
|
};
|
||||||
|
|
||||||
// This triggers a 'readable' event, which is lost.
|
// This triggers a 'readable' event, which is lost.
|
||||||
r.push(new Buffer('blerg'));
|
r.push(new Buffer('blerg'));
|
||||||
r.push(null);
|
r.push(null);
|
||||||
|
|
||||||
var caughtReadable = false;
|
var caughtReadable = false;
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
|
// assert we're testing what we think we are
|
||||||
|
assert(!r._readableState.reading);
|
||||||
r.on('readable', function() {
|
r.on('readable', function() {
|
||||||
caughtReadable = true;
|
caughtReadable = true;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
process.on('exit', function() {
|
process.on('exit', function() {
|
||||||
|
// we're testing what we think we are
|
||||||
|
assert(!_readCalled);
|
||||||
|
|
||||||
assert(caughtReadable);
|
assert(caughtReadable);
|
||||||
console.log('ok 3');
|
console.log('ok 3');
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user