test: add failing test for readline with carriage return
PR-URL: https://github.com/nodejs/node/pull/46075 Refs: https://github.com/nodejs/node/issues/45992 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
This commit is contained in:
parent
863a41694c
commit
de6c0e6779
42
test/known_issues/test-readline-big-file-carriage-return.js
Normal file
42
test/known_issues/test-readline-big-file-carriage-return.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
// Context: https://github.com/nodejs/node/issues/45992
|
||||||
|
|
||||||
|
require('../common');
|
||||||
|
|
||||||
|
const assert = require('assert');
|
||||||
|
const fs = require('fs');
|
||||||
|
const readline = require('readline');
|
||||||
|
|
||||||
|
const tmpdir = require('../common/tmpdir');
|
||||||
|
|
||||||
|
tmpdir.refresh();
|
||||||
|
fs.mkdtempSync(`${tmpdir.path}/`);
|
||||||
|
const path = `${tmpdir.path}/foo`;
|
||||||
|
const writeStream = fs.createWriteStream(path);
|
||||||
|
|
||||||
|
function write(iteration, callback) {
|
||||||
|
for (; iteration < 16384; iteration += 1) {
|
||||||
|
if (!writeStream.write('foo\r\n')) {
|
||||||
|
writeStream.once('drain', () => write(iteration + 1, callback));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
writeStream.end();
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
|
||||||
|
write(0, () => {
|
||||||
|
const input = fs.createReadStream(path);
|
||||||
|
const rl = readline.createInterface({ input, crlfDelay: Infinity });
|
||||||
|
let carriageReturns = 0;
|
||||||
|
|
||||||
|
rl.on('line', (x) => {
|
||||||
|
if (x.includes('\r')) carriageReturns += 1;
|
||||||
|
});
|
||||||
|
|
||||||
|
rl.on('close', () => {
|
||||||
|
assert.strictEqual(carriageReturns, 0);
|
||||||
|
});
|
||||||
|
});
|
Loading…
x
Reference in New Issue
Block a user