Beispiel #1
0
void chttp2_init_server_load_reporting(grpc_end2end_test_fixture *f,
                                       grpc_channel_args *server_args) {
  load_reporting_fixture_data *ffd = f->fixture_data;
  grpc_arg arg = grpc_load_reporting_enable_arg();
  if (f->server) {
    grpc_server_destroy(f->server);
  }
  server_args = grpc_channel_args_copy_and_add(server_args, &arg, 1);
  f->server = grpc_server_create(server_args, NULL);
  {
    grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
    grpc_channel_args_destroy(&exec_ctx, server_args);
    grpc_exec_ctx_finish(&exec_ctx);
  }
  grpc_server_register_completion_queue(f->server, f->cq, NULL);
  GPR_ASSERT(grpc_server_add_insecure_http2_port(f->server, ffd->localaddr));
  grpc_server_start(f->server);
}
Beispiel #2
0
static void test_load_reporting_hook(grpc_end2end_test_config config) {
  /* TODO(dgq): this test is currently a noop until LR is fully defined.
   * Leaving the rest here, as it'll likely be reusable. */

  /* Introduce load reporting for the server through its arguments */
  grpc_arg arg = grpc_load_reporting_enable_arg();
  grpc_channel_args *lr_server_args =
      grpc_channel_args_copy_and_add(NULL, &arg, 1);

  grpc_end2end_test_fixture f =
      begin_test(config, "test_load_reporting_hook", NULL, lr_server_args);

  const char *method_name = "/gRPCFTW";
  const char *request_msg = "the msg from the client";
  const char *response_msg = "... and the response from the server";

  grpc_metadata initial_lr_metadata;
  grpc_metadata trailing_lr_metadata;

  initial_lr_metadata.key = GRPC_MDSTR_LB_TOKEN;
  initial_lr_metadata.value = grpc_slice_from_static_string("client-token");
  memset(&initial_lr_metadata.internal_data, 0,
         sizeof(initial_lr_metadata.internal_data));

  trailing_lr_metadata.key = GRPC_MDSTR_LB_COST_BIN;
  trailing_lr_metadata.value = grpc_slice_from_static_string("server-token");
  memset(&trailing_lr_metadata.internal_data, 0,
         sizeof(trailing_lr_metadata.internal_data));

  request_response_with_payload(config, f, method_name, request_msg,
                                response_msg, &initial_lr_metadata,
                                &trailing_lr_metadata);
  end_test(&f);
  {
    grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
    grpc_channel_args_destroy(&exec_ctx, lr_server_args);
    grpc_exec_ctx_finish(&exec_ctx);
  }
  config.tear_down_data(&f);
}