|
|
@ -39,6 +39,7 @@ |
|
|
|
#include <grpc/byte_buffer.h> |
|
|
|
#include <grpc/byte_buffer.h> |
|
|
|
#include <grpc/support/alloc.h> |
|
|
|
#include <grpc/support/alloc.h> |
|
|
|
#include <grpc/support/log.h> |
|
|
|
#include <grpc/support/log.h> |
|
|
|
|
|
|
|
#include <grpc/support/string_util.h> |
|
|
|
#include <grpc/support/time.h> |
|
|
|
#include <grpc/support/time.h> |
|
|
|
#include <grpc/support/useful.h> |
|
|
|
#include <grpc/support/useful.h> |
|
|
|
#include "test/core/end2end/cq_verifier.h" |
|
|
|
#include "test/core/end2end/cq_verifier.h" |
|
|
@ -101,9 +102,25 @@ static gpr_slice large_slice(void) { |
|
|
|
return slice; |
|
|
|
return slice; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void test_invoke_large_request(grpc_end2end_test_config config) { |
|
|
|
static void test_invoke_large_request(grpc_end2end_test_config config, |
|
|
|
|
|
|
|
int max_frame_size, int lookahead_bytes) { |
|
|
|
|
|
|
|
char *name; |
|
|
|
|
|
|
|
gpr_asprintf(&name, |
|
|
|
|
|
|
|
"test_invoke_large_request:max_frame_size=%d:lookahead_bytes=%d", |
|
|
|
|
|
|
|
max_frame_size, lookahead_bytes); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
grpc_arg args[2]; |
|
|
|
|
|
|
|
args[0].type = GRPC_ARG_INTEGER; |
|
|
|
|
|
|
|
args[0].key = GRPC_ARG_HTTP2_MAX_FRAME_SIZE; |
|
|
|
|
|
|
|
args[0].value.integer = max_frame_size; |
|
|
|
|
|
|
|
args[1].type = GRPC_ARG_INTEGER; |
|
|
|
|
|
|
|
args[1].key = GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES; |
|
|
|
|
|
|
|
args[1].value.integer = lookahead_bytes; |
|
|
|
|
|
|
|
grpc_channel_args channel_args = {GPR_ARRAY_SIZE(args), args}; |
|
|
|
|
|
|
|
|
|
|
|
grpc_end2end_test_fixture f = |
|
|
|
grpc_end2end_test_fixture f = |
|
|
|
begin_test(config, "test_invoke_large_request", NULL, NULL); |
|
|
|
begin_test(config, name, &channel_args, &channel_args); |
|
|
|
|
|
|
|
gpr_free(name); |
|
|
|
|
|
|
|
|
|
|
|
gpr_slice request_payload_slice = large_slice(); |
|
|
|
gpr_slice request_payload_slice = large_slice(); |
|
|
|
gpr_slice response_payload_slice = large_slice(); |
|
|
|
gpr_slice response_payload_slice = large_slice(); |
|
|
@ -255,7 +272,26 @@ static void test_invoke_large_request(grpc_end2end_test_config config) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void invoke_large_request(grpc_end2end_test_config config) { |
|
|
|
void invoke_large_request(grpc_end2end_test_config config) { |
|
|
|
test_invoke_large_request(config); |
|
|
|
test_invoke_large_request(config, 16384, 65536); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 32768, 65536); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 - 1, 65536); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000, 65536); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 1, 65536); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 2, 65536); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 3, 65536); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 4, 65536); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 5, 65536); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 6, 65536); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 - 1, 2000000); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000, 2000000); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 1, 2000000); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 2, 2000000); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 3, 2000000); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 4, 2000000); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 5, 2000000); |
|
|
|
|
|
|
|
test_invoke_large_request(config, 1000000 + 6, 2000000); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void invoke_large_request_pre_init(void) {} |
|
|
|
void invoke_large_request_pre_init(void) {} |
|
|
|