Go to the documentation of this file.
24 #include "absl/strings/str_format.h"
26 #include <grpc/byte_buffer.h>
40 static void*
tag(
intptr_t t) {
return reinterpret_cast<void*
>(t); }
45 bool decompress_in_core) {
48 decompress_in_core ?
"" :
"_with_decompression_disabled",
50 f =
config.create_fixture(client_args, server_args);
51 config.init_server(&
f, server_args);
52 config.init_client(&
f, client_args);
72 if (!
f->server)
return;
84 if (!
f->client)
return;
104 bool decompress_in_core) {
132 nullptr, requested_client_compression_algorithm);
136 &server_args, algorithm_to_disable,
false);
137 if (!decompress_in_core) {
138 grpc_arg disable_decompression_in_core_arg =
144 client_args, &disable_decompression_in_core_arg, 1);
146 server_args, &disable_decompression_in_core_arg, 1);
174 if (client_metadata !=
nullptr) {
185 op->
flags = send_flags_bitmask;
247 const char* algo_name =
nullptr;
284 bool send_message_before_initial_metadata,
bool decompress_in_core) {
306 char request_str[1024];
307 char response_str[1024];
309 memset(request_str,
'x', 1023);
310 request_str[1023] =
'\0';
312 memset(response_str,
'y', 1023);
313 response_str[1023] =
'\0';
320 nullptr, default_client_channel_compression_algorithm);
322 nullptr, default_server_channel_compression_algorithm);
323 if (!decompress_in_core) {
324 grpc_arg disable_decompression_in_core_arg =
330 client_args, &disable_decompression_in_core_arg, 1);
332 server_args, &disable_decompression_in_core_arg, 1);
351 if (send_message_before_initial_metadata) {
357 op->
flags = client_send_flags_bitmask;
368 if (client_init_metadata !=
nullptr) {
416 if (set_server_level) {
419 server_compression_level;
432 for (
int i = 0;
i < 2;
i++) {
435 if (
i > 0 || !send_message_before_initial_metadata) {
441 op->
flags = client_send_flags_bitmask;
468 : expected_algorithm_from_client));
507 : expected_algorithm_from_server));
578 bool send_message_before_initial_metadata) {
580 config, test_name, client_send_flags_bitmask,
581 default_client_channel_compression_algorithm,
582 default_server_channel_compression_algorithm,
583 expected_algorithm_from_client, expected_algorithm_from_server,
584 client_init_metadata, set_server_level, server_compression_level,
585 send_message_before_initial_metadata,
false);
587 config, test_name, client_send_flags_bitmask,
588 default_client_channel_compression_algorithm,
589 default_server_channel_compression_algorithm,
590 expected_algorithm_from_client, expected_algorithm_from_server,
591 client_init_metadata, set_server_level, server_compression_level,
592 send_message_before_initial_metadata,
true);
598 config,
"test_invoke_request_with_exceptionally_uncompressed_payload",
607 config,
"test_invoke_request_with_uncompressed_payload", 0,
616 config,
"test_invoke_request_with_compressed_payload", 0,
625 config,
"test_invoke_request_with_compressed_payload", 0,
650 identity_compression_override.
key =
652 identity_compression_override.
value =
659 config,
"test_invoke_request_with_compressed_payload_md_override_1", 0,
666 config,
"test_invoke_request_with_compressed_payload_md_override_2", 0,
673 config,
"test_invoke_request_with_compressed_payload_md_override_3", 0,
682 "test_invoke_request_with_disabled_algorithm",
686 "test_invoke_request_with_disabled_algorithm",
GPRAPI void grpc_slice_unref(grpc_slice s)
struct grpc_byte_buffer * send_message
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
const grpc_channel_args * grpc_channel_args_compression_algorithm_set_state(const grpc_channel_args **a, grpc_compression_algorithm algorithm, int state)
GRPCAPI grpc_byte_buffer * grpc_raw_byte_buffer_create(grpc_slice *slices, size_t nslices)
static gpr_timespec five_seconds_from_now(void)
return memset(p, 0, total)
ABSL_MUST_USE_RESULT std::string StrFormat(const FormatSpec< Args... > &format, const Args &... args)
void compressed_payload_pre_init(void)
static void test_invoke_request_with_exceptionally_uncompressed_payload(grpc_end2end_test_config config)
GPRAPI grpc_slice grpc_slice_from_copied_string(const char *source)
static void request_with_payload_template_inner(grpc_end2end_test_config config, const char *test_name, uint32_t client_send_flags_bitmask, grpc_compression_algorithm default_client_channel_compression_algorithm, grpc_compression_algorithm default_server_channel_compression_algorithm, grpc_compression_algorithm expected_algorithm_from_client, grpc_compression_algorithm expected_algorithm_from_server, grpc_metadata *client_init_metadata, bool set_server_level, grpc_compression_level server_compression_level, bool send_message_before_initial_metadata, bool decompress_in_core)
struct grpc_op::grpc_op_data::grpc_op_send_initial_metadata send_initial_metadata
struct grpc_byte_buffer::grpc_byte_buffer_data::grpc_compressed_buffer raw
static void end_test(grpc_end2end_test_fixture *f)
grpc_compression_algorithm
static void test_invoke_request_with_send_message_before_initial_metadata(grpc_end2end_test_config config)
static void shutdown_client(grpc_end2end_test_fixture *f)
int byte_buffer_eq_string(grpc_byte_buffer *bb, const char *str)
#define GRPC_WRITE_NO_COMPRESS
struct grpc_op::grpc_op_data::grpc_op_recv_message recv_message
union grpc_op::grpc_op_data data
grpc_byte_buffer_type type
GRPCAPI void grpc_metadata_array_destroy(grpc_metadata_array *array)
static void test_invoke_request_with_compressed_payload_md_override(grpc_end2end_test_config config)
struct grpc_byte_buffer ** recv_message
static void request_for_disabled_algorithm(grpc_end2end_test_config config, const char *test_name, uint32_t send_flags_bitmask, grpc_compression_algorithm algorithm_to_disable, grpc_compression_algorithm requested_client_compression_algorithm, grpc_status_code expected_error, grpc_metadata *client_metadata, bool decompress_in_core)
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
@ GRPC_OP_RECV_INITIAL_METADATA
#define GRPC_ARG_ENABLE_PER_MESSAGE_DECOMPRESSION
@ GRPC_OP_SEND_STATUS_FROM_SERVER
GRPCAPI int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm, const char **name)
bool GetBit(T i, size_t n)
static void drain_cq(grpc_completion_queue *cq)
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 grpc_byte_buffer * response_payload_recv
@ GRPC_COMPRESS_LEVEL_NONE
void grpc_channel_args_destroy(grpc_channel_args *a)
GPRAPI grpc_slice grpc_slice_from_static_string(const char *source)
cq_verifier * cq_verifier_create(grpc_completion_queue *cq)
const grpc_channel_args * grpc_channel_args_set_channel_default_compression_algorithm(const grpc_channel_args *a, grpc_compression_algorithm algorithm)
static grpc_metadata_array request_metadata_recv
GRPCAPI void grpc_server_destroy(grpc_server *server)
#define CQ_EXPECT_COMPLETION(v, tag, success)
static void test_invoke_request_with_uncompressed_payload(grpc_end2end_test_config config)
@ GRPC_COMPRESS_LEVEL_HIGH
grpc_compression_algorithm grpc_call_compression_for_level(grpc_call *call, grpc_compression_level level)
void compressed_payload(grpc_end2end_test_config config)
grpc_slice * status_details
union grpc_byte_buffer::grpc_byte_buffer_data data
static gpr_timespec n_seconds_from_now(int n)
static grpc_slice details
static void test_invoke_request_with_disabled_algorithm(grpc_end2end_test_config config)
static void test_invoke_request_with_compressed_payload(grpc_end2end_test_config config)
static void * tag(intptr_t t)
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
static void request_with_payload_template(grpc_end2end_test_config config, const char *test_name, uint32_t client_send_flags_bitmask, grpc_compression_algorithm default_client_channel_compression_algorithm, grpc_compression_algorithm default_server_channel_compression_algorithm, grpc_compression_algorithm expected_algorithm_from_client, grpc_compression_algorithm expected_algorithm_from_server, grpc_metadata *client_init_metadata, bool set_server_level, grpc_compression_level server_compression_level, bool send_message_before_initial_metadata)
static void test_invoke_request_with_server_level(grpc_end2end_test_config config)
#define GRPC_PROPAGATE_DEFAULTS
struct grpc_op::grpc_op_data::grpc_op_send_status_from_server send_status_from_server
static void shutdown_server(grpc_end2end_test_fixture *f)
grpc_arg grpc_channel_arg_integer_create(char *name, int value)
GRPCAPI void grpc_completion_queue_destroy(grpc_completion_queue *cq)
@ GRPC_OP_SEND_INITIAL_METADATA
static grpc_metadata gzip_compression_override()
struct grpc_op::grpc_op_data::grpc_op_send_message send_message
grpc_compression_algorithm compression
struct grpc_op::grpc_op_data::grpc_op_recv_status_on_client recv_status_on_client
@ GRPC_COMPRESS_ALGORITHMS_COUNT
size_t trailing_metadata_count
GRPCAPI void grpc_server_shutdown_and_notify(grpc_server *server, grpc_completion_queue *cq, void *tag)
GRPCAPI void grpc_byte_buffer_destroy(grpc_byte_buffer *bb)
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)
static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config, const char *test_name, const grpc_channel_args *client_args, const grpc_channel_args *server_args, bool decompress_in_core)
GRPCAPI void grpc_completion_queue_shutdown(grpc_completion_queue *cq)
GRPCAPI void grpc_channel_destroy(grpc_channel *channel)
uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call *call)
constexpr uint32_t BitCount(uint32_t i)
@ GRPC_OP_RECV_CLOSE_ON_SERVER
@ GRPC_STATUS_UNIMPLEMENTED
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)
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)
static grpc_completion_queue * cq
grpc_channel_args * grpc_channel_args_copy_and_add(const grpc_channel_args *src, const grpc_arg *to_add, size_t num_to_add)
@ 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 Thu Mar 13 2025 02:58:52