aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-09-11 12:59:27 -0700
committerGravatar Craig Tiller <ctiller@google.com>2015-09-11 12:59:27 -0700
commitf29a38820735c332f1d16c5ae4b91e332a0ca5cc (patch)
treedb7f766b68b1163d53eec67b7cb7984c89f3114e /test
parent6b8046375e15702493094598803c22ed3b8e1e65 (diff)
parent855dbf189bde7374f9c211b3f7adc3ba139db6a4 (diff)
Merge github.com:grpc/grpc into immolating-conversion
Diffstat (limited to 'test')
-rw-r--r--test/core/client_config/uri_parser_test.c37
-rw-r--r--test/core/end2end/dualstack_socket_test.c29
-rw-r--r--test/cpp/qps/server_async.cc4
3 files changed, 58 insertions, 12 deletions
diff --git a/test/core/client_config/uri_parser_test.c b/test/core/client_config/uri_parser_test.c
index d324029c7e..580c18b699 100644
--- a/test/core/client_config/uri_parser_test.c
+++ b/test/core/client_config/uri_parser_test.c
@@ -40,12 +40,15 @@
#include "test/core/util/test_config.h"
static void test_succeeds(const char *uri_text, const char *scheme,
- const char *authority, const char *path) {
+ const char *authority, const char *path,
+ const char *query, const char* fragment) {
grpc_uri *uri = grpc_uri_parse(uri_text, 0);
GPR_ASSERT(uri);
GPR_ASSERT(0 == strcmp(scheme, uri->scheme));
GPR_ASSERT(0 == strcmp(authority, uri->authority));
GPR_ASSERT(0 == strcmp(path, uri->path));
+ GPR_ASSERT(0 == strcmp(query, uri->query));
+ GPR_ASSERT(0 == strcmp(fragment, uri->fragment));
grpc_uri_destroy(uri);
}
@@ -55,17 +58,29 @@ static void test_fails(const char *uri_text) {
int main(int argc, char **argv) {
grpc_test_init(argc, argv);
- test_succeeds("http://www.google.com", "http", "www.google.com", "");
- test_succeeds("dns:///foo", "dns", "", "/foo");
- test_succeeds("http://www.google.com:90", "http", "www.google.com:90", "");
- test_succeeds("a192.4-df:foo.coom", "a192.4-df", "", "foo.coom");
- test_succeeds("a+b:foo.coom", "a+b", "", "foo.coom");
+ test_succeeds("http://www.google.com", "http", "www.google.com", "", "", "");
+ test_succeeds("dns:///foo", "dns", "", "/foo", "", "");
+ test_succeeds("http://www.google.com:90", "http", "www.google.com:90", "", "",
+ "");
+ test_succeeds("a192.4-df:foo.coom", "a192.4-df", "", "foo.coom", "", "");
+ test_succeeds("a+b:foo.coom", "a+b", "", "foo.coom", "", "");
test_succeeds("zookeeper://127.0.0.1:2181/foo/bar", "zookeeper",
- "127.0.0.1:2181", "/foo/bar");
+ "127.0.0.1:2181", "/foo/bar", "", "");
+ test_succeeds("http://www.google.com?yay-i'm-using-queries", "http",
+ "www.google.com", "", "yay-i'm-using-queries", "");
+ test_succeeds("dns:foo.com#fragment-all-the-things", "dns", "", "foo.com", "",
+ "fragment-all-the-things");
+ test_succeeds("http:?legit", "http", "", "", "legit", "");
+ test_succeeds("unix:#this-is-ok-too", "unix", "", "", "", "this-is-ok-too");
+ test_succeeds("http:?legit#twice", "http", "", "", "legit", "twice");
+ test_succeeds("http://foo?bar#lol?", "http", "foo", "", "bar", "lol?");
+ test_succeeds("http://foo?bar#lol?/", "http", "foo", "", "bar", "lol?/");
+
test_fails("xyz");
- test_fails("http://www.google.com?why-are-you-using-queries");
- test_fails("dns:foo.com#fragments-arent-supported-here");
- test_fails("http:?huh");
- test_fails("unix:#yeah-right");
+ test_fails("http:?dangling-pct-%0");
+ test_fails("http://foo?[bar]");
+ test_fails("http://foo?x[bar]");
+ test_fails("http://foo?bar#lol#");
+
return 0;
}
diff --git a/test/core/end2end/dualstack_socket_test.c b/test/core/end2end/dualstack_socket_test.c
index 2aee333d27..ec3fb65105 100644
--- a/test/core/end2end/dualstack_socket_test.c
+++ b/test/core/end2end/dualstack_socket_test.c
@@ -40,6 +40,7 @@
#include <grpc/support/string_util.h>
#include "src/core/support/string.h"
+#include "src/core/iomgr/resolve_address.h"
#include "src/core/iomgr/socket_utils_posix.h"
#include "test/core/end2end/cq_verifier.h"
@@ -263,6 +264,15 @@ void test_connect(const char *server_host, const char *client_host, int port,
gpr_free(details);
}
+int external_dns_works(const char *host) {
+ grpc_resolved_addresses *res = grpc_blocking_resolve_address(host, "80");
+ if (res != NULL) {
+ gpr_free(res);
+ return 1;
+ }
+ return 0;
+}
+
int main(int argc, char **argv) {
int do_ipv6 = 1;
@@ -308,6 +318,25 @@ int main(int argc, char **argv) {
test_connect("::1", "ipv4:127.0.0.1", 0, 0);
test_connect("127.0.0.1", "ipv6:[::1]", 0, 0);
}
+
+ if (!external_dns_works("loopback46.unittest.grpc.io")) {
+ gpr_log(GPR_INFO, "Skipping tests that depend on *.unittest.grpc.io.");
+ } else {
+ test_connect("loopback46.unittest.grpc.io",
+ "loopback4.unittest.grpc.io", 0, 1);
+ test_connect("loopback4.unittest.grpc.io",
+ "loopback46.unittest.grpc.io", 0, 1);
+ if (do_ipv6) {
+ test_connect("loopback46.unittest.grpc.io",
+ "loopback6.unittest.grpc.io", 0, 1);
+ test_connect("loopback6.unittest.grpc.io",
+ "loopback46.unittest.grpc.io", 0, 1);
+ test_connect("loopback4.unittest.grpc.io",
+ "loopback6.unittest.grpc.io", 0, 0);
+ test_connect("loopback6.unittest.grpc.io",
+ "loopback4.unittest.grpc.io", 0, 0);
+ }
+ }
}
grpc_shutdown();
diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc
index 0ed2048d4a..516598a0e2 100644
--- a/test/cpp/qps/server_async.cc
+++ b/test/cpp/qps/server_async.cc
@@ -98,7 +98,9 @@ class AsyncQpsServerTest : public Server {
}
}
~AsyncQpsServerTest() {
- server_->Shutdown();
+ auto deadline = std::chrono::system_clock::now() +
+ std::chrono::seconds(10);
+ server_->Shutdown(deadline);
for (auto ss = shutdown_state_.begin(); ss != shutdown_state_.end(); ++ss) {
(*ss)->set_shutdown();
}