aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2016-09-28 10:24:21 -0700
committerGravatar Craig Tiller <ctiller@google.com>2016-09-28 10:24:21 -0700
commit69a1f6600534bda7d7d9f35222740e49746aed11 (patch)
tree61f2975c785d70561c2c40e531030b86ca4f382b /test/core
parentba6d175fde38d8ca2975f21c6c6c9df383e828e3 (diff)
Complete integration test for buffer pools
Diffstat (limited to 'test/core')
-rw-r--r--test/core/end2end/end2end_nosec_tests.c8
-rw-r--r--test/core/end2end/end2end_tests.c8
-rwxr-xr-xtest/core/end2end/gen_build_yaml.py1
-rw-r--r--test/core/end2end/tests/buffer_pool_client.c105
-rw-r--r--test/core/end2end/tests/buffer_pool_server.c20
5 files changed, 20 insertions, 122 deletions
diff --git a/test/core/end2end/end2end_nosec_tests.c b/test/core/end2end/end2end_nosec_tests.c
index aa38641a84..1c9332acc1 100644
--- a/test/core/end2end/end2end_nosec_tests.c
+++ b/test/core/end2end/end2end_nosec_tests.c
@@ -47,8 +47,6 @@ extern void bad_hostname(grpc_end2end_test_config config);
extern void bad_hostname_pre_init(void);
extern void binary_metadata(grpc_end2end_test_config config);
extern void binary_metadata_pre_init(void);
-extern void buffer_pool_client(grpc_end2end_test_config config);
-extern void buffer_pool_client_pre_init(void);
extern void buffer_pool_server(grpc_end2end_test_config config);
extern void buffer_pool_server_pre_init(void);
extern void cancel_after_accept(grpc_end2end_test_config config);
@@ -139,7 +137,6 @@ void grpc_end2end_tests_pre_init(void) {
g_pre_init_called = true;
bad_hostname_pre_init();
binary_metadata_pre_init();
- buffer_pool_client_pre_init();
buffer_pool_server_pre_init();
cancel_after_accept_pre_init();
cancel_after_client_done_pre_init();
@@ -193,7 +190,6 @@ void grpc_end2end_tests(int argc, char **argv,
if (argc <= 1) {
bad_hostname(config);
binary_metadata(config);
- buffer_pool_client(config);
buffer_pool_server(config);
cancel_after_accept(config);
cancel_after_client_done(config);
@@ -248,10 +244,6 @@ void grpc_end2end_tests(int argc, char **argv,
binary_metadata(config);
continue;
}
- if (0 == strcmp("buffer_pool_client", argv[i])) {
- buffer_pool_client(config);
- continue;
- }
if (0 == strcmp("buffer_pool_server", argv[i])) {
buffer_pool_server(config);
continue;
diff --git a/test/core/end2end/end2end_tests.c b/test/core/end2end/end2end_tests.c
index cbd194dee1..cf0e4c8316 100644
--- a/test/core/end2end/end2end_tests.c
+++ b/test/core/end2end/end2end_tests.c
@@ -47,8 +47,6 @@ extern void bad_hostname(grpc_end2end_test_config config);
extern void bad_hostname_pre_init(void);
extern void binary_metadata(grpc_end2end_test_config config);
extern void binary_metadata_pre_init(void);
-extern void buffer_pool_client(grpc_end2end_test_config config);
-extern void buffer_pool_client_pre_init(void);
extern void buffer_pool_server(grpc_end2end_test_config config);
extern void buffer_pool_server_pre_init(void);
extern void call_creds(grpc_end2end_test_config config);
@@ -141,7 +139,6 @@ void grpc_end2end_tests_pre_init(void) {
g_pre_init_called = true;
bad_hostname_pre_init();
binary_metadata_pre_init();
- buffer_pool_client_pre_init();
buffer_pool_server_pre_init();
call_creds_pre_init();
cancel_after_accept_pre_init();
@@ -196,7 +193,6 @@ void grpc_end2end_tests(int argc, char **argv,
if (argc <= 1) {
bad_hostname(config);
binary_metadata(config);
- buffer_pool_client(config);
buffer_pool_server(config);
call_creds(config);
cancel_after_accept(config);
@@ -252,10 +248,6 @@ void grpc_end2end_tests(int argc, char **argv,
binary_metadata(config);
continue;
}
- if (0 == strcmp("buffer_pool_client", argv[i])) {
- buffer_pool_client(config);
- continue;
- }
if (0 == strcmp("buffer_pool_server", argv[i])) {
buffer_pool_server(config);
continue;
diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py
index 4675b02edb..fef82a1619 100755
--- a/test/core/end2end/gen_build_yaml.py
+++ b/test/core/end2end/gen_build_yaml.py
@@ -88,7 +88,6 @@ LOWCPU = 0.1
END2END_TESTS = {
'bad_hostname': default_test_options,
'binary_metadata': default_test_options,
- 'buffer_pool_client': default_test_options,
'buffer_pool_server': default_test_options,
'call_creds': default_test_options._replace(secure=True),
'cancel_after_accept': default_test_options._replace(cpu_cost=LOWCPU),
diff --git a/test/core/end2end/tests/buffer_pool_client.c b/test/core/end2end/tests/buffer_pool_client.c
deleted file mode 100644
index 27753d7d56..0000000000
--- a/test/core/end2end/tests/buffer_pool_client.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *
- * Copyright 2016, 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/end2end/end2end_tests.h"
-
-#include <stdio.h>
-#include <string.h>
-
-#include <grpc/byte_buffer.h>
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/time.h>
-#include <grpc/support/useful.h>
-#include "test/core/end2end/cq_verifier.h"
-
-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) {
- 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);
- return f;
-}
-
-static gpr_timespec n_seconds_time(int n) {
- return GRPC_TIMEOUT_SECONDS_TO_DEADLINE(n);
-}
-
-static gpr_timespec five_seconds_time(void) { return n_seconds_time(5); }
-
-static void drain_cq(grpc_completion_queue *cq) {
- grpc_event ev;
- do {
- ev = grpc_completion_queue_next(cq, five_seconds_time(), NULL);
- } while (ev.type != GRPC_QUEUE_SHUTDOWN);
-}
-
-static void shutdown_server(grpc_end2end_test_fixture *f) {
- if (!f->server) return;
- grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
- GPR_ASSERT(grpc_completion_queue_pluck(
- f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
- .type == GRPC_OP_COMPLETE);
- grpc_server_destroy(f->server);
- f->server = NULL;
-}
-
-static void shutdown_client(grpc_end2end_test_fixture *f) {
- if (!f->client) return;
- grpc_channel_destroy(f->client);
- f->client = NULL;
-}
-
-static void end_test(grpc_end2end_test_fixture *f) {
- shutdown_server(f);
- shutdown_client(f);
-
- grpc_completion_queue_shutdown(f->cq);
- drain_cq(f->cq);
- grpc_completion_queue_destroy(f->cq);
-}
-
-void buffer_pool_client(grpc_end2end_test_config config) {
- grpc_end2end_test_fixture f =
- begin_test(config, "buffer_pool_client", NULL, NULL);
- end_test(&f);
- config.tear_down_data(&f);
-}
-
-void buffer_pool_client_pre_init(void) {}
diff --git a/test/core/end2end/tests/buffer_pool_server.c b/test/core/end2end/tests/buffer_pool_server.c
index 70e42d28f4..40117c99b1 100644
--- a/test/core/end2end/tests/buffer_pool_server.c
+++ b/test/core/end2end/tests/buffer_pool_server.c
@@ -253,6 +253,11 @@ void buffer_pool_server(grpc_end2end_test_config config) {
abort();
}
GPR_ASSERT(pending_client_calls > 0);
+
+ grpc_metadata_array_destroy(&initial_metadata_recv[call_id]);
+ grpc_metadata_array_destroy(&trailing_metadata_recv[call_id]);
+ grpc_call_destroy(client_calls[call_id]);
+
pending_client_calls--;
} else if (ev_tag < SERVER_RECV_BASE_TAG) {
/* new incoming call to the server */
@@ -280,12 +285,23 @@ void buffer_pool_server(grpc_end2end_test_config config) {
GPR_ASSERT(pending_server_start_calls > 0);
pending_server_start_calls--;
pending_server_recv_calls++;
+
+ grpc_call_details_destroy(&call_details[call_id]);
} else if (ev_tag < SERVER_END_BASE_TAG) {
/* finished read on the server */
int call_id = ev_tag - SERVER_RECV_BASE_TAG;
GPR_ASSERT(call_id >= 0);
GPR_ASSERT(call_id < NUM_CALLS);
+ if (ev.success) {
+ if (request_payload_recv[call_id] != NULL) {
+ grpc_byte_buffer_destroy(request_payload_recv[call_id]);
+ request_payload_recv[call_id] = NULL;
+ }
+ } else {
+ GPR_ASSERT(request_payload_recv[call_id] == NULL);
+ }
+
memset(ops, 0, sizeof(ops));
op = ops;
op->op = GRPC_OP_RECV_CLOSE_ON_SERVER;
@@ -318,6 +334,8 @@ void buffer_pool_server(grpc_end2end_test_config config) {
}
GPR_ASSERT(pending_server_end_calls > 0);
pending_server_end_calls--;
+
+ grpc_call_destroy(server_calls[call_id]);
}
}
@@ -326,6 +344,8 @@ void buffer_pool_server(grpc_end2end_test_config config) {
"Done. %d total calls: %d cancelled at server, %d cancelled at client.",
NUM_CALLS, cancelled_calls_on_server, cancelled_calls_on_client);
+ GPR_ASSERT(cancelled_calls_on_client == cancelled_calls_on_server);
+
end_test(&f);
config.tear_down_data(&f);
}