diff options
author | Craig Tiller <ctiller@google.com> | 2016-11-09 09:42:19 -0800 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2016-11-09 09:42:19 -0800 |
commit | 87a7e1fd114b571abc4644d6f1cddcaff3085df4 (patch) | |
tree | 7723d0cb27fb96fc315a85a013635c824e018d59 /test/core/end2end/tests/cancel_after_accept.c | |
parent | bd1795ca8af6ea15c83ee0556b7a24add9464f00 (diff) | |
parent | db096f3dba94e11bd8f78ed1ed7ff15ea585cd4f (diff) |
Merge github.com:grpc/grpc into slice_with_exec_ctx
Diffstat (limited to 'test/core/end2end/tests/cancel_after_accept.c')
-rw-r--r-- | test/core/end2end/tests/cancel_after_accept.c | 59 |
1 files changed, 39 insertions, 20 deletions
diff --git a/test/core/end2end/tests/cancel_after_accept.c b/test/core/end2end/tests/cancel_after_accept.c index f67da2d90d..c0beb456ad 100644 --- a/test/core/end2end/tests/cancel_after_accept.c +++ b/test/core/end2end/tests/cancel_after_accept.c @@ -41,6 +41,11 @@ #include <grpc/support/log.h> #include <grpc/support/time.h> #include <grpc/support/useful.h> + +#include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/transport/metadata.h" +#include "src/core/lib/transport/method_config.h" + #include "test/core/end2end/cq_verifier.h" #include "test/core/end2end/tests/cancel_test_helpers.h" @@ -49,13 +54,12 @@ static void *tag(intptr_t t) { return (void *)t; } static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config, const char *test_name, grpc_channel_args *client_args, - grpc_channel_args *server_args, - const char *query_args) { + grpc_channel_args *server_args) { grpc_end2end_test_fixture f; gpr_log(GPR_INFO, "%s/%s", test_name, config.name); f = config.create_fixture(client_args, server_args); config.init_server(&f, server_args); - config.init_client(&f, client_args, query_args); + config.init_client(&f, client_args); return f; } @@ -128,19 +132,33 @@ static void test_cancel_after_accept(grpc_end2end_test_config config, grpc_raw_byte_buffer_create(&response_payload_slice, 1); int was_cancelled = 2; - const char *query_args = NULL; + grpc_channel_args *args = NULL; if (use_service_config) { - query_args = - "method_name=/service/method" - "&timeout_seconds=5"; + gpr_timespec timeout = {5, 0, GPR_TIMESPAN}; + grpc_method_config_table_entry entry = { + grpc_mdstr_from_string("/service/method"), + grpc_method_config_create(NULL, &timeout, NULL, NULL), + }; + grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + grpc_method_config_table *method_config_table = + grpc_method_config_table_create(1, &entry); + GRPC_MDSTR_UNREF(&exec_ctx, entry.method_name); + grpc_method_config_unref(&exec_ctx, entry.method_config); + grpc_arg arg = + grpc_method_config_table_create_channel_arg(method_config_table); + args = grpc_channel_args_copy_and_add(args, &arg, 1); + grpc_method_config_table_unref(&exec_ctx, method_config_table); + grpc_exec_ctx_finish(&exec_ctx); } + grpc_end2end_test_fixture f = - begin_test(config, "cancel_after_accept", NULL, NULL, query_args); + begin_test(config, "cancel_after_accept", args, NULL); cq_verifier *cqv = cq_verifier_create(f.cq); - c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, - "/service/method", "foo.test.google.fr", - deadline, NULL); + c = grpc_channel_create_call( + f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, "/service/method", + get_host_override_string("foo.test.google.fr:1234", config), deadline, + NULL); GPR_ASSERT(c); grpc_metadata_array_init(&initial_metadata_recv); @@ -235,6 +253,12 @@ static void test_cancel_after_accept(grpc_end2end_test_config config, grpc_call_destroy(c); grpc_call_destroy(s); + if (args != NULL) { + grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + grpc_channel_args_destroy(&exec_ctx, args); + grpc_exec_ctx_finish(&exec_ctx); + } + cq_verifier_destroy(cqv); end_test(&f); config.tear_down_data(&f); @@ -246,15 +270,10 @@ void cancel_after_accept(grpc_end2end_test_config config) { for (i = 0; i < GPR_ARRAY_SIZE(cancellation_modes); i++) { test_cancel_after_accept(config, cancellation_modes[i], false /* use_service_config */); - } - - if (config.feature_mask & FEATURE_MASK_SUPPORTS_QUERY_ARGS) { - for (i = 0; i < GPR_ARRAY_SIZE(cancellation_modes); i++) { - if (cancellation_modes[i].expect_status == - GRPC_STATUS_DEADLINE_EXCEEDED) { - test_cancel_after_accept(config, cancellation_modes[i], - true /* use_service_config */); - } + if (config.feature_mask & FEATURE_MASK_SUPPORTS_CLIENT_CHANNEL && + cancellation_modes[i].expect_status == GRPC_STATUS_DEADLINE_EXCEEDED) { + test_cancel_after_accept(config, cancellation_modes[i], + true /* use_service_config */); } } } |