mirror of https://github.com/grpc/grpc-node.git
Get the tests passing
This commit is contained in:
parent
4bb965d2d8
commit
f0d02f830d
|
|
@ -447,7 +447,11 @@ export class Http2ServerCallStream<
|
|||
try {
|
||||
const requestBytes = Buffer.concat(chunks, totalLength);
|
||||
if (this.maxReceiveMessageSize !== -1 && requestBytes.length > this.maxReceiveMessageSize) {
|
||||
this.cancelWithStatus(Status.RESOURCE_EXHAUSTED, `Server received message of size ${requestBytes.length} > max size ${this.maxReceiveMessageSize}`);
|
||||
this.sendError({
|
||||
code: Status.RESOURCE_EXHAUSTED,
|
||||
details: `Server received message of size ${requestBytes.length} > max size ${this.maxReceiveMessageSize}`
|
||||
});
|
||||
resolve();
|
||||
}
|
||||
|
||||
resolve(await this.deserializeMessage(requestBytes));
|
||||
|
|
@ -564,18 +568,17 @@ export class Http2ServerCallStream<
|
|||
this.sendStatus(status);
|
||||
}
|
||||
|
||||
cancelWithStatus(code: Status, details: string) {
|
||||
this.cancelled = true;
|
||||
this.sendStatus({code, details, metadata: new Metadata()});
|
||||
}
|
||||
|
||||
write(chunk: Buffer) {
|
||||
if (this.checkCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.maxSendMessageSize !== -1 && chunk.length > this.maxSendMessageSize) {
|
||||
this.cancelWithStatus(Status.RESOURCE_EXHAUSTED, `Server failed to send message of size ${chunk.length} > max size ${this.maxSendMessageSize}`);
|
||||
this.sendError({
|
||||
code: Status.RESOURCE_EXHAUSTED,
|
||||
details: `Server failed to send message of size ${chunk.length} > max size ${this.maxSendMessageSize}`
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
this.sendMetadata();
|
||||
|
|
@ -605,7 +608,11 @@ export class Http2ServerCallStream<
|
|||
|
||||
for (const message of messages) {
|
||||
if (this.maxReceiveMessageSize !== -1 && message.length > this.maxReceiveMessageSize) {
|
||||
this.cancelWithStatus(Status.RESOURCE_EXHAUSTED, `Server received message of size ${message.length} > max size ${this.maxReceiveMessageSize}`);
|
||||
this.sendError({
|
||||
code: Status.RESOURCE_EXHAUSTED,
|
||||
details: `Server received message of size ${message.length} > max size ${this.maxReceiveMessageSize}`
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.pushOrBufferMessage(readable, message);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -144,9 +144,9 @@ describe(`${anyGrpc.clientName} client -> ${anyGrpc.serverName} server`, functio
|
|||
done();
|
||||
});
|
||||
});
|
||||
describe.only('max message size', function() {
|
||||
describe('max message size', function() {
|
||||
// A size that is larger than the default limit
|
||||
const largeMessageSize = 6 * 1024 * 1024;
|
||||
const largeMessageSize = 8 * 1024 * 1024;
|
||||
const largeMessage = Buffer.alloc(largeMessageSize);
|
||||
it('should get an error when sending a large message', function(done) {
|
||||
done = multiDone(done, 2);
|
||||
|
|
@ -257,27 +257,28 @@ describe(`${anyGrpc.clientName} client -> ${anyGrpc.serverName} server`, functio
|
|||
restrictedServer.forceShutdown();
|
||||
});
|
||||
it('should get an error when sending a large message', function(done) {
|
||||
done = multiDone(done, 2);
|
||||
restrictedServerClient.unaryCall({payload: {body: largeMessage}}, (error, result) => {
|
||||
console.log(error.message);
|
||||
assert(error);
|
||||
assert.strictEqual(error.code, grpc.status.RESOURCE_EXHAUSTED);
|
||||
done();
|
||||
});
|
||||
const stream = restrictedServerClient.fullDuplexCall();
|
||||
stream.write({payload: {body: largeMessage}});
|
||||
stream.end();
|
||||
stream.on('data', () => {});
|
||||
stream.on('status', (status) => {
|
||||
console.log(status.details);
|
||||
assert.strictEqual(status.code, grpc.status.RESOURCE_EXHAUSTED);
|
||||
done();
|
||||
});
|
||||
stream.on('error', (error) => {
|
||||
});
|
||||
});
|
||||
});
|
||||
it('should get an error when requesting a large message', function(done) {
|
||||
done = multiDone(done, 2);
|
||||
restrictedServerClient.unaryCall({response_size: largeMessageSize}, (error, result) => {
|
||||
assert(error);
|
||||
console.log(error.message);
|
||||
assert.strictEqual(error.code, grpc.status.RESOURCE_EXHAUSTED);
|
||||
done();
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue