Go to the documentation of this file.
24 #include "absl/strings/str_format.h"
26 #include <grpc/byte_buffer.h>
37 static void*
tag(
intptr_t t) {
return reinterpret_cast<void*
>(t); }
40 {
"Adaldrida",
"Brandybuck"}, {
"Adamanta",
"Took"},
41 {
"Adalgrim",
"Took"}, {
"Adelard",
"Took"},
42 {
"Amaranth",
"Brandybuck"}, {
"Andwise",
"Roper"},
43 {
"Angelica",
"Baggins"}, {
"Asphodel",
"Burrows"},
44 {
"Balbo",
"Baggins"}, {
"Bandobras",
"Took"},
45 {
"Belba",
"Bolger"}, {
"Bell",
"Gamgee"},
46 {
"Belladonna",
"Baggins"}, {
"Berylla",
"Baggins"},
47 {
"Bilbo",
"Baggins"}, {
"Bilbo",
"Gardner"},
48 {
"Bill",
"Butcher"}, {
"Bingo",
"Baggins"},
49 {
"Bodo",
"Proudfoot"}, {
"Bowman",
"Cotton"},
50 {
"Bungo",
"Baggins"}, {
"Camellia",
"Sackville"},
51 {
"Carl",
"Cotton"}, {
"Celandine",
"Brandybuck"},
52 {
"Chica",
"Baggins"}, {
"Daddy",
"Twofoot"},
53 {
"Daisy",
"Boffin"}, {
"Diamond",
"Took"},
54 {
"Dinodas",
"Brandybuck"}, {
"Doderic",
"Brandybuck"},
55 {
"Dodinas",
"Brandybuck"}, {
"Donnamira",
"Boffin"},
56 {
"Dora",
"Baggins"}, {
"Drogo",
"Baggins"},
57 {
"Dudo",
"Baggins"}, {
"Eglantine",
"Took"},
58 {
"Elanor",
"Fairbairn"}, {
"Elfstan",
"Fairbairn"},
59 {
"Esmeralda",
"Brandybuck"}, {
"Estella",
"Brandybuck"},
60 {
"Everard",
"Took"}, {
"Falco",
"Chubb-Baggins"},
61 {
"Faramir",
"Took"}, {
"Farmer",
"Maggot"},
62 {
"Fastolph",
"Bolger"}, {
"Ferdibrand",
"Took"},
63 {
"Ferdinand",
"Took"}, {
"Ferumbras",
"Took"},
64 {
"Ferumbras",
"Took"}, {
"Filibert",
"Bolger"},
65 {
"Firiel",
"Fairbairn"}, {
"Flambard",
"Took"},
66 {
"Folco",
"Boffin"}, {
"Fortinbras",
"Took"},
67 {
"Fortinbras",
"Took"}, {
"Fosco",
"Baggins"},
68 {
"Fredegar",
"Bolger"}, {
"Frodo",
"Baggins"},
69 {
"Frodo",
"Gardner"}, {
"Gerontius",
"Took"},
70 {
"Gilly",
"Baggins"}, {
"Goldilocks",
"Took"},
71 {
"Gorbadoc",
"Brandybuck"}, {
"Gorbulas",
"Brandybuck"},
72 {
"Gorhendad",
"Brandybuck"}, {
"Gormadoc",
"Brandybuck"},
73 {
"Griffo",
"Boffin"}, {
"Halfast",
"Gamgee"},
74 {
"Halfred",
"Gamgee"}, {
"Halfred",
"Greenhand"},
75 {
"Hanna",
"Brandybuck"}, {
"Hamfast",
"Gamgee"},
76 {
"Hamfast",
"Gardner"}, {
"Hamson",
"Gamgee"},
77 {
"Harding",
"Gardner"}, {
"Hilda",
"Brandybuck"},
78 {
"Hildibrand",
"Took"}, {
"Hildifons",
"Took"},
79 {
"Hildigard",
"Took"}, {
"Hildigrim",
"Took"},
80 {
"Hob",
"Gammidge"}, {
"Hob",
"Hayward"},
81 {
"Hobson",
"Gamgee"}, {
"Holfast",
"Gardner"},
82 {
"Holman",
"Cotton"}, {
"Holman",
"Greenhand"},
83 {
"Hugo",
"Boffin"}, {
"Hugo",
"Bracegirdle"},
84 {
"Ilberic",
"Brandybuck"}, {
"Isembard",
"Took"},
85 {
"Isembold",
"Took"}, {
"Isengar",
"Took"},
86 {
"Isengrim",
"Took"}, {
"Isengrim",
"Took"},
87 {
"Isumbras",
"Took"}, {
"Isumbras",
"Took"},
176 const char*
dragons[] = {
"Ancalagon",
"Glaurung",
"Scatha",
177 "Smaug the Magnificent"};
180 const char* test_name,
185 f =
config.create_fixture(client_args, server_args);
186 config.init_server(&
f, server_args);
187 config.init_client(&
f, client_args);
207 if (!
f->server)
return;
219 if (!
f->client)
return;
250 memset(extra_metadata, 0,
sizeof(extra_metadata));
258 extra_metadata[2].
value =
365 server_args.
args = &server_arg;
371 client_args.
args = &client_arg;
376 encode_size != 4096 ? &client_args :
nullptr,
377 decode_size != 4096 ? &server_args :
nullptr);
386 static const int interesting_sizes[] = {4096, 0, 100,
387 1000, 32768, 4 * 1024 * 1024};
GPRAPI void grpc_slice_unref(grpc_slice s)
#define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER
GRPCAPI void grpc_call_details_destroy(grpc_call_details *details)
GRPCAPI void grpc_call_details_init(grpc_call_details *details)
grpc_metadata_array * trailing_metadata
gpr_timespec grpc_timeout_seconds_to_deadline(int64_t time_s)
grpc_status_code * status
union grpc_arg::grpc_arg_value value
return memset(p, 0, total)
ABSL_MUST_USE_RESULT std::string StrFormat(const FormatSpec< Args... > &format, const Args &... args)
static void end_test(grpc_end2end_test_fixture *f)
struct grpc_op::grpc_op_data::grpc_op_send_initial_metadata send_initial_metadata
static void * tag(intptr_t t)
static gpr_timespec five_seconds_from_now(void)
union grpc_op::grpc_op_data data
#define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER
GRPCAPI void grpc_metadata_array_destroy(grpc_metadata_array *array)
GRPCAPI grpc_call_error grpc_server_request_call(grpc_server *server, grpc_call **call, grpc_call_details *details, grpc_metadata_array *request_metadata, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag_new)
static grpc_metadata_array trailing_metadata_recv
static void shutdown_server(grpc_end2end_test_fixture *f)
@ GRPC_OP_RECV_INITIAL_METADATA
@ GRPC_OP_SEND_STATUS_FROM_SERVER
GRPCAPI void grpc_call_unref(grpc_call *call)
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
void cq_verifier_destroy(cq_verifier *v)
struct grpc_call grpc_call
static void shutdown_client(grpc_end2end_test_fixture *f)
static void test_size(grpc_end2end_test_config config, int encode_size, int decode_size)
GPRAPI grpc_slice grpc_slice_from_static_string(const char *source)
cq_verifier * cq_verifier_create(grpc_completion_queue *cq)
static grpc_metadata_array request_metadata_recv
GRPCAPI void grpc_server_destroy(grpc_server *server)
#define CQ_EXPECT_COMPLETION(v, tag, success)
grpc_slice * status_details
static grpc_slice details
GRPCAPI grpc_call * grpc_channel_create_call(grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask, grpc_completion_queue *completion_queue, grpc_slice method, const grpc_slice *host, gpr_timespec deadline, void *reserved)
struct grpc_op::grpc_op_data::grpc_op_recv_close_on_server recv_close_on_server
void hpack_size(grpc_end2end_test_config config)
#define GPR_ARRAY_SIZE(array)
#define GRPC_PROPAGATE_DEFAULTS
struct grpc_op::grpc_op_data::grpc_op_send_status_from_server send_status_from_server
GRPCAPI void grpc_completion_queue_destroy(grpc_completion_queue *cq)
@ GRPC_OP_SEND_INITIAL_METADATA
struct grpc_op::grpc_op_data::grpc_op_recv_status_on_client recv_status_on_client
size_t trailing_metadata_count
static void simple_request_body(grpc_end2end_test_config, grpc_end2end_test_fixture f, size_t index)
GRPCAPI void grpc_server_shutdown_and_notify(grpc_server *server, grpc_completion_queue *cq, void *tag)
static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config, const char *test_name, grpc_channel_args *client_args, grpc_channel_args *server_args)
GRPCAPI grpc_event grpc_completion_queue_next(grpc_completion_queue *cq, gpr_timespec deadline, void *reserved)
void cq_verify(cq_verifier *v, int timeout_sec)
GRPCAPI void grpc_completion_queue_shutdown(grpc_completion_queue *cq)
GRPCAPI void grpc_channel_destroy(grpc_channel *channel)
@ GRPC_OP_RECV_CLOSE_ON_SERVER
@ GRPC_STATUS_UNIMPLEMENTED
static void drain_cq(grpc_completion_queue *cq)
static gpr_timespec n_seconds_from_now(int n)
struct grpc_op::grpc_op_data::grpc_op_recv_initial_metadata recv_initial_metadata
grpc_slice * status_details
grpc_completion_type type
@ GRPC_OP_RECV_STATUS_ON_CLIENT
GPRAPI int grpc_slice_str_cmp(grpc_slice a, const char *b)
const char * hobbits[][2]
static grpc_metadata_array initial_metadata_recv
GRPCAPI grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops, size_t nops, void *tag, void *reserved)
void hpack_size_pre_init(void)
static grpc_completion_queue * cq
@ GRPC_OP_SEND_CLOSE_FROM_CLIENT
static grpc_call_details call_details
GRPCAPI void grpc_metadata_array_init(grpc_metadata_array *array)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:01