static void test_succeeds(grpc_resolver_factory *factory, const char *string) {
  grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
  grpc_uri *uri = grpc_uri_parse(string, 0);
  grpc_resolver_args args;
  grpc_resolver *resolver;
  gpr_log(GPR_DEBUG, "test: '%s' should be valid for '%s'", string,
          factory->vtable->scheme);
  GPR_ASSERT(uri);
  memset(&args, 0, sizeof(args));
  args.uri = uri;
  resolver = grpc_resolver_factory_create_resolver(factory, &args);
  GPR_ASSERT(resolver != NULL);

  on_resolution_arg on_res_arg;
  memset(&on_res_arg, 0, sizeof(on_res_arg));
  on_res_arg.expected_server_name = uri->path;
  grpc_closure *on_resolution =
      grpc_closure_create(on_resolution_cb, &on_res_arg);

  grpc_resolver_next(&exec_ctx, resolver, &on_res_arg.resolver_result,
                     on_resolution);
  GRPC_RESOLVER_UNREF(&exec_ctx, resolver, "test_succeeds");
  grpc_exec_ctx_finish(&exec_ctx);
  grpc_uri_destroy(uri);
}
Exemple #2
0
grpc_resolver *grpc_resolver_create(const char *target) {
    grpc_uri *uri = NULL;
    grpc_resolver_factory *factory = resolve_factory(target, &uri);
    grpc_resolver *resolver;
    grpc_resolver_args args;
    memset(&args, 0, sizeof(args));
    args.uri = uri;
    resolver = grpc_resolver_factory_create_resolver(factory, &args);
    grpc_uri_destroy(uri);
    return resolver;
}
static grpc_resolver *create_resolver(const char *name) {
  grpc_resolver_factory *factory = grpc_resolver_factory_lookup("dns");
  grpc_uri *uri = grpc_uri_parse(name, 0);
  GPR_ASSERT(uri);
  grpc_resolver_args args;
  memset(&args, 0, sizeof(args));
  args.uri = uri;
  grpc_resolver *resolver =
      grpc_resolver_factory_create_resolver(factory, &args);
  grpc_resolver_factory_unref(factory);
  grpc_uri_destroy(uri);
  return resolver;
}
static void test_fails(grpc_resolver_factory *factory, const char *string) {
  grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
  grpc_uri *uri = grpc_uri_parse(string, 0);
  grpc_resolver_args args;
  grpc_resolver *resolver;
  gpr_log(GPR_DEBUG, "test: '%s' should be invalid for '%s'", string,
          factory->vtable->scheme);
  GPR_ASSERT(uri);
  memset(&args, 0, sizeof(args));
  args.uri = uri;
  resolver = grpc_resolver_factory_create_resolver(factory, &args);
  GPR_ASSERT(resolver == NULL);
  grpc_uri_destroy(uri);
  grpc_exec_ctx_finish(&exec_ctx);
}
Exemple #5
0
static grpc_resolver *build_fake_resolver(
    grpc_exec_ctx *exec_ctx, grpc_combiner *combiner,
    grpc_fake_resolver_response_generator *response_generator) {
  grpc_resolver_factory *factory = grpc_resolver_factory_lookup("test");
  grpc_arg generator_arg =
      grpc_fake_resolver_response_generator_arg(response_generator);
  grpc_resolver_args args;
  memset(&args, 0, sizeof(args));
  grpc_channel_args channel_args = {1, &generator_arg};
  args.args = &channel_args;
  args.combiner = combiner;
  grpc_resolver *resolver =
      grpc_resolver_factory_create_resolver(exec_ctx, factory, &args);
  grpc_resolver_factory_unref(factory);
  return resolver;
}