aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core
diff options
context:
space:
mode:
authorGravatar yang-g <yangg@google.com>2018-12-17 11:54:03 -0800
committerGravatar yang-g <yangg@google.com>2018-12-17 11:54:10 -0800
commita303a28895c28a485665fbd617af0025eac7f452 (patch)
treefd77c6095f6fcf22856a857cf729b04cbd372e1e /test/core
parentaa2e731508de93c2756aac782f166598569ddc44 (diff)
parent3f7e26e08588bcaceab674f1376d39d66cbaf71f (diff)
Merge with head and resolve conflict.
Diffstat (limited to 'test/core')
-rw-r--r--test/core/end2end/BUILD13
-rw-r--r--test/core/end2end/fixtures/h2_local_ipv4.cc72
-rw-r--r--test/core/end2end/fixtures/h2_local_ipv6.cc72
-rw-r--r--test/core/end2end/fixtures/h2_local_uds.cc71
-rw-r--r--test/core/end2end/fixtures/local_util.cc (renamed from test/core/end2end/fixtures/h2_local.cc)84
-rw-r--r--test/core/end2end/fixtures/local_util.h41
-rwxr-xr-xtest/core/end2end/gen_build_yaml.py4
-rwxr-xr-xtest/core/end2end/generate_tests.bzl6
8 files changed, 299 insertions, 64 deletions
diff --git a/test/core/end2end/BUILD b/test/core/end2end/BUILD
index 1b4ad28499..16f987e847 100644
--- a/test/core/end2end/BUILD
+++ b/test/core/end2end/BUILD
@@ -70,6 +70,19 @@ grpc_cc_library(
],
)
+grpc_cc_library(
+ name = "local_util",
+ srcs = ["fixtures/local_util.cc"],
+ hdrs = ["fixtures/local_util.h",
+ "end2end_tests.h"],
+ language = "C++",
+ deps = [
+ "//:gpr",
+ "//:grpc",
+ "//test/core/util:grpc_test_util",
+ ],
+)
+
grpc_cc_test(
name = "bad_server_response_test",
srcs = ["bad_server_response_test.cc"],
diff --git a/test/core/end2end/fixtures/h2_local_ipv4.cc b/test/core/end2end/fixtures/h2_local_ipv4.cc
new file mode 100644
index 0000000000..f6996bf6be
--- /dev/null
+++ b/test/core/end2end/fixtures/h2_local_ipv4.cc
@@ -0,0 +1,72 @@
+/*
+ *
+ * Copyright 2018 gRPC authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <unistd.h>
+
+#include <grpc/support/string_util.h>
+
+#include "src/core/lib/gpr/host_port.h"
+#include "test/core/end2end/end2end_tests.h"
+#include "test/core/end2end/fixtures/local_util.h"
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+
+static grpc_end2end_test_fixture chttp2_create_fixture_fullstack_ipv4(
+ grpc_channel_args* client_args, grpc_channel_args* server_args) {
+ grpc_end2end_test_fixture f =
+ grpc_end2end_local_chttp2_create_fixture_fullstack();
+ int port = grpc_pick_unused_port_or_die();
+ gpr_join_host_port(
+ &static_cast<grpc_end2end_local_fullstack_fixture_data*>(f.fixture_data)
+ ->localaddr,
+ "127.0.0.1", port);
+ return f;
+}
+
+static void chttp2_init_client_fullstack_ipv4(grpc_end2end_test_fixture* f,
+ grpc_channel_args* client_args) {
+ grpc_end2end_local_chttp2_init_client_fullstack(f, client_args, LOCAL_TCP);
+}
+
+static void chttp2_init_server_fullstack_ipv4(grpc_end2end_test_fixture* f,
+ grpc_channel_args* client_args) {
+ grpc_end2end_local_chttp2_init_server_fullstack(f, client_args, LOCAL_TCP);
+}
+
+/* All test configurations */
+static grpc_end2end_test_config configs[] = {
+ {"chttp2/fullstack_local_ipv4",
+ FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION |
+ FEATURE_MASK_SUPPORTS_CLIENT_CHANNEL |
+ FEATURE_MASK_SUPPORTS_AUTHORITY_HEADER |
+ FEATURE_MASK_SUPPORTS_PER_CALL_CREDENTIALS,
+ nullptr, chttp2_create_fixture_fullstack_ipv4,
+ chttp2_init_client_fullstack_ipv4, chttp2_init_server_fullstack_ipv4,
+ grpc_end2end_local_chttp2_tear_down_fullstack}};
+
+int main(int argc, char** argv) {
+ size_t i;
+ grpc::testing::TestEnvironment env(argc, argv);
+ grpc_end2end_tests_pre_init();
+ grpc_init();
+ for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
+ grpc_end2end_tests(argc, argv, configs[i]);
+ }
+ grpc_shutdown();
+ return 0;
+}
diff --git a/test/core/end2end/fixtures/h2_local_ipv6.cc b/test/core/end2end/fixtures/h2_local_ipv6.cc
new file mode 100644
index 0000000000..e360727ca8
--- /dev/null
+++ b/test/core/end2end/fixtures/h2_local_ipv6.cc
@@ -0,0 +1,72 @@
+/*
+ *
+ * Copyright 2018 gRPC authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <unistd.h>
+
+#include <grpc/support/string_util.h>
+
+#include "src/core/lib/gpr/host_port.h"
+#include "test/core/end2end/end2end_tests.h"
+#include "test/core/end2end/fixtures/local_util.h"
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+
+static grpc_end2end_test_fixture chttp2_create_fixture_fullstack_ipv6(
+ grpc_channel_args* client_args, grpc_channel_args* server_args) {
+ grpc_end2end_test_fixture f =
+ grpc_end2end_local_chttp2_create_fixture_fullstack();
+ int port = grpc_pick_unused_port_or_die();
+ gpr_join_host_port(
+ &static_cast<grpc_end2end_local_fullstack_fixture_data*>(f.fixture_data)
+ ->localaddr,
+ "[::1]", port);
+ return f;
+}
+
+static void chttp2_init_client_fullstack_ipv6(grpc_end2end_test_fixture* f,
+ grpc_channel_args* client_args) {
+ grpc_end2end_local_chttp2_init_client_fullstack(f, client_args, LOCAL_TCP);
+}
+
+static void chttp2_init_server_fullstack_ipv6(grpc_end2end_test_fixture* f,
+ grpc_channel_args* client_args) {
+ grpc_end2end_local_chttp2_init_server_fullstack(f, client_args, LOCAL_TCP);
+}
+
+/* All test configurations */
+static grpc_end2end_test_config configs[] = {
+ {"chttp2/fullstack_local_ipv6",
+ FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION |
+ FEATURE_MASK_SUPPORTS_CLIENT_CHANNEL |
+ FEATURE_MASK_SUPPORTS_AUTHORITY_HEADER |
+ FEATURE_MASK_SUPPORTS_PER_CALL_CREDENTIALS,
+ nullptr, chttp2_create_fixture_fullstack_ipv6,
+ chttp2_init_client_fullstack_ipv6, chttp2_init_server_fullstack_ipv6,
+ grpc_end2end_local_chttp2_tear_down_fullstack}};
+
+int main(int argc, char** argv) {
+ size_t i;
+ grpc::testing::TestEnvironment env(argc, argv);
+ grpc_end2end_tests_pre_init();
+ grpc_init();
+ for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
+ grpc_end2end_tests(argc, argv, configs[i]);
+ }
+ grpc_shutdown();
+ return 0;
+}
diff --git a/test/core/end2end/fixtures/h2_local_uds.cc b/test/core/end2end/fixtures/h2_local_uds.cc
new file mode 100644
index 0000000000..f1bce213dc
--- /dev/null
+++ b/test/core/end2end/fixtures/h2_local_uds.cc
@@ -0,0 +1,71 @@
+/*
+ *
+ * Copyright 2015 gRPC authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <unistd.h>
+
+#include <grpc/support/string_util.h>
+
+#include "test/core/end2end/end2end_tests.h"
+#include "test/core/end2end/fixtures/local_util.h"
+#include "test/core/util/test_config.h"
+
+static int unique = 1;
+
+static grpc_end2end_test_fixture chttp2_create_fixture_fullstack_uds(
+ grpc_channel_args* client_args, grpc_channel_args* server_args) {
+ grpc_end2end_test_fixture f =
+ grpc_end2end_local_chttp2_create_fixture_fullstack();
+ gpr_asprintf(
+ &static_cast<grpc_end2end_local_fullstack_fixture_data*>(f.fixture_data)
+ ->localaddr,
+ "unix:/tmp/grpc_fullstack_test.%d.%d", getpid(), unique++);
+ return f;
+}
+
+static void chttp2_init_client_fullstack_uds(grpc_end2end_test_fixture* f,
+ grpc_channel_args* client_args) {
+ grpc_end2end_local_chttp2_init_client_fullstack(f, client_args, UDS);
+}
+
+static void chttp2_init_server_fullstack_uds(grpc_end2end_test_fixture* f,
+ grpc_channel_args* client_args) {
+ grpc_end2end_local_chttp2_init_server_fullstack(f, client_args, UDS);
+}
+
+/* All test configurations */
+static grpc_end2end_test_config configs[] = {
+ {"chttp2/fullstack_local_uds",
+ FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION |
+ FEATURE_MASK_SUPPORTS_CLIENT_CHANNEL |
+ FEATURE_MASK_SUPPORTS_AUTHORITY_HEADER |
+ FEATURE_MASK_SUPPORTS_PER_CALL_CREDENTIALS,
+ nullptr, chttp2_create_fixture_fullstack_uds,
+ chttp2_init_client_fullstack_uds, chttp2_init_server_fullstack_uds,
+ grpc_end2end_local_chttp2_tear_down_fullstack}};
+
+int main(int argc, char** argv) {
+ size_t i;
+ grpc::testing::TestEnvironment env(argc, argv);
+ grpc_end2end_tests_pre_init();
+ grpc_init();
+ for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
+ grpc_end2end_tests(argc, argv, configs[i]);
+ }
+ grpc_shutdown();
+ return 0;
+}
diff --git a/test/core/end2end/fixtures/h2_local.cc b/test/core/end2end/fixtures/local_util.cc
index 18d690ff22..5f0b0300ac 100644
--- a/test/core/end2end/fixtures/h2_local.cc
+++ b/test/core/end2end/fixtures/local_util.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015 gRPC authors.
+ * Copyright 2018 gRPC authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,11 +16,7 @@
*
*/
-#include "test/core/end2end/end2end_tests.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
+#include "test/core/end2end/fixtures/local_util.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
@@ -34,39 +30,28 @@
#include "src/core/lib/gpr/host_port.h"
#include "src/core/lib/gpr/string.h"
#include "src/core/lib/security/credentials/credentials.h"
-#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/server.h"
#include "test/core/util/port.h"
#include "test/core/util/test_config.h"
-typedef struct fullstack_fixture_data {
- char* localaddr;
-} fullstack_fixture_data;
-
-static int unique = 1;
-
-static grpc_end2end_test_fixture chttp2_create_fixture_fullstack(
- grpc_channel_args* client_args, grpc_channel_args* server_args) {
+grpc_end2end_test_fixture grpc_end2end_local_chttp2_create_fixture_fullstack() {
grpc_end2end_test_fixture f;
- fullstack_fixture_data* ffd = static_cast<fullstack_fixture_data*>(
- gpr_malloc(sizeof(fullstack_fixture_data)));
+ grpc_end2end_local_fullstack_fixture_data* ffd =
+ static_cast<grpc_end2end_local_fullstack_fixture_data*>(
+ gpr_malloc(sizeof(grpc_end2end_local_fullstack_fixture_data)));
memset(&f, 0, sizeof(f));
-
- gpr_asprintf(&ffd->localaddr, "unix:/tmp/grpc_fullstack_test.%d.%d", getpid(),
- unique++);
-
f.fixture_data = ffd;
f.cq = grpc_completion_queue_create_for_next(nullptr);
f.shutdown_cq = grpc_completion_queue_create_for_pluck(nullptr);
-
return f;
}
-void chttp2_init_client_fullstack(grpc_end2end_test_fixture* f,
- grpc_channel_args* client_args) {
- grpc_channel_credentials* creds = grpc_local_credentials_create(UDS);
- fullstack_fixture_data* ffd =
- static_cast<fullstack_fixture_data*>(f->fixture_data);
+void grpc_end2end_local_chttp2_init_client_fullstack(
+ grpc_end2end_test_fixture* f, grpc_channel_args* client_args,
+ grpc_local_connect_type type) {
+ grpc_channel_credentials* creds = grpc_local_credentials_create(type);
+ grpc_end2end_local_fullstack_fixture_data* ffd =
+ static_cast<grpc_end2end_local_fullstack_fixture_data*>(f->fixture_data);
f->client =
grpc_secure_channel_create(creds, ffd->localaddr, client_args, nullptr);
GPR_ASSERT(f->client != nullptr);
@@ -98,11 +83,12 @@ static void process_auth_failure(void* state, grpc_auth_context* ctx,
cb(user_data, nullptr, 0, nullptr, 0, GRPC_STATUS_UNAUTHENTICATED, nullptr);
}
-void chttp2_init_server_fullstack(grpc_end2end_test_fixture* f,
- grpc_channel_args* server_args) {
- grpc_server_credentials* creds = grpc_local_server_credentials_create(UDS);
- fullstack_fixture_data* ffd =
- static_cast<fullstack_fixture_data*>(f->fixture_data);
+void grpc_end2end_local_chttp2_init_server_fullstack(
+ grpc_end2end_test_fixture* f, grpc_channel_args* server_args,
+ grpc_local_connect_type type) {
+ grpc_server_credentials* creds = grpc_local_server_credentials_create(type);
+ grpc_end2end_local_fullstack_fixture_data* ffd =
+ static_cast<grpc_end2end_local_fullstack_fixture_data*>(f->fixture_data);
if (f->server) {
grpc_server_destroy(f->server);
}
@@ -119,36 +105,10 @@ void chttp2_init_server_fullstack(grpc_end2end_test_fixture* f,
grpc_server_start(f->server);
}
-void chttp2_tear_down_fullstack(grpc_end2end_test_fixture* f) {
- fullstack_fixture_data* ffd =
- static_cast<fullstack_fixture_data*>(f->fixture_data);
+void grpc_end2end_local_chttp2_tear_down_fullstack(
+ grpc_end2end_test_fixture* f) {
+ grpc_end2end_local_fullstack_fixture_data* ffd =
+ static_cast<grpc_end2end_local_fullstack_fixture_data*>(f->fixture_data);
gpr_free(ffd->localaddr);
gpr_free(ffd);
}
-
-/* All test configurations */
-static grpc_end2end_test_config configs[] = {
- {"chttp2/fullstack_local",
- FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION |
- FEATURE_MASK_SUPPORTS_CLIENT_CHANNEL |
- FEATURE_MASK_SUPPORTS_AUTHORITY_HEADER |
- FEATURE_MASK_SUPPORTS_PER_CALL_CREDENTIALS,
- nullptr, chttp2_create_fixture_fullstack, chttp2_init_client_fullstack,
- chttp2_init_server_fullstack, chttp2_tear_down_fullstack},
-};
-
-int main(int argc, char** argv) {
- size_t i;
-
- grpc::testing::TestEnvironment env(argc, argv);
- grpc_end2end_tests_pre_init();
- grpc_init();
-
- for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
- grpc_end2end_tests(argc, argv, configs[i]);
- }
-
- grpc_shutdown();
-
- return 0;
-}
diff --git a/test/core/end2end/fixtures/local_util.h b/test/core/end2end/fixtures/local_util.h
new file mode 100644
index 0000000000..f133b4d977
--- /dev/null
+++ b/test/core/end2end/fixtures/local_util.h
@@ -0,0 +1,41 @@
+/*
+ *
+ * Copyright 2018 gRPC authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "test/core/end2end/end2end_tests.h"
+
+#include <grpc/grpc_security.h>
+
+#include "src/core/lib/surface/channel.h"
+
+typedef struct grpc_end2end_local_fullstack_fixture_data {
+ char* localaddr;
+} grpc_end2end_local_fullstack_fixture_data;
+
+/* Utility functions shared by h2_local tests. */
+grpc_end2end_test_fixture grpc_end2end_local_chttp2_create_fixture_fullstack();
+
+void grpc_end2end_local_chttp2_init_client_fullstack(
+ grpc_end2end_test_fixture* f, grpc_channel_args* client_args,
+ grpc_local_connect_type type);
+
+void grpc_end2end_local_chttp2_init_server_fullstack(
+ grpc_end2end_test_fixture* f, grpc_channel_args* server_args,
+ grpc_local_connect_type type);
+
+void grpc_end2end_local_chttp2_tear_down_fullstack(
+ grpc_end2end_test_fixture* f);
diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py
index 99063e13e6..28a7a4e25d 100755
--- a/test/core/end2end/gen_build_yaml.py
+++ b/test/core/end2end/gen_build_yaml.py
@@ -74,7 +74,9 @@ END2END_FIXTURES = {
'h2_sockpair+trace': socketpair_unsecure_fixture_options._replace(
ci_mac=False, tracing=True, large_writes=False, exclude_iomgrs=['uv']),
'h2_ssl': default_secure_fixture_options,
- 'h2_local': local_fixture_options,
+ 'h2_local_uds': local_fixture_options,
+ 'h2_local_ipv4': local_fixture_options,
+ 'h2_local_ipv6': local_fixture_options,
'h2_ssl_proxy': default_secure_fixture_options._replace(
includes_proxy=True, ci_mac=False, exclude_iomgrs=['uv']),
'h2_uds': uds_fixture_options,
diff --git a/test/core/end2end/generate_tests.bzl b/test/core/end2end/generate_tests.bzl
index dd9abedebd..853619fcda 100755
--- a/test/core/end2end/generate_tests.bzl
+++ b/test/core/end2end/generate_tests.bzl
@@ -85,7 +85,9 @@ END2END_FIXTURES = {
client_channel = False,
),
"h2_ssl": _fixture_options(secure = True),
- "h2_local": _fixture_options(secure = True, dns_resolver = False, _platforms = ["linux", "mac", "posix"]),
+ "h2_local_uds": _fixture_options(secure = True, dns_resolver = False, _platforms = ["linux", "mac", "posix"]),
+ "h2_local_ipv4": _fixture_options(secure = True, dns_resolver = False, _platforms = ["linux", "mac", "posix"]),
+ "h2_local_ipv6": _fixture_options(secure = True, dns_resolver = False, _platforms = ["linux", "mac", "posix"]),
"h2_ssl_proxy": _fixture_options(includes_proxy = True, secure = True),
"h2_uds": _fixture_options(
dns_resolver = False,
@@ -376,6 +378,7 @@ def grpc_end2end_tests():
":ssl_test_data",
":http_proxy",
":proxy",
+ ":local_util",
],
)
@@ -425,6 +428,7 @@ def grpc_end2end_nosec_tests():
":ssl_test_data",
":http_proxy",
":proxy",
+ ":local_util",
],
)