diff options
author | Jeremiah Senkpiel <fishrock123@rocketmail.com> | 2018-12-10 16:34:32 -0800 |
---|---|---|
committer | Jeremiah Senkpiel <fishrock123@rocketmail.com> | 2019-01-23 15:45:46 -0800 |
commit | e47f972d6851b3196b3b2ba611929f25a5fcadb6 (patch) | |
tree | 029dfbf0f302224763c6e541d0909b86c87ef0c6 /test | |
parent | 5f866821adf71ff3ed909d4be8c808197663c110 (diff) | |
download | android-node-v8-e47f972d6851b3196b3b2ba611929f25a5fcadb6.tar.gz android-node-v8-e47f972d6851b3196b3b2ba611929f25a5fcadb6.tar.bz2 android-node-v8-e47f972d6851b3196b3b2ba611929f25a5fcadb6.zip |
child_process: truncate output when maxBuffer is exceeded
Preserves truncated output for `child_process.exec()` when `maxBuffer`
is exceeded.
This is particularly useful for commands which have indistinguishable
error codes for what output they produce.
PR-URL: https://github.com/nodejs/node/pull/24951
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'test')
-rw-r--r-- | test/parallel/test-child-process-exec-maxBuffer.js | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/test/parallel/test-child-process-exec-maxBuffer.js b/test/parallel/test-child-process-exec-maxBuffer.js index 569efb5deb..dfa46b0b00 100644 --- a/test/parallel/test-child-process-exec-maxBuffer.js +++ b/test/parallel/test-child-process-exec-maxBuffer.js @@ -22,13 +22,13 @@ function runChecks(err, stdio, streamName, expected) { } { - const cmd = 'echo "hello world"'; + const cmd = 'echo hello world'; cp.exec( cmd, { maxBuffer: 5 }, common.mustCall((err, stdout, stderr) => { - runChecks(err, { stdout, stderr }, 'stdout', ''); + runChecks(err, { stdout, stderr }, 'stdout', 'hello'); }) ); } @@ -42,7 +42,7 @@ const unicode = '中文测试'; // length = 4, byte length = 12 cmd, { maxBuffer: 10 }, common.mustCall((err, stdout, stderr) => { - runChecks(err, { stdout, stderr }, 'stdout', ''); + runChecks(err, { stdout, stderr }, 'stdout', '中文测试\n'); }) ); } @@ -54,7 +54,7 @@ const unicode = '中文测试'; // length = 4, byte length = 12 cmd, { maxBuffer: 3 }, common.mustCall((err, stdout, stderr) => { - runChecks(err, { stdout, stderr }, 'stderr', ''); + runChecks(err, { stdout, stderr }, 'stderr', '中文测'); }) ); } @@ -66,7 +66,7 @@ const unicode = '中文测试'; // length = 4, byte length = 12 cmd, { encoding: null, maxBuffer: 10 }, common.mustCall((err, stdout, stderr) => { - runChecks(err, { stdout, stderr }, 'stdout', ''); + runChecks(err, { stdout, stderr }, 'stdout', '中文测试\n'); }) ); @@ -80,9 +80,22 @@ const unicode = '中文测试'; // length = 4, byte length = 12 cmd, { encoding: null, maxBuffer: 3 }, common.mustCall((err, stdout, stderr) => { - runChecks(err, { stdout, stderr }, 'stderr', ''); + runChecks(err, { stdout, stderr }, 'stderr', '中文测'); }) ); child.stderr.setEncoding('utf-8'); } + +{ + const cmd = `"${process.execPath}" -e "console.error('${unicode}');"`; + + cp.exec( + cmd, + { encoding: null, maxBuffer: 5 }, + common.mustCall((err, stdout, stderr) => { + const buf = Buffer.from(unicode).slice(0, 5); + runChecks(err, { stdout, stderr }, 'stderr', buf); + }) + ); +} |