v1 stdio buffer limit (#2239)
This commit is contained in:
parent
c36e1ef5bb
commit
e7ee57c2f3
1 changed files with 183 additions and 9 deletions
|
|
@ -100,3 +100,51 @@ test('should read multiple messages', async () => {
|
|||
await finished;
|
||||
expect(readMessages).toEqual(messages);
|
||||
});
|
||||
|
||||
test('should respect custom maxBufferSize option', async () => {
|
||||
const server = new StdioServerTransport(input, output, { maxBufferSize: 100 });
|
||||
|
||||
let receivedError: Error | undefined;
|
||||
server.onerror = err => {
|
||||
receivedError = err;
|
||||
};
|
||||
let closeCount = 0;
|
||||
server.onclose = () => {
|
||||
closeCount++;
|
||||
};
|
||||
|
||||
await server.start();
|
||||
|
||||
// Push 101 bytes without a newline — exceeds the 100-byte limit
|
||||
input.push(Buffer.alloc(101, 0x41));
|
||||
|
||||
await new Promise(resolve => setTimeout(resolve, 10));
|
||||
|
||||
expect(receivedError?.message).toMatch(/ReadBuffer exceeded maximum size/);
|
||||
expect(closeCount).toBe(1);
|
||||
});
|
||||
|
||||
test('should fire onerror and close when ReadBuffer overflows', async () => {
|
||||
const server = new StdioServerTransport(input, output);
|
||||
|
||||
let receivedError: Error | undefined;
|
||||
server.onerror = err => {
|
||||
receivedError = err;
|
||||
};
|
||||
let closeCount = 0;
|
||||
server.onclose = () => {
|
||||
closeCount++;
|
||||
};
|
||||
|
||||
await server.start();
|
||||
|
||||
// Push data exceeding the default 10 MB limit without a newline
|
||||
const chunk = Buffer.alloc(11 * 1024 * 1024, 0x41);
|
||||
input.push(chunk);
|
||||
|
||||
// Allow the close() promise to settle
|
||||
await new Promise(resolve => setTimeout(resolve, 10));
|
||||
|
||||
expect(receivedError?.message).toMatch(/ReadBuffer exceeded maximum size/);
|
||||
expect(closeCount).toBe(1);
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue