|
|
|
'use strict';
|
|
|
|
// Refs: https://github.com/nodejs/node/issues/2148
|
|
|
|
|
|
|
|
require('../common');
|
|
|
|
const assert = require('assert');
|
|
|
|
const execSync = require('child_process').execSync;
|
|
|
|
|
|
|
|
const lineSeed = 'foo bar baz quux quuz aaa bbb ccc';
|
|
|
|
|
|
|
|
if (process.argv[2] === 'child') {
|
|
|
|
const longLine = lineSeed.repeat(parseInt(process.argv[4], 10));
|
|
|
|
process.on('exit', () => {
|
|
|
|
console.log(longLine);
|
|
|
|
});
|
|
|
|
process.exit();
|
|
|
|
}
|
|
|
|
|
|
|
|
[22, 21, 20, 19, 18, 17, 16, 16, 17, 18, 19, 20, 21, 22].forEach((exponent) => {
|
|
|
|
const bigNum = Math.pow(2, exponent);
|
|
|
|
const longLine = lineSeed.repeat(bigNum);
|
|
|
|
const cmd = `${process.execPath} ${__filename} child ${exponent} ${bigNum}`;
|
|
|
|
const stdout = execSync(cmd).toString().trim();
|
|
|
|
|
|
|
|
assert.strictEqual(stdout, longLine, `failed with exponent ${exponent}`);
|
|
|
|
});
|