aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/build/boringssl.c51
-rw-r--r--test/build/shadow.c43
-rwxr-xr-xtest/core/bad_ssl/gen_build_yaml.py4
-rw-r--r--test/core/bad_ssl/server_common.c (renamed from test/core/bad_ssl/server.c)4
-rw-r--r--test/core/bad_ssl/server_common.h (renamed from test/core/bad_ssl/server.h)2
-rw-r--r--test/core/bad_ssl/servers/alpn.c4
-rw-r--r--test/core/bad_ssl/servers/cert.c6
-rw-r--r--test/core/end2end/end2end_nosec_tests.c36
-rw-r--r--test/core/end2end/end2end_tests.c36
-rw-r--r--test/core/end2end/fixtures/h2_ssl+poll.c15
-rw-r--r--test/core/end2end/fixtures/h2_ssl.c15
-rw-r--r--test/core/end2end/fixtures/h2_ssl_proxy.c13
-rw-r--r--test/core/end2end/fixtures/h2_uchannel.c2
-rwxr-xr-xtest/core/end2end/gen_build_yaml.py6
-rw-r--r--test/core/end2end/tests/connectivity.c (renamed from test/core/end2end/tests/channel_connectivity.c)4
-rw-r--r--test/core/end2end/tests/ping.c (renamed from test/core/end2end/tests/channel_ping.c)4
-rw-r--r--test/core/end2end/tests/simple_metadata.c (renamed from test/core/end2end/tests/metadata.c)4
-rw-r--r--test/core/httpcli/httpcli_test.c4
-rw-r--r--test/core/httpcli/httpscli_test.c4
-rw-r--r--test/core/iomgr/endpoint_tests.c2
-rw-r--r--test/core/iomgr/fd_posix_test.c8
-rw-r--r--test/core/iomgr/tcp_client_posix_test.c6
-rw-r--r--test/core/iomgr/tcp_posix_test.c12
-rw-r--r--test/core/iomgr/tcp_server_posix_test.c2
-rw-r--r--test/core/iomgr/workqueue_test.c4
-rw-r--r--test/core/security/b64_test.c (renamed from test/core/security/base64_test.c)4
-rw-r--r--test/core/security/create_jwt.c2
-rw-r--r--test/core/security/credentials_test.c17
-rw-r--r--test/core/security/fetch_oauth2.c4
-rw-r--r--test/core/security/json_token_test.c7
-rw-r--r--test/core/security/jwt_verifier_test.c2
-rw-r--r--test/core/security/oauth2_utils.c2
-rw-r--r--test/core/security/print_google_default_creds_token.c4
-rw-r--r--test/core/security/security_connector_test.c15
-rw-r--r--test/core/security/verify_jwt.c4
-rw-r--r--test/core/support/load_file_test.c (renamed from test/core/support/file_test.c)5
-rw-r--r--test/core/util/port_posix.c4
-rw-r--r--test/core/util/port_windows.c2
-rw-r--r--test/core/util/test_tcp_server.c2
-rw-r--r--test/cpp/common/alarm_cpp_test.cc47
-rw-r--r--test/cpp/end2end/end2end_test.cc2
-rw-r--r--test/cpp/grpclb/grpclb_api_test.cc133
-rw-r--r--test/cpp/interop/server_main.cc (renamed from test/cpp/interop/server.cc)0
-rw-r--r--test/cpp/qps/client.h12
-rw-r--r--test/cpp/qps/client_async.cc20
-rw-r--r--test/cpp/qps/client_sync.cc10
-rwxr-xr-xtest/cpp/qps/qps-sweep.sh2
-rw-r--r--test/cpp/qps/qps_openloop_test.cc5
-rw-r--r--test/cpp/qps/server.h10
-rw-r--r--test/cpp/qps/server_sync.cc12
-rw-r--r--test/cpp/qps/usage_timer.cc (renamed from test/cpp/qps/timer.cc)16
-rw-r--r--test/cpp/qps/usage_timer.h (renamed from test/cpp/qps/timer.h)10
-rw-r--r--test/cpp/util/test_credentials_provider.cc116
-rw-r--r--test/cpp/util/test_credentials_provider.h16
-rw-r--r--test/distrib/php/distribtest.php45
-rwxr-xr-xtest/distrib/php/run_distrib_test.sh39
56 files changed, 649 insertions, 211 deletions
diff --git a/test/build/boringssl.c b/test/build/boringssl.c
new file mode 100644
index 0000000000..a31d4bf396
--- /dev/null
+++ b/test/build/boringssl.c
@@ -0,0 +1,51 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+// Check that boringssl is going to compile
+
+#include <stdio.h>
+#include <unistd.h>
+
+// boringssl uses anonymous unions
+struct foo {
+ union {
+ int a;
+ int b;
+ };
+};
+
+int main(void) {
+ const char *close = "this should not shadow";
+ printf("%s\n", close);
+ return 0;
+}
diff --git a/test/build/shadow.c b/test/build/shadow.c
new file mode 100644
index 0000000000..51d4f9e385
--- /dev/null
+++ b/test/build/shadow.c
@@ -0,0 +1,43 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+// Check that boringssl is going to compile
+
+#include <stdio.h>
+#include <unistd.h>
+
+int main(void) {
+ const char *close = "this should not shadow";
+ printf("%s\n", close);
+ return 0;
+}
diff --git a/test/core/bad_ssl/gen_build_yaml.py b/test/core/bad_ssl/gen_build_yaml.py
index cc097a8fdf..e2a3febe5d 100755
--- a/test/core/bad_ssl/gen_build_yaml.py
+++ b/test/core/bad_ssl/gen_build_yaml.py
@@ -52,8 +52,8 @@ def main():
'name': 'bad_ssl_test_server',
'build': 'private',
'language': 'c',
- 'src': ['test/core/bad_ssl/server.c'],
- 'headers': ['test/core/bad_ssl/server.h'],
+ 'src': ['test/core/bad_ssl/server_common.c'],
+ 'headers': ['test/core/bad_ssl/server_common.h'],
'vs_proj_dir': 'test',
'platforms': ['linux', 'posix', 'mac'],
'deps': [
diff --git a/test/core/bad_ssl/server.c b/test/core/bad_ssl/server_common.c
index 6113d364c9..cde844a552 100644
--- a/test/core/bad_ssl/server.c
+++ b/test/core/bad_ssl/server_common.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,7 +35,7 @@
#include <grpc/support/log.h>
#include <signal.h>
-#include "test/core/bad_ssl/server.h"
+#include "test/core/bad_ssl/server_common.h"
#include "test/core/util/test_config.h"
/* Common server implementation details for all servers in servers/.
diff --git a/test/core/bad_ssl/server.h b/test/core/bad_ssl/server_common.h
index 8ec7755503..2566c25905 100644
--- a/test/core/bad_ssl/server.h
+++ b/test/core/bad_ssl/server_common.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_ssl/servers/alpn.c b/test/core/bad_ssl/servers/alpn.c
index 7d70690e52..c8cc83b134 100644
--- a/test/core/bad_ssl/servers/alpn.c
+++ b/test/core/bad_ssl/servers/alpn.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -39,7 +39,7 @@
#include <grpc/support/useful.h>
#include "src/core/transport/chttp2/alpn.h"
-#include "test/core/bad_ssl/server.h"
+#include "test/core/bad_ssl/server_common.h"
#include "test/core/end2end/data/ssl_test_data.h"
/* This test starts a server that is configured to advertise (via alpn and npn)
diff --git a/test/core/bad_ssl/servers/cert.c b/test/core/bad_ssl/servers/cert.c
index d67a6ca1d4..4edef50b67 100644
--- a/test/core/bad_ssl/servers/cert.c
+++ b/test/core/bad_ssl/servers/cert.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -38,9 +38,9 @@
#include <grpc/support/log.h>
#include <grpc/support/useful.h>
-#include "src/core/support/file.h"
+#include "src/core/support/load_file.h"
-#include "test/core/bad_ssl/server.h"
+#include "test/core/bad_ssl/server_common.h"
#include "test/core/end2end/data/ssl_test_data.h"
/* This server will present an untrusted cert to the connecting client,
diff --git a/test/core/end2end/end2end_nosec_tests.c b/test/core/end2end/end2end_nosec_tests.c
index 9ff46d62e4..17dc190d14 100644
--- a/test/core/end2end/end2end_nosec_tests.c
+++ b/test/core/end2end/end2end_nosec_tests.c
@@ -46,9 +46,8 @@ 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 connectivity(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);
@@ -59,10 +58,10 @@ 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(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);
@@ -71,6 +70,7 @@ 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_metadata(grpc_end2end_test_config config);
extern void simple_request(grpc_end2end_test_config config);
extern void trailing_metadata(grpc_end2end_test_config config);
@@ -87,9 +87,8 @@ void grpc_end2end_tests(int argc, char **argv,
cancel_before_invoke(config);
cancel_in_a_vacuum(config);
cancel_with_status(config);
- channel_connectivity(config);
- channel_ping(config);
compressed_payload(config);
+ connectivity(config);
default_host(config);
disappearing_server(config);
empty_batch(config);
@@ -100,10 +99,10 @@ void grpc_end2end_tests(int argc, char **argv,
large_metadata(config);
max_concurrent_streams(config);
max_message_length(config);
- metadata(config);
negative_deadline(config);
no_op(config);
payload(config);
+ ping(config);
ping_pong_streaming(config);
registered_call(config);
request_with_flags(config);
@@ -112,6 +111,7 @@ void grpc_end2end_tests(int argc, char **argv,
shutdown_finishes_calls(config);
shutdown_finishes_tags(config);
simple_delayed_request(config);
+ simple_metadata(config);
simple_request(config);
trailing_metadata(config);
return;
@@ -150,18 +150,14 @@ void grpc_end2end_tests(int argc, char **argv,
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("connectivity", argv[i])) {
+ connectivity(config);
+ continue;
+ }
if (0 == strcmp("default_host", argv[i])) {
default_host(config);
continue;
@@ -202,10 +198,6 @@ void grpc_end2end_tests(int argc, char **argv,
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;
@@ -218,6 +210,10 @@ void grpc_end2end_tests(int argc, char **argv,
payload(config);
continue;
}
+ if (0 == strcmp("ping", argv[i])) {
+ ping(config);
+ continue;
+ }
if (0 == strcmp("ping_pong_streaming", argv[i])) {
ping_pong_streaming(config);
continue;
@@ -250,6 +246,10 @@ void grpc_end2end_tests(int argc, char **argv,
simple_delayed_request(config);
continue;
}
+ if (0 == strcmp("simple_metadata", argv[i])) {
+ simple_metadata(config);
+ continue;
+ }
if (0 == strcmp("simple_request", argv[i])) {
simple_request(config);
continue;
diff --git a/test/core/end2end/end2end_tests.c b/test/core/end2end/end2end_tests.c
index 397ff446a9..6f2f5aff78 100644
--- a/test/core/end2end/end2end_tests.c
+++ b/test/core/end2end/end2end_tests.c
@@ -47,9 +47,8 @@ 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 connectivity(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);
@@ -60,10 +59,10 @@ 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(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);
@@ -72,6 +71,7 @@ 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_metadata(grpc_end2end_test_config config);
extern void simple_request(grpc_end2end_test_config config);
extern void trailing_metadata(grpc_end2end_test_config config);
@@ -89,9 +89,8 @@ void grpc_end2end_tests(int argc, char **argv,
cancel_before_invoke(config);
cancel_in_a_vacuum(config);
cancel_with_status(config);
- channel_connectivity(config);
- channel_ping(config);
compressed_payload(config);
+ connectivity(config);
default_host(config);
disappearing_server(config);
empty_batch(config);
@@ -102,10 +101,10 @@ void grpc_end2end_tests(int argc, char **argv,
large_metadata(config);
max_concurrent_streams(config);
max_message_length(config);
- metadata(config);
negative_deadline(config);
no_op(config);
payload(config);
+ ping(config);
ping_pong_streaming(config);
registered_call(config);
request_with_flags(config);
@@ -114,6 +113,7 @@ void grpc_end2end_tests(int argc, char **argv,
shutdown_finishes_calls(config);
shutdown_finishes_tags(config);
simple_delayed_request(config);
+ simple_metadata(config);
simple_request(config);
trailing_metadata(config);
return;
@@ -156,18 +156,14 @@ void grpc_end2end_tests(int argc, char **argv,
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("connectivity", argv[i])) {
+ connectivity(config);
+ continue;
+ }
if (0 == strcmp("default_host", argv[i])) {
default_host(config);
continue;
@@ -208,10 +204,6 @@ void grpc_end2end_tests(int argc, char **argv,
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;
@@ -224,6 +216,10 @@ void grpc_end2end_tests(int argc, char **argv,
payload(config);
continue;
}
+ if (0 == strcmp("ping", argv[i])) {
+ ping(config);
+ continue;
+ }
if (0 == strcmp("ping_pong_streaming", argv[i])) {
ping_pong_streaming(config);
continue;
@@ -256,6 +252,10 @@ void grpc_end2end_tests(int argc, char **argv,
simple_delayed_request(config);
continue;
}
+ if (0 == strcmp("simple_metadata", argv[i])) {
+ simple_metadata(config);
+ continue;
+ }
if (0 == strcmp("simple_request", argv[i])) {
simple_request(config);
continue;
diff --git a/test/core/end2end/fixtures/h2_ssl+poll.c b/test/core/end2end/fixtures/h2_ssl+poll.c
index 614654ed52..0b88876d13 100644
--- a/test/core/end2end/fixtures/h2_ssl+poll.c
+++ b/test/core/end2end/fixtures/h2_ssl+poll.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,17 +36,18 @@
#include <stdio.h>
#include <string.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/host_port.h>
+#include <grpc/support/log.h>
+
#include "src/core/channel/channel_args.h"
#include "src/core/security/credentials.h"
#include "src/core/support/env.h"
-#include "src/core/support/file.h"
+#include "src/core/support/tmpfile.h"
#include "src/core/support/string.h"
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/log.h>
-#include "test/core/util/test_config.h"
-#include "test/core/util/port.h"
#include "test/core/end2end/data/ssl_test_data.h"
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
typedef struct fullstack_secure_fixture_data {
char *localaddr;
diff --git a/test/core/end2end/fixtures/h2_ssl.c b/test/core/end2end/fixtures/h2_ssl.c
index 5c63dfb6aa..e21a3477df 100644
--- a/test/core/end2end/fixtures/h2_ssl.c
+++ b/test/core/end2end/fixtures/h2_ssl.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,17 +36,18 @@
#include <stdio.h>
#include <string.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/host_port.h>
+#include <grpc/support/log.h>
+
#include "src/core/channel/channel_args.h"
#include "src/core/security/credentials.h"
#include "src/core/support/env.h"
-#include "src/core/support/file.h"
+#include "src/core/support/tmpfile.h"
#include "src/core/support/string.h"
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/log.h>
-#include "test/core/util/test_config.h"
-#include "test/core/util/port.h"
#include "test/core/end2end/data/ssl_test_data.h"
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
typedef struct fullstack_secure_fixture_data {
char *localaddr;
diff --git a/test/core/end2end/fixtures/h2_ssl_proxy.c b/test/core/end2end/fixtures/h2_ssl_proxy.c
index a93bd83a1f..6340d3f403 100644
--- a/test/core/end2end/fixtures/h2_ssl_proxy.c
+++ b/test/core/end2end/fixtures/h2_ssl_proxy.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,18 +36,19 @@
#include <stdio.h>
#include <string.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/host_port.h>
+#include <grpc/support/log.h>
+
#include "src/core/channel/channel_args.h"
#include "src/core/security/credentials.h"
#include "src/core/support/env.h"
-#include "src/core/support/file.h"
+#include "src/core/support/tmpfile.h"
#include "src/core/support/string.h"
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/log.h>
#include "test/core/end2end/data/ssl_test_data.h"
#include "test/core/end2end/fixtures/proxy.h"
-#include "test/core/util/test_config.h"
#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
typedef struct fullstack_secure_fixture_data {
grpc_end2end_proxy *proxy;
diff --git a/test/core/end2end/fixtures/h2_uchannel.c b/test/core/end2end/fixtures/h2_uchannel.c
index 3590207b6a..cc04937abc 100644
--- a/test/core/end2end/fixtures/h2_uchannel.c
+++ b/test/core/end2end/fixtures/h2_uchannel.c
@@ -255,7 +255,7 @@ static grpc_connected_subchannel *connect_subchannel(grpc_subchannel *c) {
grpc_exec_ctx_flush(&exec_ctx);
gpr_mu_lock(GRPC_POLLSET_MU(&pollset));
while (g_state != GRPC_CHANNEL_READY) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1));
diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py
index 8185752118..41d7d8fdfc 100755
--- a/test/core/end2end/gen_build_yaml.py
+++ b/test/core/end2end/gen_build_yaml.py
@@ -95,9 +95,8 @@ END2END_TESTS = {
'cancel_before_invoke': default_test_options._replace(cpu_cost=LOWCPU),
'cancel_in_a_vacuum': default_test_options._replace(cpu_cost=LOWCPU),
'cancel_with_status': default_test_options._replace(cpu_cost=LOWCPU),
- 'channel_connectivity': connectivity_test_options._replace(proxyable=False, cpu_cost=LOWCPU),
- 'channel_ping': connectivity_test_options._replace(proxyable=False),
'compressed_payload': default_test_options._replace(proxyable=False, cpu_cost=LOWCPU),
+ 'connectivity': connectivity_test_options._replace(proxyable=False, cpu_cost=LOWCPU),
'default_host': default_test_options._replace(needs_fullstack=True,
needs_dns=True),
'disappearing_server': connectivity_test_options,
@@ -110,11 +109,11 @@ END2END_TESTS = {
'large_metadata': default_test_options,
'max_concurrent_streams': default_test_options._replace(proxyable=False),
'max_message_length': default_test_options._replace(cpu_cost=LOWCPU),
- 'metadata': default_test_options,
'negative_deadline': default_test_options,
'no_op': default_test_options,
'payload': default_test_options._replace(cpu_cost=LOWCPU),
'ping_pong_streaming': default_test_options,
+ 'ping': connectivity_test_options._replace(proxyable=False),
'registered_call': default_test_options,
'request_with_flags': default_test_options._replace(proxyable=False),
'request_with_payload': default_test_options,
@@ -122,6 +121,7 @@ END2END_TESTS = {
'shutdown_finishes_calls': default_test_options,
'shutdown_finishes_tags': default_test_options,
'simple_delayed_request': connectivity_test_options._replace(cpu_cost=LOWCPU),
+ 'simple_metadata': default_test_options,
'simple_request': default_test_options,
'trailing_metadata': default_test_options,
}
diff --git a/test/core/end2end/tests/channel_connectivity.c b/test/core/end2end/tests/connectivity.c
index 0e21e65557..975c620731 100644
--- a/test/core/end2end/tests/channel_connectivity.c
+++ b/test/core/end2end/tests/connectivity.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -168,7 +168,7 @@ static void test_connectivity(grpc_end2end_test_config config) {
cq_verifier_destroy(cqv);
}
-void channel_connectivity(grpc_end2end_test_config config) {
+void 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/ping.c
index 73fab206fb..f85df63de7 100644
--- a/test/core/end2end/tests/channel_ping.c
+++ b/test/core/end2end/tests/ping.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -91,7 +91,7 @@ static void test_ping(grpc_end2end_test_config config) {
cq_verifier_destroy(cqv);
}
-void channel_ping(grpc_end2end_test_config config) {
+void 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/metadata.c b/test/core/end2end/tests/simple_metadata.c
index 5e92091eb7..c5084a560f 100644
--- a/test/core/end2end/tests/metadata.c
+++ b/test/core/end2end/tests/simple_metadata.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -260,6 +260,6 @@ static void test_request_response_with_metadata_and_payload(
config.tear_down_data(&f);
}
-void metadata(grpc_end2end_test_config config) {
+void simple_metadata(grpc_end2end_test_config config) {
test_request_response_with_metadata_and_payload(config);
}
diff --git a/test/core/httpcli/httpcli_test.c b/test/core/httpcli/httpcli_test.c
index 651ef1fa3b..e954a920b0 100644
--- a/test/core/httpcli/httpcli_test.c
+++ b/test/core/httpcli/httpcli_test.c
@@ -89,7 +89,7 @@ static void test_get(int port) {
on_finish, (void *)42);
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (!g_done) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC), n_seconds_time(20));
gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
@@ -120,7 +120,7 @@ static void test_post(int port) {
n_seconds_time(15), on_finish, (void *)42);
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (!g_done) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC), n_seconds_time(20));
gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
diff --git a/test/core/httpcli/httpscli_test.c b/test/core/httpcli/httpscli_test.c
index db41be17e7..9f31eae278 100644
--- a/test/core/httpcli/httpscli_test.c
+++ b/test/core/httpcli/httpscli_test.c
@@ -90,7 +90,7 @@ static void test_get(int port) {
on_finish, (void *)42);
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (!g_done) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC), n_seconds_time(20));
gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
@@ -122,7 +122,7 @@ static void test_post(int port) {
n_seconds_time(15), on_finish, (void *)42);
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (!g_done) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC), n_seconds_time(20));
gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
diff --git a/test/core/iomgr/endpoint_tests.c b/test/core/iomgr/endpoint_tests.c
index 1b6a78da9a..6ba67df3b1 100644
--- a/test/core/iomgr/endpoint_tests.c
+++ b/test/core/iomgr/endpoint_tests.c
@@ -234,7 +234,7 @@ static void read_and_write_test(grpc_endpoint_test_config config,
gpr_mu_lock(GRPC_POLLSET_MU(g_pollset));
while (!state.read_done || !state.write_done) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
GPR_ASSERT(gpr_time_cmp(gpr_now(GPR_CLOCK_MONOTONIC), deadline) < 0);
grpc_pollset_work(&exec_ctx, g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC), deadline);
diff --git a/test/core/iomgr/fd_posix_test.c b/test/core/iomgr/fd_posix_test.c
index 347a86af10..07761b6576 100644
--- a/test/core/iomgr/fd_posix_test.c
+++ b/test/core/iomgr/fd_posix_test.c
@@ -252,7 +252,7 @@ static void server_wait_and_shutdown(server *sv) {
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (!sv->done) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
gpr_inf_future(GPR_CLOCK_MONOTONIC));
@@ -366,7 +366,7 @@ static void client_start(grpc_exec_ctx *exec_ctx, client *cl, int port) {
static void client_wait_and_shutdown(client *cl) {
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (!cl->done) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
@@ -467,7 +467,7 @@ static void test_grpc_fd_change(void) {
/* And now wait for it to run. */
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (a.cb_that_ran == NULL) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
gpr_inf_future(GPR_CLOCK_MONOTONIC));
@@ -491,7 +491,7 @@ static void test_grpc_fd_change(void) {
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (b.cb_that_ran == NULL) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
gpr_inf_future(GPR_CLOCK_MONOTONIC));
diff --git a/test/core/iomgr/tcp_client_posix_test.c b/test/core/iomgr/tcp_client_posix_test.c
index b57478059f..cdd5b096fb 100644
--- a/test/core/iomgr/tcp_client_posix_test.c
+++ b/test/core/iomgr/tcp_client_posix_test.c
@@ -121,7 +121,7 @@ void test_succeeds(void) {
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (g_connections_complete == connections_complete_before) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5));
@@ -161,7 +161,7 @@ void test_fails(void) {
/* wait for the connection callback to finish */
while (g_connections_complete == connections_complete_before) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
gpr_timespec now = gpr_now(GPR_CLOCK_MONOTONIC);
gpr_timespec polling_deadline = test_deadline();
if (!grpc_timer_check(&exec_ctx, now, &polling_deadline)) {
@@ -228,7 +228,7 @@ void test_times_out(void) {
/* Make sure the event doesn't trigger early */
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
for (;;) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
gpr_timespec now = gpr_now(connect_deadline.clock_type);
gpr_timespec continue_verifying_time =
gpr_time_from_seconds(5, GPR_TIMESPAN);
diff --git a/test/core/iomgr/tcp_posix_test.c b/test/core/iomgr/tcp_posix_test.c
index d290c6bc3a..20b0b9e13b 100644
--- a/test/core/iomgr/tcp_posix_test.c
+++ b/test/core/iomgr/tcp_posix_test.c
@@ -190,7 +190,7 @@ static void read_test(size_t num_bytes, size_t slice_size) {
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (state.read_bytes < state.target_read_bytes) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC), deadline);
gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
@@ -236,7 +236,7 @@ static void large_read_test(size_t slice_size) {
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (state.read_bytes < state.target_read_bytes) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC), deadline);
gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
@@ -303,7 +303,7 @@ void drain_socket_blocking(int fd, size_t num_bytes, size_t read_size) {
GPR_ASSERT(fcntl(fd, F_SETFL, flags & ~O_NONBLOCK) == 0);
for (;;) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
@@ -365,7 +365,7 @@ static void write_test(size_t num_bytes, size_t slice_size) {
drain_socket_blocking(sv[0], num_bytes, num_bytes);
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
for (;;) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
if (state.write_done) {
break;
}
@@ -425,7 +425,7 @@ static void release_fd_test(size_t num_bytes, size_t slice_size) {
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (state.read_bytes < state.target_read_bytes) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC), deadline);
gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
@@ -439,7 +439,7 @@ static void release_fd_test(size_t num_bytes, size_t slice_size) {
grpc_tcp_destroy_and_release_fd(&exec_ctx, ep, &fd, &fd_released_cb);
gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
while (!fd_released_done) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC), deadline);
}
diff --git a/test/core/iomgr/tcp_server_posix_test.c b/test/core/iomgr/tcp_server_posix_test.c
index 272d97bfcb..43180b1698 100644
--- a/test/core/iomgr/tcp_server_posix_test.c
+++ b/test/core/iomgr/tcp_server_posix_test.c
@@ -183,7 +183,7 @@ static void tcp_connect(grpc_exec_ctx *exec_ctx, const struct sockaddr *remote,
gpr_log(GPR_DEBUG, "wait");
while (g_nconnects == nconnects_before &&
gpr_time_cmp(deadline, gpr_now(deadline.clock_type)) > 0) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(exec_ctx, &g_pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC), deadline);
gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
diff --git a/test/core/iomgr/workqueue_test.c b/test/core/iomgr/workqueue_test.c
index 500170b542..a024915256 100644
--- a/test/core/iomgr/workqueue_test.c
+++ b/test/core/iomgr/workqueue_test.c
@@ -63,7 +63,7 @@ static void test_add_closure(void) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
grpc_workqueue *wq = grpc_workqueue_create(&exec_ctx);
gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5);
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_closure_init(&c, must_succeed, &done);
grpc_workqueue_push(wq, &c, 1);
@@ -87,7 +87,7 @@ static void test_flush(void) {
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
grpc_workqueue *wq = grpc_workqueue_create(&exec_ctx);
gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5);
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_closure_init(&c, must_succeed, &done);
grpc_exec_ctx_enqueue(&exec_ctx, &c, true, NULL);
diff --git a/test/core/security/base64_test.c b/test/core/security/b64_test.c
index e656d4c947..772514e1fd 100644
--- a/test/core/security/base64_test.c
+++ b/test/core/security/b64_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/security/base64.h"
+#include "src/core/security/b64.h"
#include <string.h>
diff --git a/test/core/security/create_jwt.c b/test/core/security/create_jwt.c
index 237dc9aa3e..4c0cf436ee 100644
--- a/test/core/security/create_jwt.c
+++ b/test/core/security/create_jwt.c
@@ -36,7 +36,7 @@
#include "src/core/security/credentials.h"
#include "src/core/security/json_token.h"
-#include "src/core/support/file.h"
+#include "src/core/support/load_file.h"
#include <grpc/support/alloc.h>
#include <grpc/support/cmdline.h>
diff --git a/test/core/security/credentials_test.c b/test/core/security/credentials_test.c
index 8a210bb3c3..98133ef5e5 100644
--- a/test/core/security/credentials_test.c
+++ b/test/core/security/credentials_test.c
@@ -32,25 +32,24 @@
*/
#include <grpc/support/port_platform.h>
+
#include "src/core/security/credentials.h"
+#include <openssl/rsa.h>
#include <stdlib.h>
#include <string.h>
-#include "src/core/httpcli/httpcli.h"
-#include "src/core/security/json_token.h"
-#include "src/core/support/env.h"
-#include "src/core/support/file.h"
-#include "src/core/support/string.h"
-
-#include "test/core/util/test_config.h"
-
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
#include <grpc/support/time.h>
-#include <openssl/rsa.h>
+#include "src/core/httpcli/httpcli.h"
+#include "src/core/security/json_token.h"
+#include "src/core/support/env.h"
+#include "src/core/support/tmpfile.h"
+#include "src/core/support/string.h"
+#include "test/core/util/test_config.h"
/* -- Mock channel credentials. -- */
diff --git a/test/core/security/fetch_oauth2.c b/test/core/security/fetch_oauth2.c
index ee1178cbdd..87b54f1a0c 100644
--- a/test/core/security/fetch_oauth2.c
+++ b/test/core/security/fetch_oauth2.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -43,7 +43,7 @@
#include <grpc/support/sync.h>
#include "src/core/security/credentials.h"
-#include "src/core/support/file.h"
+#include "src/core/support/load_file.h"
#include "test/core/security/oauth2_utils.h"
static grpc_call_credentials *create_refresh_token_creds(
diff --git a/test/core/security/json_token_test.c b/test/core/security/json_token_test.c
index 7c01a9ce5c..4d80c16fb9 100644
--- a/test/core/security/json_token_test.c
+++ b/test/core/security/json_token_test.c
@@ -33,16 +33,17 @@
#include "src/core/security/json_token.h"
+#include <openssl/evp.h>
#include <string.h>
-#include "src/core/security/base64.h"
#include <grpc/grpc_security.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/slice.h>
-#include "test/core/util/test_config.h"
+
#include "src/core/json/json.h"
-#include <openssl/evp.h>
+#include "src/core/security/b64.h"
+#include "test/core/util/test_config.h"
/* This JSON key was generated with the GCE console and revoked immediately.
The identifiers have been changed as well.
diff --git a/test/core/security/jwt_verifier_test.c b/test/core/security/jwt_verifier_test.c
index f396398cef..f6ec9e12ef 100644
--- a/test/core/security/jwt_verifier_test.c
+++ b/test/core/security/jwt_verifier_test.c
@@ -36,7 +36,7 @@
#include <string.h>
#include "src/core/httpcli/httpcli.h"
-#include "src/core/security/base64.h"
+#include "src/core/security/b64.h"
#include "src/core/security/json_token.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/security/oauth2_utils.c b/test/core/security/oauth2_utils.c
index 55ac31e62c..4dd595df95 100644
--- a/test/core/security/oauth2_utils.c
+++ b/test/core/security/oauth2_utils.c
@@ -95,7 +95,7 @@ char *grpc_test_fetch_oauth2_token_with_credentials(
gpr_mu_lock(GRPC_POLLSET_MU(&request.pollset));
while (!request.is_done) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &request.pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
gpr_inf_future(GPR_CLOCK_MONOTONIC));
diff --git a/test/core/security/print_google_default_creds_token.c b/test/core/security/print_google_default_creds_token.c
index 50fe61c996..6043bf5420 100644
--- a/test/core/security/print_google_default_creds_token.c
+++ b/test/core/security/print_google_default_creds_token.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -100,7 +100,7 @@ int main(int argc, char **argv) {
gpr_mu_lock(GRPC_POLLSET_MU(&sync.pollset));
while (!sync.is_done) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &sync.pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
gpr_inf_future(GPR_CLOCK_MONOTONIC));
diff --git a/test/core/security/security_connector_test.c b/test/core/security/security_connector_test.c
index ee5435f01d..420e3a4c52 100644
--- a/test/core/security/security_connector_test.c
+++ b/test/core/security/security_connector_test.c
@@ -34,22 +34,21 @@
#include <stdio.h>
#include <string.h>
+#include <grpc/grpc_security.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+#include <grpc/support/string_util.h>
+#include <grpc/support/useful.h>
+
#include "src/core/security/security_connector.h"
#include "src/core/security/security_context.h"
#include "src/core/support/env.h"
-#include "src/core/support/file.h"
+#include "src/core/support/tmpfile.h"
#include "src/core/support/string.h"
#include "src/core/tsi/ssl_transport_security.h"
#include "src/core/tsi/transport_security.h"
#include "test/core/util/test_config.h"
-#include <grpc/grpc_security.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/string_util.h>
-#include <grpc/support/useful.h>
-
static int check_transport_security_type(const grpc_auth_context *ctx) {
grpc_auth_property_iterator it = grpc_auth_context_find_properties_by_name(
ctx, GRPC_TRANSPORT_SECURITY_TYPE_PROPERTY_NAME);
diff --git a/test/core/security/verify_jwt.c b/test/core/security/verify_jwt.c
index 378a37f26c..5070cf0492 100644
--- a/test/core/security/verify_jwt.c
+++ b/test/core/security/verify_jwt.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -111,7 +111,7 @@ int main(int argc, char **argv) {
gpr_mu_lock(GRPC_POLLSET_MU(&sync.pollset));
while (!sync.is_done) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &sync.pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
gpr_inf_future(GPR_CLOCK_MONOTONIC));
diff --git a/test/core/support/file_test.c b/test/core/support/load_file_test.c
index 330b2173ef..e6ba617440 100644
--- a/test/core/support/file_test.c
+++ b/test/core/support/load_file_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -38,7 +38,8 @@
#include <grpc/support/log.h>
#include <grpc/support/slice.h>
-#include "src/core/support/file.h"
+#include "src/core/support/load_file.h"
+#include "src/core/support/tmpfile.h"
#include "src/core/support/string.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/util/port_posix.c b/test/core/util/port_posix.c
index 4b31f810e5..ad21fe0f53 100644
--- a/test/core/util/port_posix.c
+++ b/test/core/util/port_posix.c
@@ -114,7 +114,7 @@ static void free_port_using_server(char *server, int port) {
&pr);
gpr_mu_lock(GRPC_POLLSET_MU(&pr.pollset));
while (!pr.done) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &pr.pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1));
@@ -280,7 +280,7 @@ static int pick_port_using_server(char *server) {
grpc_exec_ctx_finish(&exec_ctx);
gpr_mu_lock(GRPC_POLLSET_MU(&pr.pollset));
while (pr.port == -1) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &pr.pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1));
diff --git a/test/core/util/port_windows.c b/test/core/util/port_windows.c
index 85d7c0ce07..b5bd0168ad 100644
--- a/test/core/util/port_windows.c
+++ b/test/core/util/port_windows.c
@@ -180,7 +180,7 @@ static int pick_port_using_server(char *server) {
&pr);
gpr_mu_lock(GRPC_POLLSET_MU(&pr.pollset));
while (pr.port == -1) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
grpc_pollset_work(&exec_ctx, &pr.pollset, &worker,
gpr_now(GPR_CLOCK_MONOTONIC),
GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1));
diff --git a/test/core/util/test_tcp_server.c b/test/core/util/test_tcp_server.c
index 66470c0288..e99d5dcffd 100644
--- a/test/core/util/test_tcp_server.c
+++ b/test/core/util/test_tcp_server.c
@@ -85,7 +85,7 @@ void test_tcp_server_start(test_tcp_server *server, int port) {
}
void test_tcp_server_poll(test_tcp_server *server, int seconds) {
- grpc_pollset_worker worker;
+ grpc_pollset_worker *worker = NULL;
gpr_timespec deadline =
gpr_time_add(gpr_now(GPR_CLOCK_MONOTONIC),
gpr_time_from_seconds(seconds, GPR_TIMESPAN));
diff --git a/test/cpp/common/alarm_cpp_test.cc b/test/cpp/common/alarm_cpp_test.cc
index 4745ef14ec..d4381c0515 100644
--- a/test/cpp/common/alarm_cpp_test.cc
+++ b/test/cpp/common/alarm_cpp_test.cc
@@ -55,6 +55,53 @@ TEST(AlarmTest, RegularExpiry) {
EXPECT_EQ(junk, output_tag);
}
+TEST(AlarmTest, RegularExpiryChrono) {
+ CompletionQueue cq;
+ void* junk = reinterpret_cast<void*>(1618033);
+ std::chrono::system_clock::time_point one_sec_deadline =
+ std::chrono::system_clock::now() + std::chrono::seconds(1);
+ Alarm alarm(&cq, one_sec_deadline, junk);
+
+ void* output_tag;
+ bool ok;
+ const CompletionQueue::NextStatus status = cq.AsyncNext(
+ (void**)&output_tag, &ok, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2));
+
+ EXPECT_EQ(status, CompletionQueue::GOT_EVENT);
+ EXPECT_TRUE(ok);
+ EXPECT_EQ(junk, output_tag);
+}
+
+TEST(AlarmTest, ZeroExpiry) {
+ CompletionQueue cq;
+ void* junk = reinterpret_cast<void*>(1618033);
+ Alarm alarm(&cq, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(0), junk);
+
+ void* output_tag;
+ bool ok;
+ const CompletionQueue::NextStatus status = cq.AsyncNext(
+ (void**)&output_tag, &ok, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(0));
+
+ EXPECT_EQ(status, CompletionQueue::GOT_EVENT);
+ EXPECT_TRUE(ok);
+ EXPECT_EQ(junk, output_tag);
+}
+
+TEST(AlarmTest, NegativeExpiry) {
+ CompletionQueue cq;
+ void* junk = reinterpret_cast<void*>(1618033);
+ Alarm alarm(&cq, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(-1), junk);
+
+ void* output_tag;
+ bool ok;
+ const CompletionQueue::NextStatus status = cq.AsyncNext(
+ (void**)&output_tag, &ok, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(0));
+
+ EXPECT_EQ(status, CompletionQueue::GOT_EVENT);
+ EXPECT_TRUE(ok);
+ EXPECT_EQ(junk, output_tag);
+}
+
TEST(AlarmTest, Cancellation) {
CompletionQueue cq;
void* junk = reinterpret_cast<void*>(1618033);
diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc
index ce8e4d2a10..42757974b2 100644
--- a/test/cpp/end2end/end2end_test.cc
+++ b/test/cpp/end2end/end2end_test.cc
@@ -904,9 +904,9 @@ TEST_P(End2endTest, SimultaneousReadWritesDone) {
std::thread reader_thread(ReaderThreadFunc, stream.get(), &ev);
gpr_event_wait(&ev, gpr_inf_future(GPR_CLOCK_REALTIME));
stream->WritesDone();
+ reader_thread.join();
Status s = stream->Finish();
EXPECT_TRUE(s.ok());
- reader_thread.join();
}
TEST_P(End2endTest, ChannelState) {
diff --git a/test/cpp/grpclb/grpclb_api_test.cc b/test/cpp/grpclb/grpclb_api_test.cc
new file mode 100644
index 0000000000..bd4885fb4c
--- /dev/null
+++ b/test/cpp/grpclb/grpclb_api_test.cc
@@ -0,0 +1,133 @@
+/*
+ *
+ * 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 <gtest/gtest.h>
+#include <string>
+
+#include "src/core/client_config/lb_policies/load_balancer_api.h"
+#include "src/proto/grpc/lb/v0/load_balancer.pb.h" // C++ version
+
+namespace grpc {
+namespace {
+
+using grpc::lb::v0::LoadBalanceRequest;
+using grpc::lb::v0::LoadBalanceResponse;
+
+class GrpclbTest : public ::testing::Test {};
+
+TEST_F(GrpclbTest, CreateRequest) {
+ const std::string service_name = "AServiceName";
+ LoadBalanceRequest request;
+ grpc_grpclb_request* c_req = grpc_grpclb_request_create(service_name.c_str());
+ gpr_slice slice = grpc_grpclb_request_encode(c_req);
+ const int num_bytes_written = GPR_SLICE_LENGTH(slice);
+ EXPECT_GT(num_bytes_written, 0);
+ request.ParseFromArray(GPR_SLICE_START_PTR(slice), num_bytes_written);
+ EXPECT_EQ(request.initial_request().name(), service_name);
+ gpr_slice_unref(slice);
+ grpc_grpclb_request_destroy(c_req);
+}
+
+TEST_F(GrpclbTest, ParseResponse) {
+ LoadBalanceResponse response;
+ const std::string client_config_str = "I'm a client config";
+ auto* initial_response = response.mutable_initial_response();
+ initial_response->set_client_config(client_config_str);
+ auto* client_stats_report_interval =
+ initial_response->mutable_client_stats_report_interval();
+ client_stats_report_interval->set_seconds(123);
+ client_stats_report_interval->set_nanos(456);
+
+ const std::string encoded_response = response.SerializeAsString();
+ gpr_slice encoded_slice =
+ gpr_slice_from_copied_string(encoded_response.c_str());
+ grpc_grpclb_response* c_response = grpc_grpclb_response_parse(encoded_slice);
+ EXPECT_TRUE(c_response->has_initial_response);
+ EXPECT_TRUE(c_response->initial_response.has_client_config);
+ EXPECT_FALSE(c_response->initial_response.has_load_balancer_delegate);
+ EXPECT_TRUE(strcmp(c_response->initial_response.client_config,
+ client_config_str.c_str()) == 0);
+ EXPECT_EQ(c_response->initial_response.client_stats_report_interval.seconds,
+ 123);
+ EXPECT_EQ(c_response->initial_response.client_stats_report_interval.nanos,
+ 456);
+ gpr_slice_unref(encoded_slice);
+ grpc_grpclb_response_destroy(c_response);
+}
+
+TEST_F(GrpclbTest, ParseResponseServerList) {
+ LoadBalanceResponse response;
+ auto* serverlist = response.mutable_server_list();
+ auto* server = serverlist->add_servers();
+ server->set_ip_address("127.0.0.1");
+ server->set_port(12345);
+ server->set_drop_request(true);
+ server = response.mutable_server_list()->add_servers();
+ server->set_ip_address("10.0.0.1");
+ server->set_port(54321);
+ server->set_drop_request(false);
+ auto* expiration_interval = serverlist->mutable_expiration_interval();
+ expiration_interval->set_seconds(888);
+ expiration_interval->set_nanos(999);
+
+ const std::string encoded_response = response.SerializeAsString();
+ gpr_slice encoded_slice =
+ gpr_slice_from_copied_string(encoded_response.c_str());
+ grpc_grpclb_serverlist* c_serverlist =
+ grpc_grpclb_response_parse_serverlist(encoded_slice);
+ ASSERT_EQ(c_serverlist->num_servers, 2ul);
+ EXPECT_TRUE(c_serverlist->servers[0]->has_ip_address);
+ EXPECT_TRUE(strcmp(c_serverlist->servers[0]->ip_address, "127.0.0.1") == 0);
+ EXPECT_EQ(c_serverlist->servers[0]->port, 12345);
+ EXPECT_TRUE(c_serverlist->servers[0]->drop_request);
+ EXPECT_TRUE(c_serverlist->servers[1]->has_ip_address);
+ EXPECT_TRUE(strcmp(c_serverlist->servers[1]->ip_address, "10.0.0.1") == 0);
+ EXPECT_EQ(c_serverlist->servers[1]->port, 54321);
+ EXPECT_FALSE(c_serverlist->servers[1]->drop_request);
+
+ EXPECT_TRUE(c_serverlist->expiration_interval.has_seconds);
+ EXPECT_EQ(c_serverlist->expiration_interval.seconds, 888);
+ EXPECT_TRUE(c_serverlist->expiration_interval.has_nanos);
+ EXPECT_EQ(c_serverlist->expiration_interval.nanos, 999);
+
+ gpr_slice_unref(encoded_slice);
+ grpc_grpclb_destroy_serverlist(c_serverlist);
+}
+
+} // namespace
+} // namespace grpc
+
+int main(int argc, char** argv) {
+ ::testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}
diff --git a/test/cpp/interop/server.cc b/test/cpp/interop/server_main.cc
index 18ac35d551..18ac35d551 100644
--- a/test/cpp/interop/server.cc
+++ b/test/cpp/interop/server_main.cc
diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h
index c94a523fa1..2dc83f0f29 100644
--- a/test/cpp/qps/client.h
+++ b/test/cpp/qps/client.h
@@ -46,10 +46,10 @@
#include "src/proto/grpc/testing/payloads.grpc.pb.h"
#include "src/proto/grpc/testing/services.grpc.pb.h"
-#include "test/cpp/qps/limit_cores.h"
#include "test/cpp/qps/histogram.h"
#include "test/cpp/qps/interarrival.h"
-#include "test/cpp/qps/timer.h"
+#include "test/cpp/qps/limit_cores.h"
+#include "test/cpp/qps/usage_timer.h"
#include "test/cpp/util/create_test_channel.h"
namespace grpc {
@@ -112,12 +112,12 @@ class ClientRequestCreator<ByteBuffer> {
class Client {
public:
- Client() : timer_(new Timer), interarrival_timer_() {}
+ Client() : timer_(new UsageTimer), interarrival_timer_() {}
virtual ~Client() {}
ClientStats Mark(bool reset) {
Histogram latencies;
- Timer::Result timer_result;
+ UsageTimer::Result timer_result;
// avoid std::vector for old compilers that expect a copy constructor
if (reset) {
@@ -125,7 +125,7 @@ class Client {
for (size_t i = 0; i < threads_.size(); i++) {
threads_[i]->BeginSwap(&to_merge[i]);
}
- std::unique_ptr<Timer> timer(new Timer);
+ std::unique_ptr<UsageTimer> timer(new UsageTimer);
timer_.swap(timer);
for (size_t i = 0; i < threads_.size(); i++) {
threads_[i]->EndSwap();
@@ -294,7 +294,7 @@ class Client {
};
std::vector<std::unique_ptr<Thread>> threads_;
- std::unique_ptr<Timer> timer_;
+ std::unique_ptr<UsageTimer> timer_;
InterarrivalTimer interarrival_timer_;
std::vector<gpr_timespec> next_time_;
diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc
index 9e8767d103..9e9da9909a 100644
--- a/test/cpp/qps/client_async.cc
+++ b/test/cpp/qps/client_async.cc
@@ -54,7 +54,7 @@
#include "src/proto/grpc/testing/services.grpc.pb.h"
#include "test/cpp/qps/client.h"
-#include "test/cpp/qps/timer.h"
+#include "test/cpp/qps/usage_timer.h"
#include "test/cpp/util/create_test_channel.h"
namespace grpc {
@@ -107,14 +107,14 @@ class ClientRpcContextUnaryImpl : public ClientRpcContext {
bool RunNextState(bool ok, Histogram* hist) GRPC_OVERRIDE {
switch (next_state_) {
case State::READY:
- start_ = Timer::Now();
+ start_ = UsageTimer::Now();
response_reader_ = start_req_(stub_, &context_, req_, cq_);
response_reader_->Finish(&response_, &status_,
ClientRpcContext::tag(this));
next_state_ = State::RESP_DONE;
return true;
case State::RESP_DONE:
- hist->Add((Timer::Now() - start_) * 1e9);
+ hist->Add((UsageTimer::Now() - start_) * 1e9);
callback_(status_, &response_);
next_state_ = State::INVALID;
return false;
@@ -287,8 +287,7 @@ class ClientRpcContextStreamingImpl : public ClientRpcContext {
next_state_(State::INVALID),
callback_(on_done),
next_issue_(next_issue),
- start_req_(start_req),
- start_(Timer::Now()) {}
+ start_req_(start_req) {}
~ClientRpcContextStreamingImpl() GRPC_OVERRIDE {}
void Start(CompletionQueue* cq) GRPC_OVERRIDE {
cq_ = cq;
@@ -314,7 +313,7 @@ class ClientRpcContextStreamingImpl : public ClientRpcContext {
if (!ok) {
return false;
}
- start_ = Timer::Now();
+ start_ = UsageTimer::Now();
next_state_ = State::WRITE_DONE;
stream_->Write(req_, ClientRpcContext::tag(this));
return true;
@@ -327,7 +326,7 @@ class ClientRpcContextStreamingImpl : public ClientRpcContext {
return true;
break;
case State::READ_DONE:
- hist->Add((Timer::Now() - start_) * 1e9);
+ hist->Add((UsageTimer::Now() - start_) * 1e9);
callback_(status_, &response_);
next_state_ = State::STREAM_IDLE;
break; // loop around
@@ -415,8 +414,7 @@ class ClientRpcContextGenericStreamingImpl : public ClientRpcContext {
next_state_(State::INVALID),
callback_(on_done),
next_issue_(next_issue),
- start_req_(start_req),
- start_(Timer::Now()) {}
+ start_req_(start_req) {}
~ClientRpcContextGenericStreamingImpl() GRPC_OVERRIDE {}
void Start(CompletionQueue* cq) GRPC_OVERRIDE {
cq_ = cq;
@@ -445,7 +443,7 @@ class ClientRpcContextGenericStreamingImpl : public ClientRpcContext {
if (!ok) {
return false;
}
- start_ = Timer::Now();
+ start_ = UsageTimer::Now();
next_state_ = State::WRITE_DONE;
stream_->Write(req_, ClientRpcContext::tag(this));
return true;
@@ -458,7 +456,7 @@ class ClientRpcContextGenericStreamingImpl : public ClientRpcContext {
return true;
break;
case State::READ_DONE:
- hist->Add((Timer::Now() - start_) * 1e9);
+ hist->Add((UsageTimer::Now() - start_) * 1e9);
callback_(status_, &response_);
next_state_ = State::STREAM_IDLE;
break; // loop around
diff --git a/test/cpp/qps/client_sync.cc b/test/cpp/qps/client_sync.cc
index edfc246a25..4284e07bd4 100644
--- a/test/cpp/qps/client_sync.cc
+++ b/test/cpp/qps/client_sync.cc
@@ -58,7 +58,7 @@
#include "test/cpp/qps/client.h"
#include "test/cpp/qps/histogram.h"
#include "test/cpp/qps/interarrival.h"
-#include "test/cpp/qps/timer.h"
+#include "test/cpp/qps/usage_timer.h"
namespace grpc {
namespace testing {
@@ -104,12 +104,12 @@ class SynchronousUnaryClient GRPC_FINAL : public SynchronousClient {
bool ThreadFunc(Histogram* histogram, size_t thread_idx) GRPC_OVERRIDE {
WaitToIssue(thread_idx);
auto* stub = channels_[thread_idx % channels_.size()].get_stub();
- double start = Timer::Now();
+ double start = UsageTimer::Now();
GPR_TIMER_SCOPE("SynchronousUnaryClient::ThreadFunc", 0);
grpc::ClientContext context;
grpc::Status s =
stub->UnaryCall(&context, request_, &responses_[thread_idx]);
- histogram->Add((Timer::Now() - start) * 1e9);
+ histogram->Add((UsageTimer::Now() - start) * 1e9);
return s.ok();
}
};
@@ -143,10 +143,10 @@ class SynchronousStreamingClient GRPC_FINAL : public SynchronousClient {
bool ThreadFunc(Histogram* histogram, size_t thread_idx) GRPC_OVERRIDE {
WaitToIssue(thread_idx);
GPR_TIMER_SCOPE("SynchronousStreamingClient::ThreadFunc", 0);
- double start = Timer::Now();
+ double start = UsageTimer::Now();
if (stream_[thread_idx]->Write(request_) &&
stream_[thread_idx]->Read(&responses_[thread_idx])) {
- histogram->Add((Timer::Now() - start) * 1e9);
+ histogram->Add((UsageTimer::Now() - start) * 1e9);
return true;
}
return false;
diff --git a/test/cpp/qps/qps-sweep.sh b/test/cpp/qps/qps-sweep.sh
index 7a35788849..9d3f053a7b 100755
--- a/test/cpp/qps/qps-sweep.sh
+++ b/test/cpp/qps/qps-sweep.sh
@@ -72,7 +72,7 @@ for secure in true false; do
--server_type=ASYNC_GENERIC_SERVER --outstanding_rpcs_per_channel=$deep \
--client_channels=$wide --bbuf_req_size=0 --bbuf_resp_size=0 \
--async_client_threads=0 --async_server_threads=0 --secure_test=$secure \
- --num_servers=1 --num_clients=0 |& tee /tmp/qps-test.$$
+ --num_servers=1 --num_clients=0 2>&1 | tee /tmp/qps-test.$$
# Scenario 2b: QPS with a single server core
"$bins"/opt/qps_driver --rpc_type=STREAMING --client_type=ASYNC_CLIENT \
diff --git a/test/cpp/qps/qps_openloop_test.cc b/test/cpp/qps/qps_openloop_test.cc
index 0ac41d9f96..27f266b32b 100644
--- a/test/cpp/qps/qps_openloop_test.cc
+++ b/test/cpp/qps/qps_openloop_test.cc
@@ -35,6 +35,7 @@
#include <grpc/support/log.h>
+#include "test/core/util/test_config.h"
#include "test/cpp/qps/driver.h"
#include "test/cpp/qps/report.h"
#include "test/cpp/util/benchmark_config.h"
@@ -55,11 +56,11 @@ static void RunQPS() {
client_config.set_async_client_threads(8);
client_config.set_rpc_type(STREAMING);
client_config.mutable_load_params()->mutable_poisson()->set_offered_load(
- 1000.0);
+ 1000.0 / GRPC_TEST_SLOWDOWN_FACTOR);
ServerConfig server_config;
server_config.set_server_type(ASYNC_SERVER);
- server_config.set_async_server_threads(4);
+ server_config.set_async_server_threads(8);
const auto result =
RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2);
diff --git a/test/cpp/qps/server.h b/test/cpp/qps/server.h
index 94a6f8acfa..de46452c3d 100644
--- a/test/cpp/qps/server.h
+++ b/test/cpp/qps/server.h
@@ -43,14 +43,14 @@
#include "test/core/end2end/data/ssl_test_data.h"
#include "test/core/util/port.h"
#include "test/cpp/qps/limit_cores.h"
-#include "test/cpp/qps/timer.h"
+#include "test/cpp/qps/usage_timer.h"
namespace grpc {
namespace testing {
class Server {
public:
- explicit Server(const ServerConfig& config) : timer_(new Timer) {
+ explicit Server(const ServerConfig& config) : timer_(new UsageTimer) {
cores_ = LimitCores(config.core_list().data(), config.core_list_size());
if (config.port()) {
port_ = config.port();
@@ -62,9 +62,9 @@ class Server {
virtual ~Server() {}
ServerStats Mark(bool reset) {
- Timer::Result timer_result;
+ UsageTimer::Result timer_result;
if (reset) {
- std::unique_ptr<Timer> timer(new Timer);
+ std::unique_ptr<UsageTimer> timer(new UsageTimer);
timer.swap(timer_);
timer_result = timer->Mark();
} else {
@@ -108,7 +108,7 @@ class Server {
private:
int port_;
int cores_;
- std::unique_ptr<Timer> timer_;
+ std::unique_ptr<UsageTimer> timer_;
};
std::unique_ptr<Server> CreateSynchronousServer(const ServerConfig& config);
diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc
index 4b778820d0..b7682f5763 100644
--- a/test/cpp/qps/server_sync.cc
+++ b/test/cpp/qps/server_sync.cc
@@ -34,18 +34,18 @@
#include <thread>
#include <gflags/gflags.h>
+#include <grpc++/security/server_credentials.h>
+#include <grpc++/server.h>
+#include <grpc++/server_builder.h>
+#include <grpc++/server_context.h>
#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
#include <grpc/support/host_port.h>
#include <grpc/support/log.h>
-#include <grpc++/server.h>
-#include <grpc++/server_builder.h>
-#include <grpc++/server_context.h>
-#include <grpc++/security/server_credentials.h>
-#include "test/cpp/qps/server.h"
-#include "test/cpp/qps/timer.h"
#include "src/proto/grpc/testing/services.grpc.pb.h"
+#include "test/cpp/qps/server.h"
+#include "test/cpp/qps/usage_timer.h"
namespace grpc {
namespace testing {
diff --git a/test/cpp/qps/timer.cc b/test/cpp/qps/usage_timer.cc
index 3ec7f49f83..6663a9ac10 100644
--- a/test/cpp/qps/timer.cc
+++ b/test/cpp/qps/usage_timer.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,15 +31,15 @@
*
*/
-#include "test/cpp/qps/timer.h"
+#include "test/cpp/qps/usage_timer.h"
-#include <sys/time.h>
-#include <sys/resource.h>
#include <grpc/support/time.h>
+#include <sys/resource.h>
+#include <sys/time.h>
-Timer::Timer() : start_(Sample()) {}
+UsageTimer::UsageTimer() : start_(Sample()) {}
-double Timer::Now() {
+double UsageTimer::Now() {
auto ts = gpr_now(GPR_CLOCK_REALTIME);
return ts.tv_sec + 1e-9 * ts.tv_nsec;
}
@@ -48,7 +48,7 @@ static double time_double(struct timeval* tv) {
return tv->tv_sec + 1e-6 * tv->tv_usec;
}
-Timer::Result Timer::Sample() {
+UsageTimer::Result UsageTimer::Sample() {
struct rusage usage;
struct timeval tv;
gettimeofday(&tv, NULL);
@@ -61,7 +61,7 @@ Timer::Result Timer::Sample() {
return r;
}
-Timer::Result Timer::Mark() const {
+UsageTimer::Result UsageTimer::Mark() const {
Result s = Sample();
Result r;
r.wall = s.wall - start_.wall;
diff --git a/test/cpp/qps/timer.h b/test/cpp/qps/usage_timer.h
index d1aee1a9d1..d19f820564 100644
--- a/test/cpp/qps/timer.h
+++ b/test/cpp/qps/usage_timer.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,12 +31,12 @@
*
*/
-#ifndef TEST_QPS_TIMER_H
-#define TEST_QPS_TIMER_H
+#ifndef TEST_QPS_USAGE_TIMER_H
+#define TEST_QPS_USAGE_TIMER_H
-class Timer {
+class UsageTimer {
public:
- Timer();
+ UsageTimer();
struct Result {
double wall;
diff --git a/test/cpp/util/test_credentials_provider.cc b/test/cpp/util/test_credentials_provider.cc
index 1086e14258..7e1eb0d501 100644
--- a/test/cpp/util/test_credentials_provider.cc
+++ b/test/cpp/util/test_credentials_provider.cc
@@ -34,48 +34,110 @@
#include "test/cpp/util/test_credentials_provider.h"
+#include <grpc/support/sync.h>
+#include <grpc++/impl/sync.h>
+
#include "test/core/end2end/data/ssl_test_data.h"
+namespace {
+
+using grpc::ChannelArguments;
+using grpc::ChannelCredentials;
+using grpc::InsecureChannelCredentials;
+using grpc::InsecureServerCredentials;
+using grpc::ServerCredentials;
+using grpc::SslCredentialsOptions;
+using grpc::SslServerCredentialsOptions;
+using grpc::testing::CredentialsProvider;
+
+class DefaultCredentialsProvider : public CredentialsProvider {
+ public:
+ ~DefaultCredentialsProvider() override {}
+
+ std::shared_ptr<ChannelCredentials> GetChannelCredentials(
+ const grpc::string& type, ChannelArguments* args) override {
+ if (type == grpc::testing::kInsecureCredentialsType) {
+ return InsecureChannelCredentials();
+ } else if (type == grpc::testing::kTlsCredentialsType) {
+ SslCredentialsOptions ssl_opts = {test_root_cert, "", ""};
+ args->SetSslTargetNameOverride("foo.test.google.fr");
+ return SslCredentials(ssl_opts);
+ } else {
+ gpr_log(GPR_ERROR, "Unsupported credentials type %s.", type.c_str());
+ }
+ return nullptr;
+ }
+
+ std::shared_ptr<ServerCredentials> GetServerCredentials(
+ const grpc::string& type) override {
+ if (type == grpc::testing::kInsecureCredentialsType) {
+ return InsecureServerCredentials();
+ } else if (type == grpc::testing::kTlsCredentialsType) {
+ SslServerCredentialsOptions::PemKeyCertPair pkcp = {test_server1_key,
+ test_server1_cert};
+ SslServerCredentialsOptions ssl_opts;
+ ssl_opts.pem_root_certs = "";
+ ssl_opts.pem_key_cert_pairs.push_back(pkcp);
+ return SslServerCredentials(ssl_opts);
+ } else {
+ gpr_log(GPR_ERROR, "Unsupported credentials type %s.", type.c_str());
+ }
+ return nullptr;
+ }
+ std::vector<grpc::string> GetSecureCredentialsTypeList() override {
+ std::vector<grpc::string> types;
+ types.push_back(grpc::testing::kTlsCredentialsType);
+ return types;
+ }
+};
+
+gpr_once g_once_init_provider_mu = GPR_ONCE_INIT;
+grpc::mutex* g_provider_mu = nullptr;
+CredentialsProvider* g_provider = nullptr;
+
+void InitProviderMu() { g_provider_mu = new grpc::mutex; }
+
+grpc::mutex& GetMu() {
+ gpr_once_init(&g_once_init_provider_mu, &InitProviderMu);
+ return *g_provider_mu;
+}
+
+CredentialsProvider* GetProvider() {
+ grpc::unique_lock<grpc::mutex> lock(GetMu());
+ if (g_provider == nullptr) {
+ g_provider = new DefaultCredentialsProvider;
+ }
+ return g_provider;
+}
+
+} // namespace
+
namespace grpc {
namespace testing {
-const char kTlsCredentialsType[] = "TLS_CREDENTIALS";
+// Note that it is not thread-safe to set a provider while concurrently using
+// the previously set provider, as this deletes and replaces it. nullptr may be
+// given to reset to the default.
+void SetTestCredentialsProvider(std::unique_ptr<CredentialsProvider> provider) {
+ grpc::unique_lock<grpc::mutex> lock(GetMu());
+ if (g_provider != nullptr) {
+ delete g_provider;
+ }
+ g_provider = provider.release();
+}
std::shared_ptr<ChannelCredentials> GetChannelCredentials(
const grpc::string& type, ChannelArguments* args) {
- if (type == kInsecureCredentialsType) {
- return InsecureChannelCredentials();
- } else if (type == kTlsCredentialsType) {
- SslCredentialsOptions ssl_opts = {test_root_cert, "", ""};
- args->SetSslTargetNameOverride("foo.test.google.fr");
- return SslCredentials(ssl_opts);
- } else {
- gpr_log(GPR_ERROR, "Unsupported credentials type %s.", type.c_str());
- }
- return nullptr;
+ return GetProvider()->GetChannelCredentials(type, args);
}
std::shared_ptr<ServerCredentials> GetServerCredentials(
const grpc::string& type) {
- if (type == kInsecureCredentialsType) {
- return InsecureServerCredentials();
- } else if (type == kTlsCredentialsType) {
- SslServerCredentialsOptions::PemKeyCertPair pkcp = {test_server1_key,
- test_server1_cert};
- SslServerCredentialsOptions ssl_opts;
- ssl_opts.pem_root_certs = "";
- ssl_opts.pem_key_cert_pairs.push_back(pkcp);
- return SslServerCredentials(ssl_opts);
- } else {
- gpr_log(GPR_ERROR, "Unsupported credentials type %s.", type.c_str());
- }
- return nullptr;
+ return GetProvider()->GetServerCredentials(type);
}
std::vector<grpc::string> GetSecureCredentialsTypeList() {
- std::vector<grpc::string> types;
- types.push_back(kTlsCredentialsType);
- return types;
+ return GetProvider()->GetSecureCredentialsTypeList();
}
} // namespace testing
diff --git a/test/cpp/util/test_credentials_provider.h b/test/cpp/util/test_credentials_provider.h
index f7253051a9..a6b547cb07 100644
--- a/test/cpp/util/test_credentials_provider.h
+++ b/test/cpp/util/test_credentials_provider.h
@@ -44,6 +44,22 @@ namespace grpc {
namespace testing {
const char kInsecureCredentialsType[] = "INSECURE_CREDENTIALS";
+const char kTlsCredentialsType[] = "TLS_CREDENTIALS";
+
+class CredentialsProvider {
+ public:
+ virtual ~CredentialsProvider() {}
+
+ virtual std::shared_ptr<ChannelCredentials> GetChannelCredentials(
+ const grpc::string& type, ChannelArguments* args) = 0;
+ virtual std::shared_ptr<ServerCredentials> GetServerCredentials(
+ const grpc::string& type) = 0;
+ virtual std::vector<grpc::string> GetSecureCredentialsTypeList() = 0;
+};
+
+// Set the CredentialsProvider used by the other functions in this file. If this
+// is not set, a default provider will be used.
+void SetTestCredentialsProvider(std::unique_ptr<CredentialsProvider> provider);
// Provide channel credentials according to the given type. Alter the channel
// arguments if needed.
diff --git a/test/distrib/php/distribtest.php b/test/distrib/php/distribtest.php
new file mode 100644
index 0000000000..4c34cd674b
--- /dev/null
+++ b/test/distrib/php/distribtest.php
@@ -0,0 +1,45 @@
+<?php
+/*
+ *
+ * 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.
+ *
+ */
+
+$channel = new Grpc\Channel('localhost:1000', [
+ 'credentials' => Grpc\ChannelCredentials::createInsecure()
+]);
+
+$deadline = Grpc\Timeval::infFuture();
+$call = new Grpc\Call($channel,
+ 'dummy_method',
+ $deadline);
+
+$call->cancel();
+$channel->close();
diff --git a/test/distrib/php/run_distrib_test.sh b/test/distrib/php/run_distrib_test.sh
new file mode 100755
index 0000000000..43b28d8429
--- /dev/null
+++ b/test/distrib/php/run_distrib_test.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+# Copyright 2015-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.
+
+set -ex
+
+cd $(dirname $0)
+
+cp -r $EXTERNAL_GIT_ROOT/input_artifacts/grpc-php.tgz .
+
+pecl install grpc-php.tgz
+
+php -d extension=grpc.so -d max_execution_time=300 distribtest.php