Go to the documentation of this file.
41 explicit CQDeletingCallback(
F f) : func_(
f) {
45 ~CQDeletingCallback() {}
47 auto*
callback =
static_cast<CQDeletingCallback*
>(
cb);
58 return new CQDeletingCallback<F>(
f);
64 functor_run = &ShutdownCallback::StaticRun;
74 auto*
callback =
static_cast<ShutdownCallback*
>(
cb);
102 ShutdownCallback* g_shutdown_callback;
123 size_t idx =
static_cast<size_t>(
tag);
171 static_cast<int>(
i),
tags[
i]);
186 auto func = [t](
bool ok) {
189 bool was_empty =
true;
195 size_t idx =
static_cast<size_t>(t);
203 auto cb = NewDeletingCallback(
func);
215 f.fixture_data = ffd;
216 g_shutdown_callback =
new ShutdownCallback();
250 f =
config.create_fixture(client_args, server_args);
251 config.init_server(&
f, server_args);
252 config.init_client(&
f, client_args);
266 delete g_shutdown_callback;
270 if (!
f->server)
return;
279 if (!
f->client)
return;
304 const char* error_string;
411 GPR_ASSERT(
nullptr != strstr(error_string,
"xyz"));
412 GPR_ASSERT(
nullptr != strstr(error_string,
"Error received from peer"));
413 GPR_ASSERT(
nullptr != strstr(error_string,
"grpc_message"));
414 GPR_ASSERT(
nullptr != strstr(error_string,
"grpc_status"));
420 gpr_free(
static_cast<void*
>(
const_cast<char*
>(error_string)));
443 for (
i = 0;
i < 10;
i++) {
453 const int many = 1000;
457 for (
i = 0;
i < many;
i++) {
470 for (
i = 0;
i < 10;
i++) {
489 int main(
int argc,
char** argv) {
GPRAPI void gpr_cv_signal(gpr_cv *cv)
GPRAPI double gpr_timespec_to_micros(gpr_timespec t)
static void expect_tag(intptr_t tag, bool ok)
GPRAPI void grpc_slice_unref(grpc_slice s)
#define FEATURE_MASK_SUPPORTS_AUTHORITY_HEADER
GPRAPI void gpr_mu_unlock(gpr_mu *mu)
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
GRPCAPI grpc_completion_queue * grpc_completion_queue_create_for_callback(grpc_completion_queue_functor *shutdown_callback, void *reserved)
return memset(p, 0, total)
std::condition_variable cv_
struct grpc_op::grpc_op_data::grpc_op_send_initial_metadata send_initial_metadata
static void end_test(grpc_end2end_test_fixture *f)
struct inproc_fixture_data inproc_fixture_data
GRPCAPI char * grpc_call_get_peer(grpc_call *call)
bool tags_needed[kAvailableTags]
static void simple_request(grpc_end2end_test_config config)
static void shutdown_client(grpc_end2end_test_fixture *f)
static void drain_cq(grpc_completion_queue *)
GPRAPI void gpr_free(void *ptr)
GRPCAPI grpc_server * grpc_server_create(const grpc_channel_args *args, void *reserved)
GPRAPI void * gpr_malloc(size_t size)
static grpc_end2end_test_config configs[]
GRPCAPI void grpc_server_register_completion_queue(grpc_server *server, grpc_completion_queue *cq, void *reserved)
static void verify_tags(gpr_timespec deadline)
int main(int argc, char **argv)
std::atomic< bool > done_
union grpc_op::grpc_op_data data
bool tags[kAvailableTags]
GRPCAPI void grpc_metadata_array_destroy(grpc_metadata_array *array)
GPRAPI void gpr_mu_destroy(gpr_mu *mu)
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
@ GRPC_OP_SEND_STATUS_FROM_SERVER
GPRAPI int gpr_time_cmp(gpr_timespec a, gpr_timespec b)
GPRAPI void gpr_cv_destroy(gpr_cv *cv)
static void shutdown_server(grpc_end2end_test_fixture *f)
GRPCAPI void grpc_call_unref(grpc_call *call)
static gpr_timespec five_seconds_from_now()
GPRAPI gpr_timespec gpr_time_sub(gpr_timespec a, gpr_timespec b)
const char ** error_string
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
GPRAPI void gpr_mu_init(gpr_mu *mu)
struct grpc_call grpc_call
bool tags_valid[kAvailableTags]
GPRAPI int gpr_cv_wait(gpr_cv *cv, gpr_mu *mu, gpr_timespec abs_deadline)
GPRAPI grpc_slice grpc_slice_from_static_string(const char *source)
GPRAPI void gpr_mu_lock(gpr_mu *mu)
static grpc_metadata_array request_metadata_recv
GRPCAPI void grpc_server_destroy(grpc_server *server)
static void callback(void *arg, int status, int timeouts, struct hostent *host)
void inproc_init_client(grpc_end2end_test_fixture *f, const grpc_channel_args *client_args)
GPRAPI gpr_timespec gpr_now(gpr_clock_type clock)
void inproc_init_server(grpc_end2end_test_fixture *f, const grpc_channel_args *server_args)
static void test_invoke_simple_request(grpc_end2end_test_config config)
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 inproc_tear_down(grpc_end2end_test_fixture *f)
static void test_invoke_10_simple_requests(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 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)
GRPCAPI void grpc_completion_queue_destroy(grpc_completion_queue *cq)
@ GRPC_OP_SEND_INITIAL_METADATA
UniquePtr< SSL_SESSION > ret
struct grpc_op::grpc_op_data::grpc_op_recv_status_on_client recv_status_on_client
size_t trailing_metadata_count
GRPCAPI void grpc_server_shutdown_and_notify(grpc_server *server, grpc_completion_queue *cq, void *tag)
GRPCAPI void grpc_completion_queue_shutdown(grpc_completion_queue *cq)
GRPCAPI void grpc_channel_destroy(grpc_channel *channel)
static void test_invoke_many_simple_requests(grpc_end2end_test_config config)
const size_t kAvailableTags
@ GRPC_OP_RECV_CLOSE_ON_SERVER
bool tags_expected[kAvailableTags]
@ GRPC_STATUS_UNIMPLEMENTED
GPRAPI void gpr_cv_broadcast(gpr_cv *cv)
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
static grpc_end2end_test_fixture inproc_create_fixture(const grpc_channel_args *, const grpc_channel_args *)
GRPCAPI void grpc_init(void)
GRPCAPI void grpc_server_start(grpc_server *server)
@ GRPC_OP_RECV_STATUS_ON_CLIENT
GPRAPI int grpc_slice_str_cmp(grpc_slice a, const char *b)
static void simple_request_body(grpc_end2end_test_config, grpc_end2end_test_fixture f)
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)
GRPCAPI void grpc_shutdown(void)
OPENSSL_EXPORT pem_password_cb * cb
grpc_channel * grpc_inproc_channel_create(grpc_server *server, const grpc_channel_args *args, void *)
@ GRPC_OP_SEND_CLOSE_FROM_CLIENT
static grpc_call_details call_details
GPRAPI void gpr_cv_init(gpr_cv *cv)
GRPCAPI void grpc_metadata_array_init(grpc_metadata_array *array)
static grpc_completion_queue_functor * tag(intptr_t t)
static void simple_request_pre_init()
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:20