mirror of
https://github.com/nodejs/node.git
synced 2025-05-06 07:40:16 +00:00

There are several cleanups here that are not just style nits... 1. The `common.isMainThread` was just a passthrough to the `isMainThread` export on the worker_thread module. It's use was inconsistent and just obfuscated the fact that the test file depend on the `worker_threads` built-in. By eliminating it we simplify the test harness a bit and make it clearer which tests depend on the worker_threads check. 2. The `common.isDumbTerminal` is fairly unnecesary since that just wraps a public API check. 3. Several of the `common.skipIf....` checks were inconsistently used and really don't need to be separate utility functions. A key part of the motivation here is to work towards making more of the tests more self-contained and less reliant on the common test harness where possible. PR-URL: https://github.com/nodejs/node/pull/56712 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
36 lines
793 B
JavaScript
36 lines
793 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
const ArrayStream = require('../common/arraystream');
|
|
const assert = require('assert');
|
|
|
|
if (process.env.TERM === 'dumb') {
|
|
common.skip('skipping - dumb terminal');
|
|
}
|
|
|
|
const readline = require('readline');
|
|
const rli = new readline.Interface({
|
|
terminal: true,
|
|
input: new ArrayStream(),
|
|
});
|
|
|
|
let recursionDepth = 0;
|
|
|
|
// Minimal reproduction for #46731
|
|
const testInput = ' \n}\n';
|
|
const numberOfExpectedLines = testInput.match(/\n/g).length;
|
|
|
|
rli.on('line', () => {
|
|
// Abort in case of infinite loop
|
|
if (recursionDepth > numberOfExpectedLines) {
|
|
return;
|
|
}
|
|
recursionDepth++;
|
|
// Write something recursively to readline
|
|
rli.write('foo');
|
|
});
|
|
|
|
|
|
rli.write(testInput);
|
|
|
|
assert.strictEqual(recursionDepth, numberOfExpectedLines);
|