|
|
|
@ -39,9 +39,12 @@ |
|
|
|
|
|
|
|
|
|
#include "src/core/ext/client_channel/resolver_registry.h" |
|
|
|
|
#include "src/core/lib/channel/channel_args.h" |
|
|
|
|
#include "src/core/lib/iomgr/combiner.h" |
|
|
|
|
|
|
|
|
|
#include "test/core/util/test_config.h" |
|
|
|
|
|
|
|
|
|
static grpc_combiner *g_combiner; |
|
|
|
|
|
|
|
|
|
typedef struct on_resolution_arg { |
|
|
|
|
char *expected_server_name; |
|
|
|
|
grpc_channel_args *resolver_result; |
|
|
|
@ -62,6 +65,7 @@ static void test_succeeds(grpc_resolver_factory *factory, const char *string) { |
|
|
|
|
GPR_ASSERT(uri); |
|
|
|
|
memset(&args, 0, sizeof(args)); |
|
|
|
|
args.uri = uri; |
|
|
|
|
args.combiner = g_combiner; |
|
|
|
|
resolver = grpc_resolver_factory_create_resolver(&exec_ctx, factory, &args); |
|
|
|
|
GPR_ASSERT(resolver != NULL); |
|
|
|
|
|
|
|
|
@ -71,8 +75,8 @@ static void test_succeeds(grpc_resolver_factory *factory, const char *string) { |
|
|
|
|
grpc_closure *on_resolution = grpc_closure_create( |
|
|
|
|
on_resolution_cb, &on_res_arg, grpc_schedule_on_exec_ctx); |
|
|
|
|
|
|
|
|
|
grpc_resolver_next(&exec_ctx, resolver, &on_res_arg.resolver_result, |
|
|
|
|
on_resolution); |
|
|
|
|
grpc_resolver_next_locked(&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); |
|
|
|
@ -88,6 +92,7 @@ static void test_fails(grpc_resolver_factory *factory, const char *string) { |
|
|
|
|
GPR_ASSERT(uri); |
|
|
|
|
memset(&args, 0, sizeof(args)); |
|
|
|
|
args.uri = uri; |
|
|
|
|
args.combiner = g_combiner; |
|
|
|
|
resolver = grpc_resolver_factory_create_resolver(&exec_ctx, factory, &args); |
|
|
|
|
GPR_ASSERT(resolver == NULL); |
|
|
|
|
grpc_uri_destroy(uri); |
|
|
|
@ -99,6 +104,8 @@ int main(int argc, char **argv) { |
|
|
|
|
grpc_test_init(argc, argv); |
|
|
|
|
grpc_init(); |
|
|
|
|
|
|
|
|
|
g_combiner = grpc_combiner_create(NULL); |
|
|
|
|
|
|
|
|
|
ipv4 = grpc_resolver_factory_lookup("ipv4"); |
|
|
|
|
ipv6 = grpc_resolver_factory_lookup("ipv6"); |
|
|
|
|
|
|
|
|
@ -118,6 +125,12 @@ int main(int argc, char **argv) { |
|
|
|
|
|
|
|
|
|
grpc_resolver_factory_unref(ipv4); |
|
|
|
|
grpc_resolver_factory_unref(ipv6); |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; |
|
|
|
|
GRPC_COMBINER_UNREF(&exec_ctx, g_combiner, "test"); |
|
|
|
|
grpc_exec_ctx_finish(&exec_ctx); |
|
|
|
|
} |
|
|
|
|
grpc_shutdown(); |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|