diff options
Diffstat (limited to 'test')
69 files changed, 845 insertions, 103 deletions
diff --git a/test/core/bad_client/gen_build_yaml.py b/test/core/bad_client/gen_build_yaml.py index 45fcb6982b..a86a50065d 100755 --- a/test/core/bad_client/gen_build_yaml.py +++ b/test/core/bad_client/gen_build_yaml.py @@ -46,6 +46,7 @@ BAD_CLIENT_TESTS = { 'initial_settings_frame': default_test_options, 'server_registered_method': default_test_options, 'simple_request': default_test_options, + 'window_overflow': default_test_options, 'unknown_frame': default_test_options, } @@ -63,7 +64,7 @@ def main(): 'headers': [ 'test/core/bad_client/bad_client.h' ], - 'vs_proj_dir': 'test', + 'vs_proj_dir': 'test/bad_client', 'deps': [ 'grpc_test_util_unsecure', 'grpc_unsecure', diff --git a/test/core/bad_client/tests/window_overflow.c b/test/core/bad_client/tests/window_overflow.c new file mode 100644 index 0000000000..1c898f352d --- /dev/null +++ b/test/core/bad_client/tests/window_overflow.c @@ -0,0 +1,106 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "test/core/bad_client/bad_client.h" + +#include <string.h> + +#include <grpc/support/alloc.h> + +#include "src/core/surface/server.h" + +#define PFX_STR \ + "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" \ + "\x00\x00\x00\x04\x00\x00\x00\x00\x00" /* settings frame */ \ + "\x00\x00\xc9\x01\x04\x00\x00\x00\x01" /* headers: generated from \ + simple_request.headers in this \ + directory */ \ + "\x10\x05:path\x08/foo/bar" \ + "\x10\x07:scheme\x04http" \ + "\x10\x07:method\x04POST" \ + "\x10\x0a:authority\x09localhost" \ + "\x10\x0c" \ + "content-type\x10" \ + "application/grpc" \ + "\x10\x14grpc-accept-encoding\x15" \ + "deflate,identity,gzip" \ + "\x10\x02te\x08trailers" \ + "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)" + +static void verifier(grpc_server *server, grpc_completion_queue *cq, + void *registered_method) { + while (grpc_server_has_open_connections(server)) { + GPR_ASSERT(grpc_completion_queue_next(cq, + GRPC_TIMEOUT_MILLIS_TO_DEADLINE(20), + NULL).type == GRPC_QUEUE_TIMEOUT); + } +} + +char *g_buffer; +size_t g_cap = 0; +size_t g_count = 0; + +static void addbuf(const void *data, size_t len) { + if (g_count + len > g_cap) { + g_cap = GPR_MAX(g_count + len, g_cap * 2); + g_buffer = gpr_realloc(g_buffer, g_cap); + } + memcpy(g_buffer + g_count, data, len); + g_count += len; +} + +int main(int argc, char **argv) { + int i, j; +#define MAX_FRAME_SIZE 16384 +#define MESSAGES_PER_FRAME (MAX_FRAME_SIZE / 5) +#define FRAME_SIZE (MESSAGES_PER_FRAME * 5) +#define SEND_SIZE (100 * 1024) +#define NUM_FRAMES (SEND_SIZE / FRAME_SIZE + 1) + grpc_test_init(argc, argv); + + addbuf(PFX_STR, sizeof(PFX_STR) - 1); + for (i = 0; i < NUM_FRAMES; i++) { + gpr_uint8 hdr[9] = {(gpr_uint8)(FRAME_SIZE >> 16), + (gpr_uint8)(FRAME_SIZE >> 8), (gpr_uint8)FRAME_SIZE, 0, + 0, 0, 0, 0, 1}; + addbuf(hdr, sizeof(hdr)); + for (j = 0; j < MESSAGES_PER_FRAME; j++) { + gpr_uint8 message[5] = {0, 0, 0, 0, 0}; + addbuf(message, sizeof(message)); + } + } + grpc_run_bad_client_test(verifier, g_buffer, g_count, 0); + gpr_free(g_buffer); + + return 0; +} diff --git a/test/core/bad_ssl/bad_ssl_test.c b/test/core/bad_ssl/bad_ssl_test.c index 54ac6d0e1c..08ab482c58 100644 --- a/test/core/bad_ssl/bad_ssl_test.c +++ b/test/core/bad_ssl/bad_ssl_test.c @@ -163,7 +163,7 @@ int main(int argc, char **argv) { grpc_shutdown(); } gpr_free(args[2]); - + gpr_subprocess_interrupt(svr); status = gpr_subprocess_join(svr); gpr_subprocess_destroy(svr); diff --git a/test/core/bad_ssl/gen_build_yaml.py b/test/core/bad_ssl/gen_build_yaml.py index d12722439e..15189d8b79 100755 --- a/test/core/bad_ssl/gen_build_yaml.py +++ b/test/core/bad_ssl/gen_build_yaml.py @@ -71,7 +71,7 @@ def main(): 'language': 'c', 'run': False, 'src': ['test/core/bad_ssl/servers/%s.c' % t], - 'vs_proj_dir': 'test', + 'vs_proj_dir': 'test/bad_ssl', 'platforms': ['linux', 'posix', 'mac'], 'deps': [ 'bad_ssl_test_server', diff --git a/test/core/bad_ssl/server.c b/test/core/bad_ssl/server.c index 2ed94de099..6113d364c9 100644 --- a/test/core/bad_ssl/server.c +++ b/test/core/bad_ssl/server.c @@ -74,9 +74,8 @@ void bad_ssl_run(grpc_server *server) { grpc_server_register_completion_queue(server, cq, NULL); grpc_server_start(server); - error = - grpc_server_request_call(server, &s, &call_details, - &request_metadata_recv, cq, cq, (void*)1); + error = grpc_server_request_call(server, &s, &call_details, + &request_metadata_recv, cq, cq, (void *)1); GPR_ASSERT(GRPC_CALL_OK == error); signal(SIGINT, sigint_handler); @@ -96,7 +95,7 @@ void bad_ssl_run(grpc_server *server) { NULL); switch (ev.type) { case GRPC_OP_COMPLETE: - GPR_ASSERT(ev.tag == (void*)1); + GPR_ASSERT(ev.tag == (void *)1); GPR_ASSERT(ev.success == 0); break; case GRPC_QUEUE_SHUTDOWN: diff --git a/test/core/client_config/lb_policies_test.c b/test/core/client_config/lb_policies_test.c index c088fe2c09..5f6166cbb5 100644 --- a/test/core/client_config/lb_policies_test.c +++ b/test/core/client_config/lb_policies_test.c @@ -137,9 +137,8 @@ static void kill_server(const servers_fixture *f, size_t i) { gpr_log(GPR_INFO, "KILLING SERVER %d", i); GPR_ASSERT(f->servers[i] != NULL); grpc_server_shutdown_and_notify(f->servers[i], f->cq, tag(10000)); - GPR_ASSERT( - grpc_completion_queue_pluck(f->cq, tag(10000), n_millis_time(5000), NULL) - .type == GRPC_OP_COMPLETE); + GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(10000), n_millis_time(5000), + NULL).type == GRPC_OP_COMPLETE); grpc_server_destroy(f->servers[i]); f->servers[i] = NULL; } @@ -205,8 +204,8 @@ static void teardown_servers(servers_fixture *f) { if (f->servers[i] == NULL) continue; grpc_server_shutdown_and_notify(f->servers[i], f->cq, tag(10000)); GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(10000), - n_millis_time(5000), NULL) - .type == GRPC_OP_COMPLETE); + n_millis_time(5000), + NULL).type == GRPC_OP_COMPLETE); grpc_server_destroy(f->servers[i]); } grpc_completion_queue_shutdown(f->cq); @@ -304,8 +303,8 @@ static int *perform_request(servers_fixture *f, grpc_channel *client, s_idx = -1; while ((ev = grpc_completion_queue_next( - f->cq, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1), NULL)) - .type != GRPC_QUEUE_TIMEOUT) { + f->cq, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1), NULL)).type != + GRPC_QUEUE_TIMEOUT) { GPR_ASSERT(ev.type == GRPC_OP_COMPLETE); read_tag = ((int)(gpr_intptr)ev.tag); gpr_log(GPR_DEBUG, "EVENT: success:%d, type:%d, tag:%d iter:%d", @@ -377,8 +376,9 @@ static int *perform_request(servers_fixture *f, grpc_channel *client, } } - GPR_ASSERT(grpc_completion_queue_next( - f->cq, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(200), NULL).type == GRPC_QUEUE_TIMEOUT); + GPR_ASSERT(grpc_completion_queue_next(f->cq, + GRPC_TIMEOUT_MILLIS_TO_DEADLINE(200), + NULL).type == GRPC_QUEUE_TIMEOUT); grpc_metadata_array_destroy(&rdata->initial_metadata_recv); grpc_metadata_array_destroy(&rdata->trailing_metadata_recv); @@ -800,7 +800,8 @@ static void verify_rebirth_round_robin(const servers_fixture *f, const size_t expected_seq_length = f->num_servers; int *seen_elements; - dump_array("actual_connection_sequence", actual_connection_sequence, num_iters); + dump_array("actual_connection_sequence", actual_connection_sequence, + num_iters); /* verify conn. seq. expectation */ /* get the first unique run of length "num_servers". */ diff --git a/test/core/end2end/end2end_nosec_tests.c b/test/core/end2end/end2end_nosec_tests.c new file mode 100644 index 0000000000..8f6cdd8a0a --- /dev/null +++ b/test/core/end2end/end2end_nosec_tests.c @@ -0,0 +1,267 @@ + + +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + + +/* This file is auto-generated */ + +#include "test/core/end2end/end2end_tests.h" +#include <string.h> +#include <grpc/support/log.h> + +extern void bad_hostname(grpc_end2end_test_config config); +extern void binary_metadata(grpc_end2end_test_config config); +extern void cancel_after_accept(grpc_end2end_test_config config); +extern void cancel_after_client_done(grpc_end2end_test_config config); +extern void cancel_after_invoke(grpc_end2end_test_config config); +extern void cancel_before_invoke(grpc_end2end_test_config config); +extern void cancel_in_a_vacuum(grpc_end2end_test_config config); +extern void cancel_with_status(grpc_end2end_test_config config); +extern void channel_connectivity(grpc_end2end_test_config config); +extern void channel_ping(grpc_end2end_test_config config); +extern void compressed_payload(grpc_end2end_test_config config); +extern void default_host(grpc_end2end_test_config config); +extern void disappearing_server(grpc_end2end_test_config config); +extern void empty_batch(grpc_end2end_test_config config); +extern void graceful_server_shutdown(grpc_end2end_test_config config); +extern void high_initial_seqno(grpc_end2end_test_config config); +extern void hpack_size(grpc_end2end_test_config config); +extern void invoke_large_request(grpc_end2end_test_config config); +extern void large_metadata(grpc_end2end_test_config config); +extern void max_concurrent_streams(grpc_end2end_test_config config); +extern void max_message_length(grpc_end2end_test_config config); +extern void metadata(grpc_end2end_test_config config); +extern void negative_deadline(grpc_end2end_test_config config); +extern void no_op(grpc_end2end_test_config config); +extern void payload(grpc_end2end_test_config config); +extern void ping_pong_streaming(grpc_end2end_test_config config); +extern void registered_call(grpc_end2end_test_config config); +extern void request_with_flags(grpc_end2end_test_config config); +extern void request_with_payload(grpc_end2end_test_config config); +extern void server_finishes_request(grpc_end2end_test_config config); +extern void shutdown_finishes_calls(grpc_end2end_test_config config); +extern void shutdown_finishes_tags(grpc_end2end_test_config config); +extern void simple_delayed_request(grpc_end2end_test_config config); +extern void simple_request(grpc_end2end_test_config config); +extern void trailing_metadata(grpc_end2end_test_config config); + +void grpc_end2end_tests(int argc, char **argv, grpc_end2end_test_config config) { + int i; + + if (argc <= 1) { + bad_hostname(config); + binary_metadata(config); + cancel_after_accept(config); + cancel_after_client_done(config); + cancel_after_invoke(config); + cancel_before_invoke(config); + cancel_in_a_vacuum(config); + cancel_with_status(config); + channel_connectivity(config); + channel_ping(config); + compressed_payload(config); + default_host(config); + disappearing_server(config); + empty_batch(config); + graceful_server_shutdown(config); + high_initial_seqno(config); + hpack_size(config); + invoke_large_request(config); + large_metadata(config); + max_concurrent_streams(config); + max_message_length(config); + metadata(config); + negative_deadline(config); + no_op(config); + payload(config); + ping_pong_streaming(config); + registered_call(config); + request_with_flags(config); + request_with_payload(config); + server_finishes_request(config); + shutdown_finishes_calls(config); + shutdown_finishes_tags(config); + simple_delayed_request(config); + simple_request(config); + trailing_metadata(config); + return; + } + + for (i = 1; i < argc; i++) { + if (0 == strcmp("bad_hostname", argv[i])) { + bad_hostname(config); + continue; + } + if (0 == strcmp("binary_metadata", argv[i])) { + binary_metadata(config); + continue; + } + if (0 == strcmp("cancel_after_accept", argv[i])) { + cancel_after_accept(config); + continue; + } + if (0 == strcmp("cancel_after_client_done", argv[i])) { + cancel_after_client_done(config); + continue; + } + if (0 == strcmp("cancel_after_invoke", argv[i])) { + cancel_after_invoke(config); + continue; + } + if (0 == strcmp("cancel_before_invoke", argv[i])) { + cancel_before_invoke(config); + continue; + } + if (0 == strcmp("cancel_in_a_vacuum", argv[i])) { + cancel_in_a_vacuum(config); + continue; + } + if (0 == strcmp("cancel_with_status", argv[i])) { + cancel_with_status(config); + continue; + } + if (0 == strcmp("channel_connectivity", argv[i])) { + channel_connectivity(config); + continue; + } + if (0 == strcmp("channel_ping", argv[i])) { + channel_ping(config); + continue; + } + if (0 == strcmp("compressed_payload", argv[i])) { + compressed_payload(config); + continue; + } + if (0 == strcmp("default_host", argv[i])) { + default_host(config); + continue; + } + if (0 == strcmp("disappearing_server", argv[i])) { + disappearing_server(config); + continue; + } + if (0 == strcmp("empty_batch", argv[i])) { + empty_batch(config); + continue; + } + if (0 == strcmp("graceful_server_shutdown", argv[i])) { + graceful_server_shutdown(config); + continue; + } + if (0 == strcmp("high_initial_seqno", argv[i])) { + high_initial_seqno(config); + continue; + } + if (0 == strcmp("hpack_size", argv[i])) { + hpack_size(config); + continue; + } + if (0 == strcmp("invoke_large_request", argv[i])) { + invoke_large_request(config); + continue; + } + if (0 == strcmp("large_metadata", argv[i])) { + large_metadata(config); + continue; + } + if (0 == strcmp("max_concurrent_streams", argv[i])) { + max_concurrent_streams(config); + continue; + } + if (0 == strcmp("max_message_length", argv[i])) { + max_message_length(config); + continue; + } + if (0 == strcmp("metadata", argv[i])) { + metadata(config); + continue; + } + if (0 == strcmp("negative_deadline", argv[i])) { + negative_deadline(config); + continue; + } + if (0 == strcmp("no_op", argv[i])) { + no_op(config); + continue; + } + if (0 == strcmp("payload", argv[i])) { + payload(config); + continue; + } + if (0 == strcmp("ping_pong_streaming", argv[i])) { + ping_pong_streaming(config); + continue; + } + if (0 == strcmp("registered_call", argv[i])) { + registered_call(config); + continue; + } + if (0 == strcmp("request_with_flags", argv[i])) { + request_with_flags(config); + continue; + } + if (0 == strcmp("request_with_payload", argv[i])) { + request_with_payload(config); + continue; + } + if (0 == strcmp("server_finishes_request", argv[i])) { + server_finishes_request(config); + continue; + } + if (0 == strcmp("shutdown_finishes_calls", argv[i])) { + shutdown_finishes_calls(config); + continue; + } + if (0 == strcmp("shutdown_finishes_tags", argv[i])) { + shutdown_finishes_tags(config); + continue; + } + if (0 == strcmp("simple_delayed_request", argv[i])) { + simple_delayed_request(config); + continue; + } + if (0 == strcmp("simple_request", argv[i])) { + simple_request(config); + continue; + } + if (0 == strcmp("trailing_metadata", argv[i])) { + trailing_metadata(config); + continue; + } + gpr_log(GPR_DEBUG, "not a test: '%%s'", argv[i]); + abort(); + } +} + diff --git a/test/core/end2end/end2end_tests.c b/test/core/end2end/end2end_tests.c new file mode 100644 index 0000000000..42a3a705f6 --- /dev/null +++ b/test/core/end2end/end2end_tests.c @@ -0,0 +1,273 @@ + + +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + + +/* This file is auto-generated */ + +#include "test/core/end2end/end2end_tests.h" +#include <string.h> +#include <grpc/support/log.h> + +extern void bad_hostname(grpc_end2end_test_config config); +extern void binary_metadata(grpc_end2end_test_config config); +extern void call_creds(grpc_end2end_test_config config); +extern void cancel_after_accept(grpc_end2end_test_config config); +extern void cancel_after_client_done(grpc_end2end_test_config config); +extern void cancel_after_invoke(grpc_end2end_test_config config); +extern void cancel_before_invoke(grpc_end2end_test_config config); +extern void cancel_in_a_vacuum(grpc_end2end_test_config config); +extern void cancel_with_status(grpc_end2end_test_config config); +extern void channel_connectivity(grpc_end2end_test_config config); +extern void channel_ping(grpc_end2end_test_config config); +extern void compressed_payload(grpc_end2end_test_config config); +extern void default_host(grpc_end2end_test_config config); +extern void disappearing_server(grpc_end2end_test_config config); +extern void empty_batch(grpc_end2end_test_config config); +extern void graceful_server_shutdown(grpc_end2end_test_config config); +extern void high_initial_seqno(grpc_end2end_test_config config); +extern void hpack_size(grpc_end2end_test_config config); +extern void invoke_large_request(grpc_end2end_test_config config); +extern void large_metadata(grpc_end2end_test_config config); +extern void max_concurrent_streams(grpc_end2end_test_config config); +extern void max_message_length(grpc_end2end_test_config config); +extern void metadata(grpc_end2end_test_config config); +extern void negative_deadline(grpc_end2end_test_config config); +extern void no_op(grpc_end2end_test_config config); +extern void payload(grpc_end2end_test_config config); +extern void ping_pong_streaming(grpc_end2end_test_config config); +extern void registered_call(grpc_end2end_test_config config); +extern void request_with_flags(grpc_end2end_test_config config); +extern void request_with_payload(grpc_end2end_test_config config); +extern void server_finishes_request(grpc_end2end_test_config config); +extern void shutdown_finishes_calls(grpc_end2end_test_config config); +extern void shutdown_finishes_tags(grpc_end2end_test_config config); +extern void simple_delayed_request(grpc_end2end_test_config config); +extern void simple_request(grpc_end2end_test_config config); +extern void trailing_metadata(grpc_end2end_test_config config); + +void grpc_end2end_tests(int argc, char **argv, grpc_end2end_test_config config) { + int i; + + if (argc <= 1) { + bad_hostname(config); + binary_metadata(config); + call_creds(config); + cancel_after_accept(config); + cancel_after_client_done(config); + cancel_after_invoke(config); + cancel_before_invoke(config); + cancel_in_a_vacuum(config); + cancel_with_status(config); + channel_connectivity(config); + channel_ping(config); + compressed_payload(config); + default_host(config); + disappearing_server(config); + empty_batch(config); + graceful_server_shutdown(config); + high_initial_seqno(config); + hpack_size(config); + invoke_large_request(config); + large_metadata(config); + max_concurrent_streams(config); + max_message_length(config); + metadata(config); + negative_deadline(config); + no_op(config); + payload(config); + ping_pong_streaming(config); + registered_call(config); + request_with_flags(config); + request_with_payload(config); + server_finishes_request(config); + shutdown_finishes_calls(config); + shutdown_finishes_tags(config); + simple_delayed_request(config); + simple_request(config); + trailing_metadata(config); + return; + } + + for (i = 1; i < argc; i++) { + if (0 == strcmp("bad_hostname", argv[i])) { + bad_hostname(config); + continue; + } + if (0 == strcmp("binary_metadata", argv[i])) { + binary_metadata(config); + continue; + } + if (0 == strcmp("call_creds", argv[i])) { + call_creds(config); + continue; + } + if (0 == strcmp("cancel_after_accept", argv[i])) { + cancel_after_accept(config); + continue; + } + if (0 == strcmp("cancel_after_client_done", argv[i])) { + cancel_after_client_done(config); + continue; + } + if (0 == strcmp("cancel_after_invoke", argv[i])) { + cancel_after_invoke(config); + continue; + } + if (0 == strcmp("cancel_before_invoke", argv[i])) { + cancel_before_invoke(config); + continue; + } + if (0 == strcmp("cancel_in_a_vacuum", argv[i])) { + cancel_in_a_vacuum(config); + continue; + } + if (0 == strcmp("cancel_with_status", argv[i])) { + cancel_with_status(config); + continue; + } + if (0 == strcmp("channel_connectivity", argv[i])) { + channel_connectivity(config); + continue; + } + if (0 == strcmp("channel_ping", argv[i])) { + channel_ping(config); + continue; + } + if (0 == strcmp("compressed_payload", argv[i])) { + compressed_payload(config); + continue; + } + if (0 == strcmp("default_host", argv[i])) { + default_host(config); + continue; + } + if (0 == strcmp("disappearing_server", argv[i])) { + disappearing_server(config); + continue; + } + if (0 == strcmp("empty_batch", argv[i])) { + empty_batch(config); + continue; + } + if (0 == strcmp("graceful_server_shutdown", argv[i])) { + graceful_server_shutdown(config); + continue; + } + if (0 == strcmp("high_initial_seqno", argv[i])) { + high_initial_seqno(config); + continue; + } + if (0 == strcmp("hpack_size", argv[i])) { + hpack_size(config); + continue; + } + if (0 == strcmp("invoke_large_request", argv[i])) { + invoke_large_request(config); + continue; + } + if (0 == strcmp("large_metadata", argv[i])) { + large_metadata(config); + continue; + } + if (0 == strcmp("max_concurrent_streams", argv[i])) { + max_concurrent_streams(config); + continue; + } + if (0 == strcmp("max_message_length", argv[i])) { + max_message_length(config); + continue; + } + if (0 == strcmp("metadata", argv[i])) { + metadata(config); + continue; + } + if (0 == strcmp("negative_deadline", argv[i])) { + negative_deadline(config); + continue; + } + if (0 == strcmp("no_op", argv[i])) { + no_op(config); + continue; + } + if (0 == strcmp("payload", argv[i])) { + payload(config); + continue; + } + if (0 == strcmp("ping_pong_streaming", argv[i])) { + ping_pong_streaming(config); + continue; + } + if (0 == strcmp("registered_call", argv[i])) { + registered_call(config); + continue; + } + if (0 == strcmp("request_with_flags", argv[i])) { + request_with_flags(config); + continue; + } + if (0 == strcmp("request_with_payload", argv[i])) { + request_with_payload(config); + continue; + } + if (0 == strcmp("server_finishes_request", argv[i])) { + server_finishes_request(config); + continue; + } + if (0 == strcmp("shutdown_finishes_calls", argv[i])) { + shutdown_finishes_calls(config); + continue; + } + if (0 == strcmp("shutdown_finishes_tags", argv[i])) { + shutdown_finishes_tags(config); + continue; + } + if (0 == strcmp("simple_delayed_request", argv[i])) { + simple_delayed_request(config); + continue; + } + if (0 == strcmp("simple_request", argv[i])) { + simple_request(config); + continue; + } + if (0 == strcmp("trailing_metadata", argv[i])) { + trailing_metadata(config); + continue; + } + gpr_log(GPR_DEBUG, "not a test: '%%s'", argv[i]); + abort(); + } +} + diff --git a/test/core/end2end/end2end_tests.h b/test/core/end2end/end2end_tests.h index 3f1665613c..087abfd741 100644 --- a/test/core/end2end/end2end_tests.h +++ b/test/core/end2end/end2end_tests.h @@ -64,6 +64,6 @@ struct grpc_end2end_test_config { void (*tear_down_data)(grpc_end2end_test_fixture *f); }; -void grpc_end2end_tests(grpc_end2end_test_config config); +void grpc_end2end_tests(int argc, char **argv, grpc_end2end_test_config config); #endif /* GRPC_TEST_CORE_END2END_END2END_TESTS_H */ diff --git a/test/core/end2end/fixtures/h2_census.c b/test/core/end2end/fixtures/h2_census.c index 90f3713cc8..e74c9ae243 100644 --- a/test/core/end2end/fixtures/h2_census.c +++ b/test/core/end2end/fixtures/h2_census.c @@ -123,7 +123,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_compress.c b/test/core/end2end/fixtures/h2_compress.c index 6e7a1faf55..fea8a4f751 100644 --- a/test/core/end2end/fixtures/h2_compress.c +++ b/test/core/end2end/fixtures/h2_compress.c @@ -127,7 +127,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_fakesec.c b/test/core/end2end/fixtures/h2_fakesec.c index bc009e1df1..2767f1df4a 100644 --- a/test/core/end2end/fixtures/h2_fakesec.c +++ b/test/core/end2end/fixtures/h2_fakesec.c @@ -154,7 +154,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_full+pipe.c b/test/core/end2end/fixtures/h2_full+pipe.c index 83cde49305..4b93581899 100644 --- a/test/core/end2end/fixtures/h2_full+pipe.c +++ b/test/core/end2end/fixtures/h2_full+pipe.c @@ -111,7 +111,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_full+poll+pipe.c b/test/core/end2end/fixtures/h2_full+poll+pipe.c index ffae11f90d..d475a7bb55 100644 --- a/test/core/end2end/fixtures/h2_full+poll+pipe.c +++ b/test/core/end2end/fixtures/h2_full+poll+pipe.c @@ -111,7 +111,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_full+poll.c b/test/core/end2end/fixtures/h2_full+poll.c index 48feefc931..3f5e6096f6 100644 --- a/test/core/end2end/fixtures/h2_full+poll.c +++ b/test/core/end2end/fixtures/h2_full+poll.c @@ -109,7 +109,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_full.c b/test/core/end2end/fixtures/h2_full.c index 0170dcf0e5..ebaa1c6a2c 100644 --- a/test/core/end2end/fixtures/h2_full.c +++ b/test/core/end2end/fixtures/h2_full.c @@ -108,7 +108,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_oauth2.c b/test/core/end2end/fixtures/h2_oauth2.c index 7a34cc67d8..e2c82917ef 100644 --- a/test/core/end2end/fixtures/h2_oauth2.c +++ b/test/core/end2end/fixtures/h2_oauth2.c @@ -230,7 +230,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_proxy.c b/test/core/end2end/fixtures/h2_proxy.c index 44083e2676..8bcc1b6ee0 100644 --- a/test/core/end2end/fixtures/h2_proxy.c +++ b/test/core/end2end/fixtures/h2_proxy.c @@ -123,7 +123,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_sockpair+trace.c b/test/core/end2end/fixtures/h2_sockpair+trace.c index ccc8631d94..511c8b1a46 100644 --- a/test/core/end2end/fixtures/h2_sockpair+trace.c +++ b/test/core/end2end/fixtures/h2_sockpair+trace.c @@ -169,7 +169,7 @@ int main(int argc, char **argv) { GPR_ASSERT(1 == grpc_tracer_set_enabled("all", 1)); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_sockpair.c b/test/core/end2end/fixtures/h2_sockpair.c index a6a84c9b1a..6b4787b1e5 100644 --- a/test/core/end2end/fixtures/h2_sockpair.c +++ b/test/core/end2end/fixtures/h2_sockpair.c @@ -153,7 +153,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_sockpair_1byte.c b/test/core/end2end/fixtures/h2_sockpair_1byte.c index 4b8f9054ef..3ae8e96683 100644 --- a/test/core/end2end/fixtures/h2_sockpair_1byte.c +++ b/test/core/end2end/fixtures/h2_sockpair_1byte.c @@ -153,7 +153,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_ssl+poll.c b/test/core/end2end/fixtures/h2_ssl+poll.c index 37e1758f00..614654ed52 100644 --- a/test/core/end2end/fixtures/h2_ssl+poll.c +++ b/test/core/end2end/fixtures/h2_ssl+poll.c @@ -179,7 +179,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_ssl.c b/test/core/end2end/fixtures/h2_ssl.c index f5a006bd08..5c63dfb6aa 100644 --- a/test/core/end2end/fixtures/h2_ssl.c +++ b/test/core/end2end/fixtures/h2_ssl.c @@ -176,7 +176,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_ssl_proxy.c b/test/core/end2end/fixtures/h2_ssl_proxy.c index 7233cdbe2d..a93bd83a1f 100644 --- a/test/core/end2end/fixtures/h2_ssl_proxy.c +++ b/test/core/end2end/fixtures/h2_ssl_proxy.c @@ -206,7 +206,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_uchannel.c b/test/core/end2end/fixtures/h2_uchannel.c index ea630c3275..9b622e80d6 100644 --- a/test/core/end2end/fixtures/h2_uchannel.c +++ b/test/core/end2end/fixtures/h2_uchannel.c @@ -348,7 +348,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_uds+poll.c b/test/core/end2end/fixtures/h2_uds+poll.c index 05b9ea0949..155017c887 100644 --- a/test/core/end2end/fixtures/h2_uds+poll.c +++ b/test/core/end2end/fixtures/h2_uds+poll.c @@ -115,7 +115,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/fixtures/h2_uds.c b/test/core/end2end/fixtures/h2_uds.c index 59d39bbb0f..30928270e5 100644 --- a/test/core/end2end/fixtures/h2_uds.c +++ b/test/core/end2end/fixtures/h2_uds.c @@ -113,7 +113,7 @@ int main(int argc, char **argv) { grpc_init(); for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) { - grpc_end2end_tests(configs[i]); + grpc_end2end_tests(argc, argv, configs[i]); } grpc_shutdown(); diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py index 9f94cfe6be..abb50399b3 100755 --- a/test/core/end2end/gen_build_yaml.py +++ b/test/core/end2end/gen_build_yaml.py @@ -77,8 +77,8 @@ END2END_FIXTURES = { } TestOptions = collections.namedtuple( - 'TestOptions', 'needs_fullstack needs_dns proxyable flaky secure traceable') -default_test_options = TestOptions(False, False, True, False, False, True) + 'TestOptions', 'needs_fullstack needs_dns proxyable secure traceable') +default_test_options = TestOptions(False, False, True, False, True) connectivity_test_options = default_test_options._replace(needs_fullstack=True) # maps test names to options @@ -173,7 +173,7 @@ def main(): else END2END_FIXTURES[f].platforms, 'deps': sec_deps, 'headers': ['test/core/end2end/end2end_tests.h'], - 'vs_proj_dir': 'test', + 'vs_proj_dir': 'test/end2end/fixtures/%s' % f, } for f in sorted(END2END_FIXTURES.keys()) ] + [ { @@ -186,34 +186,38 @@ def main(): else END2END_FIXTURES[f].platforms, 'deps': unsec_deps, 'headers': ['test/core/end2end/end2end_tests.h'], - 'vs_proj_dir': 'test', + 'vs_proj_dir': 'test/end2end/fixtures/%s' % f, } for f in sorted(END2END_FIXTURES.keys()) if not END2END_FIXTURES[f].secure ] + [ { - 'name': 'end2end_test_%s' % t, + 'name': 'end2end_tests', 'build': 'private', 'language': 'c', - 'secure': 'check' if END2END_TESTS[t].secure else False, - 'src': ['test/core/end2end/tests/%s.c' % t], + 'secure': True, + 'src': ['test/core/end2end/end2end_tests.c'] + [ + 'test/core/end2end/tests/%s.c' % t + for t in sorted(END2END_TESTS.keys())], 'headers': ['test/core/end2end/tests/cancel_test_helpers.h', 'test/core/end2end/end2end_tests.h'], 'deps': sec_deps, - 'vs_proj_dir': 'test', - } for t in sorted(END2END_TESTS.keys()) + 'vs_proj_dir': 'test/end2end/tests', + } ] + [ { - 'name': 'end2end_nosec_test_%s' % t, + 'name': 'end2end_nosec_tests', 'build': 'private', 'language': 'c', 'secure': False, - 'src': ['test/core/end2end/tests/%s.c' % t], + 'src': ['test/core/end2end/end2end_nosec_tests.c'] + [ + 'test/core/end2end/tests/%s.c' % t + for t in sorted(END2END_TESTS.keys()) + if not END2END_TESTS[t].secure], 'headers': ['test/core/end2end/tests/cancel_test_helpers.h', 'test/core/end2end/end2end_tests.h'], 'deps': unsec_deps, - 'vs_proj_dir': 'test', - } for t in sorted(END2END_TESTS.keys()) - if not END2END_TESTS[t].secure + 'vs_proj_dir': 'test/end2end/tests', + } ] + [ { 'name': 'end2end_certs', @@ -224,49 +228,81 @@ def main(): "test/core/end2end/data/server1_cert.c", "test/core/end2end/data/server1_key.c" ], - 'vs_proj_dir': 'test', + 'vs_proj_dir': 'test/end2end', } ], 'targets': [ { - 'name': '%s_%s_test' % (f, t), + 'name': '%s_test' % f, 'build': 'test', 'language': 'c', + 'run': False, 'src': [], - 'flaky': END2END_TESTS[t].flaky, 'platforms': END2END_FIXTURES[f].platforms, 'ci_platforms': (END2END_FIXTURES[f].platforms if END2END_FIXTURES[f].ci_mac else without( END2END_FIXTURES[f].platforms, 'mac')), 'deps': [ - 'end2end_fixture_%s' % f, 'end2end_test_%s' % t + 'end2end_fixture_%s' % f, 'end2end_tests' ] + sec_deps, - 'vs_proj_dir': 'test', + 'vs_proj_dir': 'test/end2end/tests', } for f in sorted(END2END_FIXTURES.keys()) - for t in sorted(END2END_TESTS.keys()) if compatible(f, t) ] + [ { - 'name': '%s_%s_nosec_test' % (f, t), + 'name': '%s_nosec_test' % f, 'build': 'test', 'language': 'c', 'secure': 'no', 'src': [], - 'flaky': END2END_TESTS[t].flaky, + 'run': False, 'platforms': END2END_FIXTURES[f].platforms, 'ci_platforms': (END2END_FIXTURES[f].platforms if END2END_FIXTURES[f].ci_mac else without( END2END_FIXTURES[f].platforms, 'mac')), 'deps': [ - 'end2end_nosec_fixture_%s' % f, 'end2end_nosec_test_%s' % t + 'end2end_nosec_fixture_%s' % f, 'end2end_nosec_tests' ] + unsec_deps, - 'vs_proj_dir': 'test', + 'vs_proj_dir': 'test/end2end/tests', + } + for f in sorted(END2END_FIXTURES.keys()) + if not END2END_FIXTURES[f].secure + ], + 'tests': [ + { + 'name': '%s_test' % f, + 'args': [t], + 'exclude_configs': [], + 'platforms': END2END_FIXTURES[f].platforms, + 'ci_platforms': (END2END_FIXTURES[f].platforms + if END2END_FIXTURES[f].ci_mac else without( + END2END_FIXTURES[f].platforms, 'mac')), + 'flaky': False, + 'language': 'c', + } + for f in sorted(END2END_FIXTURES.keys()) + for t in sorted(END2END_TESTS.keys()) if compatible(f, t) + ] + [ + { + 'name': '%s_test' % f, + 'args': [t], + 'exclude_configs': [], + 'platforms': END2END_FIXTURES[f].platforms, + 'ci_platforms': (END2END_FIXTURES[f].platforms + if END2END_FIXTURES[f].ci_mac else without( + END2END_FIXTURES[f].platforms, 'mac')), + 'flaky': False, + 'language': 'c', } for f in sorted(END2END_FIXTURES.keys()) if not END2END_FIXTURES[f].secure for t in sorted(END2END_TESTS.keys()) if compatible(f, t) and not END2END_TESTS[t].secure - ] + ], + 'core_end2end_tests': dict( + (t, END2END_TESTS[t].secure) + for t in END2END_TESTS.keys() + ) } print yaml.dump(json) diff --git a/test/core/end2end/tests/bad_hostname.c b/test/core/end2end/tests/bad_hostname.c index ca4c1a9805..17f0b98ec3 100644 --- a/test/core/end2end/tests/bad_hostname.c +++ b/test/core/end2end/tests/bad_hostname.c @@ -174,7 +174,7 @@ static void test_invoke_simple_request(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void bad_hostname(grpc_end2end_test_config config) { if (config.feature_mask & FEATURE_MASK_SUPPORTS_HOSTNAME_VERIFICATION) { test_invoke_simple_request(config); } diff --git a/test/core/end2end/tests/binary_metadata.c b/test/core/end2end/tests/binary_metadata.c index e6404d6f51..6b506bafcc 100644 --- a/test/core/end2end/tests/binary_metadata.c +++ b/test/core/end2end/tests/binary_metadata.c @@ -284,6 +284,6 @@ static void test_request_response_with_metadata_and_payload( config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void binary_metadata(grpc_end2end_test_config config) { test_request_response_with_metadata_and_payload(config); } diff --git a/test/core/end2end/tests/call_creds.c b/test/core/end2end/tests/call_creds.c index bbfad21b62..910d280822 100644 --- a/test/core/end2end/tests/call_creds.c +++ b/test/core/end2end/tests/call_creds.c @@ -467,7 +467,7 @@ static void test_request_with_server_rejecting_client_creds( config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void call_creds(grpc_end2end_test_config config) { if (config.feature_mask & FEATURE_MASK_SUPPORTS_PER_CALL_CREDENTIALS) { test_request_response_with_payload_and_call_creds(config); test_request_response_with_payload_and_overridden_call_creds(config); diff --git a/test/core/end2end/tests/cancel_after_accept.c b/test/core/end2end/tests/cancel_after_accept.c index 68bd4bc36e..a4e5dd1fc8 100644 --- a/test/core/end2end/tests/cancel_after_accept.c +++ b/test/core/end2end/tests/cancel_after_accept.c @@ -226,7 +226,7 @@ static void test_cancel_after_accept(grpc_end2end_test_config config, config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void cancel_after_accept(grpc_end2end_test_config config) { unsigned i; for (i = 0; i < GPR_ARRAY_SIZE(cancellation_modes); i++) { diff --git a/test/core/end2end/tests/cancel_after_client_done.c b/test/core/end2end/tests/cancel_after_client_done.c index 1e919ce19e..86d359575e 100644 --- a/test/core/end2end/tests/cancel_after_client_done.c +++ b/test/core/end2end/tests/cancel_after_client_done.c @@ -230,7 +230,7 @@ static void test_cancel_after_accept_and_writes_closed( config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void cancel_after_client_done(grpc_end2end_test_config config) { unsigned i; for (i = 0; i < GPR_ARRAY_SIZE(cancellation_modes); i++) { diff --git a/test/core/end2end/tests/cancel_after_invoke.c b/test/core/end2end/tests/cancel_after_invoke.c index a84f9be14e..47ade8c0fe 100644 --- a/test/core/end2end/tests/cancel_after_invoke.c +++ b/test/core/end2end/tests/cancel_after_invoke.c @@ -190,7 +190,7 @@ static void test_cancel_after_invoke(grpc_end2end_test_config config, config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void cancel_after_invoke(grpc_end2end_test_config config) { unsigned i, j; for (j = 2; j < 6; j++) { diff --git a/test/core/end2end/tests/cancel_before_invoke.c b/test/core/end2end/tests/cancel_before_invoke.c index 61574df3d0..e827a95f48 100644 --- a/test/core/end2end/tests/cancel_before_invoke.c +++ b/test/core/end2end/tests/cancel_before_invoke.c @@ -188,7 +188,7 @@ static void test_cancel_before_invoke(grpc_end2end_test_config config, config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void cancel_before_invoke(grpc_end2end_test_config config) { size_t i; for (i = 1; i <= 6; i++) { test_cancel_before_invoke(config, i); diff --git a/test/core/end2end/tests/cancel_in_a_vacuum.c b/test/core/end2end/tests/cancel_in_a_vacuum.c index 6435d22ee9..2168e1dcc6 100644 --- a/test/core/end2end/tests/cancel_in_a_vacuum.c +++ b/test/core/end2end/tests/cancel_in_a_vacuum.c @@ -120,7 +120,7 @@ static void test_cancel_in_a_vacuum(grpc_end2end_test_config config, config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void cancel_in_a_vacuum(grpc_end2end_test_config config) { unsigned i; for (i = 0; i < GPR_ARRAY_SIZE(cancellation_modes); i++) { diff --git a/test/core/end2end/tests/cancel_with_status.c b/test/core/end2end/tests/cancel_with_status.c index 2e36902a51..cb4cd1bf63 100644 --- a/test/core/end2end/tests/cancel_with_status.c +++ b/test/core/end2end/tests/cancel_with_status.c @@ -176,7 +176,7 @@ static void test_invoke_simple_request(grpc_end2end_test_config config, config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void cancel_with_status(grpc_end2end_test_config config) { size_t i; for (i = 1; i <= 4; i++) { test_invoke_simple_request(config, i); diff --git a/test/core/end2end/tests/channel_connectivity.c b/test/core/end2end/tests/channel_connectivity.c index 0e0ac03015..8001f3f398 100644 --- a/test/core/end2end/tests/channel_connectivity.c +++ b/test/core/end2end/tests/channel_connectivity.c @@ -168,7 +168,7 @@ static void test_connectivity(grpc_end2end_test_config config) { cq_verifier_destroy(cqv); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void channel_connectivity(grpc_end2end_test_config config) { GPR_ASSERT(config.feature_mask & FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION); test_connectivity(config); } diff --git a/test/core/end2end/tests/channel_ping.c b/test/core/end2end/tests/channel_ping.c index 441e49ee7a..c97778fbf0 100644 --- a/test/core/end2end/tests/channel_ping.c +++ b/test/core/end2end/tests/channel_ping.c @@ -91,7 +91,7 @@ static void test_ping(grpc_end2end_test_config config) { cq_verifier_destroy(cqv); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void channel_ping(grpc_end2end_test_config config) { GPR_ASSERT(config.feature_mask & FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION); test_ping(config); } diff --git a/test/core/end2end/tests/compressed_payload.c b/test/core/end2end/tests/compressed_payload.c index 0d07110aef..2aa852817f 100644 --- a/test/core/end2end/tests/compressed_payload.c +++ b/test/core/end2end/tests/compressed_payload.c @@ -330,7 +330,7 @@ static void test_invoke_request_with_compressed_payload_md_override( GRPC_COMPRESS_DEFLATE, GRPC_COMPRESS_NONE, &none_compression_override); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void compressed_payload(grpc_end2end_test_config config) { test_invoke_request_with_exceptionally_uncompressed_payload(config); test_invoke_request_with_uncompressed_payload(config); test_invoke_request_with_compressed_payload(config); diff --git a/test/core/end2end/tests/default_host.c b/test/core/end2end/tests/default_host.c index fc06b8950d..98f3547041 100644 --- a/test/core/end2end/tests/default_host.c +++ b/test/core/end2end/tests/default_host.c @@ -225,7 +225,7 @@ static void test_invoke_simple_request(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void default_host(grpc_end2end_test_config config) { if ((config.feature_mask & FEATURE_MASK_SUPPORTS_HOSTNAME_VERIFICATION) == 0) return; if ((config.feature_mask & FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION) == 0) diff --git a/test/core/end2end/tests/disappearing_server.c b/test/core/end2end/tests/disappearing_server.c index de3ea16f66..0e261a0e46 100644 --- a/test/core/end2end/tests/disappearing_server.c +++ b/test/core/end2end/tests/disappearing_server.c @@ -209,7 +209,7 @@ static void disappearing_server_test(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void disappearing_server(grpc_end2end_test_config config) { GPR_ASSERT(config.feature_mask & FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION); disappearing_server_test(config); } diff --git a/test/core/end2end/tests/empty_batch.c b/test/core/end2end/tests/empty_batch.c index f331aa92e0..6d85399c85 100644 --- a/test/core/end2end/tests/empty_batch.c +++ b/test/core/end2end/tests/empty_batch.c @@ -129,6 +129,6 @@ static void test_invoke_empty_body(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void empty_batch(grpc_end2end_test_config config) { test_invoke_empty_body(config); } diff --git a/test/core/end2end/tests/graceful_server_shutdown.c b/test/core/end2end/tests/graceful_server_shutdown.c index 8efa5a34d0..69dc397b6b 100644 --- a/test/core/end2end/tests/graceful_server_shutdown.c +++ b/test/core/end2end/tests/graceful_server_shutdown.c @@ -207,6 +207,6 @@ static void test_early_server_shutdown_finishes_inflight_calls( config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void graceful_server_shutdown(grpc_end2end_test_config config) { test_early_server_shutdown_finishes_inflight_calls(config); } diff --git a/test/core/end2end/tests/high_initial_seqno.c b/test/core/end2end/tests/high_initial_seqno.c index 399b6e2183..42328ae558 100644 --- a/test/core/end2end/tests/high_initial_seqno.c +++ b/test/core/end2end/tests/high_initial_seqno.c @@ -231,7 +231,7 @@ static void test_invoke_10_simple_requests(grpc_end2end_test_config config, gpr_free(name); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void high_initial_seqno(grpc_end2end_test_config config) { test_invoke_10_simple_requests(config, 16777213); if (config.feature_mask & FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION) { test_invoke_10_simple_requests(config, 2147483645); diff --git a/test/core/end2end/tests/hpack_size.c b/test/core/end2end/tests/hpack_size.c index f16883ecfd..a5319aebd9 100644 --- a/test/core/end2end/tests/hpack_size.c +++ b/test/core/end2end/tests/hpack_size.c @@ -433,7 +433,7 @@ static void test_size(grpc_end2end_test_config config, int encode_size, gpr_free(name); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void hpack_size(grpc_end2end_test_config config) { static const int interesting_sizes[] = {4096, 0, 100, 1000, 32768, 4 * 1024 * 1024}; size_t i, j; diff --git a/test/core/end2end/tests/invoke_large_request.c b/test/core/end2end/tests/invoke_large_request.c index c612af91e3..88879a9011 100644 --- a/test/core/end2end/tests/invoke_large_request.c +++ b/test/core/end2end/tests/invoke_large_request.c @@ -251,6 +251,6 @@ static void test_invoke_large_request(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void invoke_large_request(grpc_end2end_test_config config) { test_invoke_large_request(config); } diff --git a/test/core/end2end/tests/large_metadata.c b/test/core/end2end/tests/large_metadata.c index 763f75d59d..09188be1cd 100644 --- a/test/core/end2end/tests/large_metadata.c +++ b/test/core/end2end/tests/large_metadata.c @@ -242,6 +242,6 @@ static void test_request_with_large_metadata(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void large_metadata(grpc_end2end_test_config config) { test_request_with_large_metadata(config); } diff --git a/test/core/end2end/tests/max_concurrent_streams.c b/test/core/end2end/tests/max_concurrent_streams.c index d39aabaf70..a25579ea4a 100644 --- a/test/core/end2end/tests/max_concurrent_streams.c +++ b/test/core/end2end/tests/max_concurrent_streams.c @@ -433,6 +433,6 @@ static void test_max_concurrent_streams(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void max_concurrent_streams(grpc_end2end_test_config config) { test_max_concurrent_streams(config); } diff --git a/test/core/end2end/tests/max_message_length.c b/test/core/end2end/tests/max_message_length.c index c311f0a44e..4da42dd9d8 100644 --- a/test/core/end2end/tests/max_message_length.c +++ b/test/core/end2end/tests/max_message_length.c @@ -218,6 +218,6 @@ static void test_max_message_length(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void max_message_length(grpc_end2end_test_config config) { test_max_message_length(config); } diff --git a/test/core/end2end/tests/metadata.c b/test/core/end2end/tests/metadata.c index 2593cde027..6cda00837f 100644 --- a/test/core/end2end/tests/metadata.c +++ b/test/core/end2end/tests/metadata.c @@ -260,6 +260,6 @@ static void test_request_response_with_metadata_and_payload( config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void metadata(grpc_end2end_test_config config) { test_request_response_with_metadata_and_payload(config); } diff --git a/test/core/end2end/tests/negative_deadline.c b/test/core/end2end/tests/negative_deadline.c index 23b8591e25..5df632b4cf 100644 --- a/test/core/end2end/tests/negative_deadline.c +++ b/test/core/end2end/tests/negative_deadline.c @@ -173,7 +173,7 @@ static void test_invoke_simple_request(grpc_end2end_test_config config, config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void negative_deadline(grpc_end2end_test_config config) { size_t i; for (i = 1; i <= 4; i++) { test_invoke_simple_request(config, i); diff --git a/test/core/end2end/tests/no_op.c b/test/core/end2end/tests/no_op.c index dbaad3004e..0f3ec102ab 100644 --- a/test/core/end2end/tests/no_op.c +++ b/test/core/end2end/tests/no_op.c @@ -103,4 +103,4 @@ static void test_no_op(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { test_no_op(config); } +void no_op(grpc_end2end_test_config config) { test_no_op(config); } diff --git a/test/core/end2end/tests/payload.c b/test/core/end2end/tests/payload.c index df44c0de1e..af86c199c3 100644 --- a/test/core/end2end/tests/payload.c +++ b/test/core/end2end/tests/payload.c @@ -264,7 +264,7 @@ static void test_invoke_10_request_response_with_payload( config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void payload(grpc_end2end_test_config config) { test_invoke_request_response_with_payload(config); test_invoke_10_request_response_with_payload(config); } diff --git a/test/core/end2end/tests/ping_pong_streaming.c b/test/core/end2end/tests/ping_pong_streaming.c index 27180dd679..3d5f15fbea 100644 --- a/test/core/end2end/tests/ping_pong_streaming.c +++ b/test/core/end2end/tests/ping_pong_streaming.c @@ -268,7 +268,7 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void ping_pong_streaming(grpc_end2end_test_config config) { int i; for (i = 1; i < 10; i++) { diff --git a/test/core/end2end/tests/registered_call.c b/test/core/end2end/tests/registered_call.c index ef4d5063b5..ad8981ecfe 100644 --- a/test/core/end2end/tests/registered_call.c +++ b/test/core/end2end/tests/registered_call.c @@ -227,7 +227,7 @@ static void test_invoke_10_simple_requests(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void registered_call(grpc_end2end_test_config config) { test_invoke_simple_request(config); test_invoke_10_simple_requests(config); } diff --git a/test/core/end2end/tests/request_with_flags.c b/test/core/end2end/tests/request_with_flags.c index 0ad5a4612e..fa2ed3bc4a 100644 --- a/test/core/end2end/tests/request_with_flags.c +++ b/test/core/end2end/tests/request_with_flags.c @@ -185,7 +185,7 @@ static void test_invoke_request_with_flags( config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void request_with_flags(grpc_end2end_test_config config) { size_t i; gpr_uint32 flags_for_op[GRPC_OP_RECV_CLOSE_ON_SERVER + 1]; diff --git a/test/core/end2end/tests/request_with_payload.c b/test/core/end2end/tests/request_with_payload.c index ee5b071372..7b02465f1e 100644 --- a/test/core/end2end/tests/request_with_payload.c +++ b/test/core/end2end/tests/request_with_payload.c @@ -229,6 +229,6 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void request_with_payload(grpc_end2end_test_config config) { test_invoke_request_with_payload(config); } diff --git a/test/core/end2end/tests/server_finishes_request.c b/test/core/end2end/tests/server_finishes_request.c index 94863e7280..5c6749962c 100644 --- a/test/core/end2end/tests/server_finishes_request.c +++ b/test/core/end2end/tests/server_finishes_request.c @@ -207,6 +207,6 @@ static void test_invoke_simple_request(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void server_finishes_request(grpc_end2end_test_config config) { test_invoke_simple_request(config); } diff --git a/test/core/end2end/tests/shutdown_finishes_calls.c b/test/core/end2end/tests/shutdown_finishes_calls.c index aa679081ec..206b376463 100644 --- a/test/core/end2end/tests/shutdown_finishes_calls.c +++ b/test/core/end2end/tests/shutdown_finishes_calls.c @@ -189,6 +189,6 @@ static void test_early_server_shutdown_finishes_inflight_calls( config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void shutdown_finishes_calls(grpc_end2end_test_config config) { test_early_server_shutdown_finishes_inflight_calls(config); } diff --git a/test/core/end2end/tests/shutdown_finishes_tags.c b/test/core/end2end/tests/shutdown_finishes_tags.c index 53a1573e16..8e19c32691 100644 --- a/test/core/end2end/tests/shutdown_finishes_tags.c +++ b/test/core/end2end/tests/shutdown_finishes_tags.c @@ -116,6 +116,6 @@ static void test_early_server_shutdown_finishes_tags( cq_verifier_destroy(cqv); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void shutdown_finishes_tags(grpc_end2end_test_config config) { test_early_server_shutdown_finishes_tags(config); } diff --git a/test/core/end2end/tests/simple_delayed_request.c b/test/core/end2end/tests/simple_delayed_request.c index 04447f9df4..4657019501 100644 --- a/test/core/end2end/tests/simple_delayed_request.c +++ b/test/core/end2end/tests/simple_delayed_request.c @@ -216,7 +216,7 @@ static void test_simple_delayed_request_long(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void simple_delayed_request(grpc_end2end_test_config config) { GPR_ASSERT(config.feature_mask & FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION); test_simple_delayed_request_short(config); test_simple_delayed_request_long(config); diff --git a/test/core/end2end/tests/simple_request.c b/test/core/end2end/tests/simple_request.c index ce5df86a92..9d3ecd5efa 100644 --- a/test/core/end2end/tests/simple_request.c +++ b/test/core/end2end/tests/simple_request.c @@ -238,7 +238,7 @@ static void test_invoke_10_simple_requests(grpc_end2end_test_config config) { config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void simple_request(grpc_end2end_test_config config) { int i; for (i = 0; i < 10; i++) { test_invoke_simple_request(config); diff --git a/test/core/end2end/tests/trailing_metadata.c b/test/core/end2end/tests/trailing_metadata.c index 71f10eb8f5..31182bc68d 100644 --- a/test/core/end2end/tests/trailing_metadata.c +++ b/test/core/end2end/tests/trailing_metadata.c @@ -265,6 +265,6 @@ static void test_request_response_with_metadata_and_payload( config.tear_down_data(&f); } -void grpc_end2end_tests(grpc_end2end_test_config config) { +void trailing_metadata(grpc_end2end_test_config config) { test_request_response_with_metadata_and_payload(config); } diff --git a/test/core/security/security_connector_test.c b/test/core/security/security_connector_test.c index 3f6c592b0b..0dcffa40ce 100644 --- a/test/core/security/security_connector_test.c +++ b/test/core/security/security_connector_test.c @@ -60,8 +60,39 @@ static int check_transport_security_type(const grpc_auth_context *ctx) { return 1; } +static int check_peer_property(const tsi_peer *peer, + const tsi_peer_property *expected) { + size_t i; + for (i = 0; i < peer->property_count; i++) { + const tsi_peer_property *prop = &peer->properties[i]; + if ((strcmp(prop->name, expected->name) == 0) && + (prop->value.length == expected->value.length) && + (memcmp(prop->value.data, expected->value.data, + expected->value.length) == 0)) { + return 1; + } + } + return 0; /* Not found... */ +} + +static int check_ssl_peer_equivalence(const tsi_peer *original, + const tsi_peer *reconstructed) { + /* The reconstructed peer only has CN and SAN properties. */ + size_t i; + for (i = 0; i < original->property_count; i++) { + const tsi_peer_property *prop = &original->properties[i]; + if ((strcmp(prop->name, TSI_X509_SUBJECT_COMMON_NAME_PEER_PROPERTY) == 0) || + (strcmp(prop->name, TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY) == + 0)) { + if (!check_peer_property(reconstructed, prop)) return 0; + } + } + return 1; +} + static void test_unauthenticated_ssl_peer(void) { tsi_peer peer; + tsi_peer rpeer; grpc_auth_context *ctx; GPR_ASSERT(tsi_construct_peer(1, &peer) == TSI_OK); GPR_ASSERT(tsi_construct_string_peer_property_from_cstring( @@ -72,6 +103,10 @@ static void test_unauthenticated_ssl_peer(void) { GPR_ASSERT(!grpc_auth_context_peer_is_authenticated(ctx)); GPR_ASSERT(check_transport_security_type(ctx)); + rpeer = tsi_shallow_peer_from_ssl_auth_context(ctx); + GPR_ASSERT(check_ssl_peer_equivalence(&peer, &rpeer)); + + tsi_shallow_peer_destruct(&rpeer); tsi_peer_destruct(&peer); GRPC_AUTH_CONTEXT_UNREF(ctx, "test"); } @@ -128,6 +163,7 @@ static int check_x509_cn(const grpc_auth_context *ctx, static void test_cn_only_ssl_peer_to_auth_context(void) { tsi_peer peer; + tsi_peer rpeer; grpc_auth_context *ctx; const char *expected_cn = "cn1"; GPR_ASSERT(tsi_construct_peer(2, &peer) == TSI_OK); @@ -144,12 +180,17 @@ static void test_cn_only_ssl_peer_to_auth_context(void) { GPR_ASSERT(check_transport_security_type(ctx)); GPR_ASSERT(check_x509_cn(ctx, expected_cn)); + rpeer = tsi_shallow_peer_from_ssl_auth_context(ctx); + GPR_ASSERT(check_ssl_peer_equivalence(&peer, &rpeer)); + + tsi_shallow_peer_destruct(&rpeer); tsi_peer_destruct(&peer); GRPC_AUTH_CONTEXT_UNREF(ctx, "test"); } static void test_cn_and_one_san_ssl_peer_to_auth_context(void) { tsi_peer peer; + tsi_peer rpeer; grpc_auth_context *ctx; const char *expected_cn = "cn1"; const char *expected_san = "san1"; @@ -171,12 +212,17 @@ static void test_cn_and_one_san_ssl_peer_to_auth_context(void) { GPR_ASSERT(check_transport_security_type(ctx)); GPR_ASSERT(check_x509_cn(ctx, expected_cn)); + rpeer = tsi_shallow_peer_from_ssl_auth_context(ctx); + GPR_ASSERT(check_ssl_peer_equivalence(&peer, &rpeer)); + + tsi_shallow_peer_destruct(&rpeer); tsi_peer_destruct(&peer); GRPC_AUTH_CONTEXT_UNREF(ctx, "test"); } static void test_cn_and_multiple_sans_ssl_peer_to_auth_context(void) { tsi_peer peer; + tsi_peer rpeer; grpc_auth_context *ctx; const char *expected_cn = "cn1"; const char *expected_sans[] = {"san1", "san2", "san3"}; @@ -202,6 +248,10 @@ static void test_cn_and_multiple_sans_ssl_peer_to_auth_context(void) { GPR_ASSERT(check_transport_security_type(ctx)); GPR_ASSERT(check_x509_cn(ctx, expected_cn)); + rpeer = tsi_shallow_peer_from_ssl_auth_context(ctx); + GPR_ASSERT(check_ssl_peer_equivalence(&peer, &rpeer)); + + tsi_shallow_peer_destruct(&rpeer); tsi_peer_destruct(&peer); GRPC_AUTH_CONTEXT_UNREF(ctx, "test"); } @@ -209,6 +259,7 @@ static void test_cn_and_multiple_sans_ssl_peer_to_auth_context(void) { static void test_cn_and_multiple_sans_and_others_ssl_peer_to_auth_context( void) { tsi_peer peer; + tsi_peer rpeer; grpc_auth_context *ctx; const char *expected_cn = "cn1"; const char *expected_sans[] = {"san1", "san2", "san3"}; @@ -238,10 +289,16 @@ static void test_cn_and_multiple_sans_and_others_ssl_peer_to_auth_context( GPR_ASSERT(check_transport_security_type(ctx)); GPR_ASSERT(check_x509_cn(ctx, expected_cn)); + rpeer = tsi_shallow_peer_from_ssl_auth_context(ctx); + GPR_ASSERT(check_ssl_peer_equivalence(&peer, &rpeer)); + + tsi_shallow_peer_destruct(&rpeer); tsi_peer_destruct(&peer); GRPC_AUTH_CONTEXT_UNREF(ctx, "test"); } +/* TODO(jboeuf): Unit-test tsi_shallow_peer_from_auth_context. */ + int main(int argc, char **argv) { grpc_test_init(argc, argv); grpc_init(); diff --git a/test/core/support/alloc_test.c b/test/core/support/alloc_test.c index b950f0ab49..dc0a2acfa5 100644 --- a/test/core/support/alloc_test.c +++ b/test/core/support/alloc_test.c @@ -48,8 +48,8 @@ static void test_custom_allocs() { gpr_allocation_functions fns = {fake_malloc, fake_realloc, fake_free}; gpr_set_allocation_functions(fns); - GPR_ASSERT((void *)0xdeadbeef == gpr_malloc(0xdeadbeef)); - GPR_ASSERT((void *)0xcafed00d == gpr_realloc(0, 0xcafed00d)); + GPR_ASSERT((void*)(size_t)0xdeadbeef == gpr_malloc(0xdeadbeef)); + GPR_ASSERT((void*)(size_t)0xcafed00d == gpr_realloc(0, 0xcafed00d)); gpr_free(&addr_to_free); GPR_ASSERT(addr_to_free == 0xdeadd00d); diff --git a/test/core/transport/connectivity_state_test.c b/test/core/transport/connectivity_state_test.c index 1f23221812..34ab45d260 100644 --- a/test/core/transport/connectivity_state_test.c +++ b/test/core/transport/connectivity_state_test.c @@ -39,7 +39,7 @@ #include "test/core/util/test_config.h" -#define THE_ARG ((void *)0xcafebabe) +#define THE_ARG ((void *)(size_t)0xcafebabe) int g_counter; diff --git a/test/cpp/end2end/zookeeper_test.cc b/test/cpp/end2end/zookeeper_test.cc index e88c0f9c68..41482717d2 100644 --- a/test/cpp/end2end/zookeeper_test.cc +++ b/test/cpp/end2end/zookeeper_test.cc @@ -158,7 +158,7 @@ class ZookeeperTest : public ::testing::Test { void ResetStub() { string target = "zookeeper://" + zookeeper_address_ + "/test"; channel_ = CreateChannel(target, InsecureChannelCredentials()); - stub_ = std::move(grpc::cpp::test::util::TestService::NewStub(channel_)); + stub_ = grpc::cpp::test::util::TestService::NewStub(channel_); } string to_string(const int number) { diff --git a/test/cpp/util/string_ref_test.cc b/test/cpp/util/string_ref_test.cc index 44a298d892..d94aa5962b 100644 --- a/test/cpp/util/string_ref_test.cc +++ b/test/cpp/util/string_ref_test.cc @@ -102,7 +102,8 @@ TEST_F(StringRefTest, Iterator) { string_ref s(kTestString); size_t i = 0; for (auto it = s.cbegin(); it != s.cend(); ++it) { - EXPECT_EQ(kTestString[i++], *it); + auto val = kTestString[i++]; + EXPECT_EQ(val, *it); } EXPECT_EQ(strlen(kTestString), i); } @@ -111,7 +112,8 @@ TEST_F(StringRefTest, ReverseIterator) { string_ref s(kTestString); size_t i = strlen(kTestString); for (auto rit = s.crbegin(); rit != s.crend(); ++rit) { - EXPECT_EQ(kTestString[--i], *rit); + auto val = kTestString[--i]; + EXPECT_EQ(val, *rit); } EXPECT_EQ(0U, i); } |