Esempio n. 1
0
static void test_cq_end_client_metadata_read(void) {
  grpc_event *ev;
  grpc_completion_queue *cc;
  int on_finish_called = 0;
  void *tag = create_test_tag();

  LOG_TEST();

  cc = grpc_completion_queue_create();

  grpc_cq_begin_op(cc, NULL, GRPC_CLIENT_METADATA_READ);
  grpc_cq_end_client_metadata_read(cc, tag, NULL, increment_int_on_finish,
                                   &on_finish_called, 0, NULL);

  ev = grpc_completion_queue_next(cc, gpr_inf_past);
  GPR_ASSERT(ev != NULL);
  GPR_ASSERT(ev->type == GRPC_CLIENT_METADATA_READ);
  GPR_ASSERT(ev->tag == tag);
  GPR_ASSERT(ev->data.client_metadata_read.count == 0);
  GPR_ASSERT(ev->data.client_metadata_read.elements == NULL);
  GPR_ASSERT(on_finish_called == 0);
  grpc_event_finish(ev);
  GPR_ASSERT(on_finish_called == 1);

  shutdown_and_destroy(cc);
}
Esempio n. 2
0
File: call.c Progetto: qioixiy/grpc
static void finish_recv_metadata(grpc_call *call, grpc_op_error status,
                                 void *tag) {
  legacy_state *ls;

  lock(call);
  ls = get_legacy_state(call);
  if (status == GRPC_OP_OK) {
    grpc_cq_end_client_metadata_read(call->cq, tag, call, do_nothing, NULL,
                                     ls->initial_md_in.count,
                                     ls->initial_md_in.metadata);

  } else {
    grpc_cq_end_client_metadata_read(call->cq, tag, call, do_nothing, NULL, 0,
                                     NULL);
  }
  unlock(call);
}