From f73e76d59682faa44b382e83c9d36c9664d15c23 Mon Sep 17 00:00:00 2001 From: David Garcia Quintas Date: Wed, 14 Mar 2018 12:50:48 -0700 Subject: [PATCH] Fix check in channel.cc and tweak direct channel tests --- src/core/lib/surface/channel.cc | 2 +- test/core/end2end/fixtures/h2_sockpair+trace.cc | 9 +++++++-- test/core/end2end/fixtures/h2_sockpair.cc | 8 +++++++- test/core/end2end/fixtures/h2_sockpair_1byte.cc | 8 +++++++- test/core/end2end/fuzzers/client_fuzzer.cc | 9 ++++++++- 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/core/lib/surface/channel.cc b/src/core/lib/surface/channel.cc index 274dfe38bf8..9d38fe9c71c 100644 --- a/src/core/lib/surface/channel.cc +++ b/src/core/lib/surface/channel.cc @@ -156,7 +156,7 @@ static grpc_core::UniquePtr get_default_authority( default_authority.reset(gpr_strdup(ssl_override)); } if (channel_stack_type == GRPC_CLIENT_DIRECT_CHANNEL && - default_authority == nullptr) { + !has_default_authority) { gpr_log(GPR_ERROR, "Direct channels must specify a value for the " "GRPC_ARG_DEFAULT_AUTHORITY channel arg."); diff --git a/test/core/end2end/fixtures/h2_sockpair+trace.cc b/test/core/end2end/fixtures/h2_sockpair+trace.cc index d539ddae8f1..701113461f7 100644 --- a/test/core/end2end/fixtures/h2_sockpair+trace.cc +++ b/test/core/end2end/fixtures/h2_sockpair+trace.cc @@ -63,9 +63,14 @@ typedef struct { static void client_setup_transport(void* ts, grpc_transport* transport) { sp_client_setup* cs = static_cast(ts); - - cs->f->client = grpc_channel_create("socketpair-target", cs->client_args, + grpc_arg authority_arg = grpc_channel_arg_string_create( + const_cast(GRPC_ARG_DEFAULT_AUTHORITY), + const_cast("test-authority")); + grpc_channel_args* args = + grpc_channel_args_copy_and_add(cs->client_args, &authority_arg, 1); + cs->f->client = grpc_channel_create("socketpair-target", args, GRPC_CLIENT_DIRECT_CHANNEL, transport); + grpc_channel_args_destroy(args); } static grpc_end2end_test_fixture chttp2_create_fixture_socketpair( diff --git a/test/core/end2end/fixtures/h2_sockpair.cc b/test/core/end2end/fixtures/h2_sockpair.cc index 75f64024cd1..24a1d6dd32a 100644 --- a/test/core/end2end/fixtures/h2_sockpair.cc +++ b/test/core/end2end/fixtures/h2_sockpair.cc @@ -58,8 +58,14 @@ typedef struct { static void client_setup_transport(void* ts, grpc_transport* transport) { sp_client_setup* cs = static_cast(ts); - cs->f->client = grpc_channel_create("socketpair-target", cs->client_args, + grpc_arg authority_arg = grpc_channel_arg_string_create( + const_cast(GRPC_ARG_DEFAULT_AUTHORITY), + const_cast("test-authority")); + grpc_channel_args* args = + grpc_channel_args_copy_and_add(cs->client_args, &authority_arg, 1); + cs->f->client = grpc_channel_create("socketpair-target", args, GRPC_CLIENT_DIRECT_CHANNEL, transport); + grpc_channel_args_destroy(args); } static grpc_end2end_test_fixture chttp2_create_fixture_socketpair( diff --git a/test/core/end2end/fixtures/h2_sockpair_1byte.cc b/test/core/end2end/fixtures/h2_sockpair_1byte.cc index 929631917d3..d812c226e99 100644 --- a/test/core/end2end/fixtures/h2_sockpair_1byte.cc +++ b/test/core/end2end/fixtures/h2_sockpair_1byte.cc @@ -58,8 +58,14 @@ typedef struct { static void client_setup_transport(void* ts, grpc_transport* transport) { sp_client_setup* cs = static_cast(ts); - cs->f->client = grpc_channel_create("socketpair-target", cs->client_args, + grpc_arg authority_arg = grpc_channel_arg_string_create( + const_cast(GRPC_ARG_DEFAULT_AUTHORITY), + const_cast("test-authority")); + grpc_channel_args* args = + grpc_channel_args_copy_and_add(cs->client_args, &authority_arg, 1); + cs->f->client = grpc_channel_create("socketpair-target", args, GRPC_CLIENT_DIRECT_CHANNEL, transport); + grpc_channel_args_destroy(args); } static grpc_end2end_test_fixture chttp2_create_fixture_socketpair( diff --git a/test/core/end2end/fuzzers/client_fuzzer.cc b/test/core/end2end/fuzzers/client_fuzzer.cc index 16acf8ef286..e21006bb673 100644 --- a/test/core/end2end/fuzzers/client_fuzzer.cc +++ b/test/core/end2end/fuzzers/client_fuzzer.cc @@ -20,6 +20,7 @@ #include #include +#include #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/iomgr/executor.h" @@ -58,8 +59,14 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { grpc_create_chttp2_transport(nullptr, mock_endpoint, true); grpc_chttp2_transport_start_reading(transport, nullptr, nullptr); + grpc_arg authority_arg = grpc_channel_arg_string_create( + const_cast(GRPC_ARG_DEFAULT_AUTHORITY), + const_cast("test-authority")); + grpc_channel_args* args = + grpc_channel_args_copy_and_add(nullptr, &authority_arg, 1); grpc_channel* channel = grpc_channel_create( - "test-target", nullptr, GRPC_CLIENT_DIRECT_CHANNEL, transport); + "test-target", args, GRPC_CLIENT_DIRECT_CHANNEL, transport); + grpc_channel_args_destroy(args); grpc_slice host = grpc_slice_from_static_string("localhost"); grpc_call* call = grpc_channel_create_call( channel, nullptr, 0, cq, grpc_slice_from_static_string("/foo"), &host,