Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34.2k
Closed
Labels
good first issueIssues that are suitable for first-time contributors.Issues that are suitable for first-time contributors.streamIssues and PRs related to the stream subsystem.Issues and PRs related to the stream subsystem.testIssues and PRs related to the tests.Issues and PRs related to the tests.
Description
- Version: all
- Platform: all
- Subsystem: stream
_readableStream and _writableStream in streams are widely used in userland, but the coverage for the state machine is insufficient, as only few properties of those are checked by unit tests.
I propose we add some more tests for the internal properties and state. This is probably a meta-issue, in the sense that we might send multiple PRs to increase the coverage.
Edit: The tests should possibly use only the stream module, rather than fs or net.
$grep_readableState*test-https-truncate.js: assert.equal(res._readableState.length,0);test-stream-duplex.js:assert(stream._readableState.objectMode);test-stream-push-order.js: assert.deepStrictEqual(s._readableState.buffer.join(','),'1,2,3,4,5,6');test-stream-readable-event.js: assert(!r._readableState.reading);test-stream-readable-event.js: assert(r._readableState.reading);test-stream-readable-event.js: assert(!r._readableState.reading);test-stream-readable-flow-recursion.js: assert.equal(stream._readableState.highWaterMark,8192);test-stream-readable-flow-recursion.js: assert.equal(stream._readableState.length,0);test-stream-transform-split-objectmode.js:assert(parser._readableState.objectMode);test-stream-transform-split-objectmode.js:assert(parser._readableState.highWaterMark===16);test-stream-transform-split-objectmode.js:assert(!serializer._readableState.objectMode);test-stream-transform-split-objectmode.js:assert(serializer._readableState.highWaterMark===(16*1024));test-stream2-large-read-stall.js:varrs=r._readableState;test-stream2-push.js: console.error('data',stream._readableState.length);test-stream2-read-sync-stack.js: if(!(r._readableState.length%256))test-stream2-read-sync-stack.js: console.error('readable',r._readableState.length);test-stream2-transform.js: t.equal(tx._readableState.length,10);test-stream2-unpipe-leak.js:console.error(src._readableState);test-stream2-unpipe-leak.js: src._readableState.buffer.length=0;test-stream2-unpipe-leak.js: console.error(src._readableState);test-stream2-unpipe-leak.js: assert(src._readableState.length>=src._readableState.highWaterMark);test-stream3-pause-then-read.js: assert(!r._readableState.flowing);$grep_writableState*test-http-pipeline-regr-3508.js: if(size<=req.socket._writableState.highWaterMark){test-net-reconnect.js: console.error('CLIENT connected',client._writableState);test-net-reconnect.js: console.error('CLIENT: calling end',client._writableState);test-stream-big-packet.js:varbig=Buffer.alloc(s1._writableState.highWaterMark+1,'x');test-stream-duplex.js:assert(stream._writableState.objectMode);test-stream-transform-split-objectmode.js:assert(!parser._writableState.objectMode);test-stream-transform-split-objectmode.js:assert(parser._writableState.highWaterMark===(16*1024));test-stream-transform-split-objectmode.js:assert(serializer._writableState.objectMode);test-stream-transform-split-objectmode.js:assert(serializer._writableState.highWaterMark===16);test-stream2-transform.js: t.same(tx._writableState.getBuffer().map(function(c){test-stream2-writable.js: assert(tw._writableState.length>=50);test-zlib-flush-drain.js:constws=deflater._writableState;cc @nodejs/streams
Metadata
Metadata
Assignees
Labels
good first issueIssues that are suitable for first-time contributors.Issues that are suitable for first-time contributors.streamIssues and PRs related to the stream subsystem.Issues and PRs related to the stream subsystem.testIssues and PRs related to the tests.Issues and PRs related to the tests.