From 0498124f8ebead73d71fefdfc63e9b29d0da7a8f Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 1 Dec 2016 11:53:08 -0800 Subject: [PATCH 01/56] Add files --- BUILD | 6 ++ CMakeLists.txt | 6 ++ Makefile | 6 ++ build.yaml | 2 + .../ext/health_check_service_interface.h | 52 +++++++++++++++++ ...alth_check_service_server_builder_option.h | 56 +++++++++++++++++++ tools/doxygen/Doxyfile.c++ | 2 + tools/doxygen/Doxyfile.c++.internal | 2 + .../generated/sources_and_headers.json | 4 ++ vsprojects/vcxproj/grpc++/grpc++.vcxproj | 2 + .../vcxproj/grpc++/grpc++.vcxproj.filters | 9 +++ .../grpc++_unsecure/grpc++_unsecure.vcxproj | 2 + .../grpc++_unsecure.vcxproj.filters | 9 +++ 13 files changed, 158 insertions(+) create mode 100644 include/grpc++/ext/health_check_service_interface.h create mode 100644 include/grpc++/ext/health_check_service_server_builder_option.h diff --git a/BUILD b/BUILD index ab0fc237b78..54eda959fc2 100644 --- a/BUILD +++ b/BUILD @@ -1422,6 +1422,8 @@ cc_library( "include/grpc++/completion_queue.h", "include/grpc++/create_channel.h", "include/grpc++/create_channel_posix.h", + "include/grpc++/ext/health_check_service_interface.h", + "include/grpc++/ext/health_check_service_server_builder_option.h", "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", @@ -1884,6 +1886,8 @@ cc_library( "include/grpc++/completion_queue.h", "include/grpc++/create_channel.h", "include/grpc++/create_channel_posix.h", + "include/grpc++/ext/health_check_service_interface.h", + "include/grpc++/ext/health_check_service_server_builder_option.h", "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", @@ -2060,6 +2064,8 @@ cc_library( "include/grpc++/completion_queue.h", "include/grpc++/create_channel.h", "include/grpc++/create_channel_posix.h", + "include/grpc++/ext/health_check_service_interface.h", + "include/grpc++/ext/health_check_service_server_builder_option.h", "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", diff --git a/CMakeLists.txt b/CMakeLists.txt index ff0927504aa..90cf1cdc777 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1128,6 +1128,8 @@ foreach(_hdr include/grpc++/completion_queue.h include/grpc++/create_channel.h include/grpc++/create_channel_posix.h + include/grpc++/ext/health_check_service_interface.h + include/grpc++/ext/health_check_service_server_builder_option.h include/grpc++/generic/async_generic_service.h include/grpc++/generic/generic_stub.h include/grpc++/grpc++.h @@ -1461,6 +1463,8 @@ foreach(_hdr include/grpc++/completion_queue.h include/grpc++/create_channel.h include/grpc++/create_channel_posix.h + include/grpc++/ext/health_check_service_interface.h + include/grpc++/ext/health_check_service_server_builder_option.h include/grpc++/generic/async_generic_service.h include/grpc++/generic/generic_stub.h include/grpc++/grpc++.h @@ -1667,6 +1671,8 @@ foreach(_hdr include/grpc++/completion_queue.h include/grpc++/create_channel.h include/grpc++/create_channel_posix.h + include/grpc++/ext/health_check_service_interface.h + include/grpc++/ext/health_check_service_server_builder_option.h include/grpc++/generic/async_generic_service.h include/grpc++/generic/generic_stub.h include/grpc++/grpc++.h diff --git a/Makefile b/Makefile index 8f7328ae285..85074b5b813 100644 --- a/Makefile +++ b/Makefile @@ -3805,6 +3805,8 @@ PUBLIC_HEADERS_CXX += \ include/grpc++/completion_queue.h \ include/grpc++/create_channel.h \ include/grpc++/create_channel_posix.h \ + include/grpc++/ext/health_check_service_interface.h \ + include/grpc++/ext/health_check_service_server_builder_option.h \ include/grpc++/generic/async_generic_service.h \ include/grpc++/generic/generic_stub.h \ include/grpc++/grpc++.h \ @@ -4167,6 +4169,8 @@ PUBLIC_HEADERS_CXX += \ include/grpc++/completion_queue.h \ include/grpc++/create_channel.h \ include/grpc++/create_channel_posix.h \ + include/grpc++/ext/health_check_service_interface.h \ + include/grpc++/ext/health_check_service_server_builder_option.h \ include/grpc++/generic/async_generic_service.h \ include/grpc++/generic/generic_stub.h \ include/grpc++/grpc++.h \ @@ -4700,6 +4704,8 @@ PUBLIC_HEADERS_CXX += \ include/grpc++/completion_queue.h \ include/grpc++/create_channel.h \ include/grpc++/create_channel_posix.h \ + include/grpc++/ext/health_check_service_interface.h \ + include/grpc++/ext/health_check_service_server_builder_option.h \ include/grpc++/generic/async_generic_service.h \ include/grpc++/generic/generic_stub.h \ include/grpc++/grpc++.h \ diff --git a/build.yaml b/build.yaml index de9d253ef1c..25c4dd7fbf7 100644 --- a/build.yaml +++ b/build.yaml @@ -718,6 +718,8 @@ filegroups: - include/grpc++/completion_queue.h - include/grpc++/create_channel.h - include/grpc++/create_channel_posix.h + - include/grpc++/ext/health_check_service_interface.h + - include/grpc++/ext/health_check_service_server_builder_option.h - include/grpc++/generic/async_generic_service.h - include/grpc++/generic/generic_stub.h - include/grpc++/grpc++.h diff --git a/include/grpc++/ext/health_check_service_interface.h b/include/grpc++/ext/health_check_service_interface.h new file mode 100644 index 00000000000..b9f4ebb87f9 --- /dev/null +++ b/include/grpc++/ext/health_check_service_interface.h @@ -0,0 +1,52 @@ +/* + * + * 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. + * + */ + +#ifndef GRPCXX_EXT_HEALTH_CHECK_SERVICE_INTERFACE_H +#define GRPCXX_EXT_HEALTH_CHECK_SERVICE_INTERFACE_H + +#include + +namespace grpc { + +class HealthCheckServiceInterface { + public: + virtual ~HealthCheckServiceInterface() { } + virtual void SetServingStatus(const grpc::string& service_name, bool serving) = 0; + // Apply to all registered service names. + virtual void SetServingStatus(bool serving) = 0; +}; + + +} // namespace grpc + +#endif // GRPCXX_EXT_HEALTH_CHECK_SERVICE_INTERFACE_H diff --git a/include/grpc++/ext/health_check_service_server_builder_option.h b/include/grpc++/ext/health_check_service_server_builder_option.h new file mode 100644 index 00000000000..9da1d18c985 --- /dev/null +++ b/include/grpc++/ext/health_check_service_server_builder_option.h @@ -0,0 +1,56 @@ +/* + * + * 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. + * + */ + +#ifndef GRPCXX_EXT_HEALTH_CHECK_SERVICE_SERVER_BUILDER_OPTION_H +#define GRPCXX_EXT_HEALTH_CHECK_SERVICE_SERVER_BUILDER_OPTION_H + +#include + +#include + +namespace grpc { + +class HealthCheckServiceInterface; + +class HealthCheckServiceServerBuilderOption : public ServerBuilderOption { + public: + explicit HealthCheckServiceServerBuilderOption( + std::unique_ptr hc); + void UpdateArguments(ChannelArguments* args) override; + private: + std::unique_ptr hc_; +}; + +} // namespace grpc + +#endif // GRPCXX_EXT_HEALTH_CHECK_SERVICE_SERVER_BUILDER_OPTION_H diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++ index ff3a0e381da..77e9c7fc9ac 100644 --- a/tools/doxygen/Doxyfile.c++ +++ b/tools/doxygen/Doxyfile.c++ @@ -766,6 +766,8 @@ include/grpc++/client_context.h \ include/grpc++/completion_queue.h \ include/grpc++/create_channel.h \ include/grpc++/create_channel_posix.h \ +include/grpc++/ext/health_check_service_interface.h \ +include/grpc++/ext/health_check_service_server_builder_option.h \ include/grpc++/generic/async_generic_service.h \ include/grpc++/generic/generic_stub.h \ include/grpc++/grpc++.h \ diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index 04e8f4e7f20..f2e871e7bdd 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -766,6 +766,8 @@ include/grpc++/client_context.h \ include/grpc++/completion_queue.h \ include/grpc++/create_channel.h \ include/grpc++/create_channel_posix.h \ +include/grpc++/ext/health_check_service_interface.h \ +include/grpc++/ext/health_check_service_server_builder_option.h \ include/grpc++/generic/async_generic_service.h \ include/grpc++/generic/generic_stub.h \ include/grpc++/grpc++.h \ diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json index 6ae269cc20d..4fd90ed24eb 100644 --- a/tools/run_tests/generated/sources_and_headers.json +++ b/tools/run_tests/generated/sources_and_headers.json @@ -7618,6 +7618,8 @@ "include/grpc++/completion_queue.h", "include/grpc++/create_channel.h", "include/grpc++/create_channel_posix.h", + "include/grpc++/ext/health_check_service_interface.h", + "include/grpc++/ext/health_check_service_server_builder_option.h", "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", @@ -7670,6 +7672,8 @@ "include/grpc++/completion_queue.h", "include/grpc++/create_channel.h", "include/grpc++/create_channel_posix.h", + "include/grpc++/ext/health_check_service_interface.h", + "include/grpc++/ext/health_check_service_server_builder_option.h", "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj index f281db72b66..b8d4176f8a4 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj @@ -264,6 +264,8 @@ + + diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters index f359e4ef31a..b7eae651bd0 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters @@ -132,6 +132,12 @@ include\grpc++ + + include\grpc++\ext + + + include\grpc++\ext + include\grpc++\generic @@ -416,6 +422,9 @@ {784a0281-f547-aeb0-9f55-b26b7de9c769} + + {25501d8e-5fae-2fe4-14a6-d69a07acefdd} + {51dae921-3aa2-1976-2ee4-c5615de1af54} diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj index 1511a2cfe4c..4b6d448f919 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj @@ -264,6 +264,8 @@ + + diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters index bed77b25a44..deec6d71052 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters @@ -117,6 +117,12 @@ include\grpc++ + + include\grpc++\ext + + + include\grpc++\ext + include\grpc++\generic @@ -389,6 +395,9 @@ {eceb50c0-bb49-3812-b6bd-b0af6df81da7} + + {e6643be2-2b2f-953d-ab14-27d89c835c8a} + {83717d3c-57d9-2bfa-ed9c-2b08f86da12b} From 64868839401b48a68afca187b28bc772043a2e1b Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 1 Dec 2016 12:15:50 -0800 Subject: [PATCH 02/56] Add more files --- BUILD | 3 + CMakeLists.txt | 3 + Makefile | 3 + build.yaml | 1 + ...alth_check_service_server_builder_option.h | 8 ++- ...lth_check_service_server_builder_option.cc | 59 +++++++++++++++++++ tools/doxygen/Doxyfile.c++.internal | 1 + .../generated/sources_and_headers.json | 1 + vsprojects/vcxproj/grpc++/grpc++.vcxproj | 2 + .../vcxproj/grpc++/grpc++.vcxproj.filters | 3 + .../grpc++_unsecure/grpc++_unsecure.vcxproj | 2 + .../grpc++_unsecure.vcxproj.filters | 3 + 12 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 src/cpp/ext/health_check_service_server_builder_option.cc diff --git a/BUILD b/BUILD index 54eda959fc2..fcd2742a8f5 100644 --- a/BUILD +++ b/BUILD @@ -1396,6 +1396,7 @@ cc_library( "src/cpp/common/channel_filter.cc", "src/cpp/common/completion_queue_cc.cc", "src/cpp/common/core_codegen.cc", + "src/cpp/common/health_check_service_server_builder_option.cc", "src/cpp/common/resource_quota_cc.cc", "src/cpp/common/rpc_method.cc", "src/cpp/common/version_cc.cc", @@ -1688,6 +1689,7 @@ cc_library( "src/cpp/common/channel_filter.cc", "src/cpp/common/completion_queue_cc.cc", "src/cpp/common/core_codegen.cc", + "src/cpp/common/health_check_service_server_builder_option.cc", "src/cpp/common/resource_quota_cc.cc", "src/cpp/common/rpc_method.cc", "src/cpp/common/version_cc.cc", @@ -2038,6 +2040,7 @@ cc_library( "src/cpp/common/channel_filter.cc", "src/cpp/common/completion_queue_cc.cc", "src/cpp/common/core_codegen.cc", + "src/cpp/common/health_check_service_server_builder_option.cc", "src/cpp/common/resource_quota_cc.cc", "src/cpp/common/rpc_method.cc", "src/cpp/common/version_cc.cc", diff --git a/CMakeLists.txt b/CMakeLists.txt index 90cf1cdc777..e90e8426cc7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1085,6 +1085,7 @@ add_library(grpc++ src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/core_codegen.cc + src/cpp/common/health_check_service_server_builder_option.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc src/cpp/common/version_cc.cc @@ -1245,6 +1246,7 @@ add_library(grpc++_cronet src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/core_codegen.cc + src/cpp/common/health_check_service_server_builder_option.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc src/cpp/common/version_cc.cc @@ -1628,6 +1630,7 @@ add_library(grpc++_unsecure src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/core_codegen.cc + src/cpp/common/health_check_service_server_builder_option.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc src/cpp/common/version_cc.cc diff --git a/Makefile b/Makefile index 85074b5b813..45d3cb29632 100644 --- a/Makefile +++ b/Makefile @@ -3779,6 +3779,7 @@ LIBGRPC++_SRC = \ src/cpp/common/channel_filter.cc \ src/cpp/common/completion_queue_cc.cc \ src/cpp/common/core_codegen.cc \ + src/cpp/common/health_check_service_server_builder_option.cc \ src/cpp/common/resource_quota_cc.cc \ src/cpp/common/rpc_method.cc \ src/cpp/common/version_cc.cc \ @@ -3968,6 +3969,7 @@ LIBGRPC++_CRONET_SRC = \ src/cpp/common/channel_filter.cc \ src/cpp/common/completion_queue_cc.cc \ src/cpp/common/core_codegen.cc \ + src/cpp/common/health_check_service_server_builder_option.cc \ src/cpp/common/resource_quota_cc.cc \ src/cpp/common/rpc_method.cc \ src/cpp/common/version_cc.cc \ @@ -4678,6 +4680,7 @@ LIBGRPC++_UNSECURE_SRC = \ src/cpp/common/channel_filter.cc \ src/cpp/common/completion_queue_cc.cc \ src/cpp/common/core_codegen.cc \ + src/cpp/common/health_check_service_server_builder_option.cc \ src/cpp/common/resource_quota_cc.cc \ src/cpp/common/rpc_method.cc \ src/cpp/common/version_cc.cc \ diff --git a/build.yaml b/build.yaml index 25c4dd7fbf7..25dc9e0fcbe 100644 --- a/build.yaml +++ b/build.yaml @@ -774,6 +774,7 @@ filegroups: - src/cpp/common/channel_filter.cc - src/cpp/common/completion_queue_cc.cc - src/cpp/common/core_codegen.cc + - src/cpp/common/health_check_service_server_builder_option.cc - src/cpp/common/resource_quota_cc.cc - src/cpp/common/rpc_method.cc - src/cpp/common/version_cc.cc diff --git a/include/grpc++/ext/health_check_service_server_builder_option.h b/include/grpc++/ext/health_check_service_server_builder_option.h index 9da1d18c985..fb5263d7426 100644 --- a/include/grpc++/ext/health_check_service_server_builder_option.h +++ b/include/grpc++/ext/health_check_service_server_builder_option.h @@ -36,21 +36,25 @@ #include +#include +#include #include namespace grpc { -class HealthCheckServiceInterface; - class HealthCheckServiceServerBuilderOption : public ServerBuilderOption { public: explicit HealthCheckServiceServerBuilderOption( std::unique_ptr hc); + ~HealthCheckServiceServerBuilderOption() {} void UpdateArguments(ChannelArguments* args) override; + void UpdatePlugins(std::vector>* plugins) override; private: std::unique_ptr hc_; }; +void EnableDefaultHealthCheckService(bool enable); + } // namespace grpc #endif // GRPCXX_EXT_HEALTH_CHECK_SERVICE_SERVER_BUILDER_OPTION_H diff --git a/src/cpp/ext/health_check_service_server_builder_option.cc b/src/cpp/ext/health_check_service_server_builder_option.cc new file mode 100644 index 00000000000..dab5731e895 --- /dev/null +++ b/src/cpp/ext/health_check_service_server_builder_option.cc @@ -0,0 +1,59 @@ +/* + * + * 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 + +namespace grpc { +namespace { +bool g_grpc_default_health_check_service_enabled = false; +const char kDefaultHealthCheckServiceInterfaceArg[] = "grpc.default_health_check_service_interface"; +} // namesapce + +HealthCheckServiceServerBuilderOption::HealthCheckServiceServerBuilderOption( + std::unique_ptr hc) : hc_(std::move(hc)) { } + +HealthCheckServiceServerBuilderOption::UpdateArguments(ChannelArguments* args) override { + args->SetPointer(kDefaultHealthCheckServiceInterfaceArg, hc_.release()); +} + +void HealthCheckServiceServerBuilderOption::UpdatePlugins(std::vector>* plugins) override { + +} + +void EnableDefaultHealthCheckService(bool enable) { + g_grpc_default_health_check_service_enabled = enable; +} + +} // namespace grpc + + diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index f2e871e7bdd..ac20f0fc021 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -877,6 +877,7 @@ src/cpp/common/channel_arguments.cc \ src/cpp/common/channel_filter.cc \ src/cpp/common/completion_queue_cc.cc \ src/cpp/common/core_codegen.cc \ +src/cpp/common/health_check_service_server_builder_option.cc \ src/cpp/common/resource_quota_cc.cc \ src/cpp/common/rpc_method.cc \ src/cpp/common/version_cc.cc \ diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json index 4fd90ed24eb..cb92999b268 100644 --- a/tools/run_tests/generated/sources_and_headers.json +++ b/tools/run_tests/generated/sources_and_headers.json @@ -7723,6 +7723,7 @@ "src/cpp/common/channel_filter.h", "src/cpp/common/completion_queue_cc.cc", "src/cpp/common/core_codegen.cc", + "src/cpp/common/health_check_service_server_builder_option.cc", "src/cpp/common/resource_quota_cc.cc", "src/cpp/common/rpc_method.cc", "src/cpp/common/version_cc.cc", diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj index b8d4176f8a4..468accbd239 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj @@ -398,6 +398,8 @@ + + diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters index b7eae651bd0..d21b97b8df5 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters @@ -58,6 +58,9 @@ src\cpp\common + + src\cpp\common + src\cpp\common diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj index 4b6d448f919..f0e3f3a23e2 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj @@ -384,6 +384,8 @@ + + diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters index deec6d71052..6076dbc693b 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters @@ -43,6 +43,9 @@ src\cpp\common + + src\cpp\common + src\cpp\common From 8d668d8324c3aa24353b3774a8f6ce35edbf20b7 Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 1 Dec 2016 15:09:28 -0800 Subject: [PATCH 03/56] default service --- BUILD | 9 +++ CMakeLists.txt | 6 ++ Makefile | 6 ++ build.yaml | 3 + ...alth_check_service_server_builder_option.h | 5 +- .../grpc++/health_check_service_interface.h | 63 +++++++++++++++++ include/grpc++/server.h | 9 +++ ...lth_check_service_server_builder_option.cc | 12 +--- .../server/default_health_check_service.cc | 67 +++++++++++++++++++ src/cpp/server/default_health_check_service.h | 59 ++++++++++++++++ .../cpp/server/health_check_service.cc | 23 +++---- src/cpp/server/server_cc.cc | 33 ++++++++- tools/doxygen/Doxyfile.c++.internal | 3 + .../generated/sources_and_headers.json | 4 ++ vsprojects/vcxproj/grpc++/grpc++.vcxproj | 5 ++ .../vcxproj/grpc++/grpc++.vcxproj.filters | 9 +++ .../grpc++_unsecure/grpc++_unsecure.vcxproj | 5 ++ .../grpc++_unsecure.vcxproj.filters | 9 +++ 18 files changed, 302 insertions(+), 28 deletions(-) create mode 100644 include/grpc++/health_check_service_interface.h create mode 100644 src/cpp/server/default_health_check_service.cc create mode 100644 src/cpp/server/default_health_check_service.h rename include/grpc++/ext/health_check_service_interface.h => src/cpp/server/health_check_service.cc (77%) diff --git a/BUILD b/BUILD index fcd2742a8f5..be1e23007b9 100644 --- a/BUILD +++ b/BUILD @@ -1374,6 +1374,7 @@ cc_library( "src/cpp/server/secure_server_credentials.h", "src/cpp/client/create_channel_internal.h", "src/cpp/common/channel_filter.h", + "src/cpp/server/default_health_check_service.h", "src/cpp/server/dynamic_thread_pool.h", "src/cpp/server/thread_pool_interface.h", "src/cpp/thread_manager/thread_manager.h", @@ -1402,7 +1403,9 @@ cc_library( "src/cpp/common/version_cc.cc", "src/cpp/server/async_generic_service.cc", "src/cpp/server/create_default_thread_pool.cc", + "src/cpp/server/default_health_check_service.cc", "src/cpp/server/dynamic_thread_pool.cc", + "src/cpp/server/health_check_service.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", @@ -1525,6 +1528,7 @@ cc_library( srcs = [ "src/cpp/client/create_channel_internal.h", "src/cpp/common/channel_filter.h", + "src/cpp/server/default_health_check_service.h", "src/cpp/server/dynamic_thread_pool.h", "src/cpp/server/thread_pool_interface.h", "src/cpp/thread_manager/thread_manager.h", @@ -1695,7 +1699,9 @@ cc_library( "src/cpp/common/version_cc.cc", "src/cpp/server/async_generic_service.cc", "src/cpp/server/create_default_thread_pool.cc", + "src/cpp/server/default_health_check_service.cc", "src/cpp/server/dynamic_thread_pool.cc", + "src/cpp/server/health_check_service.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", @@ -2023,6 +2029,7 @@ cc_library( srcs = [ "src/cpp/client/create_channel_internal.h", "src/cpp/common/channel_filter.h", + "src/cpp/server/default_health_check_service.h", "src/cpp/server/dynamic_thread_pool.h", "src/cpp/server/thread_pool_interface.h", "src/cpp/thread_manager/thread_manager.h", @@ -2046,7 +2053,9 @@ cc_library( "src/cpp/common/version_cc.cc", "src/cpp/server/async_generic_service.cc", "src/cpp/server/create_default_thread_pool.cc", + "src/cpp/server/default_health_check_service.cc", "src/cpp/server/dynamic_thread_pool.cc", + "src/cpp/server/health_check_service.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", diff --git a/CMakeLists.txt b/CMakeLists.txt index e90e8426cc7..049f7fdaca0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1091,7 +1091,9 @@ add_library(grpc++ src/cpp/common/version_cc.cc src/cpp/server/async_generic_service.cc src/cpp/server/create_default_thread_pool.cc + src/cpp/server/default_health_check_service.cc src/cpp/server/dynamic_thread_pool.cc + src/cpp/server/health_check_service.cc src/cpp/server/server_builder.cc src/cpp/server/server_cc.cc src/cpp/server/server_context.cc @@ -1252,7 +1254,9 @@ add_library(grpc++_cronet src/cpp/common/version_cc.cc src/cpp/server/async_generic_service.cc src/cpp/server/create_default_thread_pool.cc + src/cpp/server/default_health_check_service.cc src/cpp/server/dynamic_thread_pool.cc + src/cpp/server/health_check_service.cc src/cpp/server/server_builder.cc src/cpp/server/server_cc.cc src/cpp/server/server_context.cc @@ -1636,7 +1640,9 @@ add_library(grpc++_unsecure src/cpp/common/version_cc.cc src/cpp/server/async_generic_service.cc src/cpp/server/create_default_thread_pool.cc + src/cpp/server/default_health_check_service.cc src/cpp/server/dynamic_thread_pool.cc + src/cpp/server/health_check_service.cc src/cpp/server/server_builder.cc src/cpp/server/server_cc.cc src/cpp/server/server_context.cc diff --git a/Makefile b/Makefile index 45d3cb29632..63f5d2ad314 100644 --- a/Makefile +++ b/Makefile @@ -3785,7 +3785,9 @@ LIBGRPC++_SRC = \ src/cpp/common/version_cc.cc \ src/cpp/server/async_generic_service.cc \ src/cpp/server/create_default_thread_pool.cc \ + src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ + src/cpp/server/health_check_service.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ @@ -3975,7 +3977,9 @@ LIBGRPC++_CRONET_SRC = \ src/cpp/common/version_cc.cc \ src/cpp/server/async_generic_service.cc \ src/cpp/server/create_default_thread_pool.cc \ + src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ + src/cpp/server/health_check_service.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ @@ -4686,7 +4690,9 @@ LIBGRPC++_UNSECURE_SRC = \ src/cpp/common/version_cc.cc \ src/cpp/server/async_generic_service.cc \ src/cpp/server/create_default_thread_pool.cc \ + src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ + src/cpp/server/health_check_service.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ diff --git a/build.yaml b/build.yaml index 25dc9e0fcbe..925c73b729d 100644 --- a/build.yaml +++ b/build.yaml @@ -759,6 +759,7 @@ filegroups: headers: - src/cpp/client/create_channel_internal.h - src/cpp/common/channel_filter.h + - src/cpp/server/default_health_check_service.h - src/cpp/server/dynamic_thread_pool.h - src/cpp/server/thread_pool_interface.h - src/cpp/thread_manager/thread_manager.h @@ -780,7 +781,9 @@ filegroups: - src/cpp/common/version_cc.cc - src/cpp/server/async_generic_service.cc - src/cpp/server/create_default_thread_pool.cc + - src/cpp/server/default_health_check_service.cc - src/cpp/server/dynamic_thread_pool.cc + - src/cpp/server/health_check_service.cc - src/cpp/server/server_builder.cc - src/cpp/server/server_cc.cc - src/cpp/server/server_context.cc diff --git a/include/grpc++/ext/health_check_service_server_builder_option.h b/include/grpc++/ext/health_check_service_server_builder_option.h index fb5263d7426..e00c4c3dd59 100644 --- a/include/grpc++/ext/health_check_service_server_builder_option.h +++ b/include/grpc++/ext/health_check_service_server_builder_option.h @@ -36,7 +36,7 @@ #include -#include +#include #include #include @@ -44,6 +44,7 @@ namespace grpc { class HealthCheckServiceServerBuilderOption : public ServerBuilderOption { public: + // Use nullptr to disable default service. explicit HealthCheckServiceServerBuilderOption( std::unique_ptr hc); ~HealthCheckServiceServerBuilderOption() {} @@ -53,8 +54,6 @@ class HealthCheckServiceServerBuilderOption : public ServerBuilderOption { std::unique_ptr hc_; }; -void EnableDefaultHealthCheckService(bool enable); - } // namespace grpc #endif // GRPCXX_EXT_HEALTH_CHECK_SERVICE_SERVER_BUILDER_OPTION_H diff --git a/include/grpc++/health_check_service_interface.h b/include/grpc++/health_check_service_interface.h new file mode 100644 index 00000000000..70153d65cbb --- /dev/null +++ b/include/grpc++/health_check_service_interface.h @@ -0,0 +1,63 @@ +/* + * + * 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. + * + */ + +#ifndef GRPCXX_HEALTH_CHECK_SERVICE_INTERFACE_H +#define GRPCXX_HEALTH_CHECK_SERVICE_INTERFACE_H + +#include + +namespace grpc { + +const char kDefaultHealthCheckServiceInterfaceArg[] = + "grpc.default_health_check_service_interface"; + +class HealthCheckServiceInterface { + public: + virtual ~HealthCheckServiceInterface() {} + virtual void SetServingStatus(const grpc::string& service_name, + bool serving) = 0; + // Apply to all registered service names. + virtual void SetServingStatus(bool serving) = 0; +}; + +bool DefaultHealthCheckServiceEnabled(); + +// Enable/disable the default health checking service. This applies to all C++ +// servers created afterwards. For each server, user can override the default +// with a HealthCheckServiceServerBuilderOption. +// NOT thread safe. +void EnableDefaultHealthCheckService(bool enable); + +} // namespace grpc + +#endif // GRPCXX_HEALTH_CHECK_SERVICE_INTERFACE_H diff --git a/include/grpc++/server.h b/include/grpc++/server.h index fba9952e6e7..511dc35564a 100644 --- a/include/grpc++/server.h +++ b/include/grpc++/server.h @@ -97,6 +97,11 @@ class Server final : public ServerInterface, private GrpcLibraryCodegen { // Returns a \em raw pointer to the underlying grpc_server instance. grpc_server* c_server(); + /// Returns the health check service. + HealthCheckServiceInterface* GetHealthCheckService() const { + return hc_.get(); + } + private: friend class AsyncGenericService; friend class ServerBuilder; @@ -214,6 +219,10 @@ class Server final : public ServerInterface, private GrpcLibraryCodegen { grpc_server* server_; std::unique_ptr server_initializer_; + + std::unique_ptr health_check_service_; + // User explicitly disabled health check service. + bool health_check_service_disabled_; }; } // namespace grpc diff --git a/src/cpp/ext/health_check_service_server_builder_option.cc b/src/cpp/ext/health_check_service_server_builder_option.cc index dab5731e895..4afc82dc144 100644 --- a/src/cpp/ext/health_check_service_server_builder_option.cc +++ b/src/cpp/ext/health_check_service_server_builder_option.cc @@ -34,26 +34,16 @@ #include namespace grpc { -namespace { -bool g_grpc_default_health_check_service_enabled = false; -const char kDefaultHealthCheckServiceInterfaceArg[] = "grpc.default_health_check_service_interface"; -} // namesapce HealthCheckServiceServerBuilderOption::HealthCheckServiceServerBuilderOption( std::unique_ptr hc) : hc_(std::move(hc)) { } HealthCheckServiceServerBuilderOption::UpdateArguments(ChannelArguments* args) override { - args->SetPointer(kDefaultHealthCheckServiceInterfaceArg, hc_.release()); + args->SetPointer(DefaultHealthCheckServiceInterfaceArg(), hc_.release()); } void HealthCheckServiceServerBuilderOption::UpdatePlugins(std::vector>* plugins) override { - -} - -void EnableDefaultHealthCheckService(bool enable) { - g_grpc_default_health_check_service_enabled = enable; } } // namespace grpc - diff --git a/src/cpp/server/default_health_check_service.cc b/src/cpp/server/default_health_check_service.cc new file mode 100644 index 00000000000..eec7e2cd585 --- /dev/null +++ b/src/cpp/server/default_health_check_service.cc @@ -0,0 +1,67 @@ +/* + * + * 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 "src/cpp/server/default_health_check_service.h" + +namespace grpc { + +DefaultHealthCheckService::DefaultHealthCheckService() { + services_map_.insert("", true); +} + +void DefaultHealthCheckService::SetServingStatus( + const grpc::string& service_name, bool serving) override { + std::lock_guard lock(mu_); + services_map_[service_name] = serving; +} + +void SetServingStatus(bool serving) override { + std::lock_guard lock(mu_); + for (auto& iter = services_map_.begin(); iter != services_map_.end(); + ++iter) { + iter->second = serving; + } +} + +ServingStatus GetServingStatus(const grpc::string& service_name) const { + std::lock_guard lock(mu_); + const auto& iter = services_map_.find(service_name); + if (iter == services_map_.end()) { + return NOT_FOUND; + } + return iter->second ? SERVING : NOT_SERVING; +} + +} // namespace grpc + +#endif // GRPC_INTERNAL_CPP_SERVER_DEFAULT_HEALTH_CHECK_SERVICE_H diff --git a/src/cpp/server/default_health_check_service.h b/src/cpp/server/default_health_check_service.h new file mode 100644 index 00000000000..51afa6491e6 --- /dev/null +++ b/src/cpp/server/default_health_check_service.h @@ -0,0 +1,59 @@ +/* + * + * 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. + * + */ + +#ifndef GRPC_INTERNAL_CPP_SERVER_DEFAULT_HEALTH_CHECK_SERVICE_H +#define GRPC_INTERNAL_CPP_SERVER_DEFAULT_HEALTH_CHECK_SERVICE_H + +#include + +#include + +namespace grpc { + +class DefaultHealthCheckService : public HealthCheckServiceInterface { + public: + DefaultHealthCheckService(); + void SetServingStatus(const grpc::string& service_name, + bool serving) override; + void SetServingStatus(bool serving) override; + enum ServingStatus { NOT_FOUND, SERVING, NOT_SERVING }; + ServingStatus GetServingStatus(const grpc::string& service_name) const; + + private: + std::mutex mu_; + std::map services_map_; +}; + +} // namespace grpc + +#endif // GRPC_INTERNAL_CPP_SERVER_DEFAULT_HEALTH_CHECK_SERVICE_H diff --git a/include/grpc++/ext/health_check_service_interface.h b/src/cpp/server/health_check_service.cc similarity index 77% rename from include/grpc++/ext/health_check_service_interface.h rename to src/cpp/server/health_check_service.cc index b9f4ebb87f9..cca68c55490 100644 --- a/include/grpc++/ext/health_check_service_interface.h +++ b/src/cpp/server/health_check_service.cc @@ -31,22 +31,19 @@ * */ -#ifndef GRPCXX_EXT_HEALTH_CHECK_SERVICE_INTERFACE_H -#define GRPCXX_EXT_HEALTH_CHECK_SERVICE_INTERFACE_H - -#include +#include namespace grpc { +namespace { +bool g_grpc_default_health_check_service_enabled = false; +} // namesapce -class HealthCheckServiceInterface { - public: - virtual ~HealthCheckServiceInterface() { } - virtual void SetServingStatus(const grpc::string& service_name, bool serving) = 0; - // Apply to all registered service names. - virtual void SetServingStatus(bool serving) = 0; -}; +bool DefaultHealthCheckServiceEnabled() { + return g_grpc_default_health_check_service_enabled; +} +void EnableDefaultHealthCheckService(bool enable) { + g_grpc_default_health_check_service_enabled = enable; +} } // namespace grpc - -#endif // GRPCXX_EXT_HEALTH_CHECK_SERVICE_INTERFACE_H diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index 817d85a81ca..037da2b3015 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -36,6 +36,7 @@ #include #include +#include #include #include #include @@ -342,6 +343,7 @@ class Server::SyncRequestThreadManager : public ThreadManager { int cq_timeout_msec_; std::vector> sync_requests_; std::unique_ptr unknown_method_; + std::unique_ptr health_check_; std::shared_ptr global_callbacks_; }; @@ -358,7 +360,8 @@ Server::Server( shutdown_notified_(false), has_generic_service_(false), server_(nullptr), - server_initializer_(new ServerInitializer(this)) { + server_initializer_(new ServerInitializer(this)), + health_check_service_disabled_(false) { g_gli_initializer.summon(); gpr_once_init(&g_once_init_callbacks, InitGlobalCallbacks); global_callbacks_ = g_callbacks; @@ -374,6 +377,18 @@ Server::Server( grpc_channel_args channel_args; args->SetChannelArgs(&channel_args); + for (size_t i = 0; i < channel_args.num_args; i++) { + if (0 == strcmp(channel_args.args[i].key, + kDefaultHealthCheckServiceInterfaceArg)) { + if (channel_args.args[i].value == nullptr) { + health_check_service_disabled_ = true; + } else { + health_check_service_.reset(channel_args.args[i].value); + } + break; + } + } + server_ = grpc_server_create(&channel_args, nullptr); } @@ -481,6 +496,22 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { started_ = true; grpc_server_start(server_); + // Only create default health check service when user did not provide an + // explicit one. + if (health_check_service_ == nullptr && !health_check_service_disabled_ && + EnableDefaultHealthCheckService()) { + health_check_service_.reset(CreateDefaultHealthCheckService()); + for (auto it = sync_req_mgrs_.begin(); it != sync_req_mgrs_.end(); it++) { + (*it)->AddHealthCheckSyncMethod(); + } + + for (size_t i = 0; i < num_cqs; i++) { + if (cqs[i]->IsFrequentlyPolled()) { + // new UnimplementedAsyncRequest(this, cqs[i]); + } + } + } + if (!has_generic_service_) { for (auto it = sync_req_mgrs_.begin(); it != sync_req_mgrs_.end(); it++) { (*it)->AddUnknownSyncMethod(); diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index ac20f0fc021..aa79aedeb9d 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -855,6 +855,7 @@ src/cpp/common/secure_auth_context.h \ src/cpp/server/secure_server_credentials.h \ src/cpp/client/create_channel_internal.h \ src/cpp/common/channel_filter.h \ +src/cpp/server/default_health_check_service.h \ src/cpp/server/dynamic_thread_pool.h \ src/cpp/server/thread_pool_interface.h \ src/cpp/thread_manager/thread_manager.h \ @@ -883,7 +884,9 @@ src/cpp/common/rpc_method.cc \ src/cpp/common/version_cc.cc \ src/cpp/server/async_generic_service.cc \ src/cpp/server/create_default_thread_pool.cc \ +src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ +src/cpp/server/health_check_service.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json index cb92999b268..860a151f48a 100644 --- a/tools/run_tests/generated/sources_and_headers.json +++ b/tools/run_tests/generated/sources_and_headers.json @@ -7658,6 +7658,7 @@ "include/grpc++/support/time.h", "src/cpp/client/create_channel_internal.h", "src/cpp/common/channel_filter.h", + "src/cpp/server/default_health_check_service.h", "src/cpp/server/dynamic_thread_pool.h", "src/cpp/server/thread_pool_interface.h", "src/cpp/thread_manager/thread_manager.h" @@ -7729,8 +7730,11 @@ "src/cpp/common/version_cc.cc", "src/cpp/server/async_generic_service.cc", "src/cpp/server/create_default_thread_pool.cc", + "src/cpp/server/default_health_check_service.cc", + "src/cpp/server/default_health_check_service.h", "src/cpp/server/dynamic_thread_pool.cc", "src/cpp/server/dynamic_thread_pool.h", + "src/cpp/server/health_check_service.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj index 468accbd239..a57ed0e2e53 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj @@ -355,6 +355,7 @@ + @@ -410,8 +411,12 @@ + + + + diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters index d21b97b8df5..e455636abe2 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters @@ -76,9 +76,15 @@ src\cpp\server + + src\cpp\server + src\cpp\server + + src\cpp\server + src\cpp\server @@ -404,6 +410,9 @@ src\cpp\common + + src\cpp\server + src\cpp\server diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj index f0e3f3a23e2..10c9be33399 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj @@ -351,6 +351,7 @@ + @@ -396,8 +397,12 @@ + + + + diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters index 6076dbc693b..0b65ff3fe81 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters @@ -61,9 +61,15 @@ src\cpp\server + + src\cpp\server + src\cpp\server + + src\cpp\server + src\cpp\server @@ -377,6 +383,9 @@ src\cpp\common + + src\cpp\server + src\cpp\server From 08137362d0c27d9908d91333c2825f09b30bad2b Mon Sep 17 00:00:00 2001 From: yang-g Date: Fri, 2 Dec 2016 21:28:43 -0800 Subject: [PATCH 04/56] WIP --- src/cpp/server/server_cc.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index 037da2b3015..5d4da92f2bc 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -52,6 +52,7 @@ #include #include "src/core/lib/profiling/timers.h" +#include "src/cpp/server/default_health_check_service.h" #include "src/cpp/thread_manager/thread_manager.h" namespace grpc { @@ -306,6 +307,15 @@ class Server::SyncRequestThreadManager : public ThreadManager { sync_requests_.emplace_back(new SyncRequest(method, tag)); } + void AddHealthCheckSyncMethod() { + if (!sync_requests_.empty()) { + health_check_.reset( + new RpcServiceMethod("???", RpcMethod::NORMAL_RPC, new XXXHandler)); + sync_requests_.emplace_back( + new SyncRequest(health_check_.get(), nullptr)); + } + } + void AddUnknownSyncMethod() { if (!sync_requests_.empty()) { unknown_method_.reset(new RpcServiceMethod( @@ -500,7 +510,7 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { // explicit one. if (health_check_service_ == nullptr && !health_check_service_disabled_ && EnableDefaultHealthCheckService()) { - health_check_service_.reset(CreateDefaultHealthCheckService()); + health_check_service_.reset(new DefaultHealthCheckService); for (auto it = sync_req_mgrs_.begin(); it != sync_req_mgrs_.end(); it++) { (*it)->AddHealthCheckSyncMethod(); } From c9d2954e556db3f102a858d97e339edb9db0388c Mon Sep 17 00:00:00 2001 From: yang-g Date: Tue, 6 Dec 2016 14:20:17 -0800 Subject: [PATCH 05/56] more --- BUILD | 6 +-- CMakeLists.txt | 6 +-- Makefile | 6 +-- build.yaml | 2 +- include/grpc++/server.h | 8 +-- .../server/default_health_check_service.cc | 23 +++++++++ src/cpp/server/default_health_check_service.h | 22 ++++++-- ...lth_check_service_server_builder_option.cc | 50 +++++++++++++++++++ src/cpp/server/server_cc.cc | 29 ++++------- tools/doxygen/Doxyfile.c++.internal | 2 +- .../generated/sources_and_headers.json | 2 +- vsprojects/vcxproj/grpc++/grpc++.vcxproj | 4 +- .../vcxproj/grpc++/grpc++.vcxproj.filters | 6 +-- .../grpc++_unsecure/grpc++_unsecure.vcxproj | 4 +- .../grpc++_unsecure.vcxproj.filters | 6 +-- 15 files changed, 127 insertions(+), 49 deletions(-) create mode 100644 src/cpp/server/health_check_service_server_builder_option.cc diff --git a/BUILD b/BUILD index be1e23007b9..6e786607ccc 100644 --- a/BUILD +++ b/BUILD @@ -1397,7 +1397,6 @@ cc_library( "src/cpp/common/channel_filter.cc", "src/cpp/common/completion_queue_cc.cc", "src/cpp/common/core_codegen.cc", - "src/cpp/common/health_check_service_server_builder_option.cc", "src/cpp/common/resource_quota_cc.cc", "src/cpp/common/rpc_method.cc", "src/cpp/common/version_cc.cc", @@ -1406,6 +1405,7 @@ cc_library( "src/cpp/server/default_health_check_service.cc", "src/cpp/server/dynamic_thread_pool.cc", "src/cpp/server/health_check_service.cc", + "src/cpp/server/health_check_service_server_builder_option.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", @@ -1693,7 +1693,6 @@ cc_library( "src/cpp/common/channel_filter.cc", "src/cpp/common/completion_queue_cc.cc", "src/cpp/common/core_codegen.cc", - "src/cpp/common/health_check_service_server_builder_option.cc", "src/cpp/common/resource_quota_cc.cc", "src/cpp/common/rpc_method.cc", "src/cpp/common/version_cc.cc", @@ -1702,6 +1701,7 @@ cc_library( "src/cpp/server/default_health_check_service.cc", "src/cpp/server/dynamic_thread_pool.cc", "src/cpp/server/health_check_service.cc", + "src/cpp/server/health_check_service_server_builder_option.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", @@ -2047,7 +2047,6 @@ cc_library( "src/cpp/common/channel_filter.cc", "src/cpp/common/completion_queue_cc.cc", "src/cpp/common/core_codegen.cc", - "src/cpp/common/health_check_service_server_builder_option.cc", "src/cpp/common/resource_quota_cc.cc", "src/cpp/common/rpc_method.cc", "src/cpp/common/version_cc.cc", @@ -2056,6 +2055,7 @@ cc_library( "src/cpp/server/default_health_check_service.cc", "src/cpp/server/dynamic_thread_pool.cc", "src/cpp/server/health_check_service.cc", + "src/cpp/server/health_check_service_server_builder_option.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", diff --git a/CMakeLists.txt b/CMakeLists.txt index 049f7fdaca0..c32a4aaf960 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1085,7 +1085,6 @@ add_library(grpc++ src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/core_codegen.cc - src/cpp/common/health_check_service_server_builder_option.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc src/cpp/common/version_cc.cc @@ -1094,6 +1093,7 @@ add_library(grpc++ src/cpp/server/default_health_check_service.cc src/cpp/server/dynamic_thread_pool.cc src/cpp/server/health_check_service.cc + src/cpp/server/health_check_service_server_builder_option.cc src/cpp/server/server_builder.cc src/cpp/server/server_cc.cc src/cpp/server/server_context.cc @@ -1248,7 +1248,6 @@ add_library(grpc++_cronet src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/core_codegen.cc - src/cpp/common/health_check_service_server_builder_option.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc src/cpp/common/version_cc.cc @@ -1257,6 +1256,7 @@ add_library(grpc++_cronet src/cpp/server/default_health_check_service.cc src/cpp/server/dynamic_thread_pool.cc src/cpp/server/health_check_service.cc + src/cpp/server/health_check_service_server_builder_option.cc src/cpp/server/server_builder.cc src/cpp/server/server_cc.cc src/cpp/server/server_context.cc @@ -1634,7 +1634,6 @@ add_library(grpc++_unsecure src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/core_codegen.cc - src/cpp/common/health_check_service_server_builder_option.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc src/cpp/common/version_cc.cc @@ -1643,6 +1642,7 @@ add_library(grpc++_unsecure src/cpp/server/default_health_check_service.cc src/cpp/server/dynamic_thread_pool.cc src/cpp/server/health_check_service.cc + src/cpp/server/health_check_service_server_builder_option.cc src/cpp/server/server_builder.cc src/cpp/server/server_cc.cc src/cpp/server/server_context.cc diff --git a/Makefile b/Makefile index 63f5d2ad314..43ef3c4f068 100644 --- a/Makefile +++ b/Makefile @@ -3779,7 +3779,6 @@ LIBGRPC++_SRC = \ src/cpp/common/channel_filter.cc \ src/cpp/common/completion_queue_cc.cc \ src/cpp/common/core_codegen.cc \ - src/cpp/common/health_check_service_server_builder_option.cc \ src/cpp/common/resource_quota_cc.cc \ src/cpp/common/rpc_method.cc \ src/cpp/common/version_cc.cc \ @@ -3788,6 +3787,7 @@ LIBGRPC++_SRC = \ src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ src/cpp/server/health_check_service.cc \ + src/cpp/server/health_check_service_server_builder_option.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ @@ -3971,7 +3971,6 @@ LIBGRPC++_CRONET_SRC = \ src/cpp/common/channel_filter.cc \ src/cpp/common/completion_queue_cc.cc \ src/cpp/common/core_codegen.cc \ - src/cpp/common/health_check_service_server_builder_option.cc \ src/cpp/common/resource_quota_cc.cc \ src/cpp/common/rpc_method.cc \ src/cpp/common/version_cc.cc \ @@ -3980,6 +3979,7 @@ LIBGRPC++_CRONET_SRC = \ src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ src/cpp/server/health_check_service.cc \ + src/cpp/server/health_check_service_server_builder_option.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ @@ -4684,7 +4684,6 @@ LIBGRPC++_UNSECURE_SRC = \ src/cpp/common/channel_filter.cc \ src/cpp/common/completion_queue_cc.cc \ src/cpp/common/core_codegen.cc \ - src/cpp/common/health_check_service_server_builder_option.cc \ src/cpp/common/resource_quota_cc.cc \ src/cpp/common/rpc_method.cc \ src/cpp/common/version_cc.cc \ @@ -4693,6 +4692,7 @@ LIBGRPC++_UNSECURE_SRC = \ src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ src/cpp/server/health_check_service.cc \ + src/cpp/server/health_check_service_server_builder_option.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ diff --git a/build.yaml b/build.yaml index 925c73b729d..f02142717d6 100644 --- a/build.yaml +++ b/build.yaml @@ -775,7 +775,6 @@ filegroups: - src/cpp/common/channel_filter.cc - src/cpp/common/completion_queue_cc.cc - src/cpp/common/core_codegen.cc - - src/cpp/common/health_check_service_server_builder_option.cc - src/cpp/common/resource_quota_cc.cc - src/cpp/common/rpc_method.cc - src/cpp/common/version_cc.cc @@ -784,6 +783,7 @@ filegroups: - src/cpp/server/default_health_check_service.cc - src/cpp/server/dynamic_thread_pool.cc - src/cpp/server/health_check_service.cc + - src/cpp/server/health_check_service_server_builder_option.cc - src/cpp/server/server_builder.cc - src/cpp/server/server_cc.cc - src/cpp/server/server_context.cc diff --git a/include/grpc++/server.h b/include/grpc++/server.h index 511dc35564a..dc97a0ec4c7 100644 --- a/include/grpc++/server.h +++ b/include/grpc++/server.h @@ -55,12 +55,10 @@ struct grpc_server; namespace grpc { -class GenericServerContext; class AsyncGenericService; -class ServerAsyncStreamingInterface; +class HealthCheckServiceInterface; class ServerContext; class ServerInitializer; -class ThreadPoolInterface; /// Models a gRPC server. /// @@ -99,7 +97,7 @@ class Server final : public ServerInterface, private GrpcLibraryCodegen { /// Returns the health check service. HealthCheckServiceInterface* GetHealthCheckService() const { - return hc_.get(); + return health_check_service_.get(); } private: @@ -221,8 +219,6 @@ class Server final : public ServerInterface, private GrpcLibraryCodegen { std::unique_ptr server_initializer_; std::unique_ptr health_check_service_; - // User explicitly disabled health check service. - bool health_check_service_disabled_; }; } // namespace grpc diff --git a/src/cpp/server/default_health_check_service.cc b/src/cpp/server/default_health_check_service.cc index eec7e2cd585..45f51a97b6f 100644 --- a/src/cpp/server/default_health_check_service.cc +++ b/src/cpp/server/default_health_check_service.cc @@ -34,6 +34,29 @@ #include "src/cpp/server/default_health_check_service.h" namespace grpc { +namespace { + +const char kHealthCheckMethodName[] = "/grpc.health.v1.Health/Check"; + +} // namespace + +SyncHealthCheckServiceImpl::SyncHealthCheckServiceImpl( + DefaultHealthCheckService* service) + : service_(service) { + auto* handler = + new RpcMethodHandler( + std::mem_fn(&SyncHealthCheckServiceImpl::Check), this); + auto* method = new RpcServiceMethod(kHealthCheckMethodName, + RpcMethod::NORMAL_RPC, handler); + AddMethod(mehtod); +} + +Status SyncHealthCheckServiceImpl::Check(ServerContext* context, + const ByteBuffer* request, + ByteBuffer* response) { + // TODO nanopb + return Status::OK; +} DefaultHealthCheckService::DefaultHealthCheckService() { services_map_.insert("", true); diff --git a/src/cpp/server/default_health_check_service.h b/src/cpp/server/default_health_check_service.h index 51afa6491e6..a2545c50e75 100644 --- a/src/cpp/server/default_health_check_service.h +++ b/src/cpp/server/default_health_check_service.h @@ -37,21 +37,37 @@ #include #include +#include namespace grpc { +class SyncHealthCheckServiceImpl : public Service { + public: + explicit SyncHealthCheckServiceImpl(DefaultHealthCheckService* service); + Status Check(ServerContext* context, const ByteBuffer* request, + ByteBuffer* response); + + private: + const DefaultHealthCheckService* service_; +}; + +// Default implementation of HealthCheckServiceInterface. Server will create and +// own it. class DefaultHealthCheckService : public HealthCheckServiceInterface { public: DefaultHealthCheckService(); - void SetServingStatus(const grpc::string& service_name, - bool serving) override; - void SetServingStatus(bool serving) override; + void SetServingStatus(const grpc::string& service_name, bool serving) final; + void SetServingStatus(bool serving) final; enum ServingStatus { NOT_FOUND, SERVING, NOT_SERVING }; ServingStatus GetServingStatus(const grpc::string& service_name) const; + SyncHealthCheckServiceImpl* GetSyncHealthCheckService() const { + return sync_service_.get(); + } private: std::mutex mu_; std::map services_map_; + std::unique_ptr sync_service_; }; } // namespace grpc diff --git a/src/cpp/server/health_check_service_server_builder_option.cc b/src/cpp/server/health_check_service_server_builder_option.cc new file mode 100644 index 00000000000..80004b77fae --- /dev/null +++ b/src/cpp/server/health_check_service_server_builder_option.cc @@ -0,0 +1,50 @@ +/* + * + * 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 + +namespace grpc { + +HealthCheckServiceServerBuilderOption::HealthCheckServiceServerBuilderOption( + std::unique_ptr hc) + : hc_(std::move(hc)) {} +// Hand over hc_ to the server. +void HealthCheckServiceServerBuilderOption::UpdateArguments( + ChannelArguments* args) override { + args->SetPointer(kDefaultHealthCheckServiceInterfaceArg, hc_.release()); +} + +void HealthCheckServiceServerBuilderOption::UpdatePlugins( + std::vector>* plugins) override {} + +} // namespace grpc diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index 5d4da92f2bc..03210883bfe 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -370,8 +370,7 @@ Server::Server( shutdown_notified_(false), has_generic_service_(false), server_(nullptr), - server_initializer_(new ServerInitializer(this)), - health_check_service_disabled_(false) { + server_initializer_(new ServerInitializer(this)) { g_gli_initializer.summon(); gpr_once_init(&g_once_init_callbacks, InitGlobalCallbacks); global_callbacks_ = g_callbacks; @@ -387,6 +386,7 @@ Server::Server( grpc_channel_args channel_args; args->SetChannelArgs(&channel_args); + bool health_check_service_disabled = false; for (size_t i = 0; i < channel_args.num_args; i++) { if (0 == strcmp(channel_args.args[i].key, kDefaultHealthCheckServiceInterfaceArg)) { @@ -398,6 +398,15 @@ Server::Server( break; } } + // Only create default health check service when user did not provide an + // explicit one. + if (health_check_service_ == nullptr && !health_check_service_disabled && + EnableDefaultHealthCheckService()) { + health_check_service_.reset(new DefaultHealthCheckService); + if (!sync_server_cqs->empty()) { // Has sync methods. + RegisterService(health_check_service_->GetSyncHealthCheckService()); + } + } server_ = grpc_server_create(&channel_args, nullptr); } @@ -506,22 +515,6 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { started_ = true; grpc_server_start(server_); - // Only create default health check service when user did not provide an - // explicit one. - if (health_check_service_ == nullptr && !health_check_service_disabled_ && - EnableDefaultHealthCheckService()) { - health_check_service_.reset(new DefaultHealthCheckService); - for (auto it = sync_req_mgrs_.begin(); it != sync_req_mgrs_.end(); it++) { - (*it)->AddHealthCheckSyncMethod(); - } - - for (size_t i = 0; i < num_cqs; i++) { - if (cqs[i]->IsFrequentlyPolled()) { - // new UnimplementedAsyncRequest(this, cqs[i]); - } - } - } - if (!has_generic_service_) { for (auto it = sync_req_mgrs_.begin(); it != sync_req_mgrs_.end(); it++) { (*it)->AddUnknownSyncMethod(); diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index aa79aedeb9d..5e3f2266032 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -878,7 +878,6 @@ src/cpp/common/channel_arguments.cc \ src/cpp/common/channel_filter.cc \ src/cpp/common/completion_queue_cc.cc \ src/cpp/common/core_codegen.cc \ -src/cpp/common/health_check_service_server_builder_option.cc \ src/cpp/common/resource_quota_cc.cc \ src/cpp/common/rpc_method.cc \ src/cpp/common/version_cc.cc \ @@ -887,6 +886,7 @@ src/cpp/server/create_default_thread_pool.cc \ src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ src/cpp/server/health_check_service.cc \ +src/cpp/server/health_check_service_server_builder_option.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json index 860a151f48a..84fc1ad3b18 100644 --- a/tools/run_tests/generated/sources_and_headers.json +++ b/tools/run_tests/generated/sources_and_headers.json @@ -7724,7 +7724,6 @@ "src/cpp/common/channel_filter.h", "src/cpp/common/completion_queue_cc.cc", "src/cpp/common/core_codegen.cc", - "src/cpp/common/health_check_service_server_builder_option.cc", "src/cpp/common/resource_quota_cc.cc", "src/cpp/common/rpc_method.cc", "src/cpp/common/version_cc.cc", @@ -7735,6 +7734,7 @@ "src/cpp/server/dynamic_thread_pool.cc", "src/cpp/server/dynamic_thread_pool.h", "src/cpp/server/health_check_service.cc", + "src/cpp/server/health_check_service_server_builder_option.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj index a57ed0e2e53..4af3454e39a 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj @@ -399,8 +399,6 @@ - - @@ -417,6 +415,8 @@ + + diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters index e455636abe2..17ea98381a0 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters @@ -58,9 +58,6 @@ src\cpp\common - - src\cpp\common - src\cpp\common @@ -85,6 +82,9 @@ src\cpp\server + + src\cpp\server + src\cpp\server diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj index 10c9be33399..060f2818e32 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj @@ -385,8 +385,6 @@ - - @@ -403,6 +401,8 @@ + + diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters index 0b65ff3fe81..8aa4a77d400 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters @@ -43,9 +43,6 @@ src\cpp\common - - src\cpp\common - src\cpp\common @@ -70,6 +67,9 @@ src\cpp\server + + src\cpp\server + src\cpp\server From 6d0fbfaf7b887ed96defc46f96fd1e7d5b4875b9 Mon Sep 17 00:00:00 2001 From: yang-g Date: Tue, 6 Dec 2016 16:49:04 -0800 Subject: [PATCH 06/56] WIP --- .../server/default_health_check_service.cc | 29 ++++++++++--------- src/cpp/server/default_health_check_service.h | 25 ++++++++-------- ...lth_check_service_server_builder_option.cc | 4 +-- src/cpp/server/server_cc.cc | 25 ++++++---------- 4 files changed, 39 insertions(+), 44 deletions(-) diff --git a/src/cpp/server/default_health_check_service.cc b/src/cpp/server/default_health_check_service.cc index 45f51a97b6f..704243e8314 100644 --- a/src/cpp/server/default_health_check_service.cc +++ b/src/cpp/server/default_health_check_service.cc @@ -31,6 +31,10 @@ * */ +#include + +#include + #include "src/cpp/server/default_health_check_service.h" namespace grpc { @@ -40,43 +44,42 @@ const char kHealthCheckMethodName[] = "/grpc.health.v1.Health/Check"; } // namespace -SyncHealthCheckServiceImpl::SyncHealthCheckServiceImpl( - DefaultHealthCheckService* service) +DefaultHealthCheckService::SyncHealthCheckServiceImpl:: + SyncHealthCheckServiceImpl(DefaultHealthCheckService* service) : service_(service) { auto* handler = new RpcMethodHandler( std::mem_fn(&SyncHealthCheckServiceImpl::Check), this); auto* method = new RpcServiceMethod(kHealthCheckMethodName, RpcMethod::NORMAL_RPC, handler); - AddMethod(mehtod); + AddMethod(method); } -Status SyncHealthCheckServiceImpl::Check(ServerContext* context, - const ByteBuffer* request, - ByteBuffer* response) { +Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( + ServerContext* context, const ByteBuffer* request, ByteBuffer* response) { // TODO nanopb return Status::OK; } DefaultHealthCheckService::DefaultHealthCheckService() { - services_map_.insert("", true); + services_map_.emplace("", true); } void DefaultHealthCheckService::SetServingStatus( - const grpc::string& service_name, bool serving) override { + const grpc::string& service_name, bool serving) { std::lock_guard lock(mu_); services_map_[service_name] = serving; } -void SetServingStatus(bool serving) override { +void DefaultHealthCheckService::SetServingStatus(bool serving) { std::lock_guard lock(mu_); - for (auto& iter = services_map_.begin(); iter != services_map_.end(); - ++iter) { + for (auto iter = services_map_.begin(); iter != services_map_.end(); ++iter) { iter->second = serving; } } -ServingStatus GetServingStatus(const grpc::string& service_name) const { +DefaultHealthCheckService::ServingStatus +DefaultHealthCheckService::GetServingStatus(const grpc::string& service_name) { std::lock_guard lock(mu_); const auto& iter = services_map_.find(service_name); if (iter == services_map_.end()) { @@ -86,5 +89,3 @@ ServingStatus GetServingStatus(const grpc::string& service_name) const { } } // namespace grpc - -#endif // GRPC_INTERNAL_CPP_SERVER_DEFAULT_HEALTH_CHECK_SERVICE_H diff --git a/src/cpp/server/default_health_check_service.h b/src/cpp/server/default_health_check_service.h index a2545c50e75..23ee1cb7dc3 100644 --- a/src/cpp/server/default_health_check_service.h +++ b/src/cpp/server/default_health_check_service.h @@ -37,29 +37,30 @@ #include #include -#include +#include +#include namespace grpc { -class SyncHealthCheckServiceImpl : public Service { - public: - explicit SyncHealthCheckServiceImpl(DefaultHealthCheckService* service); - Status Check(ServerContext* context, const ByteBuffer* request, - ByteBuffer* response); - - private: - const DefaultHealthCheckService* service_; -}; - // Default implementation of HealthCheckServiceInterface. Server will create and // own it. class DefaultHealthCheckService : public HealthCheckServiceInterface { public: + class SyncHealthCheckServiceImpl : public Service { + public: + explicit SyncHealthCheckServiceImpl(DefaultHealthCheckService* service); + Status Check(ServerContext* context, const ByteBuffer* request, + ByteBuffer* response); + + private: + const DefaultHealthCheckService* service_; + }; + DefaultHealthCheckService(); void SetServingStatus(const grpc::string& service_name, bool serving) final; void SetServingStatus(bool serving) final; enum ServingStatus { NOT_FOUND, SERVING, NOT_SERVING }; - ServingStatus GetServingStatus(const grpc::string& service_name) const; + ServingStatus GetServingStatus(const grpc::string& service_name); SyncHealthCheckServiceImpl* GetSyncHealthCheckService() const { return sync_service_.get(); } diff --git a/src/cpp/server/health_check_service_server_builder_option.cc b/src/cpp/server/health_check_service_server_builder_option.cc index 80004b77fae..6680bed2e2b 100644 --- a/src/cpp/server/health_check_service_server_builder_option.cc +++ b/src/cpp/server/health_check_service_server_builder_option.cc @@ -40,11 +40,11 @@ HealthCheckServiceServerBuilderOption::HealthCheckServiceServerBuilderOption( : hc_(std::move(hc)) {} // Hand over hc_ to the server. void HealthCheckServiceServerBuilderOption::UpdateArguments( - ChannelArguments* args) override { + ChannelArguments* args) { args->SetPointer(kDefaultHealthCheckServiceInterfaceArg, hc_.release()); } void HealthCheckServiceServerBuilderOption::UpdatePlugins( - std::vector>* plugins) override {} + std::vector>* plugins) {} } // namespace grpc diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index 03210883bfe..4eaafeabb89 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -36,7 +36,6 @@ #include #include -#include #include #include #include @@ -307,15 +306,6 @@ class Server::SyncRequestThreadManager : public ThreadManager { sync_requests_.emplace_back(new SyncRequest(method, tag)); } - void AddHealthCheckSyncMethod() { - if (!sync_requests_.empty()) { - health_check_.reset( - new RpcServiceMethod("???", RpcMethod::NORMAL_RPC, new XXXHandler)); - sync_requests_.emplace_back( - new SyncRequest(health_check_.get(), nullptr)); - } - } - void AddUnknownSyncMethod() { if (!sync_requests_.empty()) { unknown_method_.reset(new RpcServiceMethod( @@ -390,10 +380,11 @@ Server::Server( for (size_t i = 0; i < channel_args.num_args; i++) { if (0 == strcmp(channel_args.args[i].key, kDefaultHealthCheckServiceInterfaceArg)) { - if (channel_args.args[i].value == nullptr) { - health_check_service_disabled_ = true; + if (channel_args.args[i].value.pointer.p == nullptr) { + health_check_service_disabled = true; } else { - health_check_service_.reset(channel_args.args[i].value); + health_check_service_.reset(static_cast( + channel_args.args[i].value.pointer.p)); } break; } @@ -401,10 +392,12 @@ Server::Server( // Only create default health check service when user did not provide an // explicit one. if (health_check_service_ == nullptr && !health_check_service_disabled && - EnableDefaultHealthCheckService()) { - health_check_service_.reset(new DefaultHealthCheckService); + DefaultHealthCheckServiceEnabled()) { + auto* default_hc_service = new DefaultHealthCheckService; + health_check_service_.reset(default_hc_service); if (!sync_server_cqs->empty()) { // Has sync methods. - RegisterService(health_check_service_->GetSyncHealthCheckService()); + grpc::string host; + RegisterService(&host, default_hc_service->GetSyncHealthCheckService()); } } From c8a49d29560be146bb81f421b8dd646c7f4a4f46 Mon Sep 17 00:00:00 2001 From: yang-g Date: Mon, 12 Dec 2016 11:18:49 -0800 Subject: [PATCH 07/56] codegen health proto --- Makefile | 43 ++++--- build.yaml | 1 + .../generated/sources_and_headers.json | 25 +--- .../vcxproj/benchmark/benchmark.vcxproj | 48 +------ .../benchmark/benchmark.vcxproj.filters | 118 ------------------ .../grpc++_test_util/grpc++_test_util.vcxproj | 8 ++ .../grpc++_test_util.vcxproj.filters | 9 ++ 7 files changed, 45 insertions(+), 207 deletions(-) diff --git a/Makefile b/Makefile index 43ef3c4f068..e9d24906d54 100644 --- a/Makefile +++ b/Makefile @@ -2027,6 +2027,21 @@ $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++_unsecure.pc: $(Q) mkdir -p $(@D) $(Q) echo "$(GRPCXX_UNSECURE_PC_FILE)" | tr , '\n' >$@ +ifeq ($(NO_PROTOC),true) +$(GENDIR)/src/proto/grpc/health/v1/health.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/health/v1/health.grpc.pb.cc: protoc_dep_error +else +$(GENDIR)/src/proto/grpc/health/v1/health.pb.cc: src/proto/grpc/health/v1/health.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating protobuf CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< + +$(GENDIR)/src/proto/grpc/health/v1/health.grpc.pb.cc: src/proto/grpc/health/v1/health.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< +endif + ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc: protoc_dep_error @@ -4556,6 +4571,7 @@ endif LIBGRPC++_TEST_UTIL_SRC = \ + $(GENDIR)/src/proto/grpc/health/v1/health.pb.cc $(GENDIR)/src/proto/grpc/health/v1/health.grpc.pb.cc \ $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc \ $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc \ $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc \ @@ -4660,13 +4676,13 @@ ifneq ($(NO_DEPS),true) -include $(LIBGRPC++_TEST_UTIL_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/test_service_impl.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_proto_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/create_test_channel.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/subprocess.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/test_credentials_provider.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/test_service_impl.o: $(GENDIR)/src/proto/grpc/health/v1/health.pb.cc $(GENDIR)/src/proto/grpc/health/v1/health.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_proto_helper.o: $(GENDIR)/src/proto/grpc/health/v1/health.pb.cc $(GENDIR)/src/proto/grpc/health/v1/health.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/create_test_channel.o: $(GENDIR)/src/proto/grpc/health/v1/health.pb.cc $(GENDIR)/src/proto/grpc/health/v1/health.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o: $(GENDIR)/src/proto/grpc/health/v1/health.pb.cc $(GENDIR)/src/proto/grpc/health/v1/health.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/subprocess.o: $(GENDIR)/src/proto/grpc/health/v1/health.pb.cc $(GENDIR)/src/proto/grpc/health/v1/health.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/test_credentials_provider.o: $(GENDIR)/src/proto/grpc/health/v1/health.pb.cc $(GENDIR)/src/proto/grpc/health/v1/health.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/health/v1/health.pb.cc $(GENDIR)/src/proto/grpc/health/v1/health.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc LIBGRPC++_UNSECURE_SRC = \ @@ -7014,19 +7030,6 @@ endif LIBBENCHMARK_SRC = \ - third_party/benchmark/src/benchmark.cc \ - third_party/benchmark/src/benchmark_register.cc \ - third_party/benchmark/src/colorprint.cc \ - third_party/benchmark/src/commandlineflags.cc \ - third_party/benchmark/src/complexity.cc \ - third_party/benchmark/src/console_reporter.cc \ - third_party/benchmark/src/csv_reporter.cc \ - third_party/benchmark/src/json_reporter.cc \ - third_party/benchmark/src/reporter.cc \ - third_party/benchmark/src/sleep.cc \ - third_party/benchmark/src/string_util.cc \ - third_party/benchmark/src/sysinfo.cc \ - third_party/benchmark/src/timers.cc \ PUBLIC_HEADERS_CXX += \ diff --git a/build.yaml b/build.yaml index f02142717d6..54635fe3695 100644 --- a/build.yaml +++ b/build.yaml @@ -1124,6 +1124,7 @@ libs: - test/cpp/util/subprocess.h - test/cpp/util/test_credentials_provider.h src: + - src/proto/grpc/health/v1/health.proto - src/proto/grpc/testing/echo_messages.proto - src/proto/grpc/testing/echo.proto - src/proto/grpc/testing/duplicate/echo_duplicate.proto diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json index 84fc1ad3b18..02d03bd6169 100644 --- a/tools/run_tests/generated/sources_and_headers.json +++ b/tools/run_tests/generated/sources_and_headers.json @@ -5246,6 +5246,8 @@ "thrift_util" ], "headers": [ + "src/proto/grpc/health/v1/health.grpc.pb.h", + "src/proto/grpc/health/v1/health.pb.h", "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h", "src/proto/grpc/testing/duplicate/echo_duplicate.pb.h", "src/proto/grpc/testing/echo.grpc.pb.h", @@ -6206,28 +6208,7 @@ }, { "deps": [], - "headers": [ - "third_party/benchmark/include/benchmark/benchmark.h", - "third_party/benchmark/include/benchmark/benchmark_api.h", - "third_party/benchmark/include/benchmark/macros.h", - "third_party/benchmark/include/benchmark/reporter.h", - "third_party/benchmark/src/arraysize.h", - "third_party/benchmark/src/benchmark_api_internal.h", - "third_party/benchmark/src/check.h", - "third_party/benchmark/src/colorprint.h", - "third_party/benchmark/src/commandlineflags.h", - "third_party/benchmark/src/complexity.h", - "third_party/benchmark/src/cycleclock.h", - "third_party/benchmark/src/internal_macros.h", - "third_party/benchmark/src/log.h", - "third_party/benchmark/src/mutex.h", - "third_party/benchmark/src/re.h", - "third_party/benchmark/src/sleep.h", - "third_party/benchmark/src/stat.h", - "third_party/benchmark/src/string_util.h", - "third_party/benchmark/src/sysinfo.h", - "third_party/benchmark/src/timers.h" - ], + "headers": [], "is_filegroup": false, "language": "c++", "name": "benchmark", diff --git a/vsprojects/vcxproj/benchmark/benchmark.vcxproj b/vsprojects/vcxproj/benchmark/benchmark.vcxproj index 9f262b3b00c..811317595f4 100644 --- a/vsprojects/vcxproj/benchmark/benchmark.vcxproj +++ b/vsprojects/vcxproj/benchmark/benchmark.vcxproj @@ -147,53 +147,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/vsprojects/vcxproj/benchmark/benchmark.vcxproj.filters b/vsprojects/vcxproj/benchmark/benchmark.vcxproj.filters index ccc9ca2cae7..00e4276f1d4 100644 --- a/vsprojects/vcxproj/benchmark/benchmark.vcxproj.filters +++ b/vsprojects/vcxproj/benchmark/benchmark.vcxproj.filters @@ -1,125 +1,7 @@ - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - - - third_party\benchmark\include\benchmark - - - third_party\benchmark\include\benchmark - - - third_party\benchmark\include\benchmark - - - third_party\benchmark\include\benchmark - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - third_party\benchmark\src - - - - {7b593518-9fee-107e-6b64-24bdce73f939} - - - {f0d35de1-6b41-778d-0ba0-faad514fb0f4} - - - {cbc02dfa-face-8cc6-0efb-efacc0c3369c} - - - {4f2f03fc-b82d-df33-63ee-bedebeb2c0ee} - - - {f42a8e0a-5a76-0e6f-d708-f0306858f673} - diff --git a/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj b/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj index d2305b2e255..49333b0951a 100644 --- a/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj +++ b/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj @@ -206,6 +206,14 @@ + + + + + + + + diff --git a/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj.filters b/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj.filters index d1aaba70926..9a9c05b99b1 100644 --- a/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj.filters @@ -1,6 +1,9 @@ + + src\proto\grpc\health\v1 + src\proto\grpc\testing @@ -242,6 +245,12 @@ {f3daac52-2bfd-362e-9a76-04cd7a90aa34} + + {d2393dd7-6f95-0e70-c36d-cd8ef8e2f17e} + + + {f2f10901-f74f-a55a-abea-082923feb664} + {3df5f11f-e018-1126-8c22-291540035aa8} From ad327642192363808c378b775ddcd34b86294443 Mon Sep 17 00:00:00 2001 From: yang-g Date: Mon, 12 Dec 2016 14:32:09 -0800 Subject: [PATCH 08/56] sync test pass --- Makefile | 48 ++++ build.yaml | 13 ++ include/grpc++/server.h | 1 + .../server/default_health_check_service.cc | 7 +- src/cpp/server/server_cc.cc | 29 +-- .../end2end/health_service_end2end_test.cc | 158 +++++++++++++ .../generated/sources_and_headers.json | 19 ++ tools/run_tests/generated/tests.json | 22 ++ .../health_service_end2end_test.vcxproj | 207 ++++++++++++++++++ ...ealth_service_end2end_test.vcxproj.filters | 21 ++ 10 files changed, 509 insertions(+), 16 deletions(-) create mode 100644 test/cpp/end2end/health_service_end2end_test.cc create mode 100644 vsprojects/vcxproj/test/health_service_end2end_test/health_service_end2end_test.vcxproj create mode 100644 vsprojects/vcxproj/test/health_service_end2end_test/health_service_end2end_test.vcxproj.filters diff --git a/Makefile b/Makefile index e9d24906d54..6c7a0c15187 100644 --- a/Makefile +++ b/Makefile @@ -1085,6 +1085,7 @@ grpc_ruby_plugin: $(BINDIR)/$(CONFIG)/grpc_ruby_plugin grpc_tool_test: $(BINDIR)/$(CONFIG)/grpc_tool_test grpclb_api_test: $(BINDIR)/$(CONFIG)/grpclb_api_test grpclb_test: $(BINDIR)/$(CONFIG)/grpclb_test +health_service_end2end_test: $(BINDIR)/$(CONFIG)/health_service_end2end_test hybrid_end2end_test: $(BINDIR)/$(CONFIG)/hybrid_end2end_test interop_client: $(BINDIR)/$(CONFIG)/interop_client interop_server: $(BINDIR)/$(CONFIG)/interop_server @@ -1467,6 +1468,7 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/grpc_tool_test \ $(BINDIR)/$(CONFIG)/grpclb_api_test \ $(BINDIR)/$(CONFIG)/grpclb_test \ + $(BINDIR)/$(CONFIG)/health_service_end2end_test \ $(BINDIR)/$(CONFIG)/hybrid_end2end_test \ $(BINDIR)/$(CONFIG)/interop_client \ $(BINDIR)/$(CONFIG)/interop_server \ @@ -1560,6 +1562,7 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/grpc_tool_test \ $(BINDIR)/$(CONFIG)/grpclb_api_test \ $(BINDIR)/$(CONFIG)/grpclb_test \ + $(BINDIR)/$(CONFIG)/health_service_end2end_test \ $(BINDIR)/$(CONFIG)/hybrid_end2end_test \ $(BINDIR)/$(CONFIG)/interop_client \ $(BINDIR)/$(CONFIG)/interop_server \ @@ -1883,6 +1886,8 @@ test_cxx: buildtests_cxx $(Q) $(BINDIR)/$(CONFIG)/grpclb_api_test || ( echo test grpclb_api_test failed ; exit 1 ) $(E) "[RUN] Testing grpclb_test" $(Q) $(BINDIR)/$(CONFIG)/grpclb_test || ( echo test grpclb_test failed ; exit 1 ) + $(E) "[RUN] Testing health_service_end2end_test" + $(Q) $(BINDIR)/$(CONFIG)/health_service_end2end_test || ( echo test health_service_end2end_test failed ; exit 1 ) $(E) "[RUN] Testing hybrid_end2end_test" $(Q) $(BINDIR)/$(CONFIG)/hybrid_end2end_test || ( echo test hybrid_end2end_test failed ; exit 1 ) $(E) "[RUN] Testing interop_test" @@ -12906,6 +12911,49 @@ endif $(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc +HEALTH_SERVICE_END2END_TEST_SRC = \ + test/cpp/end2end/health_service_end2end_test.cc \ + +HEALTH_SERVICE_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HEALTH_SERVICE_END2END_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/health_service_end2end_test: openssl_dep_error + +else + + + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/health_service_end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/health_service_end2end_test: $(PROTOBUF_DEP) $(HEALTH_SERVICE_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(HEALTH_SERVICE_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/health_service_end2end_test + +endif + +endif + +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/health_service_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_health_service_end2end_test: $(HEALTH_SERVICE_END2END_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(HEALTH_SERVICE_END2END_TEST_OBJS:.o=.dep) +endif +endif + + HYBRID_END2END_TEST_SRC = \ test/cpp/end2end/hybrid_end2end_test.cc \ diff --git a/build.yaml b/build.yaml index 54635fe3695..8be83187b1d 100644 --- a/build.yaml +++ b/build.yaml @@ -3192,6 +3192,19 @@ targets: - grpc++ - grpc++_test_util - grpc_test_util +- name: health_service_end2end_test + gtest: true + build: test + language: c++ + src: + - test/cpp/end2end/health_service_end2end_test.cc + deps: + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc + - gpr_test_util + - gpr - name: hybrid_end2end_test gtest: true build: test diff --git a/include/grpc++/server.h b/include/grpc++/server.h index dc97a0ec4c7..e3e9174c9c2 100644 --- a/include/grpc++/server.h +++ b/include/grpc++/server.h @@ -219,6 +219,7 @@ class Server final : public ServerInterface, private GrpcLibraryCodegen { std::unique_ptr server_initializer_; std::unique_ptr health_check_service_; + bool health_check_service_disabled_; }; } // namespace grpc diff --git a/src/cpp/server/default_health_check_service.cc b/src/cpp/server/default_health_check_service.cc index 704243e8314..ae10ec92c6e 100644 --- a/src/cpp/server/default_health_check_service.cc +++ b/src/cpp/server/default_health_check_service.cc @@ -31,9 +31,11 @@ * */ +#include #include #include +#include #include "src/cpp/server/default_health_check_service.h" @@ -57,11 +59,12 @@ DefaultHealthCheckService::SyncHealthCheckServiceImpl:: Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( ServerContext* context, const ByteBuffer* request, ByteBuffer* response) { - // TODO nanopb + // TODO nanopb part return Status::OK; } -DefaultHealthCheckService::DefaultHealthCheckService() { +DefaultHealthCheckService::DefaultHealthCheckService() + : sync_service_(new SyncHealthCheckServiceImpl(this)) { services_map_.emplace("", true); } diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index 4eaafeabb89..b8558cfc3de 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -360,7 +360,8 @@ Server::Server( shutdown_notified_(false), has_generic_service_(false), server_(nullptr), - server_initializer_(new ServerInitializer(this)) { + server_initializer_(new ServerInitializer(this)), + health_check_service_disabled_(false) { g_gli_initializer.summon(); gpr_once_init(&g_once_init_callbacks, InitGlobalCallbacks); global_callbacks_ = g_callbacks; @@ -376,12 +377,11 @@ Server::Server( grpc_channel_args channel_args; args->SetChannelArgs(&channel_args); - bool health_check_service_disabled = false; for (size_t i = 0; i < channel_args.num_args; i++) { if (0 == strcmp(channel_args.args[i].key, kDefaultHealthCheckServiceInterfaceArg)) { if (channel_args.args[i].value.pointer.p == nullptr) { - health_check_service_disabled = true; + health_check_service_disabled_ = true; } else { health_check_service_.reset(static_cast( channel_args.args[i].value.pointer.p)); @@ -389,17 +389,6 @@ Server::Server( break; } } - // Only create default health check service when user did not provide an - // explicit one. - if (health_check_service_ == nullptr && !health_check_service_disabled && - DefaultHealthCheckServiceEnabled()) { - auto* default_hc_service = new DefaultHealthCheckService; - health_check_service_.reset(default_hc_service); - if (!sync_server_cqs->empty()) { // Has sync methods. - grpc::string host; - RegisterService(&host, default_hc_service->GetSyncHealthCheckService()); - } - } server_ = grpc_server_create(&channel_args, nullptr); } @@ -506,6 +495,18 @@ int Server::AddListeningPort(const grpc::string& addr, bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { GPR_ASSERT(!started_); started_ = true; + + // Only create default health check service when user did not provide an + // explicit one. + if (health_check_service_ == nullptr && !health_check_service_disabled_ && + DefaultHealthCheckServiceEnabled()) { + auto* default_hc_service = new DefaultHealthCheckService; + health_check_service_.reset(default_hc_service); + if (!sync_server_cqs_->empty()) { // Has sync methods. + RegisterService(nullptr, default_hc_service->GetSyncHealthCheckService()); + } + } + grpc_server_start(server_); if (!has_generic_service_) { diff --git a/test/cpp/end2end/health_service_end2end_test.cc b/test/cpp/end2end/health_service_end2end_test.cc new file mode 100644 index 00000000000..17e8c4b7615 --- /dev/null +++ b/test/cpp/end2end/health_service_end2end_test.cc @@ -0,0 +1,158 @@ +/* + * + * 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 +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "src/proto/grpc/health/v1/health.grpc.pb.h" +#include "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" +#include "test/core/util/port.h" +#include "test/core/util/test_config.h" +#include "test/cpp/end2end/test_service_impl.h" + +using grpc::health::v1::Health; +using grpc::health::v1::HealthCheckRequest; +using grpc::health::v1::HealthCheckResponse; + +namespace grpc { +namespace testing { +namespace { + +class HealthServiceEnd2endTest : public ::testing::Test { + protected: + HealthServiceEnd2endTest() {} + + void SetUpServer(grpc::Service* explicit_health_service) { + int port = grpc_pick_unused_port_or_die(); + server_address_ << "localhost:" << port; + + // Setup server + ServerBuilder builder; + builder.AddListeningPort(server_address_.str(), + grpc::InsecureServerCredentials()); + // Register a sync service. + builder.RegisterService(&echo_test_service_); + server_ = builder.BuildAndStart(); + } + + void TearDown() override { + if (server_) { + server_->Shutdown(); + } + } + + void ResetStubs() { + std::shared_ptr channel = + CreateChannel(server_address_.str(), InsecureChannelCredentials()); + stub_ = grpc::testing::EchoTestService::NewStub(channel); + hc_stub_ = grpc::health::v1::Health::NewStub(channel); + } + + void SendHealthCheckRpc( + const grpc::string& service_name, const Status& expected_status, + HealthCheckResponse::ServingStatus expected_serving_status) { + HealthCheckRequest request; + request.set_service(service_name); + HealthCheckResponse response; + ClientContext context; + Status s = hc_stub_->Check(&context, request, &response); + EXPECT_EQ(expected_status.error_code(), s.error_code()); + // EXPECT_EQ(expected_status.error_details(), s.error_details()); + if (s.ok()) { + EXPECT_EQ(expected_serving_status, response.status()); + } + } + + TestServiceImpl echo_test_service_; + std::unique_ptr stub_; + std::unique_ptr hc_stub_; + std::unique_ptr server_; + std::ostringstream server_address_; +}; + +TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceDisabled) { + EnableDefaultHealthCheckService(false); + EXPECT_FALSE(DefaultHealthCheckServiceEnabled()); + SetUpServer(nullptr); + HealthCheckServiceInterface* default_service = + server_->GetHealthCheckService(); + EXPECT_TRUE(default_service == nullptr); +} + +TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { + EnableDefaultHealthCheckService(true); + EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); + SetUpServer(nullptr); + HealthCheckServiceInterface* default_service = + server_->GetHealthCheckService(); + EXPECT_TRUE(default_service != nullptr); + const grpc::string kHealthyService("healthy_service"); + const grpc::string kUnhealthyService("unhealthy_service"); + default_service->SetServingStatus(kHealthyService, true); + default_service->SetServingStatus(kUnhealthyService, false); + + ResetStubs(); + + SendHealthCheckRpc("", Status::OK, HealthCheckResponse::SERVING); + SendHealthCheckRpc(kHealthyService, Status::OK, HealthCheckResponse::SERVING); + SendHealthCheckRpc(kUnhealthyService, Status::OK, + HealthCheckResponse::NOT_SERVING); + + default_service->SetServingStatus(false); + SendHealthCheckRpc("", Status::OK, HealthCheckResponse::NOT_SERVING); + SendHealthCheckRpc(kHealthyService, Status::OK, + HealthCheckResponse::NOT_SERVING); + SendHealthCheckRpc(kUnhealthyService, Status::OK, + HealthCheckResponse::NOT_SERVING); +} + +} // namespace +} // namespace testing +} // namespace grpc + +int main(int argc, char** argv) { + grpc_test_init(argc, argv); + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json index 02d03bd6169..9366e3366be 100644 --- a/tools/run_tests/generated/sources_and_headers.json +++ b/tools/run_tests/generated/sources_and_headers.json @@ -2772,6 +2772,25 @@ "third_party": false, "type": "target" }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "health_service_end2end_test", + "src": [ + "test/cpp/end2end/health_service_end2end_test.cc" + ], + "third_party": false, + "type": "target" + }, { "deps": [ "gpr", diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json index b76263b8b98..1cd04ea5dd9 100644 --- a/tools/run_tests/generated/tests.json +++ b/tools/run_tests/generated/tests.json @@ -2805,6 +2805,28 @@ "windows" ] }, + { + "args": [], + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "exclude_iomgrs": [], + "flaky": false, + "gtest": true, + "language": "c++", + "name": "health_service_end2end_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "args": [], "ci_platforms": [ diff --git a/vsprojects/vcxproj/test/health_service_end2end_test/health_service_end2end_test.vcxproj b/vsprojects/vcxproj/test/health_service_end2end_test/health_service_end2end_test.vcxproj new file mode 100644 index 00000000000..28530d07b53 --- /dev/null +++ b/vsprojects/vcxproj/test/health_service_end2end_test/health_service_end2end_test.vcxproj @@ -0,0 +1,207 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {3EB2B3E9-8BC3-8DF7-82CB-38462FFE5919} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + health_service_end2end_test + static + Debug + static + Debug + + + health_service_end2end_test + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + + + + + {0BE77741-552A-929B-A497-4EF7ECE17A64} + + + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + + + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} + + + {29D16885-7228-4C31-81ED-5F9187C7F2A9} + + + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + + + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/health_service_end2end_test/health_service_end2end_test.vcxproj.filters b/vsprojects/vcxproj/test/health_service_end2end_test/health_service_end2end_test.vcxproj.filters new file mode 100644 index 00000000000..cccf9682869 --- /dev/null +++ b/vsprojects/vcxproj/test/health_service_end2end_test/health_service_end2end_test.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + test\cpp\end2end + + + + + + {00d750b2-db02-2106-d9b7-1d3b2ca58604} + + + {02e29b2f-d68a-4474-8483-621ecfd7fa9d} + + + {b0de697a-d73a-23e1-c9af-fa0edf011d4d} + + + + From fbbb0d707fa8b8cd9b1fe373c6b196dc729c1601 Mon Sep 17 00:00:00 2001 From: yang-g Date: Mon, 12 Dec 2016 21:24:10 -0800 Subject: [PATCH 09/56] generated nanopb files, need to update build.yaml and maybe move them to a sub-dir --- .../server/default_health_check_service.cc | 4 +- src/cpp/server/health.pb.c | 62 +++++++++++ src/cpp/server/health.pb.h | 104 ++++++++++++++++++ src/proto/grpc/health/v1/health.options | 1 + 4 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 src/cpp/server/health.pb.c create mode 100644 src/cpp/server/health.pb.h create mode 100644 src/proto/grpc/health/v1/health.options diff --git a/src/cpp/server/default_health_check_service.cc b/src/cpp/server/default_health_check_service.cc index ae10ec92c6e..1bd5973e47c 100644 --- a/src/cpp/server/default_health_check_service.cc +++ b/src/cpp/server/default_health_check_service.cc @@ -38,6 +38,8 @@ #include #include "src/cpp/server/default_health_check_service.h" +#include "third_party/nanopb/pb_encode.h" +#include "third_party/nanopb/pb_decode.h" namespace grpc { namespace { @@ -59,7 +61,7 @@ DefaultHealthCheckService::SyncHealthCheckServiceImpl:: Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( ServerContext* context, const ByteBuffer* request, ByteBuffer* response) { - // TODO nanopb part + return Status::OK; } diff --git a/src/cpp/server/health.pb.c b/src/cpp/server/health.pb.c new file mode 100644 index 00000000000..cfd06b496ff --- /dev/null +++ b/src/cpp/server/health.pb.c @@ -0,0 +1,62 @@ +/* + * + * 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. + * + */ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-0.3.7-dev */ + +#include "/usr/local/google/home/yangg/github/grpc/src/cpp/server//health.pb.h" + +/* @@protoc_insertion_point(includes) */ +#if PB_PROTO_HEADER_VERSION != 30 +#error Regenerate this file with the current version of nanopb generator. +#endif + + + +const pb_field_t grpc_health_v1_HealthCheckRequest_fields[2] = { + PB_FIELD( 1, STRING , OPTIONAL, STATIC , FIRST, grpc_health_v1_HealthCheckRequest, service, service, 0), + PB_LAST_FIELD +}; + +const pb_field_t grpc_health_v1_HealthCheckResponse_fields[2] = { + PB_FIELD( 1, UENUM , OPTIONAL, STATIC , FIRST, grpc_health_v1_HealthCheckResponse, status, status, 0), + PB_LAST_FIELD +}; + + +/* Check that field information fits in pb_field_t */ +#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT) +#error Field descriptor for grpc_health_v1_HealthCheckRequest.service is too large. Define PB_FIELD_16BIT to fix this. +#endif + + +/* @@protoc_insertion_point(eof) */ diff --git a/src/cpp/server/health.pb.h b/src/cpp/server/health.pb.h new file mode 100644 index 00000000000..5782b9c1984 --- /dev/null +++ b/src/cpp/server/health.pb.h @@ -0,0 +1,104 @@ +/* + * + * 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. + * + */ +/* Automatically generated nanopb header */ +/* Generated by nanopb-0.3.7-dev */ + +#ifndef PB_GRPC_HEALTH_V1_HEALTH_PB_H_INCLUDED +#define PB_GRPC_HEALTH_V1_HEALTH_PB_H_INCLUDED +#include "third_party/nanopb/pb.h" +/* @@protoc_insertion_point(includes) */ +#if PB_PROTO_HEADER_VERSION != 30 +#error Regenerate this file with the current version of nanopb generator. +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Enum definitions */ +typedef enum _grpc_health_v1_HealthCheckResponse_ServingStatus { + grpc_health_v1_HealthCheckResponse_ServingStatus_UNKNOWN = 0, + grpc_health_v1_HealthCheckResponse_ServingStatus_SERVING = 1, + grpc_health_v1_HealthCheckResponse_ServingStatus_NOT_SERVING = 2 +} grpc_health_v1_HealthCheckResponse_ServingStatus; +#define _grpc_health_v1_HealthCheckResponse_ServingStatus_MIN grpc_health_v1_HealthCheckResponse_ServingStatus_UNKNOWN +#define _grpc_health_v1_HealthCheckResponse_ServingStatus_MAX grpc_health_v1_HealthCheckResponse_ServingStatus_NOT_SERVING +#define _grpc_health_v1_HealthCheckResponse_ServingStatus_ARRAYSIZE ((grpc_health_v1_HealthCheckResponse_ServingStatus)(grpc_health_v1_HealthCheckResponse_ServingStatus_NOT_SERVING+1)) + +/* Struct definitions */ +typedef struct _grpc_health_v1_HealthCheckRequest { + bool has_service; + char service[2048]; +/* @@protoc_insertion_point(struct:grpc_health_v1_HealthCheckRequest) */ +} grpc_health_v1_HealthCheckRequest; + +typedef struct _grpc_health_v1_HealthCheckResponse { + bool has_status; + grpc_health_v1_HealthCheckResponse_ServingStatus status; +/* @@protoc_insertion_point(struct:grpc_health_v1_HealthCheckResponse) */ +} grpc_health_v1_HealthCheckResponse; + +/* Default values for struct fields */ + +/* Initializer values for message structs */ +#define grpc_health_v1_HealthCheckRequest_init_default {false, ""} +#define grpc_health_v1_HealthCheckResponse_init_default {false, (grpc_health_v1_HealthCheckResponse_ServingStatus)0} +#define grpc_health_v1_HealthCheckRequest_init_zero {false, ""} +#define grpc_health_v1_HealthCheckResponse_init_zero {false, (grpc_health_v1_HealthCheckResponse_ServingStatus)0} + +/* Field tags (for use in manual encoding/decoding) */ +#define grpc_health_v1_HealthCheckRequest_service_tag 1 +#define grpc_health_v1_HealthCheckResponse_status_tag 1 + +/* Struct field encoding specification for nanopb */ +extern const pb_field_t grpc_health_v1_HealthCheckRequest_fields[2]; +extern const pb_field_t grpc_health_v1_HealthCheckResponse_fields[2]; + +/* Maximum encoded size of messages (where known) */ +#define grpc_health_v1_HealthCheckRequest_size 2051 +#define grpc_health_v1_HealthCheckResponse_size 2 + +/* Message IDs (where set with "msgid" option) */ +#ifdef PB_MSGID + +#define HEALTH_MESSAGES \ + + +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif +/* @@protoc_insertion_point(eof) */ + +#endif diff --git a/src/proto/grpc/health/v1/health.options b/src/proto/grpc/health/v1/health.options new file mode 100644 index 00000000000..139cf2bb52b --- /dev/null +++ b/src/proto/grpc/health/v1/health.options @@ -0,0 +1 @@ +grpc.health.v1.HealthCheckRequest.service max_size:2048 From c3c475fd144b3d43a775b569dad36610014e08e4 Mon Sep 17 00:00:00 2001 From: yang-g Date: Tue, 27 Dec 2016 10:37:26 -0800 Subject: [PATCH 10/56] move files to subdir and add generated files --- BUILD | 30 +++-- CMakeLists.txt | 21 ++-- Makefile | 34 +++-- build.yaml | 10 +- .../default_health_check_service.cc | 2 +- .../default_health_check_service.h | 0 src/cpp/server/{ => health}/health.pb.c | 0 src/cpp/server/{ => health}/health.pb.h | 0 .../{ => health}/health_check_service.cc | 0 ...lth_check_service_server_builder_option.cc | 0 src/cpp/server/server_cc.cc | 2 +- tools/doxygen/Doxyfile.c++.internal | 10 +- .../generated/sources_and_headers.json | 36 +++++- .../vcxproj/benchmark/benchmark.vcxproj | 48 ++++++- .../benchmark/benchmark.vcxproj.filters | 118 ++++++++++++++++++ vsprojects/vcxproj/grpc++/grpc++.vcxproj | 13 +- .../vcxproj/grpc++/grpc++.vcxproj.filters | 29 +++-- .../grpc++_unsecure/grpc++_unsecure.vcxproj | 13 +- .../grpc++_unsecure.vcxproj.filters | 29 +++-- 19 files changed, 318 insertions(+), 77 deletions(-) rename src/cpp/server/{ => health}/default_health_check_service.cc (98%) rename src/cpp/server/{ => health}/default_health_check_service.h (100%) rename src/cpp/server/{ => health}/health.pb.c (100%) rename src/cpp/server/{ => health}/health.pb.h (100%) rename src/cpp/server/{ => health}/health_check_service.cc (100%) rename src/cpp/server/{ => health}/health_check_service_server_builder_option.cc (100%) diff --git a/BUILD b/BUILD index 6e786607ccc..c680232d247 100644 --- a/BUILD +++ b/BUILD @@ -1374,8 +1374,9 @@ cc_library( "src/cpp/server/secure_server_credentials.h", "src/cpp/client/create_channel_internal.h", "src/cpp/common/channel_filter.h", - "src/cpp/server/default_health_check_service.h", "src/cpp/server/dynamic_thread_pool.h", + "src/cpp/server/health/default_health_check_service.h", + "src/cpp/server/health/health.pb.h", "src/cpp/server/thread_pool_interface.h", "src/cpp/thread_manager/thread_manager.h", "src/cpp/client/insecure_credentials.cc", @@ -1402,10 +1403,11 @@ cc_library( "src/cpp/common/version_cc.cc", "src/cpp/server/async_generic_service.cc", "src/cpp/server/create_default_thread_pool.cc", - "src/cpp/server/default_health_check_service.cc", "src/cpp/server/dynamic_thread_pool.cc", - "src/cpp/server/health_check_service.cc", - "src/cpp/server/health_check_service_server_builder_option.cc", + "src/cpp/server/health/default_health_check_service.cc", + "src/cpp/server/health/health.pb.c", + "src/cpp/server/health/health_check_service.cc", + "src/cpp/server/health/health_check_service_server_builder_option.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", @@ -1528,8 +1530,9 @@ cc_library( srcs = [ "src/cpp/client/create_channel_internal.h", "src/cpp/common/channel_filter.h", - "src/cpp/server/default_health_check_service.h", "src/cpp/server/dynamic_thread_pool.h", + "src/cpp/server/health/default_health_check_service.h", + "src/cpp/server/health/health.pb.h", "src/cpp/server/thread_pool_interface.h", "src/cpp/thread_manager/thread_manager.h", "src/core/ext/transport/chttp2/client/chttp2_connector.h", @@ -1698,10 +1701,11 @@ cc_library( "src/cpp/common/version_cc.cc", "src/cpp/server/async_generic_service.cc", "src/cpp/server/create_default_thread_pool.cc", - "src/cpp/server/default_health_check_service.cc", "src/cpp/server/dynamic_thread_pool.cc", - "src/cpp/server/health_check_service.cc", - "src/cpp/server/health_check_service_server_builder_option.cc", + "src/cpp/server/health/default_health_check_service.cc", + "src/cpp/server/health/health.pb.c", + "src/cpp/server/health/health_check_service.cc", + "src/cpp/server/health/health_check_service_server_builder_option.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", @@ -2029,8 +2033,9 @@ cc_library( srcs = [ "src/cpp/client/create_channel_internal.h", "src/cpp/common/channel_filter.h", - "src/cpp/server/default_health_check_service.h", "src/cpp/server/dynamic_thread_pool.h", + "src/cpp/server/health/default_health_check_service.h", + "src/cpp/server/health/health.pb.h", "src/cpp/server/thread_pool_interface.h", "src/cpp/thread_manager/thread_manager.h", "src/cpp/client/insecure_credentials.cc", @@ -2052,10 +2057,11 @@ cc_library( "src/cpp/common/version_cc.cc", "src/cpp/server/async_generic_service.cc", "src/cpp/server/create_default_thread_pool.cc", - "src/cpp/server/default_health_check_service.cc", "src/cpp/server/dynamic_thread_pool.cc", - "src/cpp/server/health_check_service.cc", - "src/cpp/server/health_check_service_server_builder_option.cc", + "src/cpp/server/health/default_health_check_service.cc", + "src/cpp/server/health/health.pb.c", + "src/cpp/server/health/health_check_service.cc", + "src/cpp/server/health/health_check_service_server_builder_option.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", diff --git a/CMakeLists.txt b/CMakeLists.txt index c32a4aaf960..3f191431793 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1090,10 +1090,11 @@ add_library(grpc++ src/cpp/common/version_cc.cc src/cpp/server/async_generic_service.cc src/cpp/server/create_default_thread_pool.cc - src/cpp/server/default_health_check_service.cc src/cpp/server/dynamic_thread_pool.cc - src/cpp/server/health_check_service.cc - src/cpp/server/health_check_service_server_builder_option.cc + src/cpp/server/health/default_health_check_service.cc + src/cpp/server/health/health.pb.c + src/cpp/server/health/health_check_service.cc + src/cpp/server/health/health_check_service_server_builder_option.cc src/cpp/server/server_builder.cc src/cpp/server/server_cc.cc src/cpp/server/server_context.cc @@ -1253,10 +1254,11 @@ add_library(grpc++_cronet src/cpp/common/version_cc.cc src/cpp/server/async_generic_service.cc src/cpp/server/create_default_thread_pool.cc - src/cpp/server/default_health_check_service.cc src/cpp/server/dynamic_thread_pool.cc - src/cpp/server/health_check_service.cc - src/cpp/server/health_check_service_server_builder_option.cc + src/cpp/server/health/default_health_check_service.cc + src/cpp/server/health/health.pb.c + src/cpp/server/health/health_check_service.cc + src/cpp/server/health/health_check_service_server_builder_option.cc src/cpp/server/server_builder.cc src/cpp/server/server_cc.cc src/cpp/server/server_context.cc @@ -1639,10 +1641,11 @@ add_library(grpc++_unsecure src/cpp/common/version_cc.cc src/cpp/server/async_generic_service.cc src/cpp/server/create_default_thread_pool.cc - src/cpp/server/default_health_check_service.cc src/cpp/server/dynamic_thread_pool.cc - src/cpp/server/health_check_service.cc - src/cpp/server/health_check_service_server_builder_option.cc + src/cpp/server/health/default_health_check_service.cc + src/cpp/server/health/health.pb.c + src/cpp/server/health/health_check_service.cc + src/cpp/server/health/health_check_service_server_builder_option.cc src/cpp/server/server_builder.cc src/cpp/server/server_cc.cc src/cpp/server/server_context.cc diff --git a/Makefile b/Makefile index 6c7a0c15187..6ee90856493 100644 --- a/Makefile +++ b/Makefile @@ -3804,10 +3804,11 @@ LIBGRPC++_SRC = \ src/cpp/common/version_cc.cc \ src/cpp/server/async_generic_service.cc \ src/cpp/server/create_default_thread_pool.cc \ - src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ - src/cpp/server/health_check_service.cc \ - src/cpp/server/health_check_service_server_builder_option.cc \ + src/cpp/server/health/default_health_check_service.cc \ + src/cpp/server/health/health.pb.c \ + src/cpp/server/health/health_check_service.cc \ + src/cpp/server/health/health_check_service_server_builder_option.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ @@ -3996,10 +3997,11 @@ LIBGRPC++_CRONET_SRC = \ src/cpp/common/version_cc.cc \ src/cpp/server/async_generic_service.cc \ src/cpp/server/create_default_thread_pool.cc \ - src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ - src/cpp/server/health_check_service.cc \ - src/cpp/server/health_check_service_server_builder_option.cc \ + src/cpp/server/health/default_health_check_service.cc \ + src/cpp/server/health/health.pb.c \ + src/cpp/server/health/health_check_service.cc \ + src/cpp/server/health/health_check_service_server_builder_option.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ @@ -4710,10 +4712,11 @@ LIBGRPC++_UNSECURE_SRC = \ src/cpp/common/version_cc.cc \ src/cpp/server/async_generic_service.cc \ src/cpp/server/create_default_thread_pool.cc \ - src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ - src/cpp/server/health_check_service.cc \ - src/cpp/server/health_check_service_server_builder_option.cc \ + src/cpp/server/health/default_health_check_service.cc \ + src/cpp/server/health/health.pb.c \ + src/cpp/server/health/health_check_service.cc \ + src/cpp/server/health/health_check_service_server_builder_option.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ @@ -7035,6 +7038,19 @@ endif LIBBENCHMARK_SRC = \ + third_party/benchmark/src/benchmark.cc \ + third_party/benchmark/src/benchmark_register.cc \ + third_party/benchmark/src/colorprint.cc \ + third_party/benchmark/src/commandlineflags.cc \ + third_party/benchmark/src/complexity.cc \ + third_party/benchmark/src/console_reporter.cc \ + third_party/benchmark/src/csv_reporter.cc \ + third_party/benchmark/src/json_reporter.cc \ + third_party/benchmark/src/reporter.cc \ + third_party/benchmark/src/sleep.cc \ + third_party/benchmark/src/string_util.cc \ + third_party/benchmark/src/sysinfo.cc \ + third_party/benchmark/src/timers.cc \ PUBLIC_HEADERS_CXX += \ diff --git a/build.yaml b/build.yaml index 8be83187b1d..4a33891e33b 100644 --- a/build.yaml +++ b/build.yaml @@ -759,8 +759,9 @@ filegroups: headers: - src/cpp/client/create_channel_internal.h - src/cpp/common/channel_filter.h - - src/cpp/server/default_health_check_service.h - src/cpp/server/dynamic_thread_pool.h + - src/cpp/server/health/default_health_check_service.h + - src/cpp/server/health/health.pb.h - src/cpp/server/thread_pool_interface.h - src/cpp/thread_manager/thread_manager.h src: @@ -780,10 +781,11 @@ filegroups: - src/cpp/common/version_cc.cc - src/cpp/server/async_generic_service.cc - src/cpp/server/create_default_thread_pool.cc - - src/cpp/server/default_health_check_service.cc - src/cpp/server/dynamic_thread_pool.cc - - src/cpp/server/health_check_service.cc - - src/cpp/server/health_check_service_server_builder_option.cc + - src/cpp/server/health/default_health_check_service.cc + - src/cpp/server/health/health.pb.c + - src/cpp/server/health/health_check_service.cc + - src/cpp/server/health/health_check_service_server_builder_option.cc - src/cpp/server/server_builder.cc - src/cpp/server/server_cc.cc - src/cpp/server/server_context.cc diff --git a/src/cpp/server/default_health_check_service.cc b/src/cpp/server/health/default_health_check_service.cc similarity index 98% rename from src/cpp/server/default_health_check_service.cc rename to src/cpp/server/health/default_health_check_service.cc index 1bd5973e47c..bc6087f1caf 100644 --- a/src/cpp/server/default_health_check_service.cc +++ b/src/cpp/server/health/default_health_check_service.cc @@ -37,7 +37,7 @@ #include #include -#include "src/cpp/server/default_health_check_service.h" +#include "src/cpp/server/health/default_health_check_service.h" #include "third_party/nanopb/pb_encode.h" #include "third_party/nanopb/pb_decode.h" diff --git a/src/cpp/server/default_health_check_service.h b/src/cpp/server/health/default_health_check_service.h similarity index 100% rename from src/cpp/server/default_health_check_service.h rename to src/cpp/server/health/default_health_check_service.h diff --git a/src/cpp/server/health.pb.c b/src/cpp/server/health/health.pb.c similarity index 100% rename from src/cpp/server/health.pb.c rename to src/cpp/server/health/health.pb.c diff --git a/src/cpp/server/health.pb.h b/src/cpp/server/health/health.pb.h similarity index 100% rename from src/cpp/server/health.pb.h rename to src/cpp/server/health/health.pb.h diff --git a/src/cpp/server/health_check_service.cc b/src/cpp/server/health/health_check_service.cc similarity index 100% rename from src/cpp/server/health_check_service.cc rename to src/cpp/server/health/health_check_service.cc diff --git a/src/cpp/server/health_check_service_server_builder_option.cc b/src/cpp/server/health/health_check_service_server_builder_option.cc similarity index 100% rename from src/cpp/server/health_check_service_server_builder_option.cc rename to src/cpp/server/health/health_check_service_server_builder_option.cc diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index b8558cfc3de..c50c076bdc5 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -51,7 +51,7 @@ #include #include "src/core/lib/profiling/timers.h" -#include "src/cpp/server/default_health_check_service.h" +#include "src/cpp/server/health/default_health_check_service.h" #include "src/cpp/thread_manager/thread_manager.h" namespace grpc { diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index 5e3f2266032..c2dbfb68f98 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -855,8 +855,9 @@ src/cpp/common/secure_auth_context.h \ src/cpp/server/secure_server_credentials.h \ src/cpp/client/create_channel_internal.h \ src/cpp/common/channel_filter.h \ -src/cpp/server/default_health_check_service.h \ src/cpp/server/dynamic_thread_pool.h \ +src/cpp/server/health/default_health_check_service.h \ +src/cpp/server/health/health.pb.h \ src/cpp/server/thread_pool_interface.h \ src/cpp/thread_manager/thread_manager.h \ src/cpp/client/insecure_credentials.cc \ @@ -883,10 +884,11 @@ src/cpp/common/rpc_method.cc \ src/cpp/common/version_cc.cc \ src/cpp/server/async_generic_service.cc \ src/cpp/server/create_default_thread_pool.cc \ -src/cpp/server/default_health_check_service.cc \ src/cpp/server/dynamic_thread_pool.cc \ -src/cpp/server/health_check_service.cc \ -src/cpp/server/health_check_service_server_builder_option.cc \ +src/cpp/server/health/default_health_check_service.cc \ +src/cpp/server/health/health.pb.c \ +src/cpp/server/health/health_check_service.cc \ +src/cpp/server/health/health_check_service_server_builder_option.cc \ src/cpp/server/server_builder.cc \ src/cpp/server/server_cc.cc \ src/cpp/server/server_context.cc \ diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json index 9366e3366be..86986a99a6d 100644 --- a/tools/run_tests/generated/sources_and_headers.json +++ b/tools/run_tests/generated/sources_and_headers.json @@ -6227,7 +6227,28 @@ }, { "deps": [], - "headers": [], + "headers": [ + "third_party/benchmark/include/benchmark/benchmark.h", + "third_party/benchmark/include/benchmark/benchmark_api.h", + "third_party/benchmark/include/benchmark/macros.h", + "third_party/benchmark/include/benchmark/reporter.h", + "third_party/benchmark/src/arraysize.h", + "third_party/benchmark/src/benchmark_api_internal.h", + "third_party/benchmark/src/check.h", + "third_party/benchmark/src/colorprint.h", + "third_party/benchmark/src/commandlineflags.h", + "third_party/benchmark/src/complexity.h", + "third_party/benchmark/src/cycleclock.h", + "third_party/benchmark/src/internal_macros.h", + "third_party/benchmark/src/log.h", + "third_party/benchmark/src/mutex.h", + "third_party/benchmark/src/re.h", + "third_party/benchmark/src/sleep.h", + "third_party/benchmark/src/stat.h", + "third_party/benchmark/src/string_util.h", + "third_party/benchmark/src/sysinfo.h", + "third_party/benchmark/src/timers.h" + ], "is_filegroup": false, "language": "c++", "name": "benchmark", @@ -7658,8 +7679,9 @@ "include/grpc++/support/time.h", "src/cpp/client/create_channel_internal.h", "src/cpp/common/channel_filter.h", - "src/cpp/server/default_health_check_service.h", "src/cpp/server/dynamic_thread_pool.h", + "src/cpp/server/health/default_health_check_service.h", + "src/cpp/server/health/health.pb.h", "src/cpp/server/thread_pool_interface.h", "src/cpp/thread_manager/thread_manager.h" ], @@ -7729,12 +7751,14 @@ "src/cpp/common/version_cc.cc", "src/cpp/server/async_generic_service.cc", "src/cpp/server/create_default_thread_pool.cc", - "src/cpp/server/default_health_check_service.cc", - "src/cpp/server/default_health_check_service.h", "src/cpp/server/dynamic_thread_pool.cc", "src/cpp/server/dynamic_thread_pool.h", - "src/cpp/server/health_check_service.cc", - "src/cpp/server/health_check_service_server_builder_option.cc", + "src/cpp/server/health/default_health_check_service.cc", + "src/cpp/server/health/default_health_check_service.h", + "src/cpp/server/health/health.pb.c", + "src/cpp/server/health/health.pb.h", + "src/cpp/server/health/health_check_service.cc", + "src/cpp/server/health/health_check_service_server_builder_option.cc", "src/cpp/server/server_builder.cc", "src/cpp/server/server_cc.cc", "src/cpp/server/server_context.cc", diff --git a/vsprojects/vcxproj/benchmark/benchmark.vcxproj b/vsprojects/vcxproj/benchmark/benchmark.vcxproj index 811317595f4..9f262b3b00c 100644 --- a/vsprojects/vcxproj/benchmark/benchmark.vcxproj +++ b/vsprojects/vcxproj/benchmark/benchmark.vcxproj @@ -147,7 +147,53 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vsprojects/vcxproj/benchmark/benchmark.vcxproj.filters b/vsprojects/vcxproj/benchmark/benchmark.vcxproj.filters index 00e4276f1d4..ccc9ca2cae7 100644 --- a/vsprojects/vcxproj/benchmark/benchmark.vcxproj.filters +++ b/vsprojects/vcxproj/benchmark/benchmark.vcxproj.filters @@ -1,7 +1,125 @@ + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + + + third_party\benchmark\include\benchmark + + + third_party\benchmark\include\benchmark + + + third_party\benchmark\include\benchmark + + + third_party\benchmark\include\benchmark + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + third_party\benchmark\src + + + + {7b593518-9fee-107e-6b64-24bdce73f939} + + + {f0d35de1-6b41-778d-0ba0-faad514fb0f4} + + + {cbc02dfa-face-8cc6-0efb-efacc0c3369c} + + + {4f2f03fc-b82d-df33-63ee-bedebeb2c0ee} + + + {f42a8e0a-5a76-0e6f-d708-f0306858f673} + diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj index 4af3454e39a..0f0949cbd11 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj @@ -355,8 +355,9 @@ - + + @@ -409,13 +410,15 @@ - - - + + + + + - + diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters index 17ea98381a0..fc64c44e083 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters @@ -73,17 +73,20 @@ src\cpp\server - - src\cpp\server - src\cpp\server - - src\cpp\server + + src\cpp\server\health - - src\cpp\server + + src\cpp\server\health + + + src\cpp\server\health + + + src\cpp\server\health src\cpp\server @@ -410,12 +413,15 @@ src\cpp\common - - src\cpp\server - src\cpp\server + + src\cpp\server\health + + + src\cpp\server\health + src\cpp\server @@ -479,6 +485,9 @@ {321b0980-74ad-e8ca-f23b-deffa5d6bb8f} + + {5bc9ef4e-78c1-159e-4e4e-30ddfce3e140} + {23f9df56-8604-52a0-e6a2-f01b8e68d0e7} diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj index 060f2818e32..0c53d641c7e 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj @@ -351,8 +351,9 @@ - + + @@ -395,13 +396,15 @@ - - - + + + + + - + diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters index 8aa4a77d400..a1ac8702262 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters @@ -58,17 +58,20 @@ src\cpp\server - - src\cpp\server - src\cpp\server - - src\cpp\server + + src\cpp\server\health - - src\cpp\server + + src\cpp\server\health + + + src\cpp\server\health + + + src\cpp\server\health src\cpp\server @@ -383,12 +386,15 @@ src\cpp\common - - src\cpp\server - src\cpp\server + + src\cpp\server\health + + + src\cpp\server\health + src\cpp\server @@ -452,6 +458,9 @@ {8a54a279-d14b-4237-0df3-1ffe1ef5a7af} + + {a003cb5c-7249-106c-8ee5-de5e11a6692c} + {e5b55f25-d99f-b8e5-9981-7da7fa7ba628} From b74cf429fdec9e72364b4cbe4ae1b7389d28672d Mon Sep 17 00:00:00 2001 From: yang-g Date: Tue, 27 Dec 2016 13:17:47 -0800 Subject: [PATCH 11/56] test pass --- .../health/default_health_check_service.cc | 59 ++++++++++++++++++- .../health/default_health_check_service.h | 4 +- src/cpp/server/health/health.pb.c | 8 +-- src/cpp/server/health/health.pb.h | 4 +- src/proto/grpc/health/v1/health.options | 2 +- .../end2end/health_service_end2end_test.cc | 13 +++- 6 files changed, 73 insertions(+), 17 deletions(-) diff --git a/src/cpp/server/health/default_health_check_service.cc b/src/cpp/server/health/default_health_check_service.cc index bc6087f1caf..665a99f86b1 100644 --- a/src/cpp/server/health/default_health_check_service.cc +++ b/src/cpp/server/health/default_health_check_service.cc @@ -38,8 +38,9 @@ #include #include "src/cpp/server/health/default_health_check_service.h" -#include "third_party/nanopb/pb_encode.h" +#include "src/cpp/server/health/health.pb.h" #include "third_party/nanopb/pb_decode.h" +#include "third_party/nanopb/pb_encode.h" namespace grpc { namespace { @@ -61,7 +62,60 @@ DefaultHealthCheckService::SyncHealthCheckServiceImpl:: Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( ServerContext* context, const ByteBuffer* request, ByteBuffer* response) { + // Decode request. + std::vector slices; + request->Dump(&slices); + const uint8_t* request_bytes = nullptr; + size_t request_size = 0; + grpc_health_v1_HealthCheckRequest request_struct; + if (slices.empty()) { + request_struct.has_service = false; + } else if (slices.size() == 1) { + request_bytes = slices[0].begin(); + request_size = slices[0].size(); + } else { + abort(); // TODO + } + + if (request_bytes != nullptr) { + pb_istream_t istream = pb_istream_from_buffer(request_bytes, request_size); + bool decode_status = pb_decode( + &istream, grpc_health_v1_HealthCheckRequest_fields, &request_struct); + if (!decode_status) { + return Status(StatusCode::INVALID_ARGUMENT, ""); + } + } + + // Check status from the associated default health checking service. + DefaultHealthCheckService::ServingStatus serving_status = + service_->GetServingStatus( + request_struct.has_service ? request_struct.service : ""); + if (serving_status == DefaultHealthCheckService::NOT_FOUND) { + return Status(StatusCode::NOT_FOUND, ""); + } + // Encode response + grpc_health_v1_HealthCheckResponse response_struct; + response_struct.has_status = true; + response_struct.status = + serving_status == DefaultHealthCheckService::SERVING + ? grpc_health_v1_HealthCheckResponse_ServingStatus_SERVING + : grpc_health_v1_HealthCheckResponse_ServingStatus_NOT_SERVING; + pb_ostream_t ostream; + memset(&ostream, 0, sizeof(ostream)); + pb_encode(&ostream, grpc_health_v1_HealthCheckResponse_fields, + &response_struct); + grpc_slice response_slice = grpc_slice_malloc(ostream.bytes_written); + ostream = pb_ostream_from_buffer(GRPC_SLICE_START_PTR(response_slice), + GRPC_SLICE_LENGTH(response_slice)); + bool encode_status = pb_encode( + &ostream, grpc_health_v1_HealthCheckResponse_fields, &response_struct); + if (!encode_status) { + return Status(StatusCode::INTERNAL, "Failed to encode response."); + } + Slice encoded_response(response_slice, Slice::STEAL_REF); + ByteBuffer response_buffer(&encoded_response, 1); + response->Swap(&response_buffer); return Status::OK; } @@ -84,7 +138,8 @@ void DefaultHealthCheckService::SetServingStatus(bool serving) { } DefaultHealthCheckService::ServingStatus -DefaultHealthCheckService::GetServingStatus(const grpc::string& service_name) { +DefaultHealthCheckService::GetServingStatus( + const grpc::string& service_name) const { std::lock_guard lock(mu_); const auto& iter = services_map_.find(service_name); if (iter == services_map_.end()) { diff --git a/src/cpp/server/health/default_health_check_service.h b/src/cpp/server/health/default_health_check_service.h index 23ee1cb7dc3..541c720aaa6 100644 --- a/src/cpp/server/health/default_health_check_service.h +++ b/src/cpp/server/health/default_health_check_service.h @@ -60,13 +60,13 @@ class DefaultHealthCheckService : public HealthCheckServiceInterface { void SetServingStatus(const grpc::string& service_name, bool serving) final; void SetServingStatus(bool serving) final; enum ServingStatus { NOT_FOUND, SERVING, NOT_SERVING }; - ServingStatus GetServingStatus(const grpc::string& service_name); + ServingStatus GetServingStatus(const grpc::string& service_name) const; SyncHealthCheckServiceImpl* GetSyncHealthCheckService() const { return sync_service_.get(); } private: - std::mutex mu_; + mutable std::mutex mu_; std::map services_map_; std::unique_ptr sync_service_; }; diff --git a/src/cpp/server/health/health.pb.c b/src/cpp/server/health/health.pb.c index cfd06b496ff..1fca2c55c84 100644 --- a/src/cpp/server/health/health.pb.c +++ b/src/cpp/server/health/health.pb.c @@ -33,7 +33,7 @@ /* Automatically generated nanopb constant definitions */ /* Generated by nanopb-0.3.7-dev */ -#include "/usr/local/google/home/yangg/github/grpc/src/cpp/server//health.pb.h" +#include "src/cpp/server/health/health.pb.h" /* @@protoc_insertion_point(includes) */ #if PB_PROTO_HEADER_VERSION != 30 @@ -53,10 +53,4 @@ const pb_field_t grpc_health_v1_HealthCheckResponse_fields[2] = { }; -/* Check that field information fits in pb_field_t */ -#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT) -#error Field descriptor for grpc_health_v1_HealthCheckRequest.service is too large. Define PB_FIELD_16BIT to fix this. -#endif - - /* @@protoc_insertion_point(eof) */ diff --git a/src/cpp/server/health/health.pb.h b/src/cpp/server/health/health.pb.h index 5782b9c1984..dc790fb1035 100644 --- a/src/cpp/server/health/health.pb.h +++ b/src/cpp/server/health/health.pb.h @@ -58,7 +58,7 @@ typedef enum _grpc_health_v1_HealthCheckResponse_ServingStatus { /* Struct definitions */ typedef struct _grpc_health_v1_HealthCheckRequest { bool has_service; - char service[2048]; + char service[200]; /* @@protoc_insertion_point(struct:grpc_health_v1_HealthCheckRequest) */ } grpc_health_v1_HealthCheckRequest; @@ -85,7 +85,7 @@ extern const pb_field_t grpc_health_v1_HealthCheckRequest_fields[2]; extern const pb_field_t grpc_health_v1_HealthCheckResponse_fields[2]; /* Maximum encoded size of messages (where known) */ -#define grpc_health_v1_HealthCheckRequest_size 2051 +#define grpc_health_v1_HealthCheckRequest_size 203 #define grpc_health_v1_HealthCheckResponse_size 2 /* Message IDs (where set with "msgid" option) */ diff --git a/src/proto/grpc/health/v1/health.options b/src/proto/grpc/health/v1/health.options index 139cf2bb52b..240b498b580 100644 --- a/src/proto/grpc/health/v1/health.options +++ b/src/proto/grpc/health/v1/health.options @@ -1 +1 @@ -grpc.health.v1.HealthCheckRequest.service max_size:2048 +grpc.health.v1.HealthCheckRequest.service max_size:200 diff --git a/test/cpp/end2end/health_service_end2end_test.cc b/test/cpp/end2end/health_service_end2end_test.cc index 17e8c4b7615..02aa5cea3f6 100644 --- a/test/cpp/end2end/health_service_end2end_test.cc +++ b/test/cpp/end2end/health_service_end2end_test.cc @@ -85,7 +85,6 @@ class HealthServiceEnd2endTest : public ::testing::Test { void ResetStubs() { std::shared_ptr channel = CreateChannel(server_address_.str(), InsecureChannelCredentials()); - stub_ = grpc::testing::EchoTestService::NewStub(channel); hc_stub_ = grpc::health::v1::Health::NewStub(channel); } @@ -98,14 +97,12 @@ class HealthServiceEnd2endTest : public ::testing::Test { ClientContext context; Status s = hc_stub_->Check(&context, request, &response); EXPECT_EQ(expected_status.error_code(), s.error_code()); - // EXPECT_EQ(expected_status.error_details(), s.error_details()); if (s.ok()) { EXPECT_EQ(expected_serving_status, response.status()); } } TestServiceImpl echo_test_service_; - std::unique_ptr stub_; std::unique_ptr hc_stub_; std::unique_ptr server_; std::ostringstream server_address_; @@ -129,6 +126,8 @@ TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { EXPECT_TRUE(default_service != nullptr); const grpc::string kHealthyService("healthy_service"); const grpc::string kUnhealthyService("unhealthy_service"); + const grpc::string kNotRegisteredService("not_registered"); + const grpc::string kTooLongServiceName(201, 'x'); default_service->SetServingStatus(kHealthyService, true); default_service->SetServingStatus(kUnhealthyService, false); @@ -138,6 +137,10 @@ TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { SendHealthCheckRpc(kHealthyService, Status::OK, HealthCheckResponse::SERVING); SendHealthCheckRpc(kUnhealthyService, Status::OK, HealthCheckResponse::NOT_SERVING); + SendHealthCheckRpc(kNotRegisteredService, Status(StatusCode::NOT_FOUND, ""), + HealthCheckResponse::NOT_SERVING); + SendHealthCheckRpc(kTooLongServiceName, Status(StatusCode::INVALID_ARGUMENT, ""), + HealthCheckResponse::NOT_SERVING); default_service->SetServingStatus(false); SendHealthCheckRpc("", Status::OK, HealthCheckResponse::NOT_SERVING); @@ -145,6 +148,10 @@ TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { HealthCheckResponse::NOT_SERVING); SendHealthCheckRpc(kUnhealthyService, Status::OK, HealthCheckResponse::NOT_SERVING); + SendHealthCheckRpc(kNotRegisteredService, Status(StatusCode::NOT_FOUND, ""), + HealthCheckResponse::NOT_SERVING); + SendHealthCheckRpc(kTooLongServiceName, Status(StatusCode::INVALID_ARGUMENT, ""), + HealthCheckResponse::NOT_SERVING); } } // namespace From 4eaf96920f7949cdf7f0d81973769cb6bc42bcaf Mon Sep 17 00:00:00 2001 From: yang-g Date: Tue, 27 Dec 2016 13:52:38 -0800 Subject: [PATCH 12/56] fix todo --- .../server/health/default_health_check_service.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/cpp/server/health/default_health_check_service.cc b/src/cpp/server/health/default_health_check_service.cc index 665a99f86b1..bc7d5767419 100644 --- a/src/cpp/server/health/default_health_check_service.cc +++ b/src/cpp/server/health/default_health_check_service.cc @@ -66,6 +66,7 @@ Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( std::vector slices; request->Dump(&slices); const uint8_t* request_bytes = nullptr; + bool request_bytes_owned = false; size_t request_size = 0; grpc_health_v1_HealthCheckRequest request_struct; if (slices.empty()) { @@ -74,13 +75,22 @@ Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( request_bytes = slices[0].begin(); request_size = slices[0].size(); } else { - abort(); // TODO + request_bytes_owned = true; + request_bytes = gpr_malloc(request->Length()); + uint8_t* copy_to = request_bytes; + for (size_t i = 0; i < slices.size(); i++) { + memcpy(copy_to, slices[i].begin(), slices[i].size()); + copy_to += slices[i].size(); + } } if (request_bytes != nullptr) { pb_istream_t istream = pb_istream_from_buffer(request_bytes, request_size); bool decode_status = pb_decode( &istream, grpc_health_v1_HealthCheckRequest_fields, &request_struct); + if (request_bytes_owned) { + gpr_free(request_bytes); + } if (!decode_status) { return Status(StatusCode::INVALID_ARGUMENT, ""); } From 9bef0740a4ad649b6eb7438fc9575dfc1e98250e Mon Sep 17 00:00:00 2001 From: yang-g Date: Tue, 27 Dec 2016 15:31:57 -0800 Subject: [PATCH 13/56] Add test for explicit option --- ...alth_check_service_server_builder_option.h | 2 +- .../health/default_health_check_service.cc | 7 +- .../end2end/health_service_end2end_test.cc | 186 +++++++++++++++--- 3 files changed, 159 insertions(+), 36 deletions(-) diff --git a/include/grpc++/ext/health_check_service_server_builder_option.h b/include/grpc++/ext/health_check_service_server_builder_option.h index e00c4c3dd59..6a8fd943178 100644 --- a/include/grpc++/ext/health_check_service_server_builder_option.h +++ b/include/grpc++/ext/health_check_service_server_builder_option.h @@ -47,7 +47,7 @@ class HealthCheckServiceServerBuilderOption : public ServerBuilderOption { // Use nullptr to disable default service. explicit HealthCheckServiceServerBuilderOption( std::unique_ptr hc); - ~HealthCheckServiceServerBuilderOption() {} + ~HealthCheckServiceServerBuilderOption() override {} void UpdateArguments(ChannelArguments* args) override; void UpdatePlugins(std::vector>* plugins) override; private: diff --git a/src/cpp/server/health/default_health_check_service.cc b/src/cpp/server/health/default_health_check_service.cc index bc7d5767419..cec7ecce70a 100644 --- a/src/cpp/server/health/default_health_check_service.cc +++ b/src/cpp/server/health/default_health_check_service.cc @@ -35,6 +35,7 @@ #include #include +#include #include #include "src/cpp/server/health/default_health_check_service.h" @@ -65,18 +66,18 @@ Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( // Decode request. std::vector slices; request->Dump(&slices); - const uint8_t* request_bytes = nullptr; + uint8_t* request_bytes = nullptr; bool request_bytes_owned = false; size_t request_size = 0; grpc_health_v1_HealthCheckRequest request_struct; if (slices.empty()) { request_struct.has_service = false; } else if (slices.size() == 1) { - request_bytes = slices[0].begin(); + request_bytes = const_cast(slices[0].begin()); request_size = slices[0].size(); } else { request_bytes_owned = true; - request_bytes = gpr_malloc(request->Length()); + request_bytes = static_cast(gpr_malloc(request->Length())); uint8_t* copy_to = request_bytes; for (size_t i = 0; i < slices.size(); i++) { memcpy(copy_to, slices[i].begin(), slices[i].size()); diff --git a/test/cpp/end2end/health_service_end2end_test.cc b/test/cpp/end2end/health_service_end2end_test.cc index 02aa5cea3f6..969aea1318f 100644 --- a/test/cpp/end2end/health_service_end2end_test.cc +++ b/test/cpp/end2end/health_service_end2end_test.cc @@ -32,11 +32,14 @@ */ #include +#include #include +#include #include #include #include +#include #include #include #include @@ -59,20 +62,92 @@ namespace grpc { namespace testing { namespace { +// A sample sync implementation of the health checking service. This does the +// same thing as the default one. +class HealthCheckServiceImpl : public ::grpc::health::v1::Health::Service { + public: + Status Check(ServerContext* context, const HealthCheckRequest* request, + HealthCheckResponse* response) override { + std::lock_guard lock(mu_); + auto iter = status_map_.find(request->service()); + if (iter == status_map_.end()) { + return Status(StatusCode::NOT_FOUND, ""); + } + response->set_status(iter->second); + return Status::OK; + } + + void SetStatus(const grpc::string& service_name, + HealthCheckResponse::ServingStatus status) { + std::lock_guard lock(mu_); + status_map_[service_name] = status; + } + + void SetAll(HealthCheckResponse::ServingStatus status) { + std::lock_guard lock(mu_); + for (auto iter = status_map_.begin(); iter != status_map_.end(); ++iter) { + iter->second = status; + } + } + + private: + std::mutex mu_; + std::map status_map_; +}; + +// A custom implementation of the health checking service interface. This is +// used to test that it prevents the server from creating a default service and +// also serves as an example of how to override the default service. +class CustomHealthCheckService : public HealthCheckServiceInterface { + public: + explicit CustomHealthCheckService(HealthCheckServiceImpl* impl) + : impl_(impl) { + impl_->SetStatus("", HealthCheckResponse::SERVING); + } + void SetServingStatus(const grpc::string& service_name, + bool serving) override { + impl_->SetStatus(service_name, serving ? HealthCheckResponse::SERVING + : HealthCheckResponse::NOT_SERVING); + } + + void SetServingStatus(bool serving) override { + impl_->SetAll(serving ? HealthCheckResponse::SERVING + : HealthCheckResponse::NOT_SERVING); + } + + private: + HealthCheckServiceImpl* impl_; // not owned +}; + class HealthServiceEnd2endTest : public ::testing::Test { protected: HealthServiceEnd2endTest() {} - void SetUpServer(grpc::Service* explicit_health_service) { + void SetUpServer(bool register_sync_test_service, + bool explicit_health_service, + std::unique_ptr service) { int port = grpc_pick_unused_port_or_die(); server_address_ << "localhost:" << port; + bool register_sync_health_service_impl = + explicit_health_service && service != nullptr; + // Setup server ServerBuilder builder; + if (explicit_health_service) { + std::unique_ptr option( + new HealthCheckServiceServerBuilderOption(std::move(service))); + builder.SetOption(std::move(option)); + } builder.AddListeningPort(server_address_.str(), grpc::InsecureServerCredentials()); - // Register a sync service. - builder.RegisterService(&echo_test_service_); + if (register_sync_test_service) { + // Register a sync service. + builder.RegisterService(&echo_test_service_); + } + if (register_sync_health_service_impl) { + builder.RegisterService(&health_check_service_impl_); + } server_ = builder.BuildAndStart(); } @@ -88,6 +163,14 @@ class HealthServiceEnd2endTest : public ::testing::Test { hc_stub_ = grpc::health::v1::Health::NewStub(channel); } + // When the expected_status is NOT OK, we do not care about the response. + void SendHealthCheckRpc(const grpc::string& service_name, + const Status& expected_status) { + EXPECT_FALSE(expected_status.ok()); + SendHealthCheckRpc(service_name, expected_status, + HealthCheckResponse::UNKNOWN); + } + void SendHealthCheckRpc( const grpc::string& service_name, const Status& expected_status, HealthCheckResponse::ServingStatus expected_serving_status) { @@ -102,7 +185,37 @@ class HealthServiceEnd2endTest : public ::testing::Test { } } + void VerifyHealthCheckService() { + HealthCheckServiceInterface* service = server_->GetHealthCheckService(); + EXPECT_TRUE(service != nullptr); + const grpc::string kHealthyService("healthy_service"); + const grpc::string kUnhealthyService("unhealthy_service"); + const grpc::string kNotRegisteredService("not_registered"); + service->SetServingStatus(kHealthyService, true); + service->SetServingStatus(kUnhealthyService, false); + + ResetStubs(); + + SendHealthCheckRpc("", Status::OK, HealthCheckResponse::SERVING); + SendHealthCheckRpc(kHealthyService, Status::OK, + HealthCheckResponse::SERVING); + SendHealthCheckRpc(kUnhealthyService, Status::OK, + HealthCheckResponse::NOT_SERVING); + SendHealthCheckRpc(kNotRegisteredService, + Status(StatusCode::NOT_FOUND, "")); + + service->SetServingStatus(false); + SendHealthCheckRpc("", Status::OK, HealthCheckResponse::NOT_SERVING); + SendHealthCheckRpc(kHealthyService, Status::OK, + HealthCheckResponse::NOT_SERVING); + SendHealthCheckRpc(kUnhealthyService, Status::OK, + HealthCheckResponse::NOT_SERVING); + SendHealthCheckRpc(kNotRegisteredService, + Status(StatusCode::NOT_FOUND, "")); + } + TestServiceImpl echo_test_service_; + HealthCheckServiceImpl health_check_service_impl_; std::unique_ptr hc_stub_; std::unique_ptr server_; std::ostringstream server_address_; @@ -111,47 +224,56 @@ class HealthServiceEnd2endTest : public ::testing::Test { TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceDisabled) { EnableDefaultHealthCheckService(false); EXPECT_FALSE(DefaultHealthCheckServiceEnabled()); - SetUpServer(nullptr); + SetUpServer(true, false, nullptr); HealthCheckServiceInterface* default_service = server_->GetHealthCheckService(); EXPECT_TRUE(default_service == nullptr); + + ResetStubs(); + + SendHealthCheckRpc("", Status(StatusCode::UNIMPLEMENTED, "")); } TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { EnableDefaultHealthCheckService(true); EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); - SetUpServer(nullptr); - HealthCheckServiceInterface* default_service = - server_->GetHealthCheckService(); - EXPECT_TRUE(default_service != nullptr); - const grpc::string kHealthyService("healthy_service"); - const grpc::string kUnhealthyService("unhealthy_service"); - const grpc::string kNotRegisteredService("not_registered"); + SetUpServer(true, false, nullptr); + VerifyHealthCheckService(); + + // The default service has a size limit of the service name. const grpc::string kTooLongServiceName(201, 'x'); - default_service->SetServingStatus(kHealthyService, true); - default_service->SetServingStatus(kUnhealthyService, false); + SendHealthCheckRpc(kTooLongServiceName, + Status(StatusCode::INVALID_ARGUMENT, "")); +} + +// Provide an empty service to disable the default service. +TEST_F(HealthServiceEnd2endTest, ExplicitlyDisableViaOverride) { + EnableDefaultHealthCheckService(true); + EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); + std::unique_ptr empty_service; + SetUpServer(true, true, std::move(empty_service)); + HealthCheckServiceInterface* service = server_->GetHealthCheckService(); + EXPECT_TRUE(service == nullptr); + + ResetStubs(); + + SendHealthCheckRpc("", Status(StatusCode::UNIMPLEMENTED, "")); +} + +// Provide an explicit override of health checking service interface. +TEST_F(HealthServiceEnd2endTest, ExplicitlyOverride) { + EnableDefaultHealthCheckService(true); + EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); + std::unique_ptr override_service( + new CustomHealthCheckService(&health_check_service_impl_)); + HealthCheckServiceInterface* underlying_service = override_service.get(); + SetUpServer(false, true, std::move(override_service)); + HealthCheckServiceInterface* service = server_->GetHealthCheckService(); + EXPECT_TRUE(service == underlying_service); ResetStubs(); - SendHealthCheckRpc("", Status::OK, HealthCheckResponse::SERVING); - SendHealthCheckRpc(kHealthyService, Status::OK, HealthCheckResponse::SERVING); - SendHealthCheckRpc(kUnhealthyService, Status::OK, - HealthCheckResponse::NOT_SERVING); - SendHealthCheckRpc(kNotRegisteredService, Status(StatusCode::NOT_FOUND, ""), - HealthCheckResponse::NOT_SERVING); - SendHealthCheckRpc(kTooLongServiceName, Status(StatusCode::INVALID_ARGUMENT, ""), - HealthCheckResponse::NOT_SERVING); - - default_service->SetServingStatus(false); - SendHealthCheckRpc("", Status::OK, HealthCheckResponse::NOT_SERVING); - SendHealthCheckRpc(kHealthyService, Status::OK, - HealthCheckResponse::NOT_SERVING); - SendHealthCheckRpc(kUnhealthyService, Status::OK, - HealthCheckResponse::NOT_SERVING); - SendHealthCheckRpc(kNotRegisteredService, Status(StatusCode::NOT_FOUND, ""), - HealthCheckResponse::NOT_SERVING); - SendHealthCheckRpc(kTooLongServiceName, Status(StatusCode::INVALID_ARGUMENT, ""), - HealthCheckResponse::NOT_SERVING); + VerifyHealthCheckService(); } } // namespace From f56c251af79577edfda3da795c8a26f31e4c7e01 Mon Sep 17 00:00:00 2001 From: yang-g Date: Tue, 27 Dec 2016 15:36:20 -0800 Subject: [PATCH 14/56] clang-format --- .../ext/health_check_service_server_builder_option.h | 4 +++- .../ext/health_check_service_server_builder_option.cc | 11 ++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/include/grpc++/ext/health_check_service_server_builder_option.h b/include/grpc++/ext/health_check_service_server_builder_option.h index 6a8fd943178..2dd1e6dd329 100644 --- a/include/grpc++/ext/health_check_service_server_builder_option.h +++ b/include/grpc++/ext/health_check_service_server_builder_option.h @@ -49,7 +49,9 @@ class HealthCheckServiceServerBuilderOption : public ServerBuilderOption { std::unique_ptr hc); ~HealthCheckServiceServerBuilderOption() override {} void UpdateArguments(ChannelArguments* args) override; - void UpdatePlugins(std::vector>* plugins) override; + void UpdatePlugins( + std::vector>* plugins) override; + private: std::unique_ptr hc_; }; diff --git a/src/cpp/ext/health_check_service_server_builder_option.cc b/src/cpp/ext/health_check_service_server_builder_option.cc index 4afc82dc144..0d523285e9c 100644 --- a/src/cpp/ext/health_check_service_server_builder_option.cc +++ b/src/cpp/ext/health_check_service_server_builder_option.cc @@ -36,14 +36,15 @@ namespace grpc { HealthCheckServiceServerBuilderOption::HealthCheckServiceServerBuilderOption( - std::unique_ptr hc) : hc_(std::move(hc)) { } + std::unique_ptr hc) + : hc_(std::move(hc)) {} -HealthCheckServiceServerBuilderOption::UpdateArguments(ChannelArguments* args) override { +HealthCheckServiceServerBuilderOption::UpdateArguments( + ChannelArguments* args) override { args->SetPointer(DefaultHealthCheckServiceInterfaceArg(), hc_.release()); } -void HealthCheckServiceServerBuilderOption::UpdatePlugins(std::vector>* plugins) override { -} +void HealthCheckServiceServerBuilderOption::UpdatePlugins( + std::vector>* plugins) override {} } // namespace grpc - From 1accb12408d89160055e687d49b3b346e57ad14a Mon Sep 17 00:00:00 2001 From: yang-g Date: Wed, 28 Dec 2016 10:38:04 -0800 Subject: [PATCH 15/56] fix path --- BUILD | 6 +++--- CMakeLists.txt | 6 +++--- Makefile | 6 +++--- build.yaml | 2 +- tools/doxygen/Doxyfile.c++ | 2 +- tools/doxygen/Doxyfile.c++.internal | 2 +- tools/run_tests/generated/sources_and_headers.json | 4 ++-- vsprojects/vcxproj/grpc++/grpc++.vcxproj | 2 +- vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters | 6 +++--- vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj | 2 +- .../vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters | 6 +++--- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/BUILD b/BUILD index c680232d247..0d4f290e321 100644 --- a/BUILD +++ b/BUILD @@ -1428,11 +1428,11 @@ cc_library( "include/grpc++/completion_queue.h", "include/grpc++/create_channel.h", "include/grpc++/create_channel_posix.h", - "include/grpc++/ext/health_check_service_interface.h", "include/grpc++/ext/health_check_service_server_builder_option.h", "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", + "include/grpc++/health_check_service_interface.h", "include/grpc++/impl/call.h", "include/grpc++/impl/client_unary_call.h", "include/grpc++/impl/codegen/core_codegen.h", @@ -1898,11 +1898,11 @@ cc_library( "include/grpc++/completion_queue.h", "include/grpc++/create_channel.h", "include/grpc++/create_channel_posix.h", - "include/grpc++/ext/health_check_service_interface.h", "include/grpc++/ext/health_check_service_server_builder_option.h", "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", + "include/grpc++/health_check_service_interface.h", "include/grpc++/impl/call.h", "include/grpc++/impl/client_unary_call.h", "include/grpc++/impl/codegen/core_codegen.h", @@ -2082,11 +2082,11 @@ cc_library( "include/grpc++/completion_queue.h", "include/grpc++/create_channel.h", "include/grpc++/create_channel_posix.h", - "include/grpc++/ext/health_check_service_interface.h", "include/grpc++/ext/health_check_service_server_builder_option.h", "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", + "include/grpc++/health_check_service_interface.h", "include/grpc++/impl/call.h", "include/grpc++/impl/client_unary_call.h", "include/grpc++/impl/codegen/core_codegen.h", diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f191431793..5a2d368d590 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1132,11 +1132,11 @@ foreach(_hdr include/grpc++/completion_queue.h include/grpc++/create_channel.h include/grpc++/create_channel_posix.h - include/grpc++/ext/health_check_service_interface.h include/grpc++/ext/health_check_service_server_builder_option.h include/grpc++/generic/async_generic_service.h include/grpc++/generic/generic_stub.h include/grpc++/grpc++.h + include/grpc++/health_check_service_interface.h include/grpc++/impl/call.h include/grpc++/impl/client_unary_call.h include/grpc++/impl/codegen/core_codegen.h @@ -1471,11 +1471,11 @@ foreach(_hdr include/grpc++/completion_queue.h include/grpc++/create_channel.h include/grpc++/create_channel_posix.h - include/grpc++/ext/health_check_service_interface.h include/grpc++/ext/health_check_service_server_builder_option.h include/grpc++/generic/async_generic_service.h include/grpc++/generic/generic_stub.h include/grpc++/grpc++.h + include/grpc++/health_check_service_interface.h include/grpc++/impl/call.h include/grpc++/impl/client_unary_call.h include/grpc++/impl/codegen/core_codegen.h @@ -1683,11 +1683,11 @@ foreach(_hdr include/grpc++/completion_queue.h include/grpc++/create_channel.h include/grpc++/create_channel_posix.h - include/grpc++/ext/health_check_service_interface.h include/grpc++/ext/health_check_service_server_builder_option.h include/grpc++/generic/async_generic_service.h include/grpc++/generic/generic_stub.h include/grpc++/grpc++.h + include/grpc++/health_check_service_interface.h include/grpc++/impl/call.h include/grpc++/impl/client_unary_call.h include/grpc++/impl/codegen/core_codegen.h diff --git a/Makefile b/Makefile index 6ee90856493..e7a2c653dc8 100644 --- a/Makefile +++ b/Makefile @@ -3829,11 +3829,11 @@ PUBLIC_HEADERS_CXX += \ include/grpc++/completion_queue.h \ include/grpc++/create_channel.h \ include/grpc++/create_channel_posix.h \ - include/grpc++/ext/health_check_service_interface.h \ include/grpc++/ext/health_check_service_server_builder_option.h \ include/grpc++/generic/async_generic_service.h \ include/grpc++/generic/generic_stub.h \ include/grpc++/grpc++.h \ + include/grpc++/health_check_service_interface.h \ include/grpc++/impl/call.h \ include/grpc++/impl/client_unary_call.h \ include/grpc++/impl/codegen/core_codegen.h \ @@ -4197,11 +4197,11 @@ PUBLIC_HEADERS_CXX += \ include/grpc++/completion_queue.h \ include/grpc++/create_channel.h \ include/grpc++/create_channel_posix.h \ - include/grpc++/ext/health_check_service_interface.h \ include/grpc++/ext/health_check_service_server_builder_option.h \ include/grpc++/generic/async_generic_service.h \ include/grpc++/generic/generic_stub.h \ include/grpc++/grpc++.h \ + include/grpc++/health_check_service_interface.h \ include/grpc++/impl/call.h \ include/grpc++/impl/client_unary_call.h \ include/grpc++/impl/codegen/core_codegen.h \ @@ -4737,11 +4737,11 @@ PUBLIC_HEADERS_CXX += \ include/grpc++/completion_queue.h \ include/grpc++/create_channel.h \ include/grpc++/create_channel_posix.h \ - include/grpc++/ext/health_check_service_interface.h \ include/grpc++/ext/health_check_service_server_builder_option.h \ include/grpc++/generic/async_generic_service.h \ include/grpc++/generic/generic_stub.h \ include/grpc++/grpc++.h \ + include/grpc++/health_check_service_interface.h \ include/grpc++/impl/call.h \ include/grpc++/impl/client_unary_call.h \ include/grpc++/impl/codegen/core_codegen.h \ diff --git a/build.yaml b/build.yaml index 4a33891e33b..634394a1ad7 100644 --- a/build.yaml +++ b/build.yaml @@ -718,11 +718,11 @@ filegroups: - include/grpc++/completion_queue.h - include/grpc++/create_channel.h - include/grpc++/create_channel_posix.h - - include/grpc++/ext/health_check_service_interface.h - include/grpc++/ext/health_check_service_server_builder_option.h - include/grpc++/generic/async_generic_service.h - include/grpc++/generic/generic_stub.h - include/grpc++/grpc++.h + - include/grpc++/health_check_service_interface.h - include/grpc++/impl/call.h - include/grpc++/impl/client_unary_call.h - include/grpc++/impl/codegen/core_codegen.h diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++ index 77e9c7fc9ac..6d4f128cbb4 100644 --- a/tools/doxygen/Doxyfile.c++ +++ b/tools/doxygen/Doxyfile.c++ @@ -766,11 +766,11 @@ include/grpc++/client_context.h \ include/grpc++/completion_queue.h \ include/grpc++/create_channel.h \ include/grpc++/create_channel_posix.h \ -include/grpc++/ext/health_check_service_interface.h \ include/grpc++/ext/health_check_service_server_builder_option.h \ include/grpc++/generic/async_generic_service.h \ include/grpc++/generic/generic_stub.h \ include/grpc++/grpc++.h \ +include/grpc++/health_check_service_interface.h \ include/grpc++/impl/call.h \ include/grpc++/impl/client_unary_call.h \ include/grpc++/impl/codegen/core_codegen.h \ diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index c2dbfb68f98..7f24e84a5ad 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -766,11 +766,11 @@ include/grpc++/client_context.h \ include/grpc++/completion_queue.h \ include/grpc++/create_channel.h \ include/grpc++/create_channel_posix.h \ -include/grpc++/ext/health_check_service_interface.h \ include/grpc++/ext/health_check_service_server_builder_option.h \ include/grpc++/generic/async_generic_service.h \ include/grpc++/generic/generic_stub.h \ include/grpc++/grpc++.h \ +include/grpc++/health_check_service_interface.h \ include/grpc++/impl/call.h \ include/grpc++/impl/client_unary_call.h \ include/grpc++/impl/codegen/core_codegen.h \ diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json index 86986a99a6d..a8157ffb9a9 100644 --- a/tools/run_tests/generated/sources_and_headers.json +++ b/tools/run_tests/generated/sources_and_headers.json @@ -7639,11 +7639,11 @@ "include/grpc++/completion_queue.h", "include/grpc++/create_channel.h", "include/grpc++/create_channel_posix.h", - "include/grpc++/ext/health_check_service_interface.h", "include/grpc++/ext/health_check_service_server_builder_option.h", "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", + "include/grpc++/health_check_service_interface.h", "include/grpc++/impl/call.h", "include/grpc++/impl/client_unary_call.h", "include/grpc++/impl/codegen/core_codegen.h", @@ -7695,11 +7695,11 @@ "include/grpc++/completion_queue.h", "include/grpc++/create_channel.h", "include/grpc++/create_channel_posix.h", - "include/grpc++/ext/health_check_service_interface.h", "include/grpc++/ext/health_check_service_server_builder_option.h", "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", + "include/grpc++/health_check_service_interface.h", "include/grpc++/impl/call.h", "include/grpc++/impl/client_unary_call.h", "include/grpc++/impl/codegen/core_codegen.h", diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj index 0f0949cbd11..9d98447a707 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj @@ -264,11 +264,11 @@ - + diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters index fc64c44e083..a9acb5c588e 100644 --- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters @@ -144,9 +144,6 @@ include\grpc++ - - include\grpc++\ext - include\grpc++\ext @@ -159,6 +156,9 @@ include\grpc++ + + include\grpc++ + include\grpc++\impl diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj index 0c53d641c7e..a9786a1c84c 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj @@ -264,11 +264,11 @@ - + diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters index a1ac8702262..f43e859eee4 100644 --- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters @@ -129,9 +129,6 @@ include\grpc++ - - include\grpc++\ext - include\grpc++\ext @@ -144,6 +141,9 @@ include\grpc++ + + include\grpc++ + include\grpc++\impl From 50993b7a4c083b8b202010aca1bb95cf9902cf74 Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 29 Dec 2016 10:00:27 -0800 Subject: [PATCH 16/56] async first take --- .../grpc++/impl/codegen/server_interface.h | 7 +- include/grpc++/server.h | 3 + .../health/default_health_check_service.cc | 54 ++++++++---- .../health/default_health_check_service.h | 16 ++++ src/cpp/server/server_cc.cc | 82 ++++++++++++++++++- .../end2end/health_service_end2end_test.cc | 30 +++++++ 6 files changed, 170 insertions(+), 22 deletions(-) diff --git a/include/grpc++/impl/codegen/server_interface.h b/include/grpc++/impl/codegen/server_interface.h index 666b9ff66eb..2acb174baf0 100644 --- a/include/grpc++/impl/codegen/server_interface.h +++ b/include/grpc++/impl/codegen/server_interface.h @@ -159,7 +159,8 @@ class ServerInterface : public CallHook { public: RegisteredAsyncRequest(ServerInterface* server, ServerContext* context, ServerAsyncStreamingInterface* stream, - CompletionQueue* call_cq, void* tag); + CompletionQueue* call_cq, void* tag, + bool delete_on_finalize); // uses BaseAsyncRequest::FinalizeResult @@ -175,7 +176,7 @@ class ServerInterface : public CallHook { ServerAsyncStreamingInterface* stream, CompletionQueue* call_cq, ServerCompletionQueue* notification_cq, void* tag) - : RegisteredAsyncRequest(server, context, stream, call_cq, tag) { + : RegisteredAsyncRequest(server, context, stream, call_cq, tag, true) { IssueRequest(registered_method, nullptr, notification_cq); } @@ -191,7 +192,7 @@ class ServerInterface : public CallHook { CompletionQueue* call_cq, ServerCompletionQueue* notification_cq, void* tag, Message* request) - : RegisteredAsyncRequest(server, context, stream, call_cq, tag), + : RegisteredAsyncRequest(server, context, stream, call_cq, tag, true), request_(request) { IssueRequest(registered_method, &payload_, notification_cq); } diff --git a/include/grpc++/server.h b/include/grpc++/server.h index e3e9174c9c2..9f31d00ef0b 100644 --- a/include/grpc++/server.h +++ b/include/grpc++/server.h @@ -119,6 +119,9 @@ class Server final : public ServerInterface, private GrpcLibraryCodegen { class UnimplementedAsyncRequest; class UnimplementedAsyncResponse; + class HealthCheckAsyncRequestContext; + class HealthCheckAsyncRequest; + /// Server constructors. To be used by \a ServerBuilder only. /// /// \param max_message_size Maximum message length that the channel can diff --git a/src/cpp/server/health/default_health_check_service.cc b/src/cpp/server/health/default_health_check_service.cc index cec7ecce70a..26d8fd999fb 100644 --- a/src/cpp/server/health/default_health_check_service.cc +++ b/src/cpp/server/health/default_health_check_service.cc @@ -48,21 +48,9 @@ namespace { const char kHealthCheckMethodName[] = "/grpc.health.v1.Health/Check"; -} // namespace - -DefaultHealthCheckService::SyncHealthCheckServiceImpl:: - SyncHealthCheckServiceImpl(DefaultHealthCheckService* service) - : service_(service) { - auto* handler = - new RpcMethodHandler( - std::mem_fn(&SyncHealthCheckServiceImpl::Check), this); - auto* method = new RpcServiceMethod(kHealthCheckMethodName, - RpcMethod::NORMAL_RPC, handler); - AddMethod(method); -} - -Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( - ServerContext* context, const ByteBuffer* request, ByteBuffer* response) { +Status CheckHealth(const DefaultHealthCheckService* service, + ServerContext* context, const ByteBuffer* request, + ByteBuffer* response) { // Decode request. std::vector slices; request->Dump(&slices); @@ -99,7 +87,7 @@ Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( // Check status from the associated default health checking service. DefaultHealthCheckService::ServingStatus serving_status = - service_->GetServingStatus( + service->GetServingStatus( request_struct.has_service ? request_struct.service : ""); if (serving_status == DefaultHealthCheckService::NOT_FOUND) { return Status(StatusCode::NOT_FOUND, ""); @@ -129,9 +117,41 @@ Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( response->Swap(&response_buffer); return Status::OK; } +} // namespace + +DefaultHealthCheckService::SyncHealthCheckServiceImpl:: + SyncHealthCheckServiceImpl(DefaultHealthCheckService* service) + : service_(service) { + auto* handler = + new RpcMethodHandler( + std::mem_fn(&SyncHealthCheckServiceImpl::Check), this); + auto* method = new RpcServiceMethod(kHealthCheckMethodName, + RpcMethod::NORMAL_RPC, handler); + AddMethod(method); +} + +Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( + ServerContext* context, const ByteBuffer* request, ByteBuffer* response) { + return CheckHealth(service_, context, request, response); +} + +DefaultHealthCheckService::AsyncHealthCheckServiceImpl:: + AsyncHealthCheckServiceImpl(DefaultHealthCheckService* service) + : service_(service) { + auto* method = new RpcServiceMethod(kHealthCheckMethodName, + RpcMethod::NORMAL_RPC, nullptr); + AddMethod(method); + method_ = method; +} + +Status DefaultHealthCheckService::AsyncHealthCheckServiceImpl::Check( + ServerContext* context, const ByteBuffer* request, ByteBuffer* response) { + return CheckHealth(service_, context, request, response); +} DefaultHealthCheckService::DefaultHealthCheckService() - : sync_service_(new SyncHealthCheckServiceImpl(this)) { + : sync_service_(new SyncHealthCheckServiceImpl(this)), + async_service_(new AsyncHealthCheckServiceImpl(this)) { services_map_.emplace("", true); } diff --git a/src/cpp/server/health/default_health_check_service.h b/src/cpp/server/health/default_health_check_service.h index 541c720aaa6..411aac97138 100644 --- a/src/cpp/server/health/default_health_check_service.h +++ b/src/cpp/server/health/default_health_check_service.h @@ -56,6 +56,18 @@ class DefaultHealthCheckService : public HealthCheckServiceInterface { const DefaultHealthCheckService* service_; }; + class AsyncHealthCheckServiceImpl : public Service { + public: + explicit AsyncHealthCheckServiceImpl(DefaultHealthCheckService* service); + Status Check(ServerContext* context, const ByteBuffer* request, + ByteBuffer* response); + const RpcServiceMethod* method() const { return method_; } + + private: + const DefaultHealthCheckService* service_; + const RpcServiceMethod* method_; + }; + DefaultHealthCheckService(); void SetServingStatus(const grpc::string& service_name, bool serving) final; void SetServingStatus(bool serving) final; @@ -64,11 +76,15 @@ class DefaultHealthCheckService : public HealthCheckServiceInterface { SyncHealthCheckServiceImpl* GetSyncHealthCheckService() const { return sync_service_.get(); } + AsyncHealthCheckServiceImpl* GetAsyncHealthCheckService() const { + return async_service_.get(); + } private: mutable std::mutex mu_; std::map services_map_; std::unique_ptr sync_service_; + std::unique_ptr async_service_; }; } // namespace grpc diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index c50c076bdc5..20641aeea8d 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -37,6 +37,7 @@ #include #include +#include #include #include #include @@ -118,6 +119,67 @@ class Server::UnimplementedAsyncResponse final UnimplementedAsyncRequest* const request_; }; +class Server::HealthCheckAsyncRequestContext { + protected: + HealthCheckAsyncRequestContext() : rpc_(&server_context_) {} + ServerContext server_context_; + ServerAsyncResponseWriter rpc_; +}; + +class Server::HealthCheckAsyncRequest final + : public HealthCheckAsyncRequestContext, + public RegisteredAsyncRequest { + public: + HealthCheckAsyncRequest( + DefaultHealthCheckService::AsyncHealthCheckServiceImpl* service, + Server* server, ServerCompletionQueue* cq) + : RegisteredAsyncRequest(server, &server_context_, &rpc_, cq, this, + false), + service_(service), + server_(server), + cq_(cq), + had_request_(false) { + IssueRequest(service->method()->server_tag(), &payload_, cq); + } + + bool FinalizeResult(void** tag, bool* status) override; + + private: + DefaultHealthCheckService::AsyncHealthCheckServiceImpl* service_; + Server* const server_; + ServerCompletionQueue* const cq_; + grpc_byte_buffer* payload_; + bool had_request_; + ByteBuffer request_; + ByteBuffer response_; +}; + +bool Server::HealthCheckAsyncRequest::FinalizeResult(void** tag, bool* status) { + if (!had_request_) { + had_request_ = true; + bool serialization_status = + *status && payload_ && + SerializationTraits::Deserialize( + payload_, &request_, server_->max_receive_message_size()) + .ok(); + RegisteredAsyncRequest::FinalizeResult(tag, status); + *status = serialization_status && *status; + if (*status) { + new HealthCheckAsyncRequest(service_, server_, cq_); + Status s = service_->Check(&server_context_, &request_, &response_); + rpc_.Finish(response_, s, this); + return false; + } else { + // TODO what to do here + delete this; + return false; + } + } else { + delete this; + return false; + } +} + class ShutdownTag : public CompletionQueueTag { public: bool FinalizeResult(void** tag, bool* status) { return false; } @@ -498,6 +560,8 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { // Only create default health check service when user did not provide an // explicit one. + DefaultHealthCheckService::AsyncHealthCheckServiceImpl* async_health_service = + nullptr; if (health_check_service_ == nullptr && !health_check_service_disabled_ && DefaultHealthCheckServiceEnabled()) { auto* default_hc_service = new DefaultHealthCheckService; @@ -505,6 +569,10 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { if (!sync_server_cqs_->empty()) { // Has sync methods. RegisterService(nullptr, default_hc_service->GetSyncHealthCheckService()); } + if (sync_server_cqs_->empty()) { // No sync methods. + async_health_service = default_hc_service->GetAsyncHealthCheckService(); + RegisterService(nullptr, async_health_service); + } } grpc_server_start(server_); @@ -521,6 +589,14 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { } } + if (async_health_service) { + for (size_t i = 0; i < num_cqs; i++) { + if (cqs[i]->IsFrequentlyPolled()) { + new HealthCheckAsyncRequest(async_health_service, this, cqs[i]); + } + } + } + for (auto it = sync_req_mgrs_.begin(); it != sync_req_mgrs_.end(); it++) { (*it)->Start(); } @@ -641,8 +717,10 @@ bool ServerInterface::BaseAsyncRequest::FinalizeResult(void** tag, ServerInterface::RegisteredAsyncRequest::RegisteredAsyncRequest( ServerInterface* server, ServerContext* context, - ServerAsyncStreamingInterface* stream, CompletionQueue* call_cq, void* tag) - : BaseAsyncRequest(server, context, stream, call_cq, tag, true) {} + ServerAsyncStreamingInterface* stream, CompletionQueue* call_cq, void* tag, + bool delete_on_finalize) + : BaseAsyncRequest(server, context, stream, call_cq, tag, + delete_on_finalize) {} void ServerInterface::RegisteredAsyncRequest::IssueRequest( void* registered_method, grpc_byte_buffer** payload, diff --git a/test/cpp/end2end/health_service_end2end_test.cc b/test/cpp/end2end/health_service_end2end_test.cc index 969aea1318f..c41a75ec37c 100644 --- a/test/cpp/end2end/health_service_end2end_test.cc +++ b/test/cpp/end2end/health_service_end2end_test.cc @@ -45,6 +45,7 @@ #include #include #include +#include #include #include "src/proto/grpc/health/v1/health.grpc.pb.h" @@ -148,12 +149,17 @@ class HealthServiceEnd2endTest : public ::testing::Test { if (register_sync_health_service_impl) { builder.RegisterService(&health_check_service_impl_); } + cq_ = builder.AddCompletionQueue(); server_ = builder.BuildAndStart(); } void TearDown() override { if (server_) { server_->Shutdown(); + cq_->Shutdown(); + if (cq_thread_.joinable()) { + cq_thread_.join(); + } } } @@ -219,6 +225,8 @@ class HealthServiceEnd2endTest : public ::testing::Test { std::unique_ptr hc_stub_; std::unique_ptr server_; std::ostringstream server_address_; + std::unique_ptr cq_; + std::thread cq_thread_; }; TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceDisabled) { @@ -246,6 +254,28 @@ TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { Status(StatusCode::INVALID_ARGUMENT, "")); } +void LoopCompletionQueue(ServerCompletionQueue* cq) { + void* tag; + bool ok; + while (cq->Next(&tag, &ok)) { + gpr_log(GPR_ERROR, "next %p %d", tag, ok); + } + gpr_log(GPR_ERROR, "returning from thread"); +} + +TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceAsync) { + EnableDefaultHealthCheckService(true); + EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); + SetUpServer(false, false, nullptr); + cq_thread_ = std::thread(LoopCompletionQueue, cq_.get()); + VerifyHealthCheckService(); + + // The default service has a size limit of the service name. + const grpc::string kTooLongServiceName(201, 'x'); + SendHealthCheckRpc(kTooLongServiceName, + Status(StatusCode::INVALID_ARGUMENT, "")); +} + // Provide an empty service to disable the default service. TEST_F(HealthServiceEnd2endTest, ExplicitlyDisableViaOverride) { EnableDefaultHealthCheckService(true); From 8e708b12cb1c88f5cb6e3984d887c3c2b9bee54f Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 29 Dec 2016 11:44:36 -0800 Subject: [PATCH 17/56] WIP --- include/grpc++/server.h | 1 + src/cpp/server/server_cc.cc | 103 ++++++++++---- .../end2end/health_service_end2end_test.cc | 126 +++++++++--------- 3 files changed, 141 insertions(+), 89 deletions(-) diff --git a/include/grpc++/server.h b/include/grpc++/server.h index 9f31d00ef0b..3f205625ee7 100644 --- a/include/grpc++/server.h +++ b/include/grpc++/server.h @@ -121,6 +121,7 @@ class Server final : public ServerInterface, private GrpcLibraryCodegen { class HealthCheckAsyncRequestContext; class HealthCheckAsyncRequest; + class HealthCheckAsyncResponse; /// Server constructors. To be used by \a ServerBuilder only. /// diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index 20641aeea8d..43f09470959 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -119,11 +119,24 @@ class Server::UnimplementedAsyncResponse final UnimplementedAsyncRequest* const request_; }; +class HealthCheckAsyncResponseWriter final + : public ServerAsyncStreamingInterface { + public: + HealthCheckAsyncResponseWriter() : call_(nullptr, nullptr, nullptr) {} + void SendInitialMetadata(void* tag) override { + abort(); // should not be called. + } + void BindCall(Call* call) override { call_ = *call; } + Call* call() { return &call_; } + + private: + Call call_; +}; + class Server::HealthCheckAsyncRequestContext { protected: - HealthCheckAsyncRequestContext() : rpc_(&server_context_) {} ServerContext server_context_; - ServerAsyncResponseWriter rpc_; + HealthCheckAsyncResponseWriter rpc_; }; class Server::HealthCheckAsyncRequest final @@ -137,49 +150,86 @@ class Server::HealthCheckAsyncRequest final false), service_(service), server_(server), - cq_(cq), - had_request_(false) { + cq_(cq) { IssueRequest(service->method()->server_tag(), &payload_, cq); } bool FinalizeResult(void** tag, bool* status) override; + Call* call() { return rpc_.call(); } + ByteBuffer* response() { return &response_; } + Status* status() { return &status_; } + ServerContext* server_context() { return &server_context_; } private: DefaultHealthCheckService::AsyncHealthCheckServiceImpl* service_; Server* const server_; ServerCompletionQueue* const cq_; grpc_byte_buffer* payload_; - bool had_request_; ByteBuffer request_; ByteBuffer response_; + Status status_; +}; + +typedef SneakyCallOpSet + HealthCheckAsyncResponseOp; +class Server::HealthCheckAsyncResponse final + : public HealthCheckAsyncResponseOp { + public: + HealthCheckAsyncResponse(HealthCheckAsyncRequest* request); + ~HealthCheckAsyncResponse() { delete request_; } + + bool FinalizeResult(void** tag, bool* status) override { + HealthCheckAsyncResponseOp::FinalizeResult(tag, status); + delete this; + return false; + } + + private: + HealthCheckAsyncRequest* const request_; }; bool Server::HealthCheckAsyncRequest::FinalizeResult(void** tag, bool* status) { - if (!had_request_) { - had_request_ = true; - bool serialization_status = - *status && payload_ && - SerializationTraits::Deserialize( - payload_, &request_, server_->max_receive_message_size()) - .ok(); - RegisteredAsyncRequest::FinalizeResult(tag, status); - *status = serialization_status && *status; - if (*status) { - new HealthCheckAsyncRequest(service_, server_, cq_); - Status s = service_->Check(&server_context_, &request_, &response_); - rpc_.Finish(response_, s, this); - return false; - } else { - // TODO what to do here - delete this; - return false; - } + bool serialization_status = + *status && payload_ && + SerializationTraits::Deserialize( + payload_, &request_, server_->max_receive_message_size()) + .ok(); + RegisteredAsyncRequest::FinalizeResult(tag, status); + *status = serialization_status && *status; + if (*status) { + new HealthCheckAsyncRequest(service_, server_, cq_); + status_ = service_->Check(&server_context_, &request_, &response_); + new HealthCheckAsyncResponse(this); + return false; } else { delete this; return false; } } +Server::HealthCheckAsyncResponse::HealthCheckAsyncResponse( + HealthCheckAsyncRequest* request) + : request_(request) { + ServerContext* context = request_->server_context(); + if (!context->sent_initial_metadata_) { + SendInitialMetadata(context->initial_metadata_, + context->initial_metadata_flags()); + if (context->compression_level_set()) { + set_compression_level(context->compression_level()); + } + context->sent_initial_metadata_ = true; + } + Status* status = request_->status(); + if (status->ok()) { + ServerSendStatus(context->trailing_metadata_, + SendMessage(*request_->response())); + } else { + ServerSendStatus(context->trailing_metadata_, *status); + } + request_->call()->PerformOps(this); +} + class ShutdownTag : public CompletionQueueTag { public: bool FinalizeResult(void** tag, bool* status) { return false; } @@ -567,9 +617,10 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { auto* default_hc_service = new DefaultHealthCheckService; health_check_service_.reset(default_hc_service); if (!sync_server_cqs_->empty()) { // Has sync methods. + gpr_log(GPR_ERROR, "register sync"); // XXX RegisterService(nullptr, default_hc_service->GetSyncHealthCheckService()); - } - if (sync_server_cqs_->empty()) { // No sync methods. + } else { + gpr_log(GPR_ERROR, "register async"); // XXX async_health_service = default_hc_service->GetAsyncHealthCheckService(); RegisterService(nullptr, async_health_service); } diff --git a/test/cpp/end2end/health_service_end2end_test.cc b/test/cpp/end2end/health_service_end2end_test.cc index c41a75ec37c..9f2df90207a 100644 --- a/test/cpp/end2end/health_service_end2end_test.cc +++ b/test/cpp/end2end/health_service_end2end_test.cc @@ -242,69 +242,69 @@ TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceDisabled) { SendHealthCheckRpc("", Status(StatusCode::UNIMPLEMENTED, "")); } -TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { - EnableDefaultHealthCheckService(true); - EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); - SetUpServer(true, false, nullptr); - VerifyHealthCheckService(); - - // The default service has a size limit of the service name. - const grpc::string kTooLongServiceName(201, 'x'); - SendHealthCheckRpc(kTooLongServiceName, - Status(StatusCode::INVALID_ARGUMENT, "")); -} - -void LoopCompletionQueue(ServerCompletionQueue* cq) { - void* tag; - bool ok; - while (cq->Next(&tag, &ok)) { - gpr_log(GPR_ERROR, "next %p %d", tag, ok); - } - gpr_log(GPR_ERROR, "returning from thread"); -} - -TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceAsync) { - EnableDefaultHealthCheckService(true); - EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); - SetUpServer(false, false, nullptr); - cq_thread_ = std::thread(LoopCompletionQueue, cq_.get()); - VerifyHealthCheckService(); - - // The default service has a size limit of the service name. - const grpc::string kTooLongServiceName(201, 'x'); - SendHealthCheckRpc(kTooLongServiceName, - Status(StatusCode::INVALID_ARGUMENT, "")); -} - -// Provide an empty service to disable the default service. -TEST_F(HealthServiceEnd2endTest, ExplicitlyDisableViaOverride) { - EnableDefaultHealthCheckService(true); - EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); - std::unique_ptr empty_service; - SetUpServer(true, true, std::move(empty_service)); - HealthCheckServiceInterface* service = server_->GetHealthCheckService(); - EXPECT_TRUE(service == nullptr); - - ResetStubs(); - - SendHealthCheckRpc("", Status(StatusCode::UNIMPLEMENTED, "")); -} - -// Provide an explicit override of health checking service interface. -TEST_F(HealthServiceEnd2endTest, ExplicitlyOverride) { - EnableDefaultHealthCheckService(true); - EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); - std::unique_ptr override_service( - new CustomHealthCheckService(&health_check_service_impl_)); - HealthCheckServiceInterface* underlying_service = override_service.get(); - SetUpServer(false, true, std::move(override_service)); - HealthCheckServiceInterface* service = server_->GetHealthCheckService(); - EXPECT_TRUE(service == underlying_service); - - ResetStubs(); - - VerifyHealthCheckService(); -} +// TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { +// EnableDefaultHealthCheckService(true); +// EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); +// SetUpServer(true, false, nullptr); +// VerifyHealthCheckService(); +// +// // The default service has a size limit of the service name. +// const grpc::string kTooLongServiceName(201, 'x'); +// SendHealthCheckRpc(kTooLongServiceName, +// Status(StatusCode::INVALID_ARGUMENT, "")); +// } +// +// void LoopCompletionQueue(ServerCompletionQueue* cq) { +// void* tag; +// bool ok; +// while (cq->Next(&tag, &ok)) { +// abort(); // Nothing should come out of the cq. +// } +// gpr_log(GPR_ERROR, "returning from thread"); +// } +// +// TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceAsync) { +// EnableDefaultHealthCheckService(true); +// EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); +// SetUpServer(false, false, nullptr); +// cq_thread_ = std::thread(LoopCompletionQueue, cq_.get()); +// VerifyHealthCheckService(); +// +// // The default service has a size limit of the service name. +// const grpc::string kTooLongServiceName(201, 'x'); +// SendHealthCheckRpc(kTooLongServiceName, +// Status(StatusCode::INVALID_ARGUMENT, "")); +// } +// +// // Provide an empty service to disable the default service. +// TEST_F(HealthServiceEnd2endTest, ExplicitlyDisableViaOverride) { +// EnableDefaultHealthCheckService(true); +// EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); +// std::unique_ptr empty_service; +// SetUpServer(true, true, std::move(empty_service)); +// HealthCheckServiceInterface* service = server_->GetHealthCheckService(); +// EXPECT_TRUE(service == nullptr); +// +// ResetStubs(); +// +// SendHealthCheckRpc("", Status(StatusCode::UNIMPLEMENTED, "")); +// } +// +// // Provide an explicit override of health checking service interface. +// TEST_F(HealthServiceEnd2endTest, ExplicitlyOverride) { +// EnableDefaultHealthCheckService(true); +// EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); +// std::unique_ptr override_service( +// new CustomHealthCheckService(&health_check_service_impl_)); +// HealthCheckServiceInterface* underlying_service = override_service.get(); +// SetUpServer(false, true, std::move(override_service)); +// HealthCheckServiceInterface* service = server_->GetHealthCheckService(); +// EXPECT_TRUE(service == underlying_service); +// +// ResetStubs(); +// +// VerifyHealthCheckService(); +// } } // namespace } // namespace testing From a3c95529c7e1267c8d7e78e689ab8a4699adebf0 Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 29 Dec 2016 12:10:52 -0800 Subject: [PATCH 18/56] async works --- src/cpp/server/server_cc.cc | 2 - .../end2end/health_service_end2end_test.cc | 128 +++++++++--------- 2 files changed, 64 insertions(+), 66 deletions(-) diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index 43f09470959..8a0ad36c535 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -617,10 +617,8 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { auto* default_hc_service = new DefaultHealthCheckService; health_check_service_.reset(default_hc_service); if (!sync_server_cqs_->empty()) { // Has sync methods. - gpr_log(GPR_ERROR, "register sync"); // XXX RegisterService(nullptr, default_hc_service->GetSyncHealthCheckService()); } else { - gpr_log(GPR_ERROR, "register async"); // XXX async_health_service = default_hc_service->GetAsyncHealthCheckService(); RegisterService(nullptr, async_health_service); } diff --git a/test/cpp/end2end/health_service_end2end_test.cc b/test/cpp/end2end/health_service_end2end_test.cc index 9f2df90207a..beb84e0a3fc 100644 --- a/test/cpp/end2end/health_service_end2end_test.cc +++ b/test/cpp/end2end/health_service_end2end_test.cc @@ -120,6 +120,14 @@ class CustomHealthCheckService : public HealthCheckServiceInterface { HealthCheckServiceImpl* impl_; // not owned }; +void LoopCompletionQueue(ServerCompletionQueue* cq) { + void* tag; + bool ok; + while (cq->Next(&tag, &ok)) { + abort(); // Nothing should come out of the cq. + } +} + class HealthServiceEnd2endTest : public ::testing::Test { protected: HealthServiceEnd2endTest() {} @@ -160,6 +168,7 @@ class HealthServiceEnd2endTest : public ::testing::Test { if (cq_thread_.joinable()) { cq_thread_.join(); } + LoopCompletionQueue(cq_.get()); } } @@ -223,9 +232,9 @@ class HealthServiceEnd2endTest : public ::testing::Test { TestServiceImpl echo_test_service_; HealthCheckServiceImpl health_check_service_impl_; std::unique_ptr hc_stub_; + std::unique_ptr cq_; std::unique_ptr server_; std::ostringstream server_address_; - std::unique_ptr cq_; std::thread cq_thread_; }; @@ -242,69 +251,60 @@ TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceDisabled) { SendHealthCheckRpc("", Status(StatusCode::UNIMPLEMENTED, "")); } -// TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { -// EnableDefaultHealthCheckService(true); -// EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); -// SetUpServer(true, false, nullptr); -// VerifyHealthCheckService(); -// -// // The default service has a size limit of the service name. -// const grpc::string kTooLongServiceName(201, 'x'); -// SendHealthCheckRpc(kTooLongServiceName, -// Status(StatusCode::INVALID_ARGUMENT, "")); -// } -// -// void LoopCompletionQueue(ServerCompletionQueue* cq) { -// void* tag; -// bool ok; -// while (cq->Next(&tag, &ok)) { -// abort(); // Nothing should come out of the cq. -// } -// gpr_log(GPR_ERROR, "returning from thread"); -// } -// -// TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceAsync) { -// EnableDefaultHealthCheckService(true); -// EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); -// SetUpServer(false, false, nullptr); -// cq_thread_ = std::thread(LoopCompletionQueue, cq_.get()); -// VerifyHealthCheckService(); -// -// // The default service has a size limit of the service name. -// const grpc::string kTooLongServiceName(201, 'x'); -// SendHealthCheckRpc(kTooLongServiceName, -// Status(StatusCode::INVALID_ARGUMENT, "")); -// } -// -// // Provide an empty service to disable the default service. -// TEST_F(HealthServiceEnd2endTest, ExplicitlyDisableViaOverride) { -// EnableDefaultHealthCheckService(true); -// EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); -// std::unique_ptr empty_service; -// SetUpServer(true, true, std::move(empty_service)); -// HealthCheckServiceInterface* service = server_->GetHealthCheckService(); -// EXPECT_TRUE(service == nullptr); -// -// ResetStubs(); -// -// SendHealthCheckRpc("", Status(StatusCode::UNIMPLEMENTED, "")); -// } -// -// // Provide an explicit override of health checking service interface. -// TEST_F(HealthServiceEnd2endTest, ExplicitlyOverride) { -// EnableDefaultHealthCheckService(true); -// EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); -// std::unique_ptr override_service( -// new CustomHealthCheckService(&health_check_service_impl_)); -// HealthCheckServiceInterface* underlying_service = override_service.get(); -// SetUpServer(false, true, std::move(override_service)); -// HealthCheckServiceInterface* service = server_->GetHealthCheckService(); -// EXPECT_TRUE(service == underlying_service); -// -// ResetStubs(); -// -// VerifyHealthCheckService(); -// } +TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { + EnableDefaultHealthCheckService(true); + EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); + SetUpServer(true, false, nullptr); + VerifyHealthCheckService(); + + // The default service has a size limit of the service name. + const grpc::string kTooLongServiceName(201, 'x'); + SendHealthCheckRpc(kTooLongServiceName, + Status(StatusCode::INVALID_ARGUMENT, "")); +} + +TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceAsync) { + EnableDefaultHealthCheckService(true); + EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); + SetUpServer(false, false, nullptr); + cq_thread_ = std::thread(LoopCompletionQueue, cq_.get()); + VerifyHealthCheckService(); + + // The default service has a size limit of the service name. + const grpc::string kTooLongServiceName(201, 'x'); + SendHealthCheckRpc(kTooLongServiceName, + Status(StatusCode::INVALID_ARGUMENT, "")); +} + +// Provide an empty service to disable the default service. +TEST_F(HealthServiceEnd2endTest, ExplicitlyDisableViaOverride) { + EnableDefaultHealthCheckService(true); + EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); + std::unique_ptr empty_service; + SetUpServer(true, true, std::move(empty_service)); + HealthCheckServiceInterface* service = server_->GetHealthCheckService(); + EXPECT_TRUE(service == nullptr); + + ResetStubs(); + + SendHealthCheckRpc("", Status(StatusCode::UNIMPLEMENTED, "")); +} + +// Provide an explicit override of health checking service interface. +TEST_F(HealthServiceEnd2endTest, ExplicitlyOverride) { + EnableDefaultHealthCheckService(true); + EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); + std::unique_ptr override_service( + new CustomHealthCheckService(&health_check_service_impl_)); + HealthCheckServiceInterface* underlying_service = override_service.get(); + SetUpServer(false, true, std::move(override_service)); + HealthCheckServiceInterface* service = server_->GetHealthCheckService(); + EXPECT_TRUE(service == underlying_service); + + ResetStubs(); + + VerifyHealthCheckService(); +} } // namespace } // namespace testing From ef163280637a288685bd6f09c548fc02f6bf513f Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 29 Dec 2016 13:21:04 -0800 Subject: [PATCH 19/56] cleanup --- .../health/default_health_check_service.cc | 65 ++++++++----------- .../health/default_health_check_service.h | 41 +++++------- src/cpp/server/server_cc.cc | 22 +++---- 3 files changed, 52 insertions(+), 76 deletions(-) diff --git a/src/cpp/server/health/default_health_check_service.cc b/src/cpp/server/health/default_health_check_service.cc index 26d8fd999fb..9743bd5775e 100644 --- a/src/cpp/server/health/default_health_check_service.cc +++ b/src/cpp/server/health/default_health_check_service.cc @@ -45,12 +45,25 @@ namespace grpc { namespace { - const char kHealthCheckMethodName[] = "/grpc.health.v1.Health/Check"; +} // namespace + +DefaultHealthCheckService::HealthCheckServiceImpl::HealthCheckServiceImpl( + DefaultHealthCheckService* service, bool sync) + : service_(service), method_(nullptr), sync_(sync) { + MethodHandler* handler = nullptr; + if (sync_) { + handler = + new RpcMethodHandler( + std::mem_fn(&HealthCheckServiceImpl::Check), this); + } + method_ = new RpcServiceMethod(kHealthCheckMethodName, RpcMethod::NORMAL_RPC, + handler); + AddMethod(method_); +} -Status CheckHealth(const DefaultHealthCheckService* service, - ServerContext* context, const ByteBuffer* request, - ByteBuffer* response) { +Status DefaultHealthCheckService::HealthCheckServiceImpl::Check( + ServerContext* context, const ByteBuffer* request, ByteBuffer* response) { // Decode request. std::vector slices; request->Dump(&slices); @@ -87,7 +100,7 @@ Status CheckHealth(const DefaultHealthCheckService* service, // Check status from the associated default health checking service. DefaultHealthCheckService::ServingStatus serving_status = - service->GetServingStatus( + service_->GetServingStatus( request_struct.has_service ? request_struct.service : ""); if (serving_status == DefaultHealthCheckService::NOT_FOUND) { return Status(StatusCode::NOT_FOUND, ""); @@ -117,41 +130,8 @@ Status CheckHealth(const DefaultHealthCheckService* service, response->Swap(&response_buffer); return Status::OK; } -} // namespace -DefaultHealthCheckService::SyncHealthCheckServiceImpl:: - SyncHealthCheckServiceImpl(DefaultHealthCheckService* service) - : service_(service) { - auto* handler = - new RpcMethodHandler( - std::mem_fn(&SyncHealthCheckServiceImpl::Check), this); - auto* method = new RpcServiceMethod(kHealthCheckMethodName, - RpcMethod::NORMAL_RPC, handler); - AddMethod(method); -} - -Status DefaultHealthCheckService::SyncHealthCheckServiceImpl::Check( - ServerContext* context, const ByteBuffer* request, ByteBuffer* response) { - return CheckHealth(service_, context, request, response); -} - -DefaultHealthCheckService::AsyncHealthCheckServiceImpl:: - AsyncHealthCheckServiceImpl(DefaultHealthCheckService* service) - : service_(service) { - auto* method = new RpcServiceMethod(kHealthCheckMethodName, - RpcMethod::NORMAL_RPC, nullptr); - AddMethod(method); - method_ = method; -} - -Status DefaultHealthCheckService::AsyncHealthCheckServiceImpl::Check( - ServerContext* context, const ByteBuffer* request, ByteBuffer* response) { - return CheckHealth(service_, context, request, response); -} - -DefaultHealthCheckService::DefaultHealthCheckService() - : sync_service_(new SyncHealthCheckServiceImpl(this)), - async_service_(new AsyncHealthCheckServiceImpl(this)) { +DefaultHealthCheckService::DefaultHealthCheckService() { services_map_.emplace("", true); } @@ -179,4 +159,11 @@ DefaultHealthCheckService::GetServingStatus( return iter->second ? SERVING : NOT_SERVING; } +DefaultHealthCheckService::HealthCheckServiceImpl* +DefaultHealthCheckService::GetHealthCheckService(bool sync) { + GPR_ASSERT(impl_ == nullptr); + impl_.reset(new HealthCheckServiceImpl(this, sync)); + return impl_.get(); +} + } // namespace grpc diff --git a/src/cpp/server/health/default_health_check_service.h b/src/cpp/server/health/default_health_check_service.h index 411aac97138..1ecb0a2ba94 100644 --- a/src/cpp/server/health/default_health_check_service.h +++ b/src/cpp/server/health/default_health_check_service.h @@ -44,47 +44,40 @@ namespace grpc { // Default implementation of HealthCheckServiceInterface. Server will create and // own it. -class DefaultHealthCheckService : public HealthCheckServiceInterface { +class DefaultHealthCheckService final : public HealthCheckServiceInterface { public: - class SyncHealthCheckServiceImpl : public Service { + // The service impl to register with the server. + class HealthCheckServiceImpl : public Service { public: - explicit SyncHealthCheckServiceImpl(DefaultHealthCheckService* service); + HealthCheckServiceImpl(DefaultHealthCheckService* service, bool sync); + Status Check(ServerContext* context, const ByteBuffer* request, ByteBuffer* response); - private: - const DefaultHealthCheckService* service_; - }; + bool sync() { return sync_; } - class AsyncHealthCheckServiceImpl : public Service { - public: - explicit AsyncHealthCheckServiceImpl(DefaultHealthCheckService* service); - Status Check(ServerContext* context, const ByteBuffer* request, - ByteBuffer* response); - const RpcServiceMethod* method() const { return method_; } + // This is only useful for the async mode. It should be called after + // RegisterService returns. + void* server_tag() const { return method_->server_tag(); } private: - const DefaultHealthCheckService* service_; - const RpcServiceMethod* method_; + const DefaultHealthCheckService* const service_; + RpcServiceMethod* method_; + const bool sync_; }; DefaultHealthCheckService(); - void SetServingStatus(const grpc::string& service_name, bool serving) final; - void SetServingStatus(bool serving) final; + void SetServingStatus(const grpc::string& service_name, + bool serving) override; + void SetServingStatus(bool serving) override; enum ServingStatus { NOT_FOUND, SERVING, NOT_SERVING }; ServingStatus GetServingStatus(const grpc::string& service_name) const; - SyncHealthCheckServiceImpl* GetSyncHealthCheckService() const { - return sync_service_.get(); - } - AsyncHealthCheckServiceImpl* GetAsyncHealthCheckService() const { - return async_service_.get(); - } + HealthCheckServiceImpl* GetHealthCheckService(bool sync); private: mutable std::mutex mu_; std::map services_map_; - std::unique_ptr sync_service_; - std::unique_ptr async_service_; + std::unique_ptr impl_; }; } // namespace grpc diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index 8a0ad36c535..d9c972c64a0 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -144,14 +144,14 @@ class Server::HealthCheckAsyncRequest final public RegisteredAsyncRequest { public: HealthCheckAsyncRequest( - DefaultHealthCheckService::AsyncHealthCheckServiceImpl* service, + DefaultHealthCheckService::HealthCheckServiceImpl* service, Server* server, ServerCompletionQueue* cq) : RegisteredAsyncRequest(server, &server_context_, &rpc_, cq, this, false), service_(service), server_(server), cq_(cq) { - IssueRequest(service->method()->server_tag(), &payload_, cq); + IssueRequest(service->server_tag(), &payload_, cq); } bool FinalizeResult(void** tag, bool* status) override; @@ -161,7 +161,7 @@ class Server::HealthCheckAsyncRequest final ServerContext* server_context() { return &server_context_; } private: - DefaultHealthCheckService::AsyncHealthCheckServiceImpl* service_; + DefaultHealthCheckService::HealthCheckServiceImpl* service_; Server* const server_; ServerCompletionQueue* const cq_; grpc_byte_buffer* payload_; @@ -610,18 +610,14 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { // Only create default health check service when user did not provide an // explicit one. - DefaultHealthCheckService::AsyncHealthCheckServiceImpl* async_health_service = - nullptr; + DefaultHealthCheckService::HealthCheckServiceImpl* health_service = nullptr; if (health_check_service_ == nullptr && !health_check_service_disabled_ && DefaultHealthCheckServiceEnabled()) { auto* default_hc_service = new DefaultHealthCheckService; health_check_service_.reset(default_hc_service); - if (!sync_server_cqs_->empty()) { // Has sync methods. - RegisterService(nullptr, default_hc_service->GetSyncHealthCheckService()); - } else { - async_health_service = default_hc_service->GetAsyncHealthCheckService(); - RegisterService(nullptr, async_health_service); - } + health_service = + default_hc_service->GetHealthCheckService(!sync_server_cqs_->empty()); + RegisterService(nullptr, health_service); } grpc_server_start(server_); @@ -638,10 +634,10 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { } } - if (async_health_service) { + if (health_service && !health_service->sync()) { for (size_t i = 0; i < num_cqs; i++) { if (cqs[i]->IsFrequentlyPolled()) { - new HealthCheckAsyncRequest(async_health_service, this, cqs[i]); + new HealthCheckAsyncRequest(health_service, this, cqs[i]); } } } From a36ea4be8b3aa665be7b789ce4b4f97506f2ad65 Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 29 Dec 2016 13:45:06 -0800 Subject: [PATCH 20/56] remove file --- ...lth_check_service_server_builder_option.cc | 50 ------------------- 1 file changed, 50 deletions(-) delete mode 100644 src/cpp/ext/health_check_service_server_builder_option.cc diff --git a/src/cpp/ext/health_check_service_server_builder_option.cc b/src/cpp/ext/health_check_service_server_builder_option.cc deleted file mode 100644 index 0d523285e9c..00000000000 --- a/src/cpp/ext/health_check_service_server_builder_option.cc +++ /dev/null @@ -1,50 +0,0 @@ -/* - * - * Copyright 2016, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#include - -namespace grpc { - -HealthCheckServiceServerBuilderOption::HealthCheckServiceServerBuilderOption( - std::unique_ptr hc) - : hc_(std::move(hc)) {} - -HealthCheckServiceServerBuilderOption::UpdateArguments( - ChannelArguments* args) override { - args->SetPointer(DefaultHealthCheckServiceInterfaceArg(), hc_.release()); -} - -void HealthCheckServiceServerBuilderOption::UpdatePlugins( - std::vector>* plugins) override {} - -} // namespace grpc From b90631d3f08aaea88345a2ce950bf16fbcb77ad0 Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 29 Dec 2016 14:08:13 -0800 Subject: [PATCH 21/56] more cleanup --- .../grpc++/health_check_service_interface.h | 13 ++- ...lth_check_service_server_builder_option.cc | 2 +- src/cpp/server/server_cc.cc | 89 ++++++++++--------- 3 files changed, 56 insertions(+), 48 deletions(-) diff --git a/include/grpc++/health_check_service_interface.h b/include/grpc++/health_check_service_interface.h index 70153d65cbb..0eed7026839 100644 --- a/include/grpc++/health_check_service_interface.h +++ b/include/grpc++/health_check_service_interface.h @@ -38,26 +38,31 @@ namespace grpc { -const char kDefaultHealthCheckServiceInterfaceArg[] = - "grpc.default_health_check_service_interface"; +const char kHealthCheckServiceInterfaceArg[] = + "grpc.health_check_service_interface"; +// The gRPC server uses this interface to expose the health checking service +// without depending on protobuf. class HealthCheckServiceInterface { public: virtual ~HealthCheckServiceInterface() {} + + // Set or change the serving status of the given service_name. virtual void SetServingStatus(const grpc::string& service_name, bool serving) = 0; // Apply to all registered service names. virtual void SetServingStatus(bool serving) = 0; }; -bool DefaultHealthCheckServiceEnabled(); - // Enable/disable the default health checking service. This applies to all C++ // servers created afterwards. For each server, user can override the default // with a HealthCheckServiceServerBuilderOption. // NOT thread safe. void EnableDefaultHealthCheckService(bool enable); +// NOT thread safe. +bool DefaultHealthCheckServiceEnabled(); + } // namespace grpc #endif // GRPCXX_HEALTH_CHECK_SERVICE_INTERFACE_H diff --git a/src/cpp/server/health/health_check_service_server_builder_option.cc b/src/cpp/server/health/health_check_service_server_builder_option.cc index 6680bed2e2b..24264204b35 100644 --- a/src/cpp/server/health/health_check_service_server_builder_option.cc +++ b/src/cpp/server/health/health_check_service_server_builder_option.cc @@ -41,7 +41,7 @@ HealthCheckServiceServerBuilderOption::HealthCheckServiceServerBuilderOption( // Hand over hc_ to the server. void HealthCheckServiceServerBuilderOption::UpdateArguments( ChannelArguments* args) { - args->SetPointer(kDefaultHealthCheckServiceInterfaceArg, hc_.release()); + args->SetPointer(kHealthCheckServiceInterfaceArg, hc_.release()); } void HealthCheckServiceServerBuilderOption::UpdatePlugins( diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index d9c972c64a0..00aea485db9 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -119,6 +119,9 @@ class Server::UnimplementedAsyncResponse final UnimplementedAsyncRequest* const request_; }; +// This is a dummy implementation of the interface so that +// HealthCheckAsyncRequest can get Call from RegisteredAsyncRequest. It does not +// do any reading or writing. class HealthCheckAsyncResponseWriter final : public ServerAsyncStreamingInterface { public: @@ -189,47 +192,6 @@ class Server::HealthCheckAsyncResponse final HealthCheckAsyncRequest* const request_; }; -bool Server::HealthCheckAsyncRequest::FinalizeResult(void** tag, bool* status) { - bool serialization_status = - *status && payload_ && - SerializationTraits::Deserialize( - payload_, &request_, server_->max_receive_message_size()) - .ok(); - RegisteredAsyncRequest::FinalizeResult(tag, status); - *status = serialization_status && *status; - if (*status) { - new HealthCheckAsyncRequest(service_, server_, cq_); - status_ = service_->Check(&server_context_, &request_, &response_); - new HealthCheckAsyncResponse(this); - return false; - } else { - delete this; - return false; - } -} - -Server::HealthCheckAsyncResponse::HealthCheckAsyncResponse( - HealthCheckAsyncRequest* request) - : request_(request) { - ServerContext* context = request_->server_context(); - if (!context->sent_initial_metadata_) { - SendInitialMetadata(context->initial_metadata_, - context->initial_metadata_flags()); - if (context->compression_level_set()) { - set_compression_level(context->compression_level()); - } - context->sent_initial_metadata_ = true; - } - Status* status = request_->status(); - if (status->ok()) { - ServerSendStatus(context->trailing_metadata_, - SendMessage(*request_->response())); - } else { - ServerSendStatus(context->trailing_metadata_, *status); - } - request_->call()->PerformOps(this); -} - class ShutdownTag : public CompletionQueueTag { public: bool FinalizeResult(void** tag, bool* status) { return false; } @@ -490,8 +452,8 @@ Server::Server( args->SetChannelArgs(&channel_args); for (size_t i = 0; i < channel_args.num_args; i++) { - if (0 == strcmp(channel_args.args[i].key, - kDefaultHealthCheckServiceInterfaceArg)) { + if (0 == + strcmp(channel_args.args[i].key, kHealthCheckServiceInterfaceArg)) { if (channel_args.args[i].value.pointer.p == nullptr) { health_check_service_disabled_ = true; } else { @@ -822,6 +784,47 @@ Server::UnimplementedAsyncResponse::UnimplementedAsyncResponse( request_->stream()->call_.PerformOps(this); } +bool Server::HealthCheckAsyncRequest::FinalizeResult(void** tag, bool* status) { + bool serialization_status = + *status && payload_ && + SerializationTraits::Deserialize( + payload_, &request_, server_->max_receive_message_size()) + .ok(); + RegisteredAsyncRequest::FinalizeResult(tag, status); + *status = serialization_status && *status; + if (*status) { + new HealthCheckAsyncRequest(service_, server_, cq_); + status_ = service_->Check(&server_context_, &request_, &response_); + new HealthCheckAsyncResponse(this); + return false; + } else { + delete this; + return false; + } +} + +Server::HealthCheckAsyncResponse::HealthCheckAsyncResponse( + HealthCheckAsyncRequest* request) + : request_(request) { + ServerContext* context = request_->server_context(); + if (!context->sent_initial_metadata_) { + SendInitialMetadata(context->initial_metadata_, + context->initial_metadata_flags()); + if (context->compression_level_set()) { + set_compression_level(context->compression_level()); + } + context->sent_initial_metadata_ = true; + } + Status* status = request_->status(); + if (status->ok()) { + ServerSendStatus(context->trailing_metadata_, + SendMessage(*request_->response())); + } else { + ServerSendStatus(context->trailing_metadata_, *status); + } + request_->call()->PerformOps(this); +} + ServerInitializer* Server::initializer() { return server_initializer_.get(); } } // namespace grpc From 35674af901576b078fe158814fa9d730e09426f6 Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 29 Dec 2016 15:15:12 -0800 Subject: [PATCH 22/56] make test robust --- .../end2end/health_service_end2end_test.cc | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/test/cpp/end2end/health_service_end2end_test.cc b/test/cpp/end2end/health_service_end2end_test.cc index beb84e0a3fc..8a6a9886c9a 100644 --- a/test/cpp/end2end/health_service_end2end_test.cc +++ b/test/cpp/end2end/health_service_end2end_test.cc @@ -132,7 +132,7 @@ class HealthServiceEnd2endTest : public ::testing::Test { protected: HealthServiceEnd2endTest() {} - void SetUpServer(bool register_sync_test_service, + void SetUpServer(bool register_sync_test_service, bool add_async_cq, bool explicit_health_service, std::unique_ptr service) { int port = grpc_pick_unused_port_or_die(); @@ -157,18 +157,21 @@ class HealthServiceEnd2endTest : public ::testing::Test { if (register_sync_health_service_impl) { builder.RegisterService(&health_check_service_impl_); } - cq_ = builder.AddCompletionQueue(); + if (add_async_cq) { + cq_ = builder.AddCompletionQueue(); + } server_ = builder.BuildAndStart(); } void TearDown() override { if (server_) { server_->Shutdown(); - cq_->Shutdown(); + if (cq_ != nullptr) { + cq_->Shutdown(); + } if (cq_thread_.joinable()) { cq_thread_.join(); } - LoopCompletionQueue(cq_.get()); } } @@ -241,7 +244,7 @@ class HealthServiceEnd2endTest : public ::testing::Test { TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceDisabled) { EnableDefaultHealthCheckService(false); EXPECT_FALSE(DefaultHealthCheckServiceEnabled()); - SetUpServer(true, false, nullptr); + SetUpServer(true, false, false, nullptr); HealthCheckServiceInterface* default_service = server_->GetHealthCheckService(); EXPECT_TRUE(default_service == nullptr); @@ -254,7 +257,7 @@ TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceDisabled) { TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { EnableDefaultHealthCheckService(true); EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); - SetUpServer(true, false, nullptr); + SetUpServer(true, false, false, nullptr); VerifyHealthCheckService(); // The default service has a size limit of the service name. @@ -263,11 +266,13 @@ TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { Status(StatusCode::INVALID_ARGUMENT, "")); } -TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceAsync) { +// The server has no sync service. +TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceAsyncOnly) { EnableDefaultHealthCheckService(true); EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); - SetUpServer(false, false, nullptr); + SetUpServer(false, true, false, nullptr); cq_thread_ = std::thread(LoopCompletionQueue, cq_.get()); + VerifyHealthCheckService(); // The default service has a size limit of the service name. @@ -281,7 +286,7 @@ TEST_F(HealthServiceEnd2endTest, ExplicitlyDisableViaOverride) { EnableDefaultHealthCheckService(true); EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); std::unique_ptr empty_service; - SetUpServer(true, true, std::move(empty_service)); + SetUpServer(true, false, true, std::move(empty_service)); HealthCheckServiceInterface* service = server_->GetHealthCheckService(); EXPECT_TRUE(service == nullptr); @@ -297,7 +302,7 @@ TEST_F(HealthServiceEnd2endTest, ExplicitlyOverride) { std::unique_ptr override_service( new CustomHealthCheckService(&health_check_service_impl_)); HealthCheckServiceInterface* underlying_service = override_service.get(); - SetUpServer(false, true, std::move(override_service)); + SetUpServer(false, false, true, std::move(override_service)); HealthCheckServiceInterface* service = server_->GetHealthCheckService(); EXPECT_TRUE(service == underlying_service); From 8bd6a0542b7d3ad08497e14fce5470cb50c7bc87 Mon Sep 17 00:00:00 2001 From: yang-g Date: Wed, 4 Jan 2017 13:10:30 -0800 Subject: [PATCH 23/56] remove copyright from generated files --- ...alth_check_service_server_builder_option.h | 3 +- src/cpp/server/health/health.pb.c | 32 ------------------- src/cpp/server/health/health.pb.h | 32 ------------------- 3 files changed, 2 insertions(+), 65 deletions(-) diff --git a/include/grpc++/ext/health_check_service_server_builder_option.h b/include/grpc++/ext/health_check_service_server_builder_option.h index 2dd1e6dd329..4861daacd40 100644 --- a/include/grpc++/ext/health_check_service_server_builder_option.h +++ b/include/grpc++/ext/health_check_service_server_builder_option.h @@ -44,7 +44,8 @@ namespace grpc { class HealthCheckServiceServerBuilderOption : public ServerBuilderOption { public: - // Use nullptr to disable default service. + // The ownership of hc will be taken and transferred to the grpc server. + // To explicitly disable default service, pass in a nullptr. explicit HealthCheckServiceServerBuilderOption( std::unique_ptr hc); ~HealthCheckServiceServerBuilderOption() override {} diff --git a/src/cpp/server/health/health.pb.c b/src/cpp/server/health/health.pb.c index 1fca2c55c84..09bd98a3d97 100644 --- a/src/cpp/server/health/health.pb.c +++ b/src/cpp/server/health/health.pb.c @@ -1,35 +1,3 @@ -/* - * - * 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. - * - */ /* Automatically generated nanopb constant definitions */ /* Generated by nanopb-0.3.7-dev */ diff --git a/src/cpp/server/health/health.pb.h b/src/cpp/server/health/health.pb.h index dc790fb1035..7051b3260ac 100644 --- a/src/cpp/server/health/health.pb.h +++ b/src/cpp/server/health/health.pb.h @@ -1,35 +1,3 @@ -/* - * - * 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. - * - */ /* Automatically generated nanopb header */ /* Generated by nanopb-0.3.7-dev */ From 26d20a8016feaeb0a2fe182505ee60960fb03275 Mon Sep 17 00:00:00 2001 From: yang-g Date: Wed, 4 Jan 2017 13:12:39 -0800 Subject: [PATCH 24/56] exclude newly added file from copyright check --- tools/distrib/check_copyright.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/distrib/check_copyright.py b/tools/distrib/check_copyright.py index 718bb563f3a..4f9655e9950 100755 --- a/tools/distrib/check_copyright.py +++ b/tools/distrib/check_copyright.py @@ -105,6 +105,8 @@ _EXEMPT = frozenset(( 'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h', 'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c', + 'src/cpp/server/health/health.pb.h', + 'src/cpp/server/health/health.pb.c', # An older file originally from outside gRPC. 'src/php/tests/bootstrap.php', From 850fcb97d235a5fe977d5aa8489fbcab5c837c50 Mon Sep 17 00:00:00 2001 From: yang-g Date: Wed, 11 Jan 2017 14:26:15 -0800 Subject: [PATCH 25/56] typo --- BUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BUILD b/BUILD index 350ed1baf0b..9842015b06b 100644 --- a/BUILD +++ b/BUILD @@ -1100,7 +1100,7 @@ grpc_cc_library( "src/cpp/client/create_channel_internal.h", "src/cpp/common/channel_filter.h", "src/cpp/server/dynamic_thread_pool.h", - "src/cpp/server/health/defult_health_check_service.h", + "src/cpp/server/health/default_health_check_service.h", "src/cpp/server/health/health.pb.h", "src/cpp/server/thread_pool_interface.h", "src/cpp/thread_manager/thread_manager.h", From 8fe20bf093a96a50d0e1021e51f26c9e418fcb65 Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 12 Jan 2017 10:33:12 -0800 Subject: [PATCH 26/56] typo --- BUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BUILD b/BUILD index 9842015b06b..9738085ee37 100644 --- a/BUILD +++ b/BUILD @@ -1117,7 +1117,7 @@ grpc_cc_library( "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", - "include/grpc++/health_check_service_interfac.h", + "include/grpc++/health_check_service_interface.h", "include/grpc++/impl/call.h", "include/grpc++/impl/client_unary_call.h", "include/grpc++/impl/codegen/core_codegen.h", From 0ed9fd4fefc832a4fa8019e377ed350cca6c72bf Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 26 Jan 2017 15:33:39 -0800 Subject: [PATCH 27/56] update submodules --- CMakeLists.txt | 583 +++++++- Makefile | 719 +++++++++- binding.gyp | 41 +- config.m4 | 43 +- grpc.gemspec | 58 +- package.xml | 58 +- src/boringssl/err_data.c | 1266 +++++++++-------- src/python/grpcio/grpc_core_dependencies.py | 41 +- .../generated/sources_and_headers.json | 291 +++- tools/run_tests/generated/tests.json | 248 +++- .../vcxproj/boringssl/boringssl.vcxproj | 93 +- .../boringssl/boringssl.vcxproj.filters | 170 +-- .../boringssl_chacha_test.vcxproj} | 10 +- .../boringssl_chacha_test.vcxproj.filters} | 0 .../boringssl_chacha_test_lib.vcxproj | 170 +++ .../boringssl_chacha_test_lib.vcxproj.filters | 24 + .../boringssl_ecdh_test.vcxproj | 198 +++ .../boringssl_ecdh_test.vcxproj.filters | 7 + .../boringssl_ecdh_test_lib.vcxproj} | 8 +- .../boringssl_ecdh_test_lib.vcxproj.filters | 24 + .../boringssl_ecdsa_sign_test.vcxproj | 198 +++ .../boringssl_ecdsa_sign_test.vcxproj.filters | 7 + .../boringssl_ecdsa_sign_test_lib.vcxproj | 170 +++ ...ingssl_ecdsa_sign_test_lib.vcxproj.filters | 24 + .../boringssl_ecdsa_verify_test.vcxproj | 198 +++ ...oringssl_ecdsa_verify_test.vcxproj.filters | 7 + .../boringssl_ecdsa_verify_test_lib.vcxproj | 170 +++ ...gssl_ecdsa_verify_test_lib.vcxproj.filters | 24 + .../boringssl_gcm_test_lib.vcxproj | 2 +- .../boringssl_gcm_test_lib.vcxproj.filters | 2 +- ...boringssl_newhope_statistical_test.vcxproj | 198 +++ ...l_newhope_statistical_test.vcxproj.filters | 7 + ...ngssl_newhope_statistical_test_lib.vcxproj | 170 +++ ...whope_statistical_test_lib.vcxproj.filters | 24 + .../boringssl_newhope_test.vcxproj | 198 +++ .../boringssl_newhope_test.vcxproj.filters | 7 + .../boringssl_newhope_test_lib.vcxproj | 170 +++ ...boringssl_newhope_test_lib.vcxproj.filters | 24 + .../boringssl_newhope_vectors_test.vcxproj | 198 +++ ...ngssl_newhope_vectors_test.vcxproj.filters | 7 + ...boringssl_newhope_vectors_test_lib.vcxproj | 170 +++ ...l_newhope_vectors_test_lib.vcxproj.filters | 24 + .../boringssl_obj_test.vcxproj | 198 +++ .../boringssl_obj_test.vcxproj.filters | 7 + .../boringssl_obj_test_lib.vcxproj | 170 +++ .../boringssl_obj_test_lib.vcxproj.filters} | 16 +- .../boringssl_spake25519_test.vcxproj | 198 +++ .../boringssl_spake25519_test.vcxproj.filters | 7 + .../boringssl_spake25519_test_lib.vcxproj | 170 +++ ...ingssl_spake25519_test_lib.vcxproj.filters | 24 + 50 files changed, 5703 insertions(+), 1138 deletions(-) rename vsprojects/vcxproj/test/boringssl/{boringssl_pqueue_test/boringssl_pqueue_test.vcxproj => boringssl_chacha_test/boringssl_chacha_test.vcxproj} (97%) rename vsprojects/vcxproj/test/boringssl/{boringssl_pqueue_test/boringssl_pqueue_test.vcxproj.filters => boringssl_chacha_test/boringssl_chacha_test.vcxproj.filters} (100%) create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_chacha_test_lib/boringssl_chacha_test_lib.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_chacha_test_lib/boringssl_chacha_test_lib.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test/boringssl_ecdh_test.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test/boringssl_ecdh_test.vcxproj.filters rename vsprojects/vcxproj/test/boringssl/{boringssl_pqueue_test_lib/boringssl_pqueue_test_lib.vcxproj => boringssl_ecdh_test_lib/boringssl_ecdh_test_lib.vcxproj} (97%) create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test_lib/boringssl_ecdh_test_lib.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test/boringssl_ecdsa_sign_test.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test/boringssl_ecdsa_sign_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test_lib/boringssl_ecdsa_sign_test_lib.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test_lib/boringssl_ecdsa_sign_test_lib.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test/boringssl_ecdsa_verify_test.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test/boringssl_ecdsa_verify_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test_lib/boringssl_ecdsa_verify_test_lib.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test_lib/boringssl_ecdsa_verify_test_lib.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test/boringssl_newhope_statistical_test.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test/boringssl_newhope_statistical_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test_lib/boringssl_newhope_statistical_test_lib.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test_lib/boringssl_newhope_statistical_test_lib.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_test/boringssl_newhope_test.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_test/boringssl_newhope_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_test_lib/boringssl_newhope_test_lib.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_test_lib/boringssl_newhope_test_lib.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test/boringssl_newhope_vectors_test.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test/boringssl_newhope_vectors_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test_lib/boringssl_newhope_vectors_test_lib.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test_lib/boringssl_newhope_vectors_test_lib.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_obj_test/boringssl_obj_test.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_obj_test/boringssl_obj_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_obj_test_lib/boringssl_obj_test_lib.vcxproj rename vsprojects/vcxproj/test/boringssl/{boringssl_pqueue_test_lib/boringssl_pqueue_test_lib.vcxproj.filters => boringssl_obj_test_lib/boringssl_obj_test_lib.vcxproj.filters} (52%) create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test/boringssl_spake25519_test.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test/boringssl_spake25519_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test_lib/boringssl_spake25519_test_lib.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test_lib/boringssl_spake25519_test_lib.vcxproj.filters diff --git a/CMakeLists.txt b/CMakeLists.txt index 7626e1d1587..e1c71f2c69f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2868,7 +2868,6 @@ add_library(boringssl third_party/boringssl/crypto/aes/mode_wrappers.c third_party/boringssl/crypto/asn1/a_bitstr.c third_party/boringssl/crypto/asn1/a_bool.c - third_party/boringssl/crypto/asn1/a_bytes.c third_party/boringssl/crypto/asn1/a_d2i_fp.c third_party/boringssl/crypto/asn1/a_dup.c third_party/boringssl/crypto/asn1/a_enum.c @@ -2887,18 +2886,14 @@ add_library(boringssl third_party/boringssl/crypto/asn1/asn1_lib.c third_party/boringssl/crypto/asn1/asn1_par.c third_party/boringssl/crypto/asn1/asn_pack.c - third_party/boringssl/crypto/asn1/bio_asn1.c - third_party/boringssl/crypto/asn1/bio_ndef.c third_party/boringssl/crypto/asn1/f_enum.c third_party/boringssl/crypto/asn1/f_int.c third_party/boringssl/crypto/asn1/f_string.c third_party/boringssl/crypto/asn1/t_bitst.c - third_party/boringssl/crypto/asn1/t_pkey.c third_party/boringssl/crypto/asn1/tasn_dec.c third_party/boringssl/crypto/asn1/tasn_enc.c third_party/boringssl/crypto/asn1/tasn_fre.c third_party/boringssl/crypto/asn1/tasn_new.c - third_party/boringssl/crypto/asn1/tasn_prn.c third_party/boringssl/crypto/asn1/tasn_typ.c third_party/boringssl/crypto/asn1/tasn_utl.c third_party/boringssl/crypto/asn1/x_bignum.c @@ -2928,6 +2923,7 @@ add_library(boringssl third_party/boringssl/crypto/bn/generic.c third_party/boringssl/crypto/bn/kronecker.c third_party/boringssl/crypto/bn/montgomery.c + third_party/boringssl/crypto/bn/montgomery_inv.c third_party/boringssl/crypto/bn/mul.c third_party/boringssl/crypto/bn/prime.c third_party/boringssl/crypto/bn/random.c @@ -2939,8 +2935,7 @@ add_library(boringssl third_party/boringssl/crypto/bytestring/ber.c third_party/boringssl/crypto/bytestring/cbb.c third_party/boringssl/crypto/bytestring/cbs.c - third_party/boringssl/crypto/chacha/chacha_generic.c - third_party/boringssl/crypto/chacha/chacha_vec.c + third_party/boringssl/crypto/chacha/chacha.c third_party/boringssl/crypto/cipher/aead.c third_party/boringssl/crypto/cipher/cipher.c third_party/boringssl/crypto/cipher/derive_key.c @@ -2955,10 +2950,14 @@ add_library(boringssl third_party/boringssl/crypto/cipher/tls_cbc.c third_party/boringssl/crypto/cmac/cmac.c third_party/boringssl/crypto/conf/conf.c + third_party/boringssl/crypto/cpu-aarch64-linux.c + third_party/boringssl/crypto/cpu-arm-linux.c third_party/boringssl/crypto/cpu-arm.c third_party/boringssl/crypto/cpu-intel.c + third_party/boringssl/crypto/cpu-ppc64le.c third_party/boringssl/crypto/crypto.c third_party/boringssl/crypto/curve25519/curve25519.c + third_party/boringssl/crypto/curve25519/spake25519.c third_party/boringssl/crypto/curve25519/x25519-x86_64.c third_party/boringssl/crypto/des/des.c third_party/boringssl/crypto/dh/check.c @@ -2967,8 +2966,6 @@ add_library(boringssl third_party/boringssl/crypto/dh/params.c third_party/boringssl/crypto/digest/digest.c third_party/boringssl/crypto/digest/digests.c - third_party/boringssl/crypto/directory_posix.c - third_party/boringssl/crypto/directory_win.c third_party/boringssl/crypto/dsa/dsa.c third_party/boringssl/crypto/dsa/dsa_asn1.c third_party/boringssl/crypto/ec/ec.c @@ -2987,7 +2984,6 @@ add_library(boringssl third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c third_party/boringssl/crypto/engine/engine.c third_party/boringssl/crypto/err/err.c - third_party/boringssl/crypto/evp/algorithm.c third_party/boringssl/crypto/evp/digestsign.c third_party/boringssl/crypto/evp/evp.c third_party/boringssl/crypto/evp/evp_asn1.c @@ -2998,6 +2994,7 @@ add_library(boringssl third_party/boringssl/crypto/evp/p_rsa.c third_party/boringssl/crypto/evp/p_rsa_asn1.c third_party/boringssl/crypto/evp/pbkdf.c + third_party/boringssl/crypto/evp/print.c third_party/boringssl/crypto/evp/sign.c third_party/boringssl/crypto/ex_data.c third_party/boringssl/crypto/hkdf/hkdf.c @@ -3011,6 +3008,12 @@ add_library(boringssl third_party/boringssl/crypto/modes/ctr.c third_party/boringssl/crypto/modes/gcm.c third_party/boringssl/crypto/modes/ofb.c + third_party/boringssl/crypto/newhope/error_correction.c + third_party/boringssl/crypto/newhope/newhope.c + third_party/boringssl/crypto/newhope/ntt.c + third_party/boringssl/crypto/newhope/poly.c + third_party/boringssl/crypto/newhope/precomp.c + third_party/boringssl/crypto/newhope/reduce.c third_party/boringssl/crypto/obj/obj.c third_party/boringssl/crypto/obj/obj_xref.c third_party/boringssl/crypto/pem/pem_all.c @@ -3028,6 +3031,7 @@ add_library(boringssl third_party/boringssl/crypto/poly1305/poly1305.c third_party/boringssl/crypto/poly1305/poly1305_arm.c third_party/boringssl/crypto/poly1305/poly1305_vec.c + third_party/boringssl/crypto/rand/deterministic.c third_party/boringssl/crypto/rand/rand.c third_party/boringssl/crypto/rand/urandom.c third_party/boringssl/crypto/rand/windows.c @@ -3052,11 +3056,13 @@ add_library(boringssl third_party/boringssl/crypto/x509/a_sign.c third_party/boringssl/crypto/x509/a_strex.c third_party/boringssl/crypto/x509/a_verify.c + third_party/boringssl/crypto/x509/algorithm.c third_party/boringssl/crypto/x509/asn1_gen.c third_party/boringssl/crypto/x509/by_dir.c third_party/boringssl/crypto/x509/by_file.c third_party/boringssl/crypto/x509/i2d_pr.c third_party/boringssl/crypto/x509/pkcs7.c + third_party/boringssl/crypto/x509/rsa_pss.c third_party/boringssl/crypto/x509/t_crl.c third_party/boringssl/crypto/x509/t_req.c third_party/boringssl/crypto/x509/t_x509.c @@ -3131,21 +3137,17 @@ add_library(boringssl third_party/boringssl/crypto/x509v3/v3_utl.c third_party/boringssl/ssl/custom_extensions.c third_party/boringssl/ssl/d1_both.c - third_party/boringssl/ssl/d1_clnt.c third_party/boringssl/ssl/d1_lib.c - third_party/boringssl/ssl/d1_meth.c third_party/boringssl/ssl/d1_pkt.c third_party/boringssl/ssl/d1_srtp.c - third_party/boringssl/ssl/d1_srvr.c + third_party/boringssl/ssl/dtls_method.c third_party/boringssl/ssl/dtls_record.c - third_party/boringssl/ssl/pqueue/pqueue.c + third_party/boringssl/ssl/handshake_client.c + third_party/boringssl/ssl/handshake_server.c third_party/boringssl/ssl/s3_both.c - third_party/boringssl/ssl/s3_clnt.c third_party/boringssl/ssl/s3_enc.c third_party/boringssl/ssl/s3_lib.c - third_party/boringssl/ssl/s3_meth.c third_party/boringssl/ssl/s3_pkt.c - third_party/boringssl/ssl/s3_srvr.c third_party/boringssl/ssl/ssl_aead_ctx.c third_party/boringssl/ssl/ssl_asn1.c third_party/boringssl/ssl/ssl_buffer.c @@ -3159,6 +3161,11 @@ add_library(boringssl third_party/boringssl/ssl/ssl_stat.c third_party/boringssl/ssl/t1_enc.c third_party/boringssl/ssl/t1_lib.c + third_party/boringssl/ssl/tls13_both.c + third_party/boringssl/ssl/tls13_client.c + third_party/boringssl/ssl/tls13_enc.c + third_party/boringssl/ssl/tls13_server.c + third_party/boringssl/ssl/tls_method.c third_party/boringssl/ssl/tls_record.c ) @@ -3367,6 +3374,33 @@ target_link_libraries(boringssl_bytestring_test_lib ) +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_library(boringssl_chacha_test_lib + third_party/boringssl/crypto/chacha/chacha_test.cc +) + + +target_include_directories(boringssl_chacha_test_lib + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_chacha_test_lib + ${_gRPC_SSL_LIBRARIES} + boringssl_test_util + boringssl +) + + endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) @@ -3500,6 +3534,33 @@ target_link_libraries(boringssl_ed25519_test_lib ) +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_library(boringssl_spake25519_test_lib + third_party/boringssl/crypto/curve25519/spake25519_test.cc +) + + +target_include_directories(boringssl_spake25519_test_lib + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_spake25519_test_lib + ${_gRPC_SSL_LIBRARIES} + boringssl_test_util + boringssl +) + + endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) @@ -3658,6 +3719,60 @@ target_link_libraries(boringssl_example_mul_lib ) +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_library(boringssl_ecdh_test_lib + third_party/boringssl/crypto/ecdh/ecdh_test.cc +) + + +target_include_directories(boringssl_ecdh_test_lib + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_ecdh_test_lib + ${_gRPC_SSL_LIBRARIES} + boringssl_test_util + boringssl +) + + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_library(boringssl_ecdsa_sign_test_lib + third_party/boringssl/crypto/ecdsa/ecdsa_sign_test.cc +) + + +target_include_directories(boringssl_ecdsa_sign_test_lib + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_ecdsa_sign_test_lib + ${_gRPC_SSL_LIBRARIES} + boringssl_test_util + boringssl +) + + endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) @@ -3685,6 +3800,33 @@ target_link_libraries(boringssl_ecdsa_test_lib ) +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_library(boringssl_ecdsa_verify_test_lib + third_party/boringssl/crypto/ecdsa/ecdsa_verify_test.cc +) + + +target_include_directories(boringssl_ecdsa_verify_test_lib + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_ecdsa_verify_test_lib + ${_gRPC_SSL_LIBRARIES} + boringssl_test_util + boringssl +) + + endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) @@ -3874,7 +4016,7 @@ endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) add_library(boringssl_gcm_test_lib - third_party/boringssl/crypto/modes/gcm_test.c + third_party/boringssl/crypto/modes/gcm_test.cc ) @@ -3886,6 +4028,8 @@ target_include_directories(boringssl_gcm_test_lib PRIVATE ${ZLIB_INCLUDE_DIR} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest ) target_link_libraries(boringssl_gcm_test_lib @@ -3895,6 +4039,114 @@ target_link_libraries(boringssl_gcm_test_lib ) +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_library(boringssl_newhope_statistical_test_lib + third_party/boringssl/crypto/newhope/newhope_statistical_test.cc +) + + +target_include_directories(boringssl_newhope_statistical_test_lib + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_newhope_statistical_test_lib + ${_gRPC_SSL_LIBRARIES} + boringssl_test_util + boringssl +) + + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_library(boringssl_newhope_test_lib + third_party/boringssl/crypto/newhope/newhope_test.cc +) + + +target_include_directories(boringssl_newhope_test_lib + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_newhope_test_lib + ${_gRPC_SSL_LIBRARIES} + boringssl_test_util + boringssl +) + + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_library(boringssl_newhope_vectors_test_lib + third_party/boringssl/crypto/newhope/newhope_vectors_test.cc +) + + +target_include_directories(boringssl_newhope_vectors_test_lib + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_newhope_vectors_test_lib + ${_gRPC_SSL_LIBRARIES} + boringssl_test_util + boringssl +) + + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_library(boringssl_obj_test_lib + third_party/boringssl/crypto/obj/obj_test.cc +) + + +target_include_directories(boringssl_obj_test_lib + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_obj_test_lib + ${_gRPC_SSL_LIBRARIES} + boringssl_test_util + boringssl +) + + endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) @@ -4155,31 +4407,6 @@ target_link_libraries(boringssl_v3name_test_lib ) -endif (gRPC_BUILD_TESTS) -if (gRPC_BUILD_TESTS) - -add_library(boringssl_pqueue_test_lib - third_party/boringssl/ssl/pqueue/pqueue_test.c -) - - -target_include_directories(boringssl_pqueue_test_lib - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_INCLUDE_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include -) - -target_link_libraries(boringssl_pqueue_test_lib - ${_gRPC_SSL_LIBRARIES} - boringssl_test_util - boringssl -) - - endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) @@ -9401,6 +9628,33 @@ target_link_libraries(boringssl_bytestring_test endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) +add_executable(boringssl_chacha_test + third_party/googletest/src/gtest-all.cc +) + +target_include_directories(boringssl_chacha_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_chacha_test + ${_gRPC_SSL_LIBRARIES} + boringssl_chacha_test_lib + boringssl_test_util + boringssl + ${_gRPC_GFLAGS_LIBRARIES} +) + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + add_executable(boringssl_aead_test third_party/googletest/src/gtest-all.cc ) @@ -9536,6 +9790,33 @@ target_link_libraries(boringssl_ed25519_test endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) +add_executable(boringssl_spake25519_test + third_party/googletest/src/gtest-all.cc +) + +target_include_directories(boringssl_spake25519_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_spake25519_test + ${_gRPC_SSL_LIBRARIES} + boringssl_spake25519_test_lib + boringssl_test_util + boringssl + ${_gRPC_GFLAGS_LIBRARIES} +) + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + add_executable(boringssl_x25519_test third_party/googletest/src/gtest-all.cc ) @@ -9698,6 +9979,60 @@ target_link_libraries(boringssl_example_mul endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) +add_executable(boringssl_ecdh_test + third_party/googletest/src/gtest-all.cc +) + +target_include_directories(boringssl_ecdh_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_ecdh_test + ${_gRPC_SSL_LIBRARIES} + boringssl_ecdh_test_lib + boringssl_test_util + boringssl + ${_gRPC_GFLAGS_LIBRARIES} +) + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_executable(boringssl_ecdsa_sign_test + third_party/googletest/src/gtest-all.cc +) + +target_include_directories(boringssl_ecdsa_sign_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_ecdsa_sign_test + ${_gRPC_SSL_LIBRARIES} + boringssl_ecdsa_sign_test_lib + boringssl_test_util + boringssl + ${_gRPC_GFLAGS_LIBRARIES} +) + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + add_executable(boringssl_ecdsa_test third_party/googletest/src/gtest-all.cc ) @@ -9725,6 +10060,33 @@ target_link_libraries(boringssl_ecdsa_test endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) +add_executable(boringssl_ecdsa_verify_test + third_party/googletest/src/gtest-all.cc +) + +target_include_directories(boringssl_ecdsa_verify_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_ecdsa_verify_test + ${_gRPC_SSL_LIBRARIES} + boringssl_ecdsa_verify_test_lib + boringssl_test_util + boringssl + ${_gRPC_GFLAGS_LIBRARIES} +) + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + add_executable(boringssl_err_test third_party/googletest/src/gtest-all.cc ) @@ -9941,6 +10303,114 @@ target_link_libraries(boringssl_gcm_test endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) +add_executable(boringssl_newhope_statistical_test + third_party/googletest/src/gtest-all.cc +) + +target_include_directories(boringssl_newhope_statistical_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_newhope_statistical_test + ${_gRPC_SSL_LIBRARIES} + boringssl_newhope_statistical_test_lib + boringssl_test_util + boringssl + ${_gRPC_GFLAGS_LIBRARIES} +) + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_executable(boringssl_newhope_test + third_party/googletest/src/gtest-all.cc +) + +target_include_directories(boringssl_newhope_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_newhope_test + ${_gRPC_SSL_LIBRARIES} + boringssl_newhope_test_lib + boringssl_test_util + boringssl + ${_gRPC_GFLAGS_LIBRARIES} +) + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_executable(boringssl_newhope_vectors_test + third_party/googletest/src/gtest-all.cc +) + +target_include_directories(boringssl_newhope_vectors_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_newhope_vectors_test + ${_gRPC_SSL_LIBRARIES} + boringssl_newhope_vectors_test_lib + boringssl_test_util + boringssl + ${_gRPC_GFLAGS_LIBRARIES} +) + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + +add_executable(boringssl_obj_test + third_party/googletest/src/gtest-all.cc +) + +target_include_directories(boringssl_obj_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include + PRIVATE third_party/googletest/include + PRIVATE third_party/googletest +) + +target_link_libraries(boringssl_obj_test + ${_gRPC_SSL_LIBRARIES} + boringssl_obj_test_lib + boringssl_test_util + boringssl + ${_gRPC_GFLAGS_LIBRARIES} +) + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + add_executable(boringssl_pkcs12_test third_party/googletest/src/gtest-all.cc ) @@ -10211,33 +10681,6 @@ target_link_libraries(boringssl_v3name_test endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) -add_executable(boringssl_pqueue_test - third_party/googletest/src/gtest-all.cc -) - -target_include_directories(boringssl_pqueue_test - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_ROOT_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include - PRIVATE third_party/googletest/include - PRIVATE third_party/googletest -) - -target_link_libraries(boringssl_pqueue_test - ${_gRPC_SSL_LIBRARIES} - boringssl_pqueue_test_lib - boringssl_test_util - boringssl - ${_gRPC_GFLAGS_LIBRARIES} -) - -endif (gRPC_BUILD_TESTS) -if (gRPC_BUILD_TESTS) - add_executable(boringssl_ssl_test third_party/googletest/src/gtest-all.cc ) diff --git a/Makefile b/Makefile index f71365f115f..42d1238224b 100644 --- a/Makefile +++ b/Makefile @@ -1135,18 +1135,23 @@ boringssl_base64_test: $(BINDIR)/$(CONFIG)/boringssl_base64_test boringssl_bio_test: $(BINDIR)/$(CONFIG)/boringssl_bio_test boringssl_bn_test: $(BINDIR)/$(CONFIG)/boringssl_bn_test boringssl_bytestring_test: $(BINDIR)/$(CONFIG)/boringssl_bytestring_test +boringssl_chacha_test: $(BINDIR)/$(CONFIG)/boringssl_chacha_test boringssl_aead_test: $(BINDIR)/$(CONFIG)/boringssl_aead_test boringssl_cipher_test: $(BINDIR)/$(CONFIG)/boringssl_cipher_test boringssl_cmac_test: $(BINDIR)/$(CONFIG)/boringssl_cmac_test boringssl_constant_time_test: $(BINDIR)/$(CONFIG)/boringssl_constant_time_test boringssl_ed25519_test: $(BINDIR)/$(CONFIG)/boringssl_ed25519_test +boringssl_spake25519_test: $(BINDIR)/$(CONFIG)/boringssl_spake25519_test boringssl_x25519_test: $(BINDIR)/$(CONFIG)/boringssl_x25519_test boringssl_dh_test: $(BINDIR)/$(CONFIG)/boringssl_dh_test boringssl_digest_test: $(BINDIR)/$(CONFIG)/boringssl_digest_test boringssl_dsa_test: $(BINDIR)/$(CONFIG)/boringssl_dsa_test boringssl_ec_test: $(BINDIR)/$(CONFIG)/boringssl_ec_test boringssl_example_mul: $(BINDIR)/$(CONFIG)/boringssl_example_mul +boringssl_ecdh_test: $(BINDIR)/$(CONFIG)/boringssl_ecdh_test +boringssl_ecdsa_sign_test: $(BINDIR)/$(CONFIG)/boringssl_ecdsa_sign_test boringssl_ecdsa_test: $(BINDIR)/$(CONFIG)/boringssl_ecdsa_test +boringssl_ecdsa_verify_test: $(BINDIR)/$(CONFIG)/boringssl_ecdsa_verify_test boringssl_err_test: $(BINDIR)/$(CONFIG)/boringssl_err_test boringssl_evp_extra_test: $(BINDIR)/$(CONFIG)/boringssl_evp_extra_test boringssl_evp_test: $(BINDIR)/$(CONFIG)/boringssl_evp_test @@ -1155,6 +1160,10 @@ boringssl_hkdf_test: $(BINDIR)/$(CONFIG)/boringssl_hkdf_test boringssl_hmac_test: $(BINDIR)/$(CONFIG)/boringssl_hmac_test boringssl_lhash_test: $(BINDIR)/$(CONFIG)/boringssl_lhash_test boringssl_gcm_test: $(BINDIR)/$(CONFIG)/boringssl_gcm_test +boringssl_newhope_statistical_test: $(BINDIR)/$(CONFIG)/boringssl_newhope_statistical_test +boringssl_newhope_test: $(BINDIR)/$(CONFIG)/boringssl_newhope_test +boringssl_newhope_vectors_test: $(BINDIR)/$(CONFIG)/boringssl_newhope_vectors_test +boringssl_obj_test: $(BINDIR)/$(CONFIG)/boringssl_obj_test boringssl_pkcs12_test: $(BINDIR)/$(CONFIG)/boringssl_pkcs12_test boringssl_pkcs8_test: $(BINDIR)/$(CONFIG)/boringssl_pkcs8_test boringssl_poly1305_test: $(BINDIR)/$(CONFIG)/boringssl_poly1305_test @@ -1165,7 +1174,6 @@ boringssl_pkcs7_test: $(BINDIR)/$(CONFIG)/boringssl_pkcs7_test boringssl_x509_test: $(BINDIR)/$(CONFIG)/boringssl_x509_test boringssl_tab_test: $(BINDIR)/$(CONFIG)/boringssl_tab_test boringssl_v3name_test: $(BINDIR)/$(CONFIG)/boringssl_v3name_test -boringssl_pqueue_test: $(BINDIR)/$(CONFIG)/boringssl_pqueue_test boringssl_ssl_test: $(BINDIR)/$(CONFIG)/boringssl_ssl_test badreq_bad_client_test: $(BINDIR)/$(CONFIG)/badreq_bad_client_test connection_prefix_bad_client_test: $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test @@ -1275,7 +1283,7 @@ pc_cxx: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++.pc pc_cxx_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++_unsecure.pc ifeq ($(EMBED_OPENSSL),true) -privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_test.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libhttp2_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_lib.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a $(LIBDIR)/$(CONFIG)/libbenchmark.a +privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_test.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libhttp2_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_lib.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_chacha_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_spake25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ecdh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_sign_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_verify_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_newhope_statistical_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_newhope_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_newhope_vectors_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_obj_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a $(LIBDIR)/$(CONFIG)/libbenchmark.a else privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_test.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libhttp2_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_lib.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libbenchmark.a endif @@ -1521,18 +1529,23 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/boringssl_bio_test \ $(BINDIR)/$(CONFIG)/boringssl_bn_test \ $(BINDIR)/$(CONFIG)/boringssl_bytestring_test \ + $(BINDIR)/$(CONFIG)/boringssl_chacha_test \ $(BINDIR)/$(CONFIG)/boringssl_aead_test \ $(BINDIR)/$(CONFIG)/boringssl_cipher_test \ $(BINDIR)/$(CONFIG)/boringssl_cmac_test \ $(BINDIR)/$(CONFIG)/boringssl_constant_time_test \ $(BINDIR)/$(CONFIG)/boringssl_ed25519_test \ + $(BINDIR)/$(CONFIG)/boringssl_spake25519_test \ $(BINDIR)/$(CONFIG)/boringssl_x25519_test \ $(BINDIR)/$(CONFIG)/boringssl_dh_test \ $(BINDIR)/$(CONFIG)/boringssl_digest_test \ $(BINDIR)/$(CONFIG)/boringssl_dsa_test \ $(BINDIR)/$(CONFIG)/boringssl_ec_test \ $(BINDIR)/$(CONFIG)/boringssl_example_mul \ + $(BINDIR)/$(CONFIG)/boringssl_ecdh_test \ + $(BINDIR)/$(CONFIG)/boringssl_ecdsa_sign_test \ $(BINDIR)/$(CONFIG)/boringssl_ecdsa_test \ + $(BINDIR)/$(CONFIG)/boringssl_ecdsa_verify_test \ $(BINDIR)/$(CONFIG)/boringssl_err_test \ $(BINDIR)/$(CONFIG)/boringssl_evp_extra_test \ $(BINDIR)/$(CONFIG)/boringssl_evp_test \ @@ -1541,6 +1554,10 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/boringssl_hmac_test \ $(BINDIR)/$(CONFIG)/boringssl_lhash_test \ $(BINDIR)/$(CONFIG)/boringssl_gcm_test \ + $(BINDIR)/$(CONFIG)/boringssl_newhope_statistical_test \ + $(BINDIR)/$(CONFIG)/boringssl_newhope_test \ + $(BINDIR)/$(CONFIG)/boringssl_newhope_vectors_test \ + $(BINDIR)/$(CONFIG)/boringssl_obj_test \ $(BINDIR)/$(CONFIG)/boringssl_pkcs12_test \ $(BINDIR)/$(CONFIG)/boringssl_pkcs8_test \ $(BINDIR)/$(CONFIG)/boringssl_poly1305_test \ @@ -1551,7 +1568,6 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/boringssl_x509_test \ $(BINDIR)/$(CONFIG)/boringssl_tab_test \ $(BINDIR)/$(CONFIG)/boringssl_v3name_test \ - $(BINDIR)/$(CONFIG)/boringssl_pqueue_test \ $(BINDIR)/$(CONFIG)/boringssl_ssl_test \ else @@ -5475,7 +5491,6 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/aes/mode_wrappers.c \ third_party/boringssl/crypto/asn1/a_bitstr.c \ third_party/boringssl/crypto/asn1/a_bool.c \ - third_party/boringssl/crypto/asn1/a_bytes.c \ third_party/boringssl/crypto/asn1/a_d2i_fp.c \ third_party/boringssl/crypto/asn1/a_dup.c \ third_party/boringssl/crypto/asn1/a_enum.c \ @@ -5494,18 +5509,14 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/asn1/asn1_lib.c \ third_party/boringssl/crypto/asn1/asn1_par.c \ third_party/boringssl/crypto/asn1/asn_pack.c \ - third_party/boringssl/crypto/asn1/bio_asn1.c \ - third_party/boringssl/crypto/asn1/bio_ndef.c \ third_party/boringssl/crypto/asn1/f_enum.c \ third_party/boringssl/crypto/asn1/f_int.c \ third_party/boringssl/crypto/asn1/f_string.c \ third_party/boringssl/crypto/asn1/t_bitst.c \ - third_party/boringssl/crypto/asn1/t_pkey.c \ third_party/boringssl/crypto/asn1/tasn_dec.c \ third_party/boringssl/crypto/asn1/tasn_enc.c \ third_party/boringssl/crypto/asn1/tasn_fre.c \ third_party/boringssl/crypto/asn1/tasn_new.c \ - third_party/boringssl/crypto/asn1/tasn_prn.c \ third_party/boringssl/crypto/asn1/tasn_typ.c \ third_party/boringssl/crypto/asn1/tasn_utl.c \ third_party/boringssl/crypto/asn1/x_bignum.c \ @@ -5535,6 +5546,7 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/bn/generic.c \ third_party/boringssl/crypto/bn/kronecker.c \ third_party/boringssl/crypto/bn/montgomery.c \ + third_party/boringssl/crypto/bn/montgomery_inv.c \ third_party/boringssl/crypto/bn/mul.c \ third_party/boringssl/crypto/bn/prime.c \ third_party/boringssl/crypto/bn/random.c \ @@ -5546,8 +5558,7 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/bytestring/ber.c \ third_party/boringssl/crypto/bytestring/cbb.c \ third_party/boringssl/crypto/bytestring/cbs.c \ - third_party/boringssl/crypto/chacha/chacha_generic.c \ - third_party/boringssl/crypto/chacha/chacha_vec.c \ + third_party/boringssl/crypto/chacha/chacha.c \ third_party/boringssl/crypto/cipher/aead.c \ third_party/boringssl/crypto/cipher/cipher.c \ third_party/boringssl/crypto/cipher/derive_key.c \ @@ -5562,10 +5573,14 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/cipher/tls_cbc.c \ third_party/boringssl/crypto/cmac/cmac.c \ third_party/boringssl/crypto/conf/conf.c \ + third_party/boringssl/crypto/cpu-aarch64-linux.c \ + third_party/boringssl/crypto/cpu-arm-linux.c \ third_party/boringssl/crypto/cpu-arm.c \ third_party/boringssl/crypto/cpu-intel.c \ + third_party/boringssl/crypto/cpu-ppc64le.c \ third_party/boringssl/crypto/crypto.c \ third_party/boringssl/crypto/curve25519/curve25519.c \ + third_party/boringssl/crypto/curve25519/spake25519.c \ third_party/boringssl/crypto/curve25519/x25519-x86_64.c \ third_party/boringssl/crypto/des/des.c \ third_party/boringssl/crypto/dh/check.c \ @@ -5574,8 +5589,6 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/dh/params.c \ third_party/boringssl/crypto/digest/digest.c \ third_party/boringssl/crypto/digest/digests.c \ - third_party/boringssl/crypto/directory_posix.c \ - third_party/boringssl/crypto/directory_win.c \ third_party/boringssl/crypto/dsa/dsa.c \ third_party/boringssl/crypto/dsa/dsa_asn1.c \ third_party/boringssl/crypto/ec/ec.c \ @@ -5594,7 +5607,6 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c \ third_party/boringssl/crypto/engine/engine.c \ third_party/boringssl/crypto/err/err.c \ - third_party/boringssl/crypto/evp/algorithm.c \ third_party/boringssl/crypto/evp/digestsign.c \ third_party/boringssl/crypto/evp/evp.c \ third_party/boringssl/crypto/evp/evp_asn1.c \ @@ -5605,6 +5617,7 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/evp/p_rsa.c \ third_party/boringssl/crypto/evp/p_rsa_asn1.c \ third_party/boringssl/crypto/evp/pbkdf.c \ + third_party/boringssl/crypto/evp/print.c \ third_party/boringssl/crypto/evp/sign.c \ third_party/boringssl/crypto/ex_data.c \ third_party/boringssl/crypto/hkdf/hkdf.c \ @@ -5618,6 +5631,12 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/modes/ctr.c \ third_party/boringssl/crypto/modes/gcm.c \ third_party/boringssl/crypto/modes/ofb.c \ + third_party/boringssl/crypto/newhope/error_correction.c \ + third_party/boringssl/crypto/newhope/newhope.c \ + third_party/boringssl/crypto/newhope/ntt.c \ + third_party/boringssl/crypto/newhope/poly.c \ + third_party/boringssl/crypto/newhope/precomp.c \ + third_party/boringssl/crypto/newhope/reduce.c \ third_party/boringssl/crypto/obj/obj.c \ third_party/boringssl/crypto/obj/obj_xref.c \ third_party/boringssl/crypto/pem/pem_all.c \ @@ -5635,6 +5654,7 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/poly1305/poly1305.c \ third_party/boringssl/crypto/poly1305/poly1305_arm.c \ third_party/boringssl/crypto/poly1305/poly1305_vec.c \ + third_party/boringssl/crypto/rand/deterministic.c \ third_party/boringssl/crypto/rand/rand.c \ third_party/boringssl/crypto/rand/urandom.c \ third_party/boringssl/crypto/rand/windows.c \ @@ -5659,11 +5679,13 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/x509/a_sign.c \ third_party/boringssl/crypto/x509/a_strex.c \ third_party/boringssl/crypto/x509/a_verify.c \ + third_party/boringssl/crypto/x509/algorithm.c \ third_party/boringssl/crypto/x509/asn1_gen.c \ third_party/boringssl/crypto/x509/by_dir.c \ third_party/boringssl/crypto/x509/by_file.c \ third_party/boringssl/crypto/x509/i2d_pr.c \ third_party/boringssl/crypto/x509/pkcs7.c \ + third_party/boringssl/crypto/x509/rsa_pss.c \ third_party/boringssl/crypto/x509/t_crl.c \ third_party/boringssl/crypto/x509/t_req.c \ third_party/boringssl/crypto/x509/t_x509.c \ @@ -5738,21 +5760,17 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/x509v3/v3_utl.c \ third_party/boringssl/ssl/custom_extensions.c \ third_party/boringssl/ssl/d1_both.c \ - third_party/boringssl/ssl/d1_clnt.c \ third_party/boringssl/ssl/d1_lib.c \ - third_party/boringssl/ssl/d1_meth.c \ third_party/boringssl/ssl/d1_pkt.c \ third_party/boringssl/ssl/d1_srtp.c \ - third_party/boringssl/ssl/d1_srvr.c \ + third_party/boringssl/ssl/dtls_method.c \ third_party/boringssl/ssl/dtls_record.c \ - third_party/boringssl/ssl/pqueue/pqueue.c \ + third_party/boringssl/ssl/handshake_client.c \ + third_party/boringssl/ssl/handshake_server.c \ third_party/boringssl/ssl/s3_both.c \ - third_party/boringssl/ssl/s3_clnt.c \ third_party/boringssl/ssl/s3_enc.c \ third_party/boringssl/ssl/s3_lib.c \ - third_party/boringssl/ssl/s3_meth.c \ third_party/boringssl/ssl/s3_pkt.c \ - third_party/boringssl/ssl/s3_srvr.c \ third_party/boringssl/ssl/ssl_aead_ctx.c \ third_party/boringssl/ssl/ssl_asn1.c \ third_party/boringssl/ssl/ssl_buffer.c \ @@ -5766,6 +5784,11 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/ssl/ssl_stat.c \ third_party/boringssl/ssl/t1_enc.c \ third_party/boringssl/ssl/t1_lib.c \ + third_party/boringssl/ssl/tls13_both.c \ + third_party/boringssl/ssl/tls13_client.c \ + third_party/boringssl/ssl/tls13_enc.c \ + third_party/boringssl/ssl/tls13_server.c \ + third_party/boringssl/ssl/tls_method.c \ third_party/boringssl/ssl/tls_record.c \ PUBLIC_HEADERS_C += \ @@ -6060,6 +6083,44 @@ ifneq ($(NO_DEPS),true) endif +LIBBORINGSSL_CHACHA_TEST_LIB_SRC = \ + third_party/boringssl/crypto/chacha/chacha_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_CHACHA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CHACHA_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_CHACHA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_CHACHA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_chacha_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_chacha_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_CHACHA_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_chacha_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_chacha_test_lib.a $(LIBBORINGSSL_CHACHA_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_chacha_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_CHACHA_TEST_LIB_OBJS:.o=.dep) +endif + + LIBBORINGSSL_AEAD_TEST_LIB_SRC = \ third_party/boringssl/crypto/cipher/aead_test.cc \ @@ -6239,6 +6300,44 @@ ifneq ($(NO_DEPS),true) endif +LIBBORINGSSL_SPAKE25519_TEST_LIB_SRC = \ + third_party/boringssl/crypto/curve25519/spake25519_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_SPAKE25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SPAKE25519_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_SPAKE25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_SPAKE25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_spake25519_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_spake25519_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_SPAKE25519_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_spake25519_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_spake25519_test_lib.a $(LIBBORINGSSL_SPAKE25519_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_spake25519_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_SPAKE25519_TEST_LIB_OBJS:.o=.dep) +endif + + LIBBORINGSSL_X25519_TEST_LIB_SRC = \ third_party/boringssl/crypto/curve25519/x25519_test.cc \ @@ -6445,6 +6544,82 @@ ifneq ($(NO_DEPS),true) endif +LIBBORINGSSL_ECDH_TEST_LIB_SRC = \ + third_party/boringssl/crypto/ecdh/ecdh_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_ECDH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDH_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_ECDH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_ECDH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_ecdh_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_ecdh_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_ECDH_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_ecdh_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_ecdh_test_lib.a $(LIBBORINGSSL_ECDH_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_ecdh_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_ECDH_TEST_LIB_OBJS:.o=.dep) +endif + + +LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_SRC = \ + third_party/boringssl/crypto/ecdsa/ecdsa_sign_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_sign_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_sign_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_sign_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_sign_test_lib.a $(LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_sign_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_ECDSA_SIGN_TEST_LIB_OBJS:.o=.dep) +endif + + LIBBORINGSSL_ECDSA_TEST_LIB_SRC = \ third_party/boringssl/crypto/ecdsa/ecdsa_test.cc \ @@ -6483,6 +6658,44 @@ ifneq ($(NO_DEPS),true) endif +LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_SRC = \ + third_party/boringssl/crypto/ecdsa/ecdsa_verify_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_verify_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_verify_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_verify_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_verify_test_lib.a $(LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_verify_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_ECDSA_VERIFY_TEST_LIB_OBJS:.o=.dep) +endif + + LIBBORINGSSL_ERR_TEST_LIB_SRC = \ third_party/boringssl/crypto/err/err_test.cc \ @@ -6728,16 +6941,25 @@ endif LIBBORINGSSL_GCM_TEST_LIB_SRC = \ - third_party/boringssl/crypto/modes/gcm_test.c \ + third_party/boringssl/crypto/modes/gcm_test.cc \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CXX += \ LIBBORINGSSL_GCM_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_GCM_TEST_LIB_SRC)))) $(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX $(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -$(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_GCM_TEST_LIB_OBJS) +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_GCM_TEST_LIB_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a @@ -6749,11 +6971,165 @@ endif +endif + ifneq ($(NO_DEPS),true) -include $(LIBBORINGSSL_GCM_TEST_LIB_OBJS:.o=.dep) endif +LIBBORINGSSL_NEWHOPE_STATISTICAL_TEST_LIB_SRC = \ + third_party/boringssl/crypto/newhope/newhope_statistical_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_NEWHOPE_STATISTICAL_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_NEWHOPE_STATISTICAL_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_NEWHOPE_STATISTICAL_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_NEWHOPE_STATISTICAL_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_newhope_statistical_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_newhope_statistical_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_NEWHOPE_STATISTICAL_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_newhope_statistical_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_newhope_statistical_test_lib.a $(LIBBORINGSSL_NEWHOPE_STATISTICAL_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_newhope_statistical_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_NEWHOPE_STATISTICAL_TEST_LIB_OBJS:.o=.dep) +endif + + +LIBBORINGSSL_NEWHOPE_TEST_LIB_SRC = \ + third_party/boringssl/crypto/newhope/newhope_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_NEWHOPE_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_NEWHOPE_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_NEWHOPE_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_NEWHOPE_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_newhope_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_newhope_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_NEWHOPE_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_newhope_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_newhope_test_lib.a $(LIBBORINGSSL_NEWHOPE_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_newhope_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_NEWHOPE_TEST_LIB_OBJS:.o=.dep) +endif + + +LIBBORINGSSL_NEWHOPE_VECTORS_TEST_LIB_SRC = \ + third_party/boringssl/crypto/newhope/newhope_vectors_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_NEWHOPE_VECTORS_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_NEWHOPE_VECTORS_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_NEWHOPE_VECTORS_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_NEWHOPE_VECTORS_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_newhope_vectors_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_newhope_vectors_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_NEWHOPE_VECTORS_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_newhope_vectors_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_newhope_vectors_test_lib.a $(LIBBORINGSSL_NEWHOPE_VECTORS_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_newhope_vectors_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_NEWHOPE_VECTORS_TEST_LIB_OBJS:.o=.dep) +endif + + +LIBBORINGSSL_OBJ_TEST_LIB_SRC = \ + third_party/boringssl/crypto/obj/obj_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_OBJ_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_OBJ_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_OBJ_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_OBJ_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_obj_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_obj_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_OBJ_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_obj_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_obj_test_lib.a $(LIBBORINGSSL_OBJ_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_obj_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_OBJ_TEST_LIB_OBJS:.o=.dep) +endif + + LIBBORINGSSL_PKCS12_TEST_LIB_SRC = \ third_party/boringssl/crypto/pkcs8/pkcs12_test.cc \ @@ -7079,33 +7455,6 @@ ifneq ($(NO_DEPS),true) endif -LIBBORINGSSL_PQUEUE_TEST_LIB_SRC = \ - third_party/boringssl/ssl/pqueue/pqueue_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PQUEUE_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS:.o=.dep) -endif - - LIBBORINGSSL_SSL_TEST_LIB_SRC = \ third_party/boringssl/ssl/ssl_test.cc \ @@ -14640,6 +14989,33 @@ endif +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_CHACHA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_CHACHA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_CHACHA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/boringssl_chacha_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_chacha_test: $(LIBDIR)/$(CONFIG)/libboringssl_chacha_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_chacha_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_chacha_test + +endif + + + + + # boringssl needs an override to ensure that it does not include # system openssl headers regardless of other configuration # we do so here with a target specific variable assignment @@ -14775,6 +15151,33 @@ endif +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_SPAKE25519_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_SPAKE25519_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_SPAKE25519_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/boringssl_spake25519_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_spake25519_test: $(LIBDIR)/$(CONFIG)/libboringssl_spake25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_spake25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_spake25519_test + +endif + + + + + # boringssl needs an override to ensure that it does not include # system openssl headers regardless of other configuration # we do so here with a target specific variable assignment @@ -14937,6 +15340,60 @@ endif +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_ECDH_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_ECDH_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_ECDH_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/boringssl_ecdh_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_ecdh_test: $(LIBDIR)/$(CONFIG)/libboringssl_ecdh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_ecdh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ecdh_test + +endif + + + + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_ECDSA_SIGN_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_ECDSA_SIGN_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_ECDSA_SIGN_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/boringssl_ecdsa_sign_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_ecdsa_sign_test: $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_sign_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_sign_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ecdsa_sign_test + +endif + + + + + # boringssl needs an override to ensure that it does not include # system openssl headers regardless of other configuration # we do so here with a target specific variable assignment @@ -14964,6 +15421,33 @@ endif +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_ECDSA_VERIFY_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_ECDSA_VERIFY_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_ECDSA_VERIFY_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/boringssl_ecdsa_verify_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_ecdsa_verify_test: $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_verify_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_verify_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ecdsa_verify_test + +endif + + + + + # boringssl needs an override to ensure that it does not include # system openssl headers regardless of other configuration # we do so here with a target specific variable assignment @@ -15180,6 +15664,114 @@ endif +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_NEWHOPE_STATISTICAL_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_NEWHOPE_STATISTICAL_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_NEWHOPE_STATISTICAL_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/boringssl_newhope_statistical_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_newhope_statistical_test: $(LIBDIR)/$(CONFIG)/libboringssl_newhope_statistical_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_newhope_statistical_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_newhope_statistical_test + +endif + + + + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_NEWHOPE_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_NEWHOPE_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_NEWHOPE_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/boringssl_newhope_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_newhope_test: $(LIBDIR)/$(CONFIG)/libboringssl_newhope_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_newhope_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_newhope_test + +endif + + + + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_NEWHOPE_VECTORS_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_NEWHOPE_VECTORS_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_NEWHOPE_VECTORS_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/boringssl_newhope_vectors_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_newhope_vectors_test: $(LIBDIR)/$(CONFIG)/libboringssl_newhope_vectors_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_newhope_vectors_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_newhope_vectors_test + +endif + + + + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_OBJ_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_OBJ_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_OBJ_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/boringssl_obj_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_obj_test: $(LIBDIR)/$(CONFIG)/libboringssl_obj_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_obj_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_obj_test + +endif + + + + + # boringssl needs an override to ensure that it does not include # system openssl headers regardless of other configuration # we do so here with a target specific variable assignment @@ -15450,33 +16042,6 @@ endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_PQUEUE_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_PQUEUE_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_PQUEUE_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/boringssl_pqueue_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/boringssl_pqueue_test: $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_pqueue_test - -endif - - - - - # boringssl needs an override to ensure that it does not include # system openssl headers regardless of other configuration # we do so here with a target specific variable assignment diff --git a/binding.gyp b/binding.gyp index d75b05472a6..9328a30929c 100644 --- a/binding.gyp +++ b/binding.gyp @@ -161,7 +161,6 @@ 'third_party/boringssl/crypto/aes/mode_wrappers.c', 'third_party/boringssl/crypto/asn1/a_bitstr.c', 'third_party/boringssl/crypto/asn1/a_bool.c', - 'third_party/boringssl/crypto/asn1/a_bytes.c', 'third_party/boringssl/crypto/asn1/a_d2i_fp.c', 'third_party/boringssl/crypto/asn1/a_dup.c', 'third_party/boringssl/crypto/asn1/a_enum.c', @@ -180,18 +179,14 @@ 'third_party/boringssl/crypto/asn1/asn1_lib.c', 'third_party/boringssl/crypto/asn1/asn1_par.c', 'third_party/boringssl/crypto/asn1/asn_pack.c', - 'third_party/boringssl/crypto/asn1/bio_asn1.c', - 'third_party/boringssl/crypto/asn1/bio_ndef.c', 'third_party/boringssl/crypto/asn1/f_enum.c', 'third_party/boringssl/crypto/asn1/f_int.c', 'third_party/boringssl/crypto/asn1/f_string.c', 'third_party/boringssl/crypto/asn1/t_bitst.c', - 'third_party/boringssl/crypto/asn1/t_pkey.c', 'third_party/boringssl/crypto/asn1/tasn_dec.c', 'third_party/boringssl/crypto/asn1/tasn_enc.c', 'third_party/boringssl/crypto/asn1/tasn_fre.c', 'third_party/boringssl/crypto/asn1/tasn_new.c', - 'third_party/boringssl/crypto/asn1/tasn_prn.c', 'third_party/boringssl/crypto/asn1/tasn_typ.c', 'third_party/boringssl/crypto/asn1/tasn_utl.c', 'third_party/boringssl/crypto/asn1/x_bignum.c', @@ -221,6 +216,7 @@ 'third_party/boringssl/crypto/bn/generic.c', 'third_party/boringssl/crypto/bn/kronecker.c', 'third_party/boringssl/crypto/bn/montgomery.c', + 'third_party/boringssl/crypto/bn/montgomery_inv.c', 'third_party/boringssl/crypto/bn/mul.c', 'third_party/boringssl/crypto/bn/prime.c', 'third_party/boringssl/crypto/bn/random.c', @@ -232,8 +228,7 @@ 'third_party/boringssl/crypto/bytestring/ber.c', 'third_party/boringssl/crypto/bytestring/cbb.c', 'third_party/boringssl/crypto/bytestring/cbs.c', - 'third_party/boringssl/crypto/chacha/chacha_generic.c', - 'third_party/boringssl/crypto/chacha/chacha_vec.c', + 'third_party/boringssl/crypto/chacha/chacha.c', 'third_party/boringssl/crypto/cipher/aead.c', 'third_party/boringssl/crypto/cipher/cipher.c', 'third_party/boringssl/crypto/cipher/derive_key.c', @@ -248,10 +243,14 @@ 'third_party/boringssl/crypto/cipher/tls_cbc.c', 'third_party/boringssl/crypto/cmac/cmac.c', 'third_party/boringssl/crypto/conf/conf.c', + 'third_party/boringssl/crypto/cpu-aarch64-linux.c', + 'third_party/boringssl/crypto/cpu-arm-linux.c', 'third_party/boringssl/crypto/cpu-arm.c', 'third_party/boringssl/crypto/cpu-intel.c', + 'third_party/boringssl/crypto/cpu-ppc64le.c', 'third_party/boringssl/crypto/crypto.c', 'third_party/boringssl/crypto/curve25519/curve25519.c', + 'third_party/boringssl/crypto/curve25519/spake25519.c', 'third_party/boringssl/crypto/curve25519/x25519-x86_64.c', 'third_party/boringssl/crypto/des/des.c', 'third_party/boringssl/crypto/dh/check.c', @@ -260,8 +259,6 @@ 'third_party/boringssl/crypto/dh/params.c', 'third_party/boringssl/crypto/digest/digest.c', 'third_party/boringssl/crypto/digest/digests.c', - 'third_party/boringssl/crypto/directory_posix.c', - 'third_party/boringssl/crypto/directory_win.c', 'third_party/boringssl/crypto/dsa/dsa.c', 'third_party/boringssl/crypto/dsa/dsa_asn1.c', 'third_party/boringssl/crypto/ec/ec.c', @@ -280,7 +277,6 @@ 'third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c', 'third_party/boringssl/crypto/engine/engine.c', 'third_party/boringssl/crypto/err/err.c', - 'third_party/boringssl/crypto/evp/algorithm.c', 'third_party/boringssl/crypto/evp/digestsign.c', 'third_party/boringssl/crypto/evp/evp.c', 'third_party/boringssl/crypto/evp/evp_asn1.c', @@ -291,6 +287,7 @@ 'third_party/boringssl/crypto/evp/p_rsa.c', 'third_party/boringssl/crypto/evp/p_rsa_asn1.c', 'third_party/boringssl/crypto/evp/pbkdf.c', + 'third_party/boringssl/crypto/evp/print.c', 'third_party/boringssl/crypto/evp/sign.c', 'third_party/boringssl/crypto/ex_data.c', 'third_party/boringssl/crypto/hkdf/hkdf.c', @@ -304,6 +301,12 @@ 'third_party/boringssl/crypto/modes/ctr.c', 'third_party/boringssl/crypto/modes/gcm.c', 'third_party/boringssl/crypto/modes/ofb.c', + 'third_party/boringssl/crypto/newhope/error_correction.c', + 'third_party/boringssl/crypto/newhope/newhope.c', + 'third_party/boringssl/crypto/newhope/ntt.c', + 'third_party/boringssl/crypto/newhope/poly.c', + 'third_party/boringssl/crypto/newhope/precomp.c', + 'third_party/boringssl/crypto/newhope/reduce.c', 'third_party/boringssl/crypto/obj/obj.c', 'third_party/boringssl/crypto/obj/obj_xref.c', 'third_party/boringssl/crypto/pem/pem_all.c', @@ -321,6 +324,7 @@ 'third_party/boringssl/crypto/poly1305/poly1305.c', 'third_party/boringssl/crypto/poly1305/poly1305_arm.c', 'third_party/boringssl/crypto/poly1305/poly1305_vec.c', + 'third_party/boringssl/crypto/rand/deterministic.c', 'third_party/boringssl/crypto/rand/rand.c', 'third_party/boringssl/crypto/rand/urandom.c', 'third_party/boringssl/crypto/rand/windows.c', @@ -345,11 +349,13 @@ 'third_party/boringssl/crypto/x509/a_sign.c', 'third_party/boringssl/crypto/x509/a_strex.c', 'third_party/boringssl/crypto/x509/a_verify.c', + 'third_party/boringssl/crypto/x509/algorithm.c', 'third_party/boringssl/crypto/x509/asn1_gen.c', 'third_party/boringssl/crypto/x509/by_dir.c', 'third_party/boringssl/crypto/x509/by_file.c', 'third_party/boringssl/crypto/x509/i2d_pr.c', 'third_party/boringssl/crypto/x509/pkcs7.c', + 'third_party/boringssl/crypto/x509/rsa_pss.c', 'third_party/boringssl/crypto/x509/t_crl.c', 'third_party/boringssl/crypto/x509/t_req.c', 'third_party/boringssl/crypto/x509/t_x509.c', @@ -424,21 +430,17 @@ 'third_party/boringssl/crypto/x509v3/v3_utl.c', 'third_party/boringssl/ssl/custom_extensions.c', 'third_party/boringssl/ssl/d1_both.c', - 'third_party/boringssl/ssl/d1_clnt.c', 'third_party/boringssl/ssl/d1_lib.c', - 'third_party/boringssl/ssl/d1_meth.c', 'third_party/boringssl/ssl/d1_pkt.c', 'third_party/boringssl/ssl/d1_srtp.c', - 'third_party/boringssl/ssl/d1_srvr.c', + 'third_party/boringssl/ssl/dtls_method.c', 'third_party/boringssl/ssl/dtls_record.c', - 'third_party/boringssl/ssl/pqueue/pqueue.c', + 'third_party/boringssl/ssl/handshake_client.c', + 'third_party/boringssl/ssl/handshake_server.c', 'third_party/boringssl/ssl/s3_both.c', - 'third_party/boringssl/ssl/s3_clnt.c', 'third_party/boringssl/ssl/s3_enc.c', 'third_party/boringssl/ssl/s3_lib.c', - 'third_party/boringssl/ssl/s3_meth.c', 'third_party/boringssl/ssl/s3_pkt.c', - 'third_party/boringssl/ssl/s3_srvr.c', 'third_party/boringssl/ssl/ssl_aead_ctx.c', 'third_party/boringssl/ssl/ssl_asn1.c', 'third_party/boringssl/ssl/ssl_buffer.c', @@ -452,6 +454,11 @@ 'third_party/boringssl/ssl/ssl_stat.c', 'third_party/boringssl/ssl/t1_enc.c', 'third_party/boringssl/ssl/t1_lib.c', + 'third_party/boringssl/ssl/tls13_both.c', + 'third_party/boringssl/ssl/tls13_client.c', + 'third_party/boringssl/ssl/tls13_enc.c', + 'third_party/boringssl/ssl/tls13_server.c', + 'third_party/boringssl/ssl/tls_method.c', 'third_party/boringssl/ssl/tls_record.c', ] }, diff --git a/config.m4 b/config.m4 index 6a2c0ddb47e..9b2d8192a60 100644 --- a/config.m4 +++ b/config.m4 @@ -305,7 +305,6 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/aes/mode_wrappers.c \ third_party/boringssl/crypto/asn1/a_bitstr.c \ third_party/boringssl/crypto/asn1/a_bool.c \ - third_party/boringssl/crypto/asn1/a_bytes.c \ third_party/boringssl/crypto/asn1/a_d2i_fp.c \ third_party/boringssl/crypto/asn1/a_dup.c \ third_party/boringssl/crypto/asn1/a_enum.c \ @@ -324,18 +323,14 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/asn1/asn1_lib.c \ third_party/boringssl/crypto/asn1/asn1_par.c \ third_party/boringssl/crypto/asn1/asn_pack.c \ - third_party/boringssl/crypto/asn1/bio_asn1.c \ - third_party/boringssl/crypto/asn1/bio_ndef.c \ third_party/boringssl/crypto/asn1/f_enum.c \ third_party/boringssl/crypto/asn1/f_int.c \ third_party/boringssl/crypto/asn1/f_string.c \ third_party/boringssl/crypto/asn1/t_bitst.c \ - third_party/boringssl/crypto/asn1/t_pkey.c \ third_party/boringssl/crypto/asn1/tasn_dec.c \ third_party/boringssl/crypto/asn1/tasn_enc.c \ third_party/boringssl/crypto/asn1/tasn_fre.c \ third_party/boringssl/crypto/asn1/tasn_new.c \ - third_party/boringssl/crypto/asn1/tasn_prn.c \ third_party/boringssl/crypto/asn1/tasn_typ.c \ third_party/boringssl/crypto/asn1/tasn_utl.c \ third_party/boringssl/crypto/asn1/x_bignum.c \ @@ -365,6 +360,7 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/bn/generic.c \ third_party/boringssl/crypto/bn/kronecker.c \ third_party/boringssl/crypto/bn/montgomery.c \ + third_party/boringssl/crypto/bn/montgomery_inv.c \ third_party/boringssl/crypto/bn/mul.c \ third_party/boringssl/crypto/bn/prime.c \ third_party/boringssl/crypto/bn/random.c \ @@ -376,8 +372,7 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/bytestring/ber.c \ third_party/boringssl/crypto/bytestring/cbb.c \ third_party/boringssl/crypto/bytestring/cbs.c \ - third_party/boringssl/crypto/chacha/chacha_generic.c \ - third_party/boringssl/crypto/chacha/chacha_vec.c \ + third_party/boringssl/crypto/chacha/chacha.c \ third_party/boringssl/crypto/cipher/aead.c \ third_party/boringssl/crypto/cipher/cipher.c \ third_party/boringssl/crypto/cipher/derive_key.c \ @@ -392,10 +387,14 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/cipher/tls_cbc.c \ third_party/boringssl/crypto/cmac/cmac.c \ third_party/boringssl/crypto/conf/conf.c \ + third_party/boringssl/crypto/cpu-aarch64-linux.c \ + third_party/boringssl/crypto/cpu-arm-linux.c \ third_party/boringssl/crypto/cpu-arm.c \ third_party/boringssl/crypto/cpu-intel.c \ + third_party/boringssl/crypto/cpu-ppc64le.c \ third_party/boringssl/crypto/crypto.c \ third_party/boringssl/crypto/curve25519/curve25519.c \ + third_party/boringssl/crypto/curve25519/spake25519.c \ third_party/boringssl/crypto/curve25519/x25519-x86_64.c \ third_party/boringssl/crypto/des/des.c \ third_party/boringssl/crypto/dh/check.c \ @@ -404,8 +403,6 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/dh/params.c \ third_party/boringssl/crypto/digest/digest.c \ third_party/boringssl/crypto/digest/digests.c \ - third_party/boringssl/crypto/directory_posix.c \ - third_party/boringssl/crypto/directory_win.c \ third_party/boringssl/crypto/dsa/dsa.c \ third_party/boringssl/crypto/dsa/dsa_asn1.c \ third_party/boringssl/crypto/ec/ec.c \ @@ -424,7 +421,6 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c \ third_party/boringssl/crypto/engine/engine.c \ third_party/boringssl/crypto/err/err.c \ - third_party/boringssl/crypto/evp/algorithm.c \ third_party/boringssl/crypto/evp/digestsign.c \ third_party/boringssl/crypto/evp/evp.c \ third_party/boringssl/crypto/evp/evp_asn1.c \ @@ -435,6 +431,7 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/evp/p_rsa.c \ third_party/boringssl/crypto/evp/p_rsa_asn1.c \ third_party/boringssl/crypto/evp/pbkdf.c \ + third_party/boringssl/crypto/evp/print.c \ third_party/boringssl/crypto/evp/sign.c \ third_party/boringssl/crypto/ex_data.c \ third_party/boringssl/crypto/hkdf/hkdf.c \ @@ -448,6 +445,12 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/modes/ctr.c \ third_party/boringssl/crypto/modes/gcm.c \ third_party/boringssl/crypto/modes/ofb.c \ + third_party/boringssl/crypto/newhope/error_correction.c \ + third_party/boringssl/crypto/newhope/newhope.c \ + third_party/boringssl/crypto/newhope/ntt.c \ + third_party/boringssl/crypto/newhope/poly.c \ + third_party/boringssl/crypto/newhope/precomp.c \ + third_party/boringssl/crypto/newhope/reduce.c \ third_party/boringssl/crypto/obj/obj.c \ third_party/boringssl/crypto/obj/obj_xref.c \ third_party/boringssl/crypto/pem/pem_all.c \ @@ -465,6 +468,7 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/poly1305/poly1305.c \ third_party/boringssl/crypto/poly1305/poly1305_arm.c \ third_party/boringssl/crypto/poly1305/poly1305_vec.c \ + third_party/boringssl/crypto/rand/deterministic.c \ third_party/boringssl/crypto/rand/rand.c \ third_party/boringssl/crypto/rand/urandom.c \ third_party/boringssl/crypto/rand/windows.c \ @@ -489,11 +493,13 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/x509/a_sign.c \ third_party/boringssl/crypto/x509/a_strex.c \ third_party/boringssl/crypto/x509/a_verify.c \ + third_party/boringssl/crypto/x509/algorithm.c \ third_party/boringssl/crypto/x509/asn1_gen.c \ third_party/boringssl/crypto/x509/by_dir.c \ third_party/boringssl/crypto/x509/by_file.c \ third_party/boringssl/crypto/x509/i2d_pr.c \ third_party/boringssl/crypto/x509/pkcs7.c \ + third_party/boringssl/crypto/x509/rsa_pss.c \ third_party/boringssl/crypto/x509/t_crl.c \ third_party/boringssl/crypto/x509/t_req.c \ third_party/boringssl/crypto/x509/t_x509.c \ @@ -568,21 +574,17 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/x509v3/v3_utl.c \ third_party/boringssl/ssl/custom_extensions.c \ third_party/boringssl/ssl/d1_both.c \ - third_party/boringssl/ssl/d1_clnt.c \ third_party/boringssl/ssl/d1_lib.c \ - third_party/boringssl/ssl/d1_meth.c \ third_party/boringssl/ssl/d1_pkt.c \ third_party/boringssl/ssl/d1_srtp.c \ - third_party/boringssl/ssl/d1_srvr.c \ + third_party/boringssl/ssl/dtls_method.c \ third_party/boringssl/ssl/dtls_record.c \ - third_party/boringssl/ssl/pqueue/pqueue.c \ + third_party/boringssl/ssl/handshake_client.c \ + third_party/boringssl/ssl/handshake_server.c \ third_party/boringssl/ssl/s3_both.c \ - third_party/boringssl/ssl/s3_clnt.c \ third_party/boringssl/ssl/s3_enc.c \ third_party/boringssl/ssl/s3_lib.c \ - third_party/boringssl/ssl/s3_meth.c \ third_party/boringssl/ssl/s3_pkt.c \ - third_party/boringssl/ssl/s3_srvr.c \ third_party/boringssl/ssl/ssl_aead_ctx.c \ third_party/boringssl/ssl/ssl_asn1.c \ third_party/boringssl/ssl/ssl_buffer.c \ @@ -596,6 +598,11 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/ssl/ssl_stat.c \ third_party/boringssl/ssl/t1_enc.c \ third_party/boringssl/ssl/t1_lib.c \ + third_party/boringssl/ssl/tls13_both.c \ + third_party/boringssl/ssl/tls13_client.c \ + third_party/boringssl/ssl/tls13_enc.c \ + third_party/boringssl/ssl/tls13_server.c \ + third_party/boringssl/ssl/tls_method.c \ third_party/boringssl/ssl/tls_record.c \ , $ext_shared, , -Wall -Werror \ -Wno-parentheses-equality -Wno-unused-value -std=c11 \ @@ -678,6 +685,7 @@ if test "$PHP_GRPC" != "no"; then PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/md4) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/md5) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/modes) + PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/newhope) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/obj) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/pem) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/pkcs8) @@ -690,6 +698,5 @@ if test "$PHP_GRPC" != "no"; then PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/x509) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/x509v3) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/ssl) - PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/ssl/pqueue) PHP_ADD_BUILD_DIR($ext_builddir/third_party/nanopb) fi diff --git a/grpc.gemspec b/grpc.gemspec index 32e4eb960b7..2d84682456b 100755 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -583,23 +583,22 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/conf/internal.h ) s.files += %w( third_party/boringssl/crypto/curve25519/internal.h ) s.files += %w( third_party/boringssl/crypto/des/internal.h ) - s.files += %w( third_party/boringssl/crypto/dh/internal.h ) s.files += %w( third_party/boringssl/crypto/digest/internal.h ) s.files += %w( third_party/boringssl/crypto/digest/md32_common.h ) - s.files += %w( third_party/boringssl/crypto/directory.h ) s.files += %w( third_party/boringssl/crypto/ec/internal.h ) s.files += %w( third_party/boringssl/crypto/ec/p256-x86_64-table.h ) s.files += %w( third_party/boringssl/crypto/evp/internal.h ) s.files += %w( third_party/boringssl/crypto/internal.h ) s.files += %w( third_party/boringssl/crypto/modes/internal.h ) + s.files += %w( third_party/boringssl/crypto/newhope/internal.h ) s.files += %w( third_party/boringssl/crypto/obj/obj_dat.h ) s.files += %w( third_party/boringssl/crypto/obj/obj_xref.h ) s.files += %w( third_party/boringssl/crypto/pkcs8/internal.h ) + s.files += %w( third_party/boringssl/crypto/poly1305/internal.h ) s.files += %w( third_party/boringssl/crypto/rand/internal.h ) s.files += %w( third_party/boringssl/crypto/rsa/internal.h ) - s.files += %w( third_party/boringssl/crypto/test/scoped_types.h ) - s.files += %w( third_party/boringssl/crypto/test/test_util.h ) s.files += %w( third_party/boringssl/crypto/x509/charmap.h ) + s.files += %w( third_party/boringssl/crypto/x509/internal.h ) s.files += %w( third_party/boringssl/crypto/x509/vpm_int.h ) s.files += %w( third_party/boringssl/crypto/x509v3/ext_dat.h ) s.files += %w( third_party/boringssl/crypto/x509v3/pcy_int.h ) @@ -645,10 +644,12 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/include/openssl/md4.h ) s.files += %w( third_party/boringssl/include/openssl/md5.h ) s.files += %w( third_party/boringssl/include/openssl/mem.h ) + s.files += %w( third_party/boringssl/include/openssl/newhope.h ) + s.files += %w( third_party/boringssl/include/openssl/nid.h ) s.files += %w( third_party/boringssl/include/openssl/obj.h ) s.files += %w( third_party/boringssl/include/openssl/obj_mac.h ) s.files += %w( third_party/boringssl/include/openssl/objects.h ) - s.files += %w( third_party/boringssl/include/openssl/opensslfeatures.h ) + s.files += %w( third_party/boringssl/include/openssl/opensslconf.h ) s.files += %w( third_party/boringssl/include/openssl/opensslv.h ) s.files += %w( third_party/boringssl/include/openssl/ossl_typ.h ) s.files += %w( third_party/boringssl/include/openssl/pem.h ) @@ -656,9 +657,9 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/include/openssl/pkcs7.h ) s.files += %w( third_party/boringssl/include/openssl/pkcs8.h ) s.files += %w( third_party/boringssl/include/openssl/poly1305.h ) - s.files += %w( third_party/boringssl/include/openssl/pqueue.h ) s.files += %w( third_party/boringssl/include/openssl/rand.h ) s.files += %w( third_party/boringssl/include/openssl/rc4.h ) + s.files += %w( third_party/boringssl/include/openssl/ripemd.h ) s.files += %w( third_party/boringssl/include/openssl/rsa.h ) s.files += %w( third_party/boringssl/include/openssl/safestack.h ) s.files += %w( third_party/boringssl/include/openssl/sha.h ) @@ -675,16 +676,11 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/include/openssl/x509_vfy.h ) s.files += %w( third_party/boringssl/include/openssl/x509v3.h ) s.files += %w( third_party/boringssl/ssl/internal.h ) - s.files += %w( third_party/boringssl/ssl/test/async_bio.h ) - s.files += %w( third_party/boringssl/ssl/test/packeted_bio.h ) - s.files += %w( third_party/boringssl/ssl/test/scoped_types.h ) - s.files += %w( third_party/boringssl/ssl/test/test_config.h ) s.files += %w( src/boringssl/err_data.c ) s.files += %w( third_party/boringssl/crypto/aes/aes.c ) s.files += %w( third_party/boringssl/crypto/aes/mode_wrappers.c ) s.files += %w( third_party/boringssl/crypto/asn1/a_bitstr.c ) s.files += %w( third_party/boringssl/crypto/asn1/a_bool.c ) - s.files += %w( third_party/boringssl/crypto/asn1/a_bytes.c ) s.files += %w( third_party/boringssl/crypto/asn1/a_d2i_fp.c ) s.files += %w( third_party/boringssl/crypto/asn1/a_dup.c ) s.files += %w( third_party/boringssl/crypto/asn1/a_enum.c ) @@ -703,18 +699,14 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/asn1/asn1_lib.c ) s.files += %w( third_party/boringssl/crypto/asn1/asn1_par.c ) s.files += %w( third_party/boringssl/crypto/asn1/asn_pack.c ) - s.files += %w( third_party/boringssl/crypto/asn1/bio_asn1.c ) - s.files += %w( third_party/boringssl/crypto/asn1/bio_ndef.c ) s.files += %w( third_party/boringssl/crypto/asn1/f_enum.c ) s.files += %w( third_party/boringssl/crypto/asn1/f_int.c ) s.files += %w( third_party/boringssl/crypto/asn1/f_string.c ) s.files += %w( third_party/boringssl/crypto/asn1/t_bitst.c ) - s.files += %w( third_party/boringssl/crypto/asn1/t_pkey.c ) s.files += %w( third_party/boringssl/crypto/asn1/tasn_dec.c ) s.files += %w( third_party/boringssl/crypto/asn1/tasn_enc.c ) s.files += %w( third_party/boringssl/crypto/asn1/tasn_fre.c ) s.files += %w( third_party/boringssl/crypto/asn1/tasn_new.c ) - s.files += %w( third_party/boringssl/crypto/asn1/tasn_prn.c ) s.files += %w( third_party/boringssl/crypto/asn1/tasn_typ.c ) s.files += %w( third_party/boringssl/crypto/asn1/tasn_utl.c ) s.files += %w( third_party/boringssl/crypto/asn1/x_bignum.c ) @@ -744,6 +736,7 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/bn/generic.c ) s.files += %w( third_party/boringssl/crypto/bn/kronecker.c ) s.files += %w( third_party/boringssl/crypto/bn/montgomery.c ) + s.files += %w( third_party/boringssl/crypto/bn/montgomery_inv.c ) s.files += %w( third_party/boringssl/crypto/bn/mul.c ) s.files += %w( third_party/boringssl/crypto/bn/prime.c ) s.files += %w( third_party/boringssl/crypto/bn/random.c ) @@ -755,8 +748,7 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/bytestring/ber.c ) s.files += %w( third_party/boringssl/crypto/bytestring/cbb.c ) s.files += %w( third_party/boringssl/crypto/bytestring/cbs.c ) - s.files += %w( third_party/boringssl/crypto/chacha/chacha_generic.c ) - s.files += %w( third_party/boringssl/crypto/chacha/chacha_vec.c ) + s.files += %w( third_party/boringssl/crypto/chacha/chacha.c ) s.files += %w( third_party/boringssl/crypto/cipher/aead.c ) s.files += %w( third_party/boringssl/crypto/cipher/cipher.c ) s.files += %w( third_party/boringssl/crypto/cipher/derive_key.c ) @@ -771,10 +763,14 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/cipher/tls_cbc.c ) s.files += %w( third_party/boringssl/crypto/cmac/cmac.c ) s.files += %w( third_party/boringssl/crypto/conf/conf.c ) + s.files += %w( third_party/boringssl/crypto/cpu-aarch64-linux.c ) + s.files += %w( third_party/boringssl/crypto/cpu-arm-linux.c ) s.files += %w( third_party/boringssl/crypto/cpu-arm.c ) s.files += %w( third_party/boringssl/crypto/cpu-intel.c ) + s.files += %w( third_party/boringssl/crypto/cpu-ppc64le.c ) s.files += %w( third_party/boringssl/crypto/crypto.c ) s.files += %w( third_party/boringssl/crypto/curve25519/curve25519.c ) + s.files += %w( third_party/boringssl/crypto/curve25519/spake25519.c ) s.files += %w( third_party/boringssl/crypto/curve25519/x25519-x86_64.c ) s.files += %w( third_party/boringssl/crypto/des/des.c ) s.files += %w( third_party/boringssl/crypto/dh/check.c ) @@ -783,8 +779,6 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/dh/params.c ) s.files += %w( third_party/boringssl/crypto/digest/digest.c ) s.files += %w( third_party/boringssl/crypto/digest/digests.c ) - s.files += %w( third_party/boringssl/crypto/directory_posix.c ) - s.files += %w( third_party/boringssl/crypto/directory_win.c ) s.files += %w( third_party/boringssl/crypto/dsa/dsa.c ) s.files += %w( third_party/boringssl/crypto/dsa/dsa_asn1.c ) s.files += %w( third_party/boringssl/crypto/ec/ec.c ) @@ -803,7 +797,6 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c ) s.files += %w( third_party/boringssl/crypto/engine/engine.c ) s.files += %w( third_party/boringssl/crypto/err/err.c ) - s.files += %w( third_party/boringssl/crypto/evp/algorithm.c ) s.files += %w( third_party/boringssl/crypto/evp/digestsign.c ) s.files += %w( third_party/boringssl/crypto/evp/evp.c ) s.files += %w( third_party/boringssl/crypto/evp/evp_asn1.c ) @@ -814,6 +807,7 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/evp/p_rsa.c ) s.files += %w( third_party/boringssl/crypto/evp/p_rsa_asn1.c ) s.files += %w( third_party/boringssl/crypto/evp/pbkdf.c ) + s.files += %w( third_party/boringssl/crypto/evp/print.c ) s.files += %w( third_party/boringssl/crypto/evp/sign.c ) s.files += %w( third_party/boringssl/crypto/ex_data.c ) s.files += %w( third_party/boringssl/crypto/hkdf/hkdf.c ) @@ -827,6 +821,12 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/modes/ctr.c ) s.files += %w( third_party/boringssl/crypto/modes/gcm.c ) s.files += %w( third_party/boringssl/crypto/modes/ofb.c ) + s.files += %w( third_party/boringssl/crypto/newhope/error_correction.c ) + s.files += %w( third_party/boringssl/crypto/newhope/newhope.c ) + s.files += %w( third_party/boringssl/crypto/newhope/ntt.c ) + s.files += %w( third_party/boringssl/crypto/newhope/poly.c ) + s.files += %w( third_party/boringssl/crypto/newhope/precomp.c ) + s.files += %w( third_party/boringssl/crypto/newhope/reduce.c ) s.files += %w( third_party/boringssl/crypto/obj/obj.c ) s.files += %w( third_party/boringssl/crypto/obj/obj_xref.c ) s.files += %w( third_party/boringssl/crypto/pem/pem_all.c ) @@ -844,6 +844,7 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/poly1305/poly1305.c ) s.files += %w( third_party/boringssl/crypto/poly1305/poly1305_arm.c ) s.files += %w( third_party/boringssl/crypto/poly1305/poly1305_vec.c ) + s.files += %w( third_party/boringssl/crypto/rand/deterministic.c ) s.files += %w( third_party/boringssl/crypto/rand/rand.c ) s.files += %w( third_party/boringssl/crypto/rand/urandom.c ) s.files += %w( third_party/boringssl/crypto/rand/windows.c ) @@ -868,11 +869,13 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/x509/a_sign.c ) s.files += %w( third_party/boringssl/crypto/x509/a_strex.c ) s.files += %w( third_party/boringssl/crypto/x509/a_verify.c ) + s.files += %w( third_party/boringssl/crypto/x509/algorithm.c ) s.files += %w( third_party/boringssl/crypto/x509/asn1_gen.c ) s.files += %w( third_party/boringssl/crypto/x509/by_dir.c ) s.files += %w( third_party/boringssl/crypto/x509/by_file.c ) s.files += %w( third_party/boringssl/crypto/x509/i2d_pr.c ) s.files += %w( third_party/boringssl/crypto/x509/pkcs7.c ) + s.files += %w( third_party/boringssl/crypto/x509/rsa_pss.c ) s.files += %w( third_party/boringssl/crypto/x509/t_crl.c ) s.files += %w( third_party/boringssl/crypto/x509/t_req.c ) s.files += %w( third_party/boringssl/crypto/x509/t_x509.c ) @@ -947,21 +950,17 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/x509v3/v3_utl.c ) s.files += %w( third_party/boringssl/ssl/custom_extensions.c ) s.files += %w( third_party/boringssl/ssl/d1_both.c ) - s.files += %w( third_party/boringssl/ssl/d1_clnt.c ) s.files += %w( third_party/boringssl/ssl/d1_lib.c ) - s.files += %w( third_party/boringssl/ssl/d1_meth.c ) s.files += %w( third_party/boringssl/ssl/d1_pkt.c ) s.files += %w( third_party/boringssl/ssl/d1_srtp.c ) - s.files += %w( third_party/boringssl/ssl/d1_srvr.c ) + s.files += %w( third_party/boringssl/ssl/dtls_method.c ) s.files += %w( third_party/boringssl/ssl/dtls_record.c ) - s.files += %w( third_party/boringssl/ssl/pqueue/pqueue.c ) + s.files += %w( third_party/boringssl/ssl/handshake_client.c ) + s.files += %w( third_party/boringssl/ssl/handshake_server.c ) s.files += %w( third_party/boringssl/ssl/s3_both.c ) - s.files += %w( third_party/boringssl/ssl/s3_clnt.c ) s.files += %w( third_party/boringssl/ssl/s3_enc.c ) s.files += %w( third_party/boringssl/ssl/s3_lib.c ) - s.files += %w( third_party/boringssl/ssl/s3_meth.c ) s.files += %w( third_party/boringssl/ssl/s3_pkt.c ) - s.files += %w( third_party/boringssl/ssl/s3_srvr.c ) s.files += %w( third_party/boringssl/ssl/ssl_aead_ctx.c ) s.files += %w( third_party/boringssl/ssl/ssl_asn1.c ) s.files += %w( third_party/boringssl/ssl/ssl_buffer.c ) @@ -975,6 +974,11 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/ssl/ssl_stat.c ) s.files += %w( third_party/boringssl/ssl/t1_enc.c ) s.files += %w( third_party/boringssl/ssl/t1_lib.c ) + s.files += %w( third_party/boringssl/ssl/tls13_both.c ) + s.files += %w( third_party/boringssl/ssl/tls13_client.c ) + s.files += %w( third_party/boringssl/ssl/tls13_enc.c ) + s.files += %w( third_party/boringssl/ssl/tls13_server.c ) + s.files += %w( third_party/boringssl/ssl/tls_method.c ) s.files += %w( third_party/boringssl/ssl/tls_record.c ) s.files += %w( third_party/zlib/crc32.h ) s.files += %w( third_party/zlib/deflate.h ) diff --git a/package.xml b/package.xml index 95a4b95345d..06ce67a02c0 100644 --- a/package.xml +++ b/package.xml @@ -592,23 +592,22 @@ - - + + - - + @@ -654,10 +653,12 @@ + + - + @@ -665,9 +666,9 @@ - + @@ -684,16 +685,11 @@ - - - - - @@ -712,18 +708,14 @@ - - - - @@ -753,6 +745,7 @@ + @@ -764,8 +757,7 @@ - - + @@ -780,10 +772,14 @@ + + + + @@ -792,8 +788,6 @@ - - @@ -812,7 +806,6 @@ - @@ -823,6 +816,7 @@ + @@ -836,6 +830,12 @@ + + + + + + @@ -853,6 +853,7 @@ + @@ -877,11 +878,13 @@ + + @@ -956,21 +959,17 @@ - - - + - + + - - - @@ -984,6 +983,11 @@ + + + + + diff --git a/src/boringssl/err_data.c b/src/boringssl/err_data.c index d4cc08bd99c..c1257cdc787 100644 --- a/src/boringssl/err_data.c +++ b/src/boringssl/err_data.c @@ -54,182 +54,166 @@ OPENSSL_COMPILE_ASSERT(ERR_LIB_USER == 32, library_values_changed_32); OPENSSL_COMPILE_ASSERT(ERR_NUM_LIBS == 33, library_values_changed_num); const uint32_t kOpenSSLReasonValues[] = { - 0xc3207ab, - 0xc3287c5, - 0xc3307d4, - 0xc3387e4, - 0xc3407f3, - 0xc34880c, - 0xc350818, - 0xc358835, - 0xc360847, - 0xc368855, - 0xc370865, - 0xc378872, - 0xc380882, - 0xc38888d, - 0xc3908a3, - 0xc3988b2, - 0xc3a08c6, - 0xc3a87b8, - 0xc3b00b0, - 0x10321484, - 0x10329490, - 0x103314a9, - 0x103394bc, - 0x10340ded, - 0x103494cf, - 0x103514e4, - 0x10359516, - 0x1036152f, - 0x10369544, - 0x10371562, - 0x10379571, - 0x1038158d, - 0x103895a8, - 0x103915b7, - 0x103995d3, - 0x103a15ee, - 0x103a9605, - 0x103b1616, - 0x103b962a, - 0x103c1649, - 0x103c9658, - 0x103d166f, - 0x103d9682, - 0x103e0b5d, - 0x103e96b3, - 0x103f16c6, - 0x103f96e0, - 0x104016f0, - 0x10409704, - 0x1041171a, - 0x10419732, - 0x10421747, - 0x1042975b, - 0x1043176d, - 0x104385c1, - 0x104408b2, - 0x10449782, - 0x10451799, - 0x104597ae, - 0x104617bc, - 0x10469695, - 0x104714f7, - 0x104787b8, - 0x104800b0, - 0x10488b8c, - 0x14320b40, - 0x14328b4e, - 0x14330b5d, - 0x14338b6f, + 0xc320838, + 0xc328852, + 0xc330861, + 0xc338871, + 0xc340880, + 0xc348899, + 0xc3508a5, + 0xc3588c2, + 0xc3608d4, + 0xc3688e2, + 0xc3708f2, + 0xc3788ff, + 0xc38090f, + 0xc38891a, + 0xc390930, + 0xc39893f, + 0xc3a0953, + 0xc3a8845, + 0xc3b00ea, + 0x10320845, + 0x103293ab, + 0x103313b7, + 0x103393d0, + 0x103413e3, + 0x10348e8b, + 0x10350c19, + 0x103593f6, + 0x1036140b, + 0x1036941e, + 0x1037143d, + 0x10379456, + 0x1038146b, + 0x10389489, + 0x10391498, + 0x103994b4, + 0x103a14cf, + 0x103a94de, + 0x103b14fa, + 0x103b9515, + 0x103c152c, + 0x103c80ea, + 0x103d153d, + 0x103d9551, + 0x103e1570, + 0x103e957f, + 0x103f1596, + 0x103f95a9, + 0x10400bea, + 0x104095bc, + 0x104115da, + 0x104195ed, + 0x10421607, + 0x10429617, + 0x1043162b, + 0x10439641, + 0x10441659, + 0x1044966e, + 0x10451682, + 0x10459694, + 0x104605fb, + 0x1046893f, + 0x104716a9, + 0x104796c0, + 0x104816d5, + 0x104896e3, + 0x14320bcd, + 0x14328bdb, + 0x14330bea, + 0x14338bfc, + 0x143400ac, + 0x143480ea, 0x18320083, - 0x18328e53, - 0x18340e81, - 0x18348e95, - 0x18358ecc, - 0x18368ef9, - 0x18370f0c, - 0x18378f20, - 0x18380f44, - 0x18388f52, - 0x18390f68, - 0x18398f7c, - 0x183a0f8c, - 0x183b0f9c, - 0x183b8fb1, - 0x183c8fdc, - 0x183d0ff0, - 0x183d9000, - 0x183e0b98, - 0x183e900d, - 0x183f101f, - 0x183f902a, - 0x1840103a, - 0x1840904b, - 0x1841105c, - 0x1841906e, - 0x18421097, - 0x184290c9, - 0x184310d8, - 0x18451141, - 0x18459157, - 0x18461172, - 0x18468ee4, - 0x184709ca, - 0x18478094, - 0x18480fc8, - 0x1848910d, - 0x18490e69, - 0x18498eaa, - 0x184a11a8, - 0x184a9125, - 0x184b10ec, - 0x184b8e43, - 0x184c10b0, - 0x184c865c, - 0x184d118d, - 0x184d80b0, - 0x203211cf, - 0x243211db, - 0x243288f8, - 0x243311ed, - 0x243391fa, - 0x24341207, - 0x24349219, - 0x24351228, - 0x24359245, - 0x24361252, - 0x24369260, - 0x2437126e, - 0x2437927c, - 0x24381285, - 0x24389292, - 0x243912a5, - 0x28320b80, - 0x28328b98, - 0x28330b5d, - 0x28338bab, - 0x28340b8c, - 0x28348094, - 0x283500b0, - 0x2c32281d, - 0x2c32a82b, - 0x2c33283d, - 0x2c33a84f, - 0x2c342863, - 0x2c34a875, - 0x2c352890, - 0x2c35a8a2, - 0x2c3628b5, - 0x2c3682f3, - 0x2c3728c2, - 0x2c37a8d4, - 0x2c3828e7, - 0x2c38a8f5, - 0x2c392905, - 0x2c39a917, - 0x2c3a292b, - 0x2c3aa93c, - 0x2c3b1365, - 0x2c3ba94d, - 0x2c3c2961, - 0x2c3ca977, - 0x2c3d2990, - 0x2c3da9be, - 0x2c3e29cc, - 0x2c3ea9e4, - 0x2c3f29fc, - 0x2c3faa09, - 0x2c402a2c, - 0x2c40aa4b, - 0x2c4111cf, - 0x2c41aa5c, - 0x2c422a6f, - 0x2c429141, - 0x2c432a80, - 0x2c438693, - 0x2c4429ad, + 0x18328ee1, + 0x183300ac, + 0x18338ef7, + 0x18340f0b, + 0x183480ea, + 0x18350f20, + 0x18358f38, + 0x18360f4d, + 0x18368f61, + 0x18370f85, + 0x18378f9b, + 0x18380faf, + 0x18388fbf, + 0x18390a57, + 0x18398fcf, + 0x183a0fe4, + 0x183a8ff8, + 0x183b0c25, + 0x183b9005, + 0x183c1017, + 0x183c9022, + 0x183d1032, + 0x183d9043, + 0x183e1054, + 0x183e9066, + 0x183f108f, + 0x183f90a8, + 0x184010c0, + 0x184086d3, + 0x203210e7, + 0x243210f3, + 0x24328985, + 0x24331105, + 0x24339112, + 0x2434111f, + 0x24349131, + 0x24351140, + 0x2435915d, + 0x2436116a, + 0x24369178, + 0x24371186, + 0x24379194, + 0x2438119d, + 0x243891aa, + 0x243911bd, + 0x28320c0d, + 0x28328c25, + 0x28330bea, + 0x28338c38, + 0x28340c19, + 0x283480ac, + 0x283500ea, + 0x2c3228ca, + 0x2c32a8d8, + 0x2c3328ea, + 0x2c33a8fc, + 0x2c342910, + 0x2c34a922, + 0x2c35293d, + 0x2c35a94f, + 0x2c362962, + 0x2c36832d, + 0x2c37296f, + 0x2c37a981, + 0x2c382994, + 0x2c38a9ab, + 0x2c3929b9, + 0x2c39a9c9, + 0x2c3a29db, + 0x2c3aa9ef, + 0x2c3b2a00, + 0x2c3baa1f, + 0x2c3c2a33, + 0x2c3caa49, + 0x2c3d2a62, + 0x2c3daa7f, + 0x2c3e2a90, + 0x2c3eaa9e, + 0x2c3f2ab6, + 0x2c3faace, + 0x2c402adb, + 0x2c4090e7, + 0x2c412aec, + 0x2c41aaff, + 0x2c4210c0, + 0x2c42ab10, + 0x2c430720, + 0x2c43aa11, 0x30320000, 0x30328015, 0x3033001f, @@ -239,443 +223,465 @@ const uint32_t kOpenSSLReasonValues[] = { 0x3035006b, 0x30358083, 0x30360094, - 0x303680a1, - 0x303700b0, - 0x303780bd, - 0x303800d0, - 0x303880eb, - 0x30390100, - 0x30398114, - 0x303a0128, - 0x303a8139, - 0x303b0152, - 0x303b816f, - 0x303c017d, - 0x303c8191, - 0x303d01a1, - 0x303d81ba, - 0x303e01ca, - 0x303e81dd, - 0x303f01ec, - 0x303f81f8, - 0x3040020d, - 0x3040821d, - 0x30410234, - 0x30418241, - 0x30420254, - 0x30428263, - 0x30430278, - 0x30438299, - 0x304402ac, - 0x304482bf, - 0x304502d8, - 0x304582f3, - 0x30460310, - 0x30468329, - 0x30470337, - 0x30478348, - 0x30480357, - 0x3048836f, - 0x30490381, - 0x30498395, - 0x304a03b4, - 0x304a83c7, - 0x304b03d2, - 0x304b83e3, - 0x304c03ef, - 0x304c8405, - 0x304d0413, - 0x304d8429, - 0x304e043b, - 0x304e844d, - 0x304f0460, - 0x304f8473, - 0x30500484, - 0x30508494, - 0x305104ac, - 0x305184c1, - 0x305204d9, - 0x305284ed, - 0x30530505, - 0x3053851e, - 0x30540537, - 0x30548554, - 0x3055055f, - 0x30558577, - 0x30560587, - 0x30568598, - 0x305705ab, - 0x305785c1, - 0x305805ca, - 0x305885df, - 0x305905f2, - 0x30598601, - 0x305a0621, - 0x305a8630, - 0x305b063c, - 0x305b865c, - 0x305c0678, - 0x305c8689, - 0x305d0693, - 0x34320aba, - 0x34328ace, - 0x34330aeb, - 0x34338afe, - 0x34340b0d, - 0x34348b2a, + 0x303680ac, + 0x303700b9, + 0x303780c8, + 0x303800ea, + 0x303880f7, + 0x3039010a, + 0x30398125, + 0x303a013a, + 0x303a814e, + 0x303b0162, + 0x303b8173, + 0x303c018c, + 0x303c81a9, + 0x303d01b7, + 0x303d81cb, + 0x303e01db, + 0x303e81f4, + 0x303f0204, + 0x303f8217, + 0x30400226, + 0x30408232, + 0x30410247, + 0x30418257, + 0x3042026e, + 0x3042827b, + 0x3043028e, + 0x3043829d, + 0x304402b2, + 0x304482d3, + 0x304502e6, + 0x304582f9, + 0x30460312, + 0x3046832d, + 0x3047034a, + 0x30478363, + 0x30480371, + 0x30488382, + 0x30490391, + 0x304983a9, + 0x304a03bb, + 0x304a83cf, + 0x304b03ee, + 0x304b8401, + 0x304c040c, + 0x304c841d, + 0x304d0429, + 0x304d843f, + 0x304e044d, + 0x304e8463, + 0x304f0475, + 0x304f8487, + 0x3050049a, + 0x305084ad, + 0x305104be, + 0x305184ce, + 0x305204e6, + 0x305284fb, + 0x30530513, + 0x30538527, + 0x3054053f, + 0x30548558, + 0x30550571, + 0x3055858e, + 0x30560599, + 0x305685b1, + 0x305705c1, + 0x305785d2, + 0x305805e5, + 0x305885fb, + 0x30590604, + 0x30598619, + 0x305a062c, + 0x305a863b, + 0x305b065b, + 0x305b866a, + 0x305c068b, + 0x305c86a7, + 0x305d06b3, + 0x305d86d3, + 0x305e06ef, + 0x305e8700, + 0x305f0716, + 0x305f8720, + 0x34320b47, + 0x34328b5b, + 0x34330b78, + 0x34338b8b, + 0x34340b9a, + 0x34348bb7, 0x3c320083, - 0x3c328bd5, - 0x3c330bee, - 0x3c338c09, - 0x3c340c26, - 0x3c348c50, - 0x3c350c6b, - 0x3c358c80, - 0x3c360c99, - 0x3c368cb1, - 0x3c370cc2, - 0x3c378cd0, - 0x3c380cdd, - 0x3c388cf1, - 0x3c390b98, - 0x3c398d05, - 0x3c3a0d19, - 0x3c3a8872, - 0x3c3b0d29, - 0x3c3b8d44, - 0x3c3c0d56, - 0x3c3c8d6c, - 0x3c3d0d76, - 0x3c3d8d8a, - 0x3c3e0d98, - 0x3c3e8dbd, - 0x3c3f0bc1, - 0x3c3f8da6, - 0x3c400094, - 0x3c4080b0, - 0x3c410c41, - 0x403217d3, - 0x403297e9, - 0x40331817, - 0x40339821, - 0x40341838, - 0x40349856, - 0x40351866, - 0x40359878, - 0x40361885, - 0x40369891, - 0x403718a6, - 0x403798b8, - 0x403818c3, - 0x403898d5, - 0x40390ded, - 0x403998e5, - 0x403a18f8, - 0x403a9919, - 0x403b192a, - 0x403b993a, + 0x3c328c62, + 0x3c330c7b, + 0x3c338c96, + 0x3c340cb3, + 0x3c348cdd, + 0x3c350cf8, + 0x3c358d1e, + 0x3c360d37, + 0x3c368d4f, + 0x3c370d60, + 0x3c378d6e, + 0x3c380d7b, + 0x3c388d8f, + 0x3c390c25, + 0x3c398da3, + 0x3c3a0db7, + 0x3c3a88ff, + 0x3c3b0dc7, + 0x3c3b8de2, + 0x3c3c0df4, + 0x3c3c8e0a, + 0x3c3d0e14, + 0x3c3d8e28, + 0x3c3e0e36, + 0x3c3e8e5b, + 0x3c3f0c4e, + 0x3c3f8e44, + 0x3c4000ac, + 0x3c4080ea, + 0x3c410cce, + 0x3c418d0d, + 0x403216fa, + 0x40329710, + 0x4033173e, + 0x40339748, + 0x4034175f, + 0x4034977d, + 0x4035178d, + 0x4035979f, + 0x403617ac, + 0x403697b8, + 0x403717cd, + 0x403797df, + 0x403817ea, + 0x403897fc, + 0x40390e8b, + 0x4039980c, + 0x403a181f, + 0x403a9840, + 0x403b1851, + 0x403b9861, 0x403c0064, 0x403c8083, - 0x403d1946, - 0x403d995c, - 0x403e196b, - 0x403e997e, - 0x403f1998, - 0x403f99a6, - 0x404019bb, - 0x404099cf, - 0x404119ec, - 0x40419a07, - 0x40421a20, - 0x40429a33, - 0x40431a47, - 0x40439a5f, - 0x40441a76, - 0x40448094, - 0x40451a8b, - 0x40459a9d, - 0x40461ac1, - 0x40469ae1, - 0x40471aef, - 0x40479b03, - 0x40481b18, - 0x40489b31, - 0x40491b48, - 0x40499b62, - 0x404a1b79, - 0x404a9b97, - 0x404b1baf, - 0x404b9bc6, - 0x404c1bdc, - 0x404c9bee, - 0x404d1c0f, - 0x404d9c31, - 0x404e1c45, - 0x404e9c52, - 0x404f1c69, - 0x404f9c79, - 0x40501c89, - 0x40509c9d, - 0x40511cb8, - 0x40519cc8, - 0x40521cdf, - 0x40529cf1, - 0x40531d09, - 0x40539d1c, - 0x40541d31, - 0x40549d54, - 0x40551d62, - 0x40559d7f, - 0x40561d8c, - 0x40569da5, - 0x40571dbd, - 0x40579dd0, - 0x40581de5, - 0x40589df7, - 0x40591e07, - 0x40599e20, - 0x405a1e34, - 0x405a9e44, - 0x405b1e5c, - 0x405b9e6d, - 0x405c1e80, - 0x405c9e91, - 0x405d1e9e, - 0x405d9eb5, - 0x405e1ed5, - 0x405e8a08, - 0x405f1ef6, - 0x405f9f03, - 0x40601f11, - 0x40609f33, - 0x40611f5b, - 0x40619f70, - 0x40621f87, - 0x40629f98, - 0x40631fa9, - 0x40639fbe, - 0x40641fd5, - 0x40649fe6, - 0x40652001, - 0x4065a018, - 0x40662030, - 0x4066a05a, - 0x40672085, - 0x4067a0a6, - 0x406820b9, - 0x4068a0da, - 0x406920f5, - 0x4069a123, - 0x406a2144, - 0x406aa164, - 0x406b22ec, - 0x406ba30f, - 0x406c2325, - 0x406ca551, - 0x406d2580, - 0x406da5a8, - 0x406e25c1, - 0x406ea5d9, - 0x406f25f8, - 0x406fa60d, - 0x40702620, - 0x4070a63d, - 0x40710773, - 0x4071a64f, - 0x40722662, - 0x4072a67b, - 0x40732693, - 0x407390c9, - 0x407426a7, - 0x4074a6c1, - 0x407526d2, - 0x4075a6e6, - 0x407626f4, - 0x40769292, - 0x40772719, - 0x4077a73b, - 0x40782756, - 0x4078a76b, - 0x40792782, - 0x4079a798, - 0x407a27a4, - 0x407aa7b7, - 0x407b27cc, - 0x407ba7de, - 0x407c27f3, - 0x407ca7fc, - 0x41f42217, - 0x41f922a9, - 0x41fe219c, - 0x41fea378, - 0x41ff2469, - 0x42032230, - 0x42082252, - 0x4208a28e, - 0x42092180, - 0x4209a2c8, - 0x420a21d7, - 0x420aa1b7, - 0x420b21f7, - 0x420ba270, - 0x420c2485, - 0x420ca345, - 0x420d235f, - 0x420da396, - 0x421223b0, - 0x4217244c, - 0x4217a3f2, - 0x421c2414, - 0x421f23cf, - 0x4221249c, - 0x4226242f, - 0x422b2535, - 0x422ba4fe, - 0x422c251d, - 0x422ca4d8, - 0x422d24b7, - 0x4432069e, - 0x443286ad, - 0x443306b9, - 0x443386c7, - 0x443406da, - 0x443486eb, - 0x443506f2, - 0x443586fc, - 0x4436070f, - 0x44368725, - 0x44370737, - 0x44378744, - 0x44380753, - 0x4438875b, - 0x44390773, - 0x44398781, - 0x443a0794, - 0x4c3212bc, - 0x4c3292cc, - 0x4c3312df, - 0x4c3392ff, - 0x4c340094, - 0x4c3480b0, - 0x4c35130b, - 0x4c359319, - 0x4c361335, - 0x4c369348, - 0x4c371357, - 0x4c379365, - 0x4c38137a, - 0x4c389386, - 0x4c3913a6, - 0x4c3993d0, - 0x4c3a13e9, - 0x4c3a9402, - 0x4c3b05c1, - 0x4c3b941b, - 0x4c3c142d, - 0x4c3c943c, - 0x4c3d10c9, - 0x4c3d9455, - 0x4c3e1462, - 0x50322a92, - 0x5032aaa1, - 0x50332aac, - 0x5033aabc, - 0x50342ad5, - 0x5034aaef, - 0x50352afd, - 0x5035ab13, - 0x50362b25, - 0x5036ab3b, - 0x50372b54, - 0x5037ab67, - 0x50382b7f, - 0x5038ab90, - 0x50392ba5, - 0x5039abb9, - 0x503a2bd9, - 0x503aabef, - 0x503b2c07, - 0x503bac19, - 0x503c2c35, - 0x503cac4c, - 0x503d2c65, - 0x503dac7b, - 0x503e2c88, - 0x503eac9e, - 0x503f2cb0, - 0x503f8348, - 0x50402cc3, - 0x5040acd3, - 0x50412ced, - 0x5041acfc, - 0x50422d16, - 0x5042ad33, - 0x50432d43, - 0x5043ad53, - 0x50442d62, - 0x50448405, - 0x50452d76, - 0x5045ad94, - 0x50462da7, - 0x5046adbd, - 0x50472dcf, - 0x5047ade4, - 0x50482e0a, - 0x5048ae18, - 0x50492e2b, - 0x5049ae40, - 0x504a2e56, - 0x504aae66, - 0x504b2e86, - 0x504bae99, - 0x504c2ebc, - 0x504caeea, - 0x504d2efc, - 0x504daf19, - 0x504e2f34, - 0x504eaf50, - 0x504f2f62, - 0x504faf79, - 0x50502f88, - 0x50508678, - 0x50512f9b, - 0x58320e2b, - 0x68320ded, - 0x68328b98, - 0x68330bab, - 0x68338dfb, - 0x68340e0b, - 0x683480b0, - 0x6c320dc9, - 0x6c328b6f, - 0x6c330dd4, - 0x7432097e, - 0x783208e3, - 0x783288f8, - 0x78330904, + 0x403d18aa, + 0x403d98c0, + 0x403e18cf, + 0x403e98e2, + 0x403f18fc, + 0x403f990a, + 0x4040191f, + 0x40409933, + 0x40411950, + 0x4041996b, + 0x40421984, + 0x40429997, + 0x404319ab, + 0x404399c3, + 0x404419da, + 0x404480ac, + 0x404519ef, + 0x40459a01, + 0x40461a25, + 0x40469a45, + 0x40471a53, + 0x40479a7a, + 0x40481ab7, + 0x40489ad0, + 0x40491ae7, + 0x40499b01, + 0x404a1b18, + 0x404a9b36, + 0x404b1b4e, + 0x404b9b65, + 0x404c1b7b, + 0x404c9b8d, + 0x404d1bae, + 0x404d9bd0, + 0x404e1be4, + 0x404e9bf1, + 0x404f1c1e, + 0x404f9c47, + 0x40501c71, + 0x40509c85, + 0x40511ca0, + 0x40519cb0, + 0x40521cc7, + 0x40529ceb, + 0x40531d03, + 0x40539d16, + 0x40541d2b, + 0x40549d4e, + 0x40551d5c, + 0x40559d79, + 0x40561d86, + 0x40569d9f, + 0x40571db7, + 0x40579dca, + 0x40581ddf, + 0x40589e06, + 0x40591e35, + 0x40599e62, + 0x405a1e76, + 0x405a9e86, + 0x405b1e9e, + 0x405b9eaf, + 0x405c1ec2, + 0x405c9ed3, + 0x405d1ee0, + 0x405d9ef7, + 0x405e1f17, + 0x405e8a95, + 0x405f1f38, + 0x405f9f45, + 0x40601f53, + 0x40609f75, + 0x40611f9d, + 0x40619fb2, + 0x40621fc9, + 0x40629fda, + 0x40631feb, + 0x4063a000, + 0x40642017, + 0x4064a043, + 0x4065205e, + 0x4065a075, + 0x4066208d, + 0x4066a0b7, + 0x406720e2, + 0x4067a103, + 0x40682116, + 0x4068a137, + 0x40692169, + 0x4069a197, + 0x406a21b8, + 0x406aa1d8, + 0x406b2360, + 0x406ba383, + 0x406c2399, + 0x406ca5c5, + 0x406d25f4, + 0x406da61c, + 0x406e264a, + 0x406ea662, + 0x406f2681, + 0x406fa696, + 0x407026a9, + 0x4070a6c6, + 0x40710800, + 0x4071a6d8, + 0x407226eb, + 0x4072a704, + 0x4073271c, + 0x4073936d, + 0x40742730, + 0x4074a74a, + 0x4075275b, + 0x4075a76f, + 0x4076277d, + 0x407691aa, + 0x407727a2, + 0x4077a7c4, + 0x407827df, + 0x4078a818, + 0x4079282f, + 0x4079a845, + 0x407a2851, + 0x407aa864, + 0x407b2879, + 0x407ba88b, + 0x407c28a0, + 0x407ca8a9, + 0x407d2152, + 0x407d9c57, + 0x407e27f4, + 0x407e9e16, + 0x407f1a67, + 0x407f9887, + 0x40801c2e, + 0x40809a8f, + 0x40811cd9, + 0x40819c08, + 0x40822635, + 0x4082986d, + 0x40831df1, + 0x4083a028, + 0x40841aa3, + 0x40849e4e, + 0x41f4228b, + 0x41f9231d, + 0x41fe2210, + 0x41fea3ec, + 0x41ff24dd, + 0x420322a4, + 0x420822c6, + 0x4208a302, + 0x420921f4, + 0x4209a33c, + 0x420a224b, + 0x420aa22b, + 0x420b226b, + 0x420ba2e4, + 0x420c24f9, + 0x420ca3b9, + 0x420d23d3, + 0x420da40a, + 0x42122424, + 0x421724c0, + 0x4217a466, + 0x421c2488, + 0x421f2443, + 0x42212510, + 0x422624a3, + 0x422b25a9, + 0x422ba572, + 0x422c2591, + 0x422ca54c, + 0x422d252b, + 0x4432072b, + 0x4432873a, + 0x44330746, + 0x44338754, + 0x44340767, + 0x44348778, + 0x4435077f, + 0x44358789, + 0x4436079c, + 0x443687b2, + 0x443707c4, + 0x443787d1, + 0x443807e0, + 0x443887e8, + 0x44390800, + 0x4439880e, + 0x443a0821, + 0x4c3211d4, + 0x4c3291e4, + 0x4c3311f7, + 0x4c339217, + 0x4c3400ac, + 0x4c3480ea, + 0x4c351223, + 0x4c359231, + 0x4c36124d, + 0x4c369260, + 0x4c37126f, + 0x4c37927d, + 0x4c381292, + 0x4c38929e, + 0x4c3912be, + 0x4c3992e8, + 0x4c3a1301, + 0x4c3a931a, + 0x4c3b05fb, + 0x4c3b9333, + 0x4c3c1345, + 0x4c3c9354, + 0x4c3d136d, + 0x4c3d937c, + 0x4c3e1389, + 0x50322b22, + 0x5032ab31, + 0x50332b3c, + 0x5033ab4c, + 0x50342b65, + 0x5034ab7f, + 0x50352b8d, + 0x5035aba3, + 0x50362bb5, + 0x5036abcb, + 0x50372be4, + 0x5037abf7, + 0x50382c0f, + 0x5038ac20, + 0x50392c35, + 0x5039ac49, + 0x503a2c69, + 0x503aac7f, + 0x503b2c97, + 0x503baca9, + 0x503c2cc5, + 0x503cacdc, + 0x503d2cf5, + 0x503dad0b, + 0x503e2d18, + 0x503ead2e, + 0x503f2d40, + 0x503f8382, + 0x50402d53, + 0x5040ad63, + 0x50412d7d, + 0x5041ad8c, + 0x50422da6, + 0x5042adc3, + 0x50432dd3, + 0x5043ade3, + 0x50442df2, + 0x5044843f, + 0x50452e06, + 0x5045ae24, + 0x50462e37, + 0x5046ae4d, + 0x50472e5f, + 0x5047ae74, + 0x50482e9a, + 0x5048aea8, + 0x50492ebb, + 0x5049aed0, + 0x504a2ee6, + 0x504aaef6, + 0x504b2f16, + 0x504baf29, + 0x504c2f4c, + 0x504caf7a, + 0x504d2f8c, + 0x504dafa9, + 0x504e2fc4, + 0x504eafe0, + 0x504f2ff2, + 0x504fb009, + 0x50503018, + 0x505086ef, + 0x5051302b, + 0x58320ec9, + 0x68320e8b, + 0x68328c25, + 0x68330c38, + 0x68338e99, + 0x68340ea9, + 0x683480ea, + 0x6c320e67, + 0x6c328bfc, + 0x6c330e72, + 0x74320a0b, + 0x78320970, + 0x78328985, + 0x78330991, 0x78338083, - 0x78340913, - 0x78348928, - 0x78350947, - 0x78358969, - 0x7836097e, - 0x78368994, - 0x783709a4, - 0x783789b7, - 0x783809ca, - 0x783889dc, - 0x783909e9, - 0x78398a08, - 0x783a0a1d, - 0x783a8a2b, - 0x783b0a35, - 0x783b8a49, - 0x783c0a60, - 0x783c8a75, - 0x783d0a8c, - 0x783d8aa1, - 0x783e09f7, - 0x7c3211be, + 0x783409a0, + 0x783489b5, + 0x783509d4, + 0x783589f6, + 0x78360a0b, + 0x78368a21, + 0x78370a31, + 0x78378a44, + 0x78380a57, + 0x78388a69, + 0x78390a76, + 0x78398a95, + 0x783a0aaa, + 0x783a8ab8, + 0x783b0ac2, + 0x783b8ad6, + 0x783c0aed, + 0x783c8b02, + 0x783d0b19, + 0x783d8b2e, + 0x783e0a84, + 0x7c3210d6, }; const size_t kOpenSSLReasonValuesLen = sizeof(kOpenSSLReasonValues) / sizeof(kOpenSSLReasonValues[0]); @@ -689,8 +695,10 @@ const char kOpenSSLReasonStringData[] = "BN_LIB\0" "BOOLEAN_IS_WRONG_LENGTH\0" "BUFFER_TOO_SMALL\0" + "CONTEXT_NOT_INITIALISED\0" "DECODE_ERROR\0" "DEPTH_EXCEEDED\0" + "DIGEST_AND_KEY_TYPE_NOT_SUPPORTED\0" "ENCODE_ERROR\0" "ERROR_GETTING_TIME\0" "EXPECTING_AN_ASN1_SEQUENCE\0" @@ -762,10 +770,13 @@ const char kOpenSSLReasonStringData[] = "UNEXPECTED_EOC\0" "UNIVERSALSTRING_IS_WRONG_LENGTH\0" "UNKNOWN_FORMAT\0" + "UNKNOWN_MESSAGE_DIGEST_ALGORITHM\0" + "UNKNOWN_SIGNATURE_ALGORITHM\0" "UNKNOWN_TAG\0" "UNSUPPORTED_ANY_DEFINED_BY_TYPE\0" "UNSUPPORTED_PUBLIC_KEY_TYPE\0" "UNSUPPORTED_TYPE\0" + "WRONG_PUBLIC_KEY_TYPE\0" "WRONG_TAG\0" "WRONG_TYPE\0" "BAD_FOPEN_MODE\0" @@ -849,6 +860,7 @@ const char kOpenSSLReasonStringData[] = "GROUP_MISMATCH\0" "I2D_ECPKPARAMETERS_FAILURE\0" "INCOMPATIBLE_OBJECTS\0" + "INVALID_COFACTOR\0" "INVALID_COMPRESSED_POINT\0" "INVALID_COMPRESSION_BIT\0" "INVALID_ENCODING\0" @@ -873,27 +885,19 @@ const char kOpenSSLReasonStringData[] = "NOT_IMPLEMENTED\0" "RANDOM_NUMBER_GENERATION_FAILED\0" "OPERATION_NOT_SUPPORTED\0" - "BN_DECODE_ERROR\0" "COMMAND_NOT_SUPPORTED\0" - "CONTEXT_NOT_INITIALISED\0" "DIFFERENT_KEY_TYPES\0" "DIFFERENT_PARAMETERS\0" - "DIGEST_AND_KEY_TYPE_NOT_SUPPORTED\0" "EXPECTING_AN_EC_KEY_KEY\0" "EXPECTING_AN_RSA_KEY\0" - "EXPECTING_A_DH_KEY\0" "EXPECTING_A_DSA_KEY\0" "ILLEGAL_OR_UNSUPPORTED_PADDING_MODE\0" - "INVALID_CURVE\0" "INVALID_DIGEST_LENGTH\0" "INVALID_DIGEST_TYPE\0" "INVALID_KEYBITS\0" "INVALID_MGF1_MD\0" "INVALID_PADDING_MODE\0" - "INVALID_PSS_PARAMETERS\0" "INVALID_PSS_SALTLEN\0" - "INVALID_SALT_LENGTH\0" - "INVALID_TRAILER\0" "KEYS_NOT_SET\0" "NO_DEFAULT_DIGEST\0" "NO_KEY_SET\0" @@ -903,17 +907,8 @@ const char kOpenSSLReasonStringData[] = "NO_PARAMETERS_SET\0" "OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE\0" "OPERATON_NOT_INITIALIZED\0" - "PARAMETER_ENCODING_ERROR\0" - "UNKNOWN_DIGEST\0" - "UNKNOWN_MASK_DIGEST\0" - "UNKNOWN_MESSAGE_DIGEST_ALGORITHM\0" "UNKNOWN_PUBLIC_KEY_TYPE\0" - "UNKNOWN_SIGNATURE_ALGORITHM\0" "UNSUPPORTED_ALGORITHM\0" - "UNSUPPORTED_MASK_ALGORITHM\0" - "UNSUPPORTED_MASK_PARAMETER\0" - "UNSUPPORTED_SIGNATURE_TYPE\0" - "WRONG_PUBLIC_KEY_TYPE\0" "OUTPUT_TOO_LARGE\0" "UNKNOWN_NID\0" "BAD_BASE64_DECODE\0" @@ -949,6 +944,7 @@ const char kOpenSSLReasonStringData[] = "UNKNOWN_ALGORITHM\0" "UNKNOWN_CIPHER\0" "UNKNOWN_CIPHER_ALGORITHM\0" + "UNKNOWN_DIGEST\0" "UNKNOWN_HASH\0" "UNSUPPORTED_PRIVATE_KEY_ALGORITHM\0" "BAD_E_VALUE\0" @@ -1009,6 +1005,8 @@ const char kOpenSSLReasonStringData[] = "BAD_SSL_FILETYPE\0" "BAD_WRITE_RETRY\0" "BIO_NOT_SET\0" + "BLOCK_CIPHER_PAD_IS_WRONG\0" + "BUFFERED_MESSAGES_ON_CIPHER_CHANGE\0" "CA_DN_LENGTH_MISMATCH\0" "CA_DN_TOO_LONG\0" "CCS_RECEIVED_EARLY\0" @@ -1029,7 +1027,10 @@ const char kOpenSSLReasonStringData[] = "DH_PUBLIC_VALUE_LENGTH_IS_WRONG\0" "DH_P_TOO_LONG\0" "DIGEST_CHECK_FAILED\0" + "DOWNGRADE_DETECTED\0" "DTLS_MESSAGE_TOO_BIG\0" + "DUPLICATE_EXTENSION\0" + "DUPLICATE_KEY_SHARE\0" "ECC_CERT_NOT_FOR_SIGNING\0" "EMS_STATE_INCONSISTENT\0" "ENCRYPTED_LENGTH_TOO_LONG\0" @@ -1044,13 +1045,17 @@ const char kOpenSSLReasonStringData[] = "HTTPS_PROXY_REQUEST\0" "HTTP_REQUEST\0" "INAPPROPRIATE_FALLBACK\0" + "INVALID_ALPN_PROTOCOL\0" "INVALID_COMMAND\0" + "INVALID_COMPRESSION_LIST\0" "INVALID_MESSAGE\0" + "INVALID_OUTER_RECORD_TYPE\0" "INVALID_SSL_SESSION\0" "INVALID_TICKET_KEYS_LENGTH\0" "LENGTH_MISMATCH\0" "LIBRARY_HAS_NO_CIPHERS\0" "MISSING_EXTENSION\0" + "MISSING_KEY_SHARE\0" "MISSING_RSA_CERTIFICATE\0" "MISSING_TMP_DH_KEY\0" "MISSING_TMP_ECDH_KEY\0" @@ -1063,8 +1068,11 @@ const char kOpenSSLReasonStringData[] = "NO_CERTIFICATE_SET\0" "NO_CIPHERS_AVAILABLE\0" "NO_CIPHERS_PASSED\0" + "NO_CIPHERS_SPECIFIED\0" "NO_CIPHER_MATCH\0" + "NO_COMMON_SIGNATURE_ALGORITHMS\0" "NO_COMPRESSION_SPECIFIED\0" + "NO_GROUPS_SPECIFIED\0" "NO_METHOD_SPECIFIED\0" "NO_P256_SUPPORT\0" "NO_PRIVATE_KEY_ASSIGNED\0" @@ -1086,6 +1094,7 @@ const char kOpenSSLReasonStringData[] = "READ_TIMEOUT_EXPIRED\0" "RECORD_LENGTH_MISMATCH\0" "RECORD_TOO_LARGE\0" + "RENEGOTIATION_EMS_MISMATCH\0" "RENEGOTIATION_ENCODING_ERR\0" "RENEGOTIATION_MISMATCH\0" "REQUIRED_CIPHER_MISSING\0" @@ -1095,6 +1104,7 @@ const char kOpenSSLReasonStringData[] = "SERVERHELLO_TLSEXT\0" "SESSION_ID_CONTEXT_UNINITIALIZED\0" "SESSION_MAY_NOT_BE_CREATED\0" + "SHUTDOWN_WHILE_IN_INIT\0" "SIGNATURE_ALGORITHMS_EXTENSION_SENT_BY_SERVER\0" "SRTP_COULD_NOT_ALLOCATE_PROFILES\0" "SRTP_UNKNOWN_PROTECTION_PROFILE\0" @@ -1135,6 +1145,7 @@ const char kOpenSSLReasonStringData[] = "TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST\0" "TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG\0" "TOO_MANY_EMPTY_FRAGMENTS\0" + "TOO_MANY_KEY_UPDATES\0" "TOO_MANY_WARNING_ALERTS\0" "UNABLE_TO_FIND_ECDH_PARAMETERS\0" "UNEXPECTED_EXTENSION\0" @@ -1153,6 +1164,7 @@ const char kOpenSSLReasonStringData[] = "UNSUPPORTED_COMPRESSION_ALGORITHM\0" "UNSUPPORTED_ELLIPTIC_CURVE\0" "UNSUPPORTED_PROTOCOL\0" + "UNSUPPORTED_PROTOCOL_FOR_CUSTOM_KEY\0" "WRONG_CERTIFICATE_TYPE\0" "WRONG_CIPHER_RETURNED\0" "WRONG_CURVE\0" @@ -1173,12 +1185,14 @@ const char kOpenSSLReasonStringData[] = "IDP_MISMATCH\0" "INVALID_DIRECTORY\0" "INVALID_FIELD_NAME\0" + "INVALID_PSS_PARAMETERS\0" "INVALID_TRUST\0" "ISSUER_MISMATCH\0" "KEY_TYPE_MISMATCH\0" "KEY_VALUES_MISMATCH\0" "LOADING_CERT_DIR\0" "LOADING_DEFAULTS\0" + "NAME_TOO_LONG\0" "NEWER_CRL_NOT_NEWER\0" "NOT_PKCS7_SIGNED_DATA\0" "NO_CERTIFICATES_INCLUDED\0" @@ -1188,8 +1202,6 @@ const char kOpenSSLReasonStringData[] = "PUBLIC_KEY_DECODE_ERROR\0" "PUBLIC_KEY_ENCODE_ERROR\0" "SHOULD_RETRY\0" - "UNABLE_TO_FIND_PARAMETERS_IN_CHAIN\0" - "UNABLE_TO_GET_CERTS_PUBLIC_KEY\0" "UNKNOWN_KEY_TYPE\0" "UNKNOWN_PURPOSE_ID\0" "UNKNOWN_TRUST_ID\0" diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py index 7adf6dbed87..9d470e17dfe 100644 --- a/src/python/grpcio/grpc_core_dependencies.py +++ b/src/python/grpcio/grpc_core_dependencies.py @@ -299,7 +299,6 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/aes/mode_wrappers.c', 'third_party/boringssl/crypto/asn1/a_bitstr.c', 'third_party/boringssl/crypto/asn1/a_bool.c', - 'third_party/boringssl/crypto/asn1/a_bytes.c', 'third_party/boringssl/crypto/asn1/a_d2i_fp.c', 'third_party/boringssl/crypto/asn1/a_dup.c', 'third_party/boringssl/crypto/asn1/a_enum.c', @@ -318,18 +317,14 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/asn1/asn1_lib.c', 'third_party/boringssl/crypto/asn1/asn1_par.c', 'third_party/boringssl/crypto/asn1/asn_pack.c', - 'third_party/boringssl/crypto/asn1/bio_asn1.c', - 'third_party/boringssl/crypto/asn1/bio_ndef.c', 'third_party/boringssl/crypto/asn1/f_enum.c', 'third_party/boringssl/crypto/asn1/f_int.c', 'third_party/boringssl/crypto/asn1/f_string.c', 'third_party/boringssl/crypto/asn1/t_bitst.c', - 'third_party/boringssl/crypto/asn1/t_pkey.c', 'third_party/boringssl/crypto/asn1/tasn_dec.c', 'third_party/boringssl/crypto/asn1/tasn_enc.c', 'third_party/boringssl/crypto/asn1/tasn_fre.c', 'third_party/boringssl/crypto/asn1/tasn_new.c', - 'third_party/boringssl/crypto/asn1/tasn_prn.c', 'third_party/boringssl/crypto/asn1/tasn_typ.c', 'third_party/boringssl/crypto/asn1/tasn_utl.c', 'third_party/boringssl/crypto/asn1/x_bignum.c', @@ -359,6 +354,7 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/bn/generic.c', 'third_party/boringssl/crypto/bn/kronecker.c', 'third_party/boringssl/crypto/bn/montgomery.c', + 'third_party/boringssl/crypto/bn/montgomery_inv.c', 'third_party/boringssl/crypto/bn/mul.c', 'third_party/boringssl/crypto/bn/prime.c', 'third_party/boringssl/crypto/bn/random.c', @@ -370,8 +366,7 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/bytestring/ber.c', 'third_party/boringssl/crypto/bytestring/cbb.c', 'third_party/boringssl/crypto/bytestring/cbs.c', - 'third_party/boringssl/crypto/chacha/chacha_generic.c', - 'third_party/boringssl/crypto/chacha/chacha_vec.c', + 'third_party/boringssl/crypto/chacha/chacha.c', 'third_party/boringssl/crypto/cipher/aead.c', 'third_party/boringssl/crypto/cipher/cipher.c', 'third_party/boringssl/crypto/cipher/derive_key.c', @@ -386,10 +381,14 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/cipher/tls_cbc.c', 'third_party/boringssl/crypto/cmac/cmac.c', 'third_party/boringssl/crypto/conf/conf.c', + 'third_party/boringssl/crypto/cpu-aarch64-linux.c', + 'third_party/boringssl/crypto/cpu-arm-linux.c', 'third_party/boringssl/crypto/cpu-arm.c', 'third_party/boringssl/crypto/cpu-intel.c', + 'third_party/boringssl/crypto/cpu-ppc64le.c', 'third_party/boringssl/crypto/crypto.c', 'third_party/boringssl/crypto/curve25519/curve25519.c', + 'third_party/boringssl/crypto/curve25519/spake25519.c', 'third_party/boringssl/crypto/curve25519/x25519-x86_64.c', 'third_party/boringssl/crypto/des/des.c', 'third_party/boringssl/crypto/dh/check.c', @@ -398,8 +397,6 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/dh/params.c', 'third_party/boringssl/crypto/digest/digest.c', 'third_party/boringssl/crypto/digest/digests.c', - 'third_party/boringssl/crypto/directory_posix.c', - 'third_party/boringssl/crypto/directory_win.c', 'third_party/boringssl/crypto/dsa/dsa.c', 'third_party/boringssl/crypto/dsa/dsa_asn1.c', 'third_party/boringssl/crypto/ec/ec.c', @@ -418,7 +415,6 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c', 'third_party/boringssl/crypto/engine/engine.c', 'third_party/boringssl/crypto/err/err.c', - 'third_party/boringssl/crypto/evp/algorithm.c', 'third_party/boringssl/crypto/evp/digestsign.c', 'third_party/boringssl/crypto/evp/evp.c', 'third_party/boringssl/crypto/evp/evp_asn1.c', @@ -429,6 +425,7 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/evp/p_rsa.c', 'third_party/boringssl/crypto/evp/p_rsa_asn1.c', 'third_party/boringssl/crypto/evp/pbkdf.c', + 'third_party/boringssl/crypto/evp/print.c', 'third_party/boringssl/crypto/evp/sign.c', 'third_party/boringssl/crypto/ex_data.c', 'third_party/boringssl/crypto/hkdf/hkdf.c', @@ -442,6 +439,12 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/modes/ctr.c', 'third_party/boringssl/crypto/modes/gcm.c', 'third_party/boringssl/crypto/modes/ofb.c', + 'third_party/boringssl/crypto/newhope/error_correction.c', + 'third_party/boringssl/crypto/newhope/newhope.c', + 'third_party/boringssl/crypto/newhope/ntt.c', + 'third_party/boringssl/crypto/newhope/poly.c', + 'third_party/boringssl/crypto/newhope/precomp.c', + 'third_party/boringssl/crypto/newhope/reduce.c', 'third_party/boringssl/crypto/obj/obj.c', 'third_party/boringssl/crypto/obj/obj_xref.c', 'third_party/boringssl/crypto/pem/pem_all.c', @@ -459,6 +462,7 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/poly1305/poly1305.c', 'third_party/boringssl/crypto/poly1305/poly1305_arm.c', 'third_party/boringssl/crypto/poly1305/poly1305_vec.c', + 'third_party/boringssl/crypto/rand/deterministic.c', 'third_party/boringssl/crypto/rand/rand.c', 'third_party/boringssl/crypto/rand/urandom.c', 'third_party/boringssl/crypto/rand/windows.c', @@ -483,11 +487,13 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/x509/a_sign.c', 'third_party/boringssl/crypto/x509/a_strex.c', 'third_party/boringssl/crypto/x509/a_verify.c', + 'third_party/boringssl/crypto/x509/algorithm.c', 'third_party/boringssl/crypto/x509/asn1_gen.c', 'third_party/boringssl/crypto/x509/by_dir.c', 'third_party/boringssl/crypto/x509/by_file.c', 'third_party/boringssl/crypto/x509/i2d_pr.c', 'third_party/boringssl/crypto/x509/pkcs7.c', + 'third_party/boringssl/crypto/x509/rsa_pss.c', 'third_party/boringssl/crypto/x509/t_crl.c', 'third_party/boringssl/crypto/x509/t_req.c', 'third_party/boringssl/crypto/x509/t_x509.c', @@ -562,21 +568,17 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/x509v3/v3_utl.c', 'third_party/boringssl/ssl/custom_extensions.c', 'third_party/boringssl/ssl/d1_both.c', - 'third_party/boringssl/ssl/d1_clnt.c', 'third_party/boringssl/ssl/d1_lib.c', - 'third_party/boringssl/ssl/d1_meth.c', 'third_party/boringssl/ssl/d1_pkt.c', 'third_party/boringssl/ssl/d1_srtp.c', - 'third_party/boringssl/ssl/d1_srvr.c', + 'third_party/boringssl/ssl/dtls_method.c', 'third_party/boringssl/ssl/dtls_record.c', - 'third_party/boringssl/ssl/pqueue/pqueue.c', + 'third_party/boringssl/ssl/handshake_client.c', + 'third_party/boringssl/ssl/handshake_server.c', 'third_party/boringssl/ssl/s3_both.c', - 'third_party/boringssl/ssl/s3_clnt.c', 'third_party/boringssl/ssl/s3_enc.c', 'third_party/boringssl/ssl/s3_lib.c', - 'third_party/boringssl/ssl/s3_meth.c', 'third_party/boringssl/ssl/s3_pkt.c', - 'third_party/boringssl/ssl/s3_srvr.c', 'third_party/boringssl/ssl/ssl_aead_ctx.c', 'third_party/boringssl/ssl/ssl_asn1.c', 'third_party/boringssl/ssl/ssl_buffer.c', @@ -590,6 +592,11 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/ssl/ssl_stat.c', 'third_party/boringssl/ssl/t1_enc.c', 'third_party/boringssl/ssl/t1_lib.c', + 'third_party/boringssl/ssl/tls13_both.c', + 'third_party/boringssl/ssl/tls13_client.c', + 'third_party/boringssl/ssl/tls13_enc.c', + 'third_party/boringssl/ssl/tls13_server.c', + 'third_party/boringssl/ssl/tls_method.c', 'third_party/boringssl/ssl/tls_record.c', 'third_party/zlib/adler32.c', 'third_party/zlib/compress.c', diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json index 0eaa832e147..e766dcbdb61 100644 --- a/tools/run_tests/generated/sources_and_headers.json +++ b/tools/run_tests/generated/sources_and_headers.json @@ -3545,6 +3545,20 @@ "third_party": true, "type": "target" }, + { + "deps": [ + "boringssl", + "boringssl_chacha_test_lib", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_chacha_test", + "src": [], + "third_party": true, + "type": "target" + }, { "deps": [ "boringssl", @@ -3615,6 +3629,20 @@ "third_party": true, "type": "target" }, + { + "deps": [ + "boringssl", + "boringssl_spake25519_test_lib", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_spake25519_test", + "src": [], + "third_party": true, + "type": "target" + }, { "deps": [ "boringssl", @@ -3699,6 +3727,34 @@ "third_party": true, "type": "target" }, + { + "deps": [ + "boringssl", + "boringssl_ecdh_test_lib", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_ecdh_test", + "src": [], + "third_party": true, + "type": "target" + }, + { + "deps": [ + "boringssl", + "boringssl_ecdsa_sign_test_lib", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_ecdsa_sign_test", + "src": [], + "third_party": true, + "type": "target" + }, { "deps": [ "boringssl", @@ -3713,6 +3769,20 @@ "third_party": true, "type": "target" }, + { + "deps": [ + "boringssl", + "boringssl_ecdsa_verify_test_lib", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_ecdsa_verify_test", + "src": [], + "third_party": true, + "type": "target" + }, { "deps": [ "boringssl", @@ -3825,6 +3895,62 @@ "third_party": true, "type": "target" }, + { + "deps": [ + "boringssl", + "boringssl_newhope_statistical_test_lib", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_newhope_statistical_test", + "src": [], + "third_party": true, + "type": "target" + }, + { + "deps": [ + "boringssl", + "boringssl_newhope_test_lib", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_newhope_test", + "src": [], + "third_party": true, + "type": "target" + }, + { + "deps": [ + "boringssl", + "boringssl_newhope_vectors_test_lib", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_newhope_vectors_test", + "src": [], + "third_party": true, + "type": "target" + }, + { + "deps": [ + "boringssl", + "boringssl_obj_test_lib", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_obj_test", + "src": [], + "third_party": true, + "type": "target" + }, { "deps": [ "boringssl", @@ -3965,20 +4091,6 @@ "third_party": true, "type": "target" }, - { - "deps": [ - "boringssl", - "boringssl_pqueue_test_lib", - "boringssl_test_util" - ], - "headers": [], - "is_filegroup": false, - "language": "c++", - "name": "boringssl_pqueue_test", - "src": [], - "third_party": true, - "type": "target" - }, { "deps": [ "boringssl", @@ -5710,23 +5822,22 @@ "third_party/boringssl/crypto/conf/internal.h", "third_party/boringssl/crypto/curve25519/internal.h", "third_party/boringssl/crypto/des/internal.h", - "third_party/boringssl/crypto/dh/internal.h", "third_party/boringssl/crypto/digest/internal.h", "third_party/boringssl/crypto/digest/md32_common.h", - "third_party/boringssl/crypto/directory.h", "third_party/boringssl/crypto/ec/internal.h", "third_party/boringssl/crypto/ec/p256-x86_64-table.h", "third_party/boringssl/crypto/evp/internal.h", "third_party/boringssl/crypto/internal.h", "third_party/boringssl/crypto/modes/internal.h", + "third_party/boringssl/crypto/newhope/internal.h", "third_party/boringssl/crypto/obj/obj_dat.h", "third_party/boringssl/crypto/obj/obj_xref.h", "third_party/boringssl/crypto/pkcs8/internal.h", + "third_party/boringssl/crypto/poly1305/internal.h", "third_party/boringssl/crypto/rand/internal.h", "third_party/boringssl/crypto/rsa/internal.h", - "third_party/boringssl/crypto/test/scoped_types.h", - "third_party/boringssl/crypto/test/test_util.h", "third_party/boringssl/crypto/x509/charmap.h", + "third_party/boringssl/crypto/x509/internal.h", "third_party/boringssl/crypto/x509/vpm_int.h", "third_party/boringssl/crypto/x509v3/ext_dat.h", "third_party/boringssl/crypto/x509v3/pcy_int.h", @@ -5772,10 +5883,12 @@ "third_party/boringssl/include/openssl/md4.h", "third_party/boringssl/include/openssl/md5.h", "third_party/boringssl/include/openssl/mem.h", + "third_party/boringssl/include/openssl/newhope.h", + "third_party/boringssl/include/openssl/nid.h", "third_party/boringssl/include/openssl/obj.h", "third_party/boringssl/include/openssl/obj_mac.h", "third_party/boringssl/include/openssl/objects.h", - "third_party/boringssl/include/openssl/opensslfeatures.h", + "third_party/boringssl/include/openssl/opensslconf.h", "third_party/boringssl/include/openssl/opensslv.h", "third_party/boringssl/include/openssl/ossl_typ.h", "third_party/boringssl/include/openssl/pem.h", @@ -5783,9 +5896,9 @@ "third_party/boringssl/include/openssl/pkcs7.h", "third_party/boringssl/include/openssl/pkcs8.h", "third_party/boringssl/include/openssl/poly1305.h", - "third_party/boringssl/include/openssl/pqueue.h", "third_party/boringssl/include/openssl/rand.h", "third_party/boringssl/include/openssl/rc4.h", + "third_party/boringssl/include/openssl/ripemd.h", "third_party/boringssl/include/openssl/rsa.h", "third_party/boringssl/include/openssl/safestack.h", "third_party/boringssl/include/openssl/sha.h", @@ -5801,11 +5914,7 @@ "third_party/boringssl/include/openssl/x509.h", "third_party/boringssl/include/openssl/x509_vfy.h", "third_party/boringssl/include/openssl/x509v3.h", - "third_party/boringssl/ssl/internal.h", - "third_party/boringssl/ssl/test/async_bio.h", - "third_party/boringssl/ssl/test/packeted_bio.h", - "third_party/boringssl/ssl/test/scoped_types.h", - "third_party/boringssl/ssl/test/test_config.h" + "third_party/boringssl/ssl/internal.h" ], "is_filegroup": false, "language": "c", @@ -5904,6 +6013,19 @@ "third_party": true, "type": "lib" }, + { + "deps": [ + "boringssl", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_chacha_test_lib", + "src": [], + "third_party": true, + "type": "lib" + }, { "deps": [ "boringssl", @@ -5969,6 +6091,19 @@ "third_party": true, "type": "lib" }, + { + "deps": [ + "boringssl", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_spake25519_test_lib", + "src": [], + "third_party": true, + "type": "lib" + }, { "deps": [ "boringssl", @@ -6047,6 +6182,32 @@ "third_party": true, "type": "lib" }, + { + "deps": [ + "boringssl", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_ecdh_test_lib", + "src": [], + "third_party": true, + "type": "lib" + }, + { + "deps": [ + "boringssl", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_ecdsa_sign_test_lib", + "src": [], + "third_party": true, + "type": "lib" + }, { "deps": [ "boringssl", @@ -6060,6 +6221,19 @@ "third_party": true, "type": "lib" }, + { + "deps": [ + "boringssl", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_ecdsa_verify_test_lib", + "src": [], + "third_party": true, + "type": "lib" + }, { "deps": [ "boringssl", @@ -6158,7 +6332,7 @@ ], "headers": [], "is_filegroup": false, - "language": "c", + "language": "c++", "name": "boringssl_gcm_test_lib", "src": [], "third_party": true, @@ -6172,7 +6346,7 @@ "headers": [], "is_filegroup": false, "language": "c++", - "name": "boringssl_pkcs12_test_lib", + "name": "boringssl_newhope_statistical_test_lib", "src": [], "third_party": true, "type": "lib" @@ -6185,7 +6359,7 @@ "headers": [], "is_filegroup": false, "language": "c++", - "name": "boringssl_pkcs8_test_lib", + "name": "boringssl_newhope_test_lib", "src": [], "third_party": true, "type": "lib" @@ -6198,7 +6372,7 @@ "headers": [], "is_filegroup": false, "language": "c++", - "name": "boringssl_poly1305_test_lib", + "name": "boringssl_newhope_vectors_test_lib", "src": [], "third_party": true, "type": "lib" @@ -6210,8 +6384,8 @@ ], "headers": [], "is_filegroup": false, - "language": "c", - "name": "boringssl_refcount_test_lib", + "language": "c++", + "name": "boringssl_obj_test_lib", "src": [], "third_party": true, "type": "lib" @@ -6224,7 +6398,7 @@ "headers": [], "is_filegroup": false, "language": "c++", - "name": "boringssl_rsa_test_lib", + "name": "boringssl_pkcs12_test_lib", "src": [], "third_party": true, "type": "lib" @@ -6236,8 +6410,21 @@ ], "headers": [], "is_filegroup": false, - "language": "c", - "name": "boringssl_thread_test_lib", + "language": "c++", + "name": "boringssl_pkcs8_test_lib", + "src": [], + "third_party": true, + "type": "lib" + }, + { + "deps": [ + "boringssl", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_poly1305_test_lib", "src": [], "third_party": true, "type": "lib" @@ -6250,7 +6437,7 @@ "headers": [], "is_filegroup": false, "language": "c", - "name": "boringssl_pkcs7_test_lib", + "name": "boringssl_refcount_test_lib", "src": [], "third_party": true, "type": "lib" @@ -6263,7 +6450,7 @@ "headers": [], "is_filegroup": false, "language": "c++", - "name": "boringssl_x509_test_lib", + "name": "boringssl_rsa_test_lib", "src": [], "third_party": true, "type": "lib" @@ -6276,7 +6463,7 @@ "headers": [], "is_filegroup": false, "language": "c", - "name": "boringssl_tab_test_lib", + "name": "boringssl_thread_test_lib", "src": [], "third_party": true, "type": "lib" @@ -6289,7 +6476,20 @@ "headers": [], "is_filegroup": false, "language": "c", - "name": "boringssl_v3name_test_lib", + "name": "boringssl_pkcs7_test_lib", + "src": [], + "third_party": true, + "type": "lib" + }, + { + "deps": [ + "boringssl", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c++", + "name": "boringssl_x509_test_lib", "src": [], "third_party": true, "type": "lib" @@ -6302,7 +6502,20 @@ "headers": [], "is_filegroup": false, "language": "c", - "name": "boringssl_pqueue_test_lib", + "name": "boringssl_tab_test_lib", + "src": [], + "third_party": true, + "type": "lib" + }, + { + "deps": [ + "boringssl", + "boringssl_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c", + "name": "boringssl_v3name_test_lib", "src": [], "third_party": true, "type": "lib" diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json index 1251932c256..1f40b8735af 100644 --- a/tools/run_tests/generated/tests.json +++ b/tools/run_tests/generated/tests.json @@ -3590,7 +3590,9 @@ ] }, { - "args": [], + "args": [ + "third_party/boringssl/crypto/bn/bn_tests.txt" + ], "boringssl": true, "ci_platforms": [ "linux", @@ -3637,6 +3639,30 @@ "windows" ] }, + { + "args": [], + "boringssl": true, + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "defaults": "boringssl", + "exclude_configs": [ + "asan" + ], + "flaky": false, + "language": "c++", + "name": "boringssl_chacha_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "args": [ "aes-128-gcm", @@ -3801,8 +3827,8 @@ }, { "args": [ - "rc4-md5-tls", - "third_party/boringssl/crypto/cipher/test/rc4_md5_tls_tests.txt" + "aes-128-cbc-sha1-tls", + "third_party/boringssl/crypto/cipher/test/aes_128_cbc_sha1_tls_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -3828,8 +3854,8 @@ }, { "args": [ - "rc4-sha1-tls", - "third_party/boringssl/crypto/cipher/test/rc4_sha1_tls_tests.txt" + "aes-128-cbc-sha1-tls-implicit-iv", + "third_party/boringssl/crypto/cipher/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -3855,8 +3881,8 @@ }, { "args": [ - "aes-128-cbc-sha1-tls", - "third_party/boringssl/crypto/cipher/test/aes_128_cbc_sha1_tls_tests.txt" + "aes-128-cbc-sha256-tls", + "third_party/boringssl/crypto/cipher/test/aes_128_cbc_sha256_tls_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -3882,8 +3908,8 @@ }, { "args": [ - "aes-128-cbc-sha1-tls-implicit-iv", - "third_party/boringssl/crypto/cipher/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt" + "aes-256-cbc-sha1-tls", + "third_party/boringssl/crypto/cipher/test/aes_256_cbc_sha1_tls_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -3909,8 +3935,8 @@ }, { "args": [ - "aes-128-cbc-sha256-tls", - "third_party/boringssl/crypto/cipher/test/aes_128_cbc_sha256_tls_tests.txt" + "aes-256-cbc-sha1-tls-implicit-iv", + "third_party/boringssl/crypto/cipher/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -3936,8 +3962,8 @@ }, { "args": [ - "aes-256-cbc-sha1-tls", - "third_party/boringssl/crypto/cipher/test/aes_256_cbc_sha1_tls_tests.txt" + "aes-256-cbc-sha256-tls", + "third_party/boringssl/crypto/cipher/test/aes_256_cbc_sha256_tls_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -3963,8 +3989,8 @@ }, { "args": [ - "aes-256-cbc-sha1-tls-implicit-iv", - "third_party/boringssl/crypto/cipher/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt" + "aes-256-cbc-sha384-tls", + "third_party/boringssl/crypto/cipher/test/aes_256_cbc_sha384_tls_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -3990,8 +4016,8 @@ }, { "args": [ - "aes-256-cbc-sha256-tls", - "third_party/boringssl/crypto/cipher/test/aes_256_cbc_sha256_tls_tests.txt" + "des-ede3-cbc-sha1-tls", + "third_party/boringssl/crypto/cipher/test/des_ede3_cbc_sha1_tls_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -4017,8 +4043,8 @@ }, { "args": [ - "aes-256-cbc-sha384-tls", - "third_party/boringssl/crypto/cipher/test/aes_256_cbc_sha384_tls_tests.txt" + "des-ede3-cbc-sha1-tls-implicit-iv", + "third_party/boringssl/crypto/cipher/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -4044,8 +4070,8 @@ }, { "args": [ - "des-ede3-cbc-sha1-tls", - "third_party/boringssl/crypto/cipher/test/des_ede3_cbc_sha1_tls_tests.txt" + "aes-128-cbc-sha1-ssl3", + "third_party/boringssl/crypto/cipher/test/aes_128_cbc_sha1_ssl3_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -4071,8 +4097,8 @@ }, { "args": [ - "des-ede3-cbc-sha1-tls-implicit-iv", - "third_party/boringssl/crypto/cipher/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt" + "aes-256-cbc-sha1-ssl3", + "third_party/boringssl/crypto/cipher/test/aes_256_cbc_sha1_ssl3_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -4098,8 +4124,8 @@ }, { "args": [ - "rc4-md5-ssl3", - "third_party/boringssl/crypto/cipher/test/rc4_md5_ssl3_tests.txt" + "des-ede3-cbc-sha1-ssl3", + "third_party/boringssl/crypto/cipher/test/des_ede3_cbc_sha1_ssl3_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -4125,8 +4151,8 @@ }, { "args": [ - "rc4-sha1-ssl3", - "third_party/boringssl/crypto/cipher/test/rc4_sha1_ssl3_tests.txt" + "aes-128-ctr-hmac-sha256", + "third_party/boringssl/crypto/cipher/test/aes_128_ctr_hmac_sha256.txt" ], "boringssl": true, "ci_platforms": [ @@ -4152,8 +4178,8 @@ }, { "args": [ - "aes-128-cbc-sha1-ssl3", - "third_party/boringssl/crypto/cipher/test/aes_128_cbc_sha1_ssl3_tests.txt" + "aes-256-ctr-hmac-sha256", + "third_party/boringssl/crypto/cipher/test/aes_256_ctr_hmac_sha256.txt" ], "boringssl": true, "ci_platforms": [ @@ -4179,8 +4205,7 @@ }, { "args": [ - "aes-256-cbc-sha1-ssl3", - "third_party/boringssl/crypto/cipher/test/aes_256_cbc_sha1_ssl3_tests.txt" + "third_party/boringssl/crypto/cipher/test/cipher_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -4196,7 +4221,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_aead_test", + "name": "boringssl_cipher_test", "platforms": [ "linux", "mac", @@ -4205,10 +4230,7 @@ ] }, { - "args": [ - "des-ede3-cbc-sha1-ssl3", - "third_party/boringssl/crypto/cipher/test/des_ede3_cbc_sha1_ssl3_tests.txt" - ], + "args": [], "boringssl": true, "ci_platforms": [ "linux", @@ -4223,7 +4245,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_aead_test", + "name": "boringssl_cmac_test", "platforms": [ "linux", "mac", @@ -4232,10 +4254,7 @@ ] }, { - "args": [ - "aes-128-ctr-hmac-sha256", - "third_party/boringssl/crypto/cipher/test/aes_128_ctr_hmac_sha256.txt" - ], + "args": [], "boringssl": true, "ci_platforms": [ "linux", @@ -4250,7 +4269,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_aead_test", + "name": "boringssl_constant_time_test", "platforms": [ "linux", "mac", @@ -4260,8 +4279,7 @@ }, { "args": [ - "aes-256-ctr-hmac-sha256", - "third_party/boringssl/crypto/cipher/test/aes_256_ctr_hmac_sha256.txt" + "third_party/boringssl/crypto/curve25519/ed25519_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -4277,7 +4295,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_aead_test", + "name": "boringssl_ed25519_test", "platforms": [ "linux", "mac", @@ -4286,9 +4304,7 @@ ] }, { - "args": [ - "third_party/boringssl/crypto/cipher/test/cipher_test.txt" - ], + "args": [], "boringssl": true, "ci_platforms": [ "linux", @@ -4303,7 +4319,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_cipher_test", + "name": "boringssl_x25519_test", "platforms": [ "linux", "mac", @@ -4327,7 +4343,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_cmac_test", + "name": "boringssl_spake25519_test", "platforms": [ "linux", "mac", @@ -4351,7 +4367,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_constant_time_test", + "name": "boringssl_dh_test", "platforms": [ "linux", "mac", @@ -4360,9 +4376,7 @@ ] }, { - "args": [ - "third_party/boringssl/crypto/curve25519/ed25519_tests.txt" - ], + "args": [], "boringssl": true, "ci_platforms": [ "linux", @@ -4377,7 +4391,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_ed25519_test", + "name": "boringssl_digest_test", "platforms": [ "linux", "mac", @@ -4401,7 +4415,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_x25519_test", + "name": "boringssl_dsa_test", "platforms": [ "linux", "mac", @@ -4425,7 +4439,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_dh_test", + "name": "boringssl_ec_test", "platforms": [ "linux", "mac", @@ -4449,7 +4463,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_digest_test", + "name": "boringssl_example_mul", "platforms": [ "linux", "mac", @@ -4458,7 +4472,9 @@ ] }, { - "args": [], + "args": [ + "third_party/boringssl/crypto/ecdh/ecdh_tests.txt" + ], "boringssl": true, "ci_platforms": [ "linux", @@ -4473,7 +4489,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_dsa_test", + "name": "boringssl_ecdh_test", "platforms": [ "linux", "mac", @@ -4482,7 +4498,9 @@ ] }, { - "args": [], + "args": [ + "third_party/boringssl/crypto/ecdsa/ecdsa_sign_tests.txt" + ], "boringssl": true, "ci_platforms": [ "linux", @@ -4497,7 +4515,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_ec_test", + "name": "boringssl_ecdsa_sign_test", "platforms": [ "linux", "mac", @@ -4521,7 +4539,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_example_mul", + "name": "boringssl_ecdsa_test", "platforms": [ "linux", "mac", @@ -4530,7 +4548,9 @@ ] }, { - "args": [], + "args": [ + "third_party/boringssl/crypto/ecdsa/ecdsa_verify_tests.txt" + ], "boringssl": true, "ci_platforms": [ "linux", @@ -4545,7 +4565,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_ecdsa_test", + "name": "boringssl_ecdsa_verify_test", "platforms": [ "linux", "mac", @@ -4765,7 +4785,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_pkcs8_test", + "name": "boringssl_newhope_test", "platforms": [ "linux", "mac", @@ -4789,7 +4809,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_pkcs12_test", + "name": "boringssl_newhope_statistical_test", "platforms": [ "linux", "mac", @@ -4799,7 +4819,7 @@ }, { "args": [ - "third_party/boringssl/crypto/poly1305/poly1305_test.txt" + "third_party/boringssl/crypto/newhope/newhope_tests.txt" ], "boringssl": true, "ci_platforms": [ @@ -4815,7 +4835,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_poly1305_test", + "name": "boringssl_newhope_vectors_test", "platforms": [ "linux", "mac", @@ -4839,7 +4859,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_refcount_test", + "name": "boringssl_obj_test", "platforms": [ "linux", "mac", @@ -4863,7 +4883,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_rsa_test", + "name": "boringssl_pkcs12_test", "platforms": [ "linux", "mac", @@ -4887,7 +4907,33 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_thread_test", + "name": "boringssl_pkcs8_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "args": [ + "third_party/boringssl/crypto/poly1305/poly1305_tests.txt" + ], + "boringssl": true, + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "defaults": "boringssl", + "exclude_configs": [ + "asan" + ], + "flaky": false, + "language": "c++", + "name": "boringssl_poly1305_test", "platforms": [ "linux", "mac", @@ -4911,7 +4957,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_pkcs7_test", + "name": "boringssl_refcount_test", "platforms": [ "linux", "mac", @@ -4935,7 +4981,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_x509_test", + "name": "boringssl_rsa_test", "platforms": [ "linux", "mac", @@ -4959,7 +5005,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_tab_test", + "name": "boringssl_thread_test", "platforms": [ "linux", "mac", @@ -4983,7 +5029,7 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_v3name_test", + "name": "boringssl_pkcs7_test", "platforms": [ "linux", "mac", @@ -5007,7 +5053,55 @@ ], "flaky": false, "language": "c++", - "name": "boringssl_pqueue_test", + "name": "boringssl_x509_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "args": [], + "boringssl": true, + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "defaults": "boringssl", + "exclude_configs": [ + "asan" + ], + "flaky": false, + "language": "c++", + "name": "boringssl_tab_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, + { + "args": [], + "boringssl": true, + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "defaults": "boringssl", + "exclude_configs": [ + "asan" + ], + "flaky": false, + "language": "c++", + "name": "boringssl_v3name_test", "platforms": [ "linux", "mac", diff --git a/vsprojects/vcxproj/boringssl/boringssl.vcxproj b/vsprojects/vcxproj/boringssl/boringssl.vcxproj index 59db775d799..a67b2c3a5d8 100644 --- a/vsprojects/vcxproj/boringssl/boringssl.vcxproj +++ b/vsprojects/vcxproj/boringssl/boringssl.vcxproj @@ -158,23 +158,22 @@ - - + + - - + @@ -220,10 +219,12 @@ + + - + @@ -231,9 +232,9 @@ - + @@ -250,10 +251,6 @@ - - - - @@ -266,8 +263,6 @@ - - @@ -304,10 +299,6 @@ - - - - @@ -316,8 +307,6 @@ - - @@ -326,8 +315,6 @@ - - @@ -386,6 +373,8 @@ + + @@ -408,9 +397,7 @@ - - - + @@ -440,14 +427,22 @@ + + + + + + + + @@ -464,10 +459,6 @@ - - - - @@ -504,8 +495,6 @@ - - @@ -526,6 +515,8 @@ + + @@ -552,6 +543,18 @@ + + + + + + + + + + + + @@ -586,6 +589,8 @@ + + @@ -634,6 +639,8 @@ + + @@ -644,6 +651,8 @@ + + @@ -792,36 +801,28 @@ - - - - - + - + - + - + - - - - @@ -848,6 +849,16 @@ + + + + + + + + + + diff --git a/vsprojects/vcxproj/boringssl/boringssl.vcxproj.filters b/vsprojects/vcxproj/boringssl/boringssl.vcxproj.filters index bd996bdc445..09aa067f785 100644 --- a/vsprojects/vcxproj/boringssl/boringssl.vcxproj.filters +++ b/vsprojects/vcxproj/boringssl/boringssl.vcxproj.filters @@ -16,9 +16,6 @@ third_party\boringssl\crypto\asn1 - - third_party\boringssl\crypto\asn1 - third_party\boringssl\crypto\asn1 @@ -73,12 +70,6 @@ third_party\boringssl\crypto\asn1 - - third_party\boringssl\crypto\asn1 - - - third_party\boringssl\crypto\asn1 - third_party\boringssl\crypto\asn1 @@ -91,9 +82,6 @@ third_party\boringssl\crypto\asn1 - - third_party\boringssl\crypto\asn1 - third_party\boringssl\crypto\asn1 @@ -106,9 +94,6 @@ third_party\boringssl\crypto\asn1 - - third_party\boringssl\crypto\asn1 - third_party\boringssl\crypto\asn1 @@ -196,6 +181,9 @@ third_party\boringssl\crypto\bn + + third_party\boringssl\crypto\bn + third_party\boringssl\crypto\bn @@ -229,10 +217,7 @@ third_party\boringssl\crypto\bytestring - - third_party\boringssl\crypto\chacha - - + third_party\boringssl\crypto\chacha @@ -277,18 +262,30 @@ third_party\boringssl\crypto\conf + + third_party\boringssl\crypto + + + third_party\boringssl\crypto + third_party\boringssl\crypto third_party\boringssl\crypto + + third_party\boringssl\crypto + third_party\boringssl\crypto third_party\boringssl\crypto\curve25519 + + third_party\boringssl\crypto\curve25519 + third_party\boringssl\crypto\curve25519 @@ -313,12 +310,6 @@ third_party\boringssl\crypto\digest - - third_party\boringssl\crypto - - - third_party\boringssl\crypto - third_party\boringssl\crypto\dsa @@ -373,9 +364,6 @@ third_party\boringssl\crypto\err - - third_party\boringssl\crypto\evp - third_party\boringssl\crypto\evp @@ -406,6 +394,9 @@ third_party\boringssl\crypto\evp + + third_party\boringssl\crypto\evp + third_party\boringssl\crypto\evp @@ -445,6 +436,24 @@ third_party\boringssl\crypto\modes + + third_party\boringssl\crypto\newhope + + + third_party\boringssl\crypto\newhope + + + third_party\boringssl\crypto\newhope + + + third_party\boringssl\crypto\newhope + + + third_party\boringssl\crypto\newhope + + + third_party\boringssl\crypto\newhope + third_party\boringssl\crypto\obj @@ -496,6 +505,9 @@ third_party\boringssl\crypto\poly1305 + + third_party\boringssl\crypto\rand + third_party\boringssl\crypto\rand @@ -568,6 +580,9 @@ third_party\boringssl\crypto\x509 + + third_party\boringssl\crypto\x509 + third_party\boringssl\crypto\x509 @@ -583,6 +598,9 @@ third_party\boringssl\crypto\x509 + + third_party\boringssl\crypto\x509 + third_party\boringssl\crypto\x509 @@ -805,34 +823,28 @@ third_party\boringssl\ssl - - third_party\boringssl\ssl - third_party\boringssl\ssl - - third_party\boringssl\ssl - third_party\boringssl\ssl third_party\boringssl\ssl - + third_party\boringssl\ssl third_party\boringssl\ssl - - third_party\boringssl\ssl\pqueue + + third_party\boringssl\ssl - + third_party\boringssl\ssl - + third_party\boringssl\ssl @@ -841,15 +853,9 @@ third_party\boringssl\ssl - - third_party\boringssl\ssl - third_party\boringssl\ssl - - third_party\boringssl\ssl - third_party\boringssl\ssl @@ -889,6 +895,21 @@ third_party\boringssl\ssl + + third_party\boringssl\ssl + + + third_party\boringssl\ssl + + + third_party\boringssl\ssl + + + third_party\boringssl\ssl + + + third_party\boringssl\ssl + third_party\boringssl\ssl @@ -927,18 +948,12 @@ third_party\boringssl\crypto\des - - third_party\boringssl\crypto\dh - third_party\boringssl\crypto\digest third_party\boringssl\crypto\digest - - third_party\boringssl\crypto - third_party\boringssl\crypto\ec @@ -954,6 +969,9 @@ third_party\boringssl\crypto\modes + + third_party\boringssl\crypto\newhope + third_party\boringssl\crypto\obj @@ -963,21 +981,21 @@ third_party\boringssl\crypto\pkcs8 + + third_party\boringssl\crypto\poly1305 + third_party\boringssl\crypto\rand third_party\boringssl\crypto\rsa - - third_party\boringssl\crypto\test - - - third_party\boringssl\crypto\test - third_party\boringssl\crypto\x509 + + third_party\boringssl\crypto\x509 + third_party\boringssl\crypto\x509 @@ -1113,6 +1131,12 @@ third_party\boringssl\include\openssl + + third_party\boringssl\include\openssl + + + third_party\boringssl\include\openssl + third_party\boringssl\include\openssl @@ -1122,7 +1146,7 @@ third_party\boringssl\include\openssl - + third_party\boringssl\include\openssl @@ -1146,15 +1170,15 @@ third_party\boringssl\include\openssl - - third_party\boringssl\include\openssl - third_party\boringssl\include\openssl third_party\boringssl\include\openssl + + third_party\boringssl\include\openssl + third_party\boringssl\include\openssl @@ -1203,18 +1227,6 @@ third_party\boringssl\ssl - - third_party\boringssl\ssl\test - - - third_party\boringssl\ssl\test - - - third_party\boringssl\ssl\test - - - third_party\boringssl\ssl\test - @@ -1320,6 +1332,9 @@ {63ca8fcd-7644-61d6-4357-5a0bcfdc395b} + + {2a39f7c3-62df-5021-0825-36f18f10ad12} + {59349deb-4276-df4c-f4cd-e2cf707c3b4c} @@ -1347,9 +1362,6 @@ {7b1c1e89-c813-5ccd-fa2a-dd1b187f8da9} - - {eec8fd39-7429-3d4d-be78-028791b4b927} - {74c9e47d-193b-84c0-95d9-4b33703b7890} @@ -1365,12 +1377,6 @@ {e6e8c0c0-1755-4978-209e-5429ee3a2f5f} - - {89eb7fc9-98ec-dee5-ea8c-f7d23760aa94} - - - {8dda7bd5-b246-84a4-20c9-c92101caeb48} - diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test/boringssl_pqueue_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_chacha_test/boringssl_chacha_test.vcxproj similarity index 97% rename from vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test/boringssl_pqueue_test.vcxproj rename to vsprojects/vcxproj/test/boringssl/boringssl_chacha_test/boringssl_chacha_test.vcxproj index 7c0189b6271..f8932983672 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test/boringssl_pqueue_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_chacha_test/boringssl_chacha_test.vcxproj @@ -20,7 +20,7 @@ - {CCAA2ACD-B171-6011-0646-93010DCF8BC5} + {0F12358C-9F7A-E3B5-23EC-250C29C9D3A2} true $(SolutionDir)IntDir\$(MSBuildProjectName)\ @@ -62,14 +62,14 @@ - boringssl_pqueue_test + boringssl_chacha_test static Debug static Debug - boringssl_pqueue_test + boringssl_chacha_test static Release static @@ -164,8 +164,8 @@ - - {D03600F9-540A-2691-69F6-3A1DC2874D24} + + {D15F1CF5-EC88-FDD5-55A0-CBE5DC8A9F29} {427037B1-B51B-D6F1-5025-AD12B200266A} diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test/boringssl_pqueue_test.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_chacha_test/boringssl_chacha_test.vcxproj.filters similarity index 100% rename from vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test/boringssl_pqueue_test.vcxproj.filters rename to vsprojects/vcxproj/test/boringssl/boringssl_chacha_test/boringssl_chacha_test.vcxproj.filters diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_chacha_test_lib/boringssl_chacha_test_lib.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_chacha_test_lib/boringssl_chacha_test_lib.vcxproj new file mode 100644 index 00000000000..3c4c382c56d --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_chacha_test_lib/boringssl_chacha_test_lib.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {D15F1CF5-EC88-FDD5-55A0-CBE5DC8A9F29} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + boringssl_chacha_test_lib + + + boringssl_chacha_test_lib + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + + + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_chacha_test_lib/boringssl_chacha_test_lib.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_chacha_test_lib/boringssl_chacha_test_lib.vcxproj.filters new file mode 100644 index 00000000000..5fb3e2fc495 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_chacha_test_lib/boringssl_chacha_test_lib.vcxproj.filters @@ -0,0 +1,24 @@ + + + + + third_party\boringssl\crypto\chacha + + + + + + {4b736811-6554-6004-024b-74e526459c17} + + + {256ad378-581e-bc4f-e018-f4a4e4098091} + + + {7e6857c0-cc2b-da3a-bdf7-cf9f82aba586} + + + {02432684-f62e-6b57-5847-af2e296fbbab} + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test/boringssl_ecdh_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test/boringssl_ecdh_test.vcxproj new file mode 100644 index 00000000000..cb85dd53829 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test/boringssl_ecdh_test.vcxproj @@ -0,0 +1,198 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8B7A464C-BC82-53A0-656A-0215D2BCE85D} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + boringssl_ecdh_test + static + Debug + static + Debug + + + boringssl_ecdh_test + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + + + + + {04FA7804-13C6-D0E4-144D-BD3736334565} + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test/boringssl_ecdh_test.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test/boringssl_ecdh_test.vcxproj.filters new file mode 100644 index 00000000000..00e4276f1d4 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test/boringssl_ecdh_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test_lib/boringssl_pqueue_test_lib.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test_lib/boringssl_ecdh_test_lib.vcxproj similarity index 97% rename from vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test_lib/boringssl_pqueue_test_lib.vcxproj rename to vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test_lib/boringssl_ecdh_test_lib.vcxproj index 12198c11495..22c033c57b2 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test_lib/boringssl_pqueue_test_lib.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test_lib/boringssl_ecdh_test_lib.vcxproj @@ -19,7 +19,7 @@ - {D03600F9-540A-2691-69F6-3A1DC2874D24} + {04FA7804-13C6-D0E4-144D-BD3736334565} true $(SolutionDir)IntDir\$(MSBuildProjectName)\ @@ -57,10 +57,10 @@ - boringssl_pqueue_test_lib + boringssl_ecdh_test_lib - boringssl_pqueue_test_lib + boringssl_ecdh_test_lib @@ -147,7 +147,7 @@ - + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test_lib/boringssl_ecdh_test_lib.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test_lib/boringssl_ecdh_test_lib.vcxproj.filters new file mode 100644 index 00000000000..51393f51907 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdh_test_lib/boringssl_ecdh_test_lib.vcxproj.filters @@ -0,0 +1,24 @@ + + + + + third_party\boringssl\crypto\ecdh + + + + + + {100930cd-7241-d92b-da6a-a84ea68e24bd} + + + {2f0bb152-1c3a-5f3a-7512-ca92fef36751} + + + {c004f731-666a-9d7d-c448-96a16069cbc4} + + + {74176a90-7b93-c871-7de7-0048a1a55076} + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test/boringssl_ecdsa_sign_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test/boringssl_ecdsa_sign_test.vcxproj new file mode 100644 index 00000000000..db7fc98af66 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test/boringssl_ecdsa_sign_test.vcxproj @@ -0,0 +1,198 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {B9368314-B4D2-DEB2-A448-26D327059447} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + boringssl_ecdsa_sign_test + static + Debug + static + Debug + + + boringssl_ecdsa_sign_test + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + + + + + {8F0F763A-31D1-6710-6286-FD91EAC75EDB} + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test/boringssl_ecdsa_sign_test.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test/boringssl_ecdsa_sign_test.vcxproj.filters new file mode 100644 index 00000000000..00e4276f1d4 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test/boringssl_ecdsa_sign_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test_lib/boringssl_ecdsa_sign_test_lib.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test_lib/boringssl_ecdsa_sign_test_lib.vcxproj new file mode 100644 index 00000000000..947dcddd949 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test_lib/boringssl_ecdsa_sign_test_lib.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8F0F763A-31D1-6710-6286-FD91EAC75EDB} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + boringssl_ecdsa_sign_test_lib + + + boringssl_ecdsa_sign_test_lib + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + + + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test_lib/boringssl_ecdsa_sign_test_lib.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test_lib/boringssl_ecdsa_sign_test_lib.vcxproj.filters new file mode 100644 index 00000000000..69fb20cc1bd --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_sign_test_lib/boringssl_ecdsa_sign_test_lib.vcxproj.filters @@ -0,0 +1,24 @@ + + + + + third_party\boringssl\crypto\ecdsa + + + + + + {2407663e-0b17-cfb0-0aaa-fe639ecda00a} + + + {9ad9cf54-8113-a6e1-0689-09b051b5acf9} + + + {8057866a-62e2-5309-70fa-f98800b682a8} + + + {76196bab-7843-c0ca-4f97-32c3336af99b} + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test/boringssl_ecdsa_verify_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test/boringssl_ecdsa_verify_test.vcxproj new file mode 100644 index 00000000000..ddf4b0c0227 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test/boringssl_ecdsa_verify_test.vcxproj @@ -0,0 +1,198 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {BF550763-A8E9-1C98-89C5-7A4A00364E06} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + boringssl_ecdsa_verify_test + static + Debug + static + Debug + + + boringssl_ecdsa_verify_test + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + + + + + {3F79C89D-E5CA-4C28-DE1C-27E0E1BFCA43} + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test/boringssl_ecdsa_verify_test.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test/boringssl_ecdsa_verify_test.vcxproj.filters new file mode 100644 index 00000000000..00e4276f1d4 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test/boringssl_ecdsa_verify_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test_lib/boringssl_ecdsa_verify_test_lib.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test_lib/boringssl_ecdsa_verify_test_lib.vcxproj new file mode 100644 index 00000000000..5287bbec92b --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test_lib/boringssl_ecdsa_verify_test_lib.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {3F79C89D-E5CA-4C28-DE1C-27E0E1BFCA43} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + boringssl_ecdsa_verify_test_lib + + + boringssl_ecdsa_verify_test_lib + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + + + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test_lib/boringssl_ecdsa_verify_test_lib.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test_lib/boringssl_ecdsa_verify_test_lib.vcxproj.filters new file mode 100644 index 00000000000..01169e3656b --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_verify_test_lib/boringssl_ecdsa_verify_test_lib.vcxproj.filters @@ -0,0 +1,24 @@ + + + + + third_party\boringssl\crypto\ecdsa + + + + + + {62c752a3-7d35-4a52-4e3e-af92d1ef7ae0} + + + {cf981be6-06c7-d75e-bb01-bdcf6cbac573} + + + {f4955fa6-0694-bb47-d2e7-59ee77f72e37} + + + {bc349ef0-99fd-5724-06c0-0c6f6e1f7b69} + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test_lib/boringssl_gcm_test_lib.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test_lib/boringssl_gcm_test_lib.vcxproj index 7b5ffa1ca10..8b3f5f49bc6 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test_lib/boringssl_gcm_test_lib.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test_lib/boringssl_gcm_test_lib.vcxproj @@ -147,7 +147,7 @@ - + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test_lib/boringssl_gcm_test_lib.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test_lib/boringssl_gcm_test_lib.vcxproj.filters index 7260136bd81..fbc3a077ecf 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test_lib/boringssl_gcm_test_lib.vcxproj.filters +++ b/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test_lib/boringssl_gcm_test_lib.vcxproj.filters @@ -1,7 +1,7 @@ - + third_party\boringssl\crypto\modes diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test/boringssl_newhope_statistical_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test/boringssl_newhope_statistical_test.vcxproj new file mode 100644 index 00000000000..f3dde154ade --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test/boringssl_newhope_statistical_test.vcxproj @@ -0,0 +1,198 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {2DFF4B39-A402-0C88-ACE5-58BD7E5F7686} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + boringssl_newhope_statistical_test + static + Debug + static + Debug + + + boringssl_newhope_statistical_test + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + + + + + {95B2444A-04E1-7F0A-049C-30099AA62E84} + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test/boringssl_newhope_statistical_test.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test/boringssl_newhope_statistical_test.vcxproj.filters new file mode 100644 index 00000000000..00e4276f1d4 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test/boringssl_newhope_statistical_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test_lib/boringssl_newhope_statistical_test_lib.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test_lib/boringssl_newhope_statistical_test_lib.vcxproj new file mode 100644 index 00000000000..c9cb80a4306 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test_lib/boringssl_newhope_statistical_test_lib.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {95B2444A-04E1-7F0A-049C-30099AA62E84} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + boringssl_newhope_statistical_test_lib + + + boringssl_newhope_statistical_test_lib + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + + + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test_lib/boringssl_newhope_statistical_test_lib.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test_lib/boringssl_newhope_statistical_test_lib.vcxproj.filters new file mode 100644 index 00000000000..95945c24671 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_statistical_test_lib/boringssl_newhope_statistical_test_lib.vcxproj.filters @@ -0,0 +1,24 @@ + + + + + third_party\boringssl\crypto\newhope + + + + + + {25a9ae19-5707-441e-6d97-13ff38322368} + + + {e6e1e1f9-31eb-463f-a882-01c72cbe7a6e} + + + {37a6d595-952d-a224-060b-ea246359d76a} + + + {e0473499-9b3e-c3c3-5463-4706bd005f6c} + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test/boringssl_newhope_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test/boringssl_newhope_test.vcxproj new file mode 100644 index 00000000000..7a085b638f1 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test/boringssl_newhope_test.vcxproj @@ -0,0 +1,198 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {105DF9D7-2B9F-501B-9FC4-C98BF16FC9D3} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + boringssl_newhope_test + static + Debug + static + Debug + + + boringssl_newhope_test + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + + + + + {2E791A00-9907-8B9A-D201-4E0C357A6BB3} + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test/boringssl_newhope_test.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test/boringssl_newhope_test.vcxproj.filters new file mode 100644 index 00000000000..00e4276f1d4 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test/boringssl_newhope_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test_lib/boringssl_newhope_test_lib.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test_lib/boringssl_newhope_test_lib.vcxproj new file mode 100644 index 00000000000..55046360614 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test_lib/boringssl_newhope_test_lib.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {2E791A00-9907-8B9A-D201-4E0C357A6BB3} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + boringssl_newhope_test_lib + + + boringssl_newhope_test_lib + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + + + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test_lib/boringssl_newhope_test_lib.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test_lib/boringssl_newhope_test_lib.vcxproj.filters new file mode 100644 index 00000000000..f2dc0e6a5bb --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_test_lib/boringssl_newhope_test_lib.vcxproj.filters @@ -0,0 +1,24 @@ + + + + + third_party\boringssl\crypto\newhope + + + + + + {f6eddde4-4559-9adb-797f-897631281a89} + + + {81b307de-7498-3465-2ad4-7b634bf4788a} + + + {af9d3e32-2f0f-f0f3-f63f-4a8bd7f07c46} + + + {ea48f773-5060-8693-62ef-f257ccd47b21} + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test/boringssl_newhope_vectors_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test/boringssl_newhope_vectors_test.vcxproj new file mode 100644 index 00000000000..505f7cf33a8 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test/boringssl_newhope_vectors_test.vcxproj @@ -0,0 +1,198 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {E4C140A1-B7A3-0D00-A02F-CC90C9972F00} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + boringssl_newhope_vectors_test + static + Debug + static + Debug + + + boringssl_newhope_vectors_test + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + + + + + {0993166D-33B9-2E51-B0A9-5035A9086A2E} + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test/boringssl_newhope_vectors_test.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test/boringssl_newhope_vectors_test.vcxproj.filters new file mode 100644 index 00000000000..00e4276f1d4 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test/boringssl_newhope_vectors_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test_lib/boringssl_newhope_vectors_test_lib.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test_lib/boringssl_newhope_vectors_test_lib.vcxproj new file mode 100644 index 00000000000..4f01ec4b706 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test_lib/boringssl_newhope_vectors_test_lib.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {0993166D-33B9-2E51-B0A9-5035A9086A2E} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + boringssl_newhope_vectors_test_lib + + + boringssl_newhope_vectors_test_lib + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + + + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test_lib/boringssl_newhope_vectors_test_lib.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test_lib/boringssl_newhope_vectors_test_lib.vcxproj.filters new file mode 100644 index 00000000000..27b208d3507 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_newhope_vectors_test_lib/boringssl_newhope_vectors_test_lib.vcxproj.filters @@ -0,0 +1,24 @@ + + + + + third_party\boringssl\crypto\newhope + + + + + + {678cf897-2d02-4bb5-1872-b6d6d61c528f} + + + {3cc5b2df-8409-e2e8-9504-748004a314f3} + + + {2a4fb92f-e756-007b-f6fc-d8f55fee6096} + + + {09155346-c8e7-ffdb-7791-4f623ac5d521} + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_obj_test/boringssl_obj_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_obj_test/boringssl_obj_test.vcxproj new file mode 100644 index 00000000000..188663cd253 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_obj_test/boringssl_obj_test.vcxproj @@ -0,0 +1,198 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {CAF4E45E-3BA1-0EFD-2551-F16B4E43D0AB} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + boringssl_obj_test + static + Debug + static + Debug + + + boringssl_obj_test + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + + + + + {9C5FF985-A7D0-185E-4982-8166BC8267EF} + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_obj_test/boringssl_obj_test.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_obj_test/boringssl_obj_test.vcxproj.filters new file mode 100644 index 00000000000..00e4276f1d4 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_obj_test/boringssl_obj_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_obj_test_lib/boringssl_obj_test_lib.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_obj_test_lib/boringssl_obj_test_lib.vcxproj new file mode 100644 index 00000000000..5cff5dc611a --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_obj_test_lib/boringssl_obj_test_lib.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {9C5FF985-A7D0-185E-4982-8166BC8267EF} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + boringssl_obj_test_lib + + + boringssl_obj_test_lib + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + + + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test_lib/boringssl_pqueue_test_lib.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_obj_test_lib/boringssl_obj_test_lib.vcxproj.filters similarity index 52% rename from vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test_lib/boringssl_pqueue_test_lib.vcxproj.filters rename to vsprojects/vcxproj/test/boringssl/boringssl_obj_test_lib/boringssl_obj_test_lib.vcxproj.filters index 50a19355fc4..e860a95a150 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test_lib/boringssl_pqueue_test_lib.vcxproj.filters +++ b/vsprojects/vcxproj/test/boringssl/boringssl_obj_test_lib/boringssl_obj_test_lib.vcxproj.filters @@ -1,23 +1,23 @@ - - third_party\boringssl\ssl\pqueue + + third_party\boringssl\crypto\obj - {5abc2e4b-4b3e-76f3-af5b-32b49bed5734} + {1e65df99-429c-84ab-e85c-2a74292dff99} - {ba7fa262-1d79-278b-6d33-494ef09bc0b0} + {f67c8934-df62-47c5-ab21-f2670e0624d4} - - {bbe38f66-e869-8d99-4ef8-a477041fda28} + + {a1c37911-be8c-bf36-9263-c4db89aa11dc} - - {c6deeb40-d424-ed7a-bcf9-8b33d62d603d} + + {26163139-0b8e-2ee1-11ac-7be64498bbab} diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test/boringssl_spake25519_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test/boringssl_spake25519_test.vcxproj new file mode 100644 index 00000000000..dd9022b2ac1 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test/boringssl_spake25519_test.vcxproj @@ -0,0 +1,198 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {6E1688D7-E3F2-8F4A-0748-8DEB832397A6} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + boringssl_spake25519_test + static + Debug + static + Debug + + + boringssl_spake25519_test + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Console + true + false + true + true + + + + + + + + + + {B5EDD577-C90C-F122-313E-6D9803E91FEB} + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test/boringssl_spake25519_test.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test/boringssl_spake25519_test.vcxproj.filters new file mode 100644 index 00000000000..00e4276f1d4 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test/boringssl_spake25519_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test_lib/boringssl_spake25519_test_lib.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test_lib/boringssl_spake25519_test_lib.vcxproj new file mode 100644 index 00000000000..f0347a48932 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test_lib/boringssl_spake25519_test_lib.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {B5EDD577-C90C-F122-313E-6D9803E91FEB} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + boringssl_spake25519_test_lib + + + boringssl_spake25519_test_lib + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + false + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + false + None + false + + + Windows + true + false + true + true + + + + + + + + + + {427037B1-B51B-D6F1-5025-AD12B200266A} + + + {9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test_lib/boringssl_spake25519_test_lib.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test_lib/boringssl_spake25519_test_lib.vcxproj.filters new file mode 100644 index 00000000000..a94780cf898 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_spake25519_test_lib/boringssl_spake25519_test_lib.vcxproj.filters @@ -0,0 +1,24 @@ + + + + + third_party\boringssl\crypto\curve25519 + + + + + + {88324f4e-8e00-0e8c-b6ab-d9406be0cccf} + + + {067bed6d-c308-8eee-2225-771546a4eb5c} + + + {08b844f4-9df6-ff01-d951-1c944f9e5b6b} + + + {2f6416cc-d016-dedd-4e2f-d0ebd4d78fdb} + + + + From 113b094c690bb3afd3d1d68034c7490b95b12998 Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 26 Jan 2017 15:40:05 -0800 Subject: [PATCH 28/56] typo --- BUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BUILD b/BUILD index 1b5a53f6d1f..5ef46e70df4 100644 --- a/BUILD +++ b/BUILD @@ -1122,7 +1122,7 @@ grpc_cc_library( "include/grpc++/completion_queue.h", "include/grpc++/create_channel.h", "include/grpc++/create_channel_posix.h", - "include/grpc++/ext/health_check_service_server_buieder_option.h", + "include/grpc++/ext/health_check_service_server_builder_option.h", "include/grpc++/generic/async_generic_service.h", "include/grpc++/generic/generic_stub.h", "include/grpc++/grpc++.h", From f0bf99ac41af04e0381ac256ac8e2c1a0f051965 Mon Sep 17 00:00:00 2001 From: yang-g Date: Mon, 30 Jan 2017 10:27:01 -0800 Subject: [PATCH 29/56] test --- third_party/boringssl | 2 +- third_party/gflags | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/third_party/boringssl b/third_party/boringssl index c880e42ba1c..78684e5b222 160000 --- a/third_party/boringssl +++ b/third_party/boringssl @@ -1 +1 @@ -Subproject commit c880e42ba1c8032d4cdde2aba0541d8a9d9fa2e9 +Subproject commit 78684e5b222645828ca302e56b40b9daff2b2d27 diff --git a/third_party/gflags b/third_party/gflags index 05b155ff591..f8a0efe03aa 160000 --- a/third_party/gflags +++ b/third_party/gflags @@ -1 +1 @@ -Subproject commit 05b155ff59114735ec8cd089f669c4c3d8f59029 +Subproject commit f8a0efe03aa69b3336d8e228b37d4ccb17324b88 From 1e19b8d3e7a29a39fd4c5359cc99c941179be7f3 Mon Sep 17 00:00:00 2001 From: yang-g Date: Mon, 30 Jan 2017 10:48:59 -0800 Subject: [PATCH 30/56] Update for API change --- src/cpp/server/server_cc.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index dec4551b101..69e491dc96b 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -779,9 +779,7 @@ Server::UnimplementedAsyncResponse::UnimplementedAsyncResponse( bool Server::HealthCheckAsyncRequest::FinalizeResult(void** tag, bool* status) { bool serialization_status = *status && payload_ && - SerializationTraits::Deserialize( - payload_, &request_, server_->max_receive_message_size()) - .ok(); + SerializationTraits::Deserialize(payload_, &request_).ok(); RegisteredAsyncRequest::FinalizeResult(tag, status); *status = serialization_status && *status; if (*status) { From 076bac017b200accb8071e569b471f118fc3ba32 Mon Sep 17 00:00:00 2001 From: yang-g Date: Tue, 7 Feb 2017 13:50:36 -0800 Subject: [PATCH 31/56] Remove async --- .../grpc++/impl/codegen/server_interface.h | 7 +- include/grpc++/server.h | 4 - .../health/default_health_check_service.cc | 17 +-- .../health/default_health_check_service.h | 11 +- src/cpp/server/server_cc.cc | 140 ++---------------- .../end2end/health_service_end2end_test.cc | 11 +- 6 files changed, 28 insertions(+), 162 deletions(-) diff --git a/include/grpc++/impl/codegen/server_interface.h b/include/grpc++/impl/codegen/server_interface.h index 785568f19a1..bd1b36e8839 100644 --- a/include/grpc++/impl/codegen/server_interface.h +++ b/include/grpc++/impl/codegen/server_interface.h @@ -158,8 +158,7 @@ class ServerInterface : public CallHook { public: RegisteredAsyncRequest(ServerInterface* server, ServerContext* context, ServerAsyncStreamingInterface* stream, - CompletionQueue* call_cq, void* tag, - bool delete_on_finalize); + CompletionQueue* call_cq, void* tag); // uses BaseAsyncRequest::FinalizeResult @@ -175,7 +174,7 @@ class ServerInterface : public CallHook { ServerAsyncStreamingInterface* stream, CompletionQueue* call_cq, ServerCompletionQueue* notification_cq, void* tag) - : RegisteredAsyncRequest(server, context, stream, call_cq, tag, true) { + : RegisteredAsyncRequest(server, context, stream, call_cq, tag) { IssueRequest(registered_method, nullptr, notification_cq); } @@ -191,7 +190,7 @@ class ServerInterface : public CallHook { CompletionQueue* call_cq, ServerCompletionQueue* notification_cq, void* tag, Message* request) - : RegisteredAsyncRequest(server, context, stream, call_cq, tag, true), + : RegisteredAsyncRequest(server, context, stream, call_cq, tag), request_(request) { IssueRequest(registered_method, &payload_, notification_cq); } diff --git a/include/grpc++/server.h b/include/grpc++/server.h index 3f205625ee7..e3e9174c9c2 100644 --- a/include/grpc++/server.h +++ b/include/grpc++/server.h @@ -119,10 +119,6 @@ class Server final : public ServerInterface, private GrpcLibraryCodegen { class UnimplementedAsyncRequest; class UnimplementedAsyncResponse; - class HealthCheckAsyncRequestContext; - class HealthCheckAsyncRequest; - class HealthCheckAsyncResponse; - /// Server constructors. To be used by \a ServerBuilder only. /// /// \param max_message_size Maximum message length that the channel can diff --git a/src/cpp/server/health/default_health_check_service.cc b/src/cpp/server/health/default_health_check_service.cc index 9743bd5775e..46def70e8a3 100644 --- a/src/cpp/server/health/default_health_check_service.cc +++ b/src/cpp/server/health/default_health_check_service.cc @@ -49,14 +49,11 @@ const char kHealthCheckMethodName[] = "/grpc.health.v1.Health/Check"; } // namespace DefaultHealthCheckService::HealthCheckServiceImpl::HealthCheckServiceImpl( - DefaultHealthCheckService* service, bool sync) - : service_(service), method_(nullptr), sync_(sync) { - MethodHandler* handler = nullptr; - if (sync_) { - handler = - new RpcMethodHandler( - std::mem_fn(&HealthCheckServiceImpl::Check), this); - } + DefaultHealthCheckService* service) + : service_(service), method_(nullptr) { + MethodHandler* handler = + new RpcMethodHandler( + std::mem_fn(&HealthCheckServiceImpl::Check), this); method_ = new RpcServiceMethod(kHealthCheckMethodName, RpcMethod::NORMAL_RPC, handler); AddMethod(method_); @@ -160,9 +157,9 @@ DefaultHealthCheckService::GetServingStatus( } DefaultHealthCheckService::HealthCheckServiceImpl* -DefaultHealthCheckService::GetHealthCheckService(bool sync) { +DefaultHealthCheckService::GetHealthCheckService() { GPR_ASSERT(impl_ == nullptr); - impl_.reset(new HealthCheckServiceImpl(this, sync)); + impl_.reset(new HealthCheckServiceImpl(this)); return impl_.get(); } diff --git a/src/cpp/server/health/default_health_check_service.h b/src/cpp/server/health/default_health_check_service.h index 1ecb0a2ba94..5c0e2303423 100644 --- a/src/cpp/server/health/default_health_check_service.h +++ b/src/cpp/server/health/default_health_check_service.h @@ -49,21 +49,14 @@ class DefaultHealthCheckService final : public HealthCheckServiceInterface { // The service impl to register with the server. class HealthCheckServiceImpl : public Service { public: - HealthCheckServiceImpl(DefaultHealthCheckService* service, bool sync); + explicit HealthCheckServiceImpl(DefaultHealthCheckService* service); Status Check(ServerContext* context, const ByteBuffer* request, ByteBuffer* response); - bool sync() { return sync_; } - - // This is only useful for the async mode. It should be called after - // RegisterService returns. - void* server_tag() const { return method_->server_tag(); } - private: const DefaultHealthCheckService* const service_; RpcServiceMethod* method_; - const bool sync_; }; DefaultHealthCheckService(); @@ -72,7 +65,7 @@ class DefaultHealthCheckService final : public HealthCheckServiceInterface { void SetServingStatus(bool serving) override; enum ServingStatus { NOT_FOUND, SERVING, NOT_SERVING }; ServingStatus GetServingStatus(const grpc::string& service_name) const; - HealthCheckServiceImpl* GetHealthCheckService(bool sync); + HealthCheckServiceImpl* GetHealthCheckService(); private: mutable std::mutex mu_; diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index 69e491dc96b..c377297ec00 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -119,79 +119,6 @@ class Server::UnimplementedAsyncResponse final UnimplementedAsyncRequest* const request_; }; -// This is a dummy implementation of the interface so that -// HealthCheckAsyncRequest can get Call from RegisteredAsyncRequest. It does not -// do any reading or writing. -class HealthCheckAsyncResponseWriter final - : public ServerAsyncStreamingInterface { - public: - HealthCheckAsyncResponseWriter() : call_(nullptr, nullptr, nullptr) {} - void SendInitialMetadata(void* tag) override { - abort(); // should not be called. - } - void BindCall(Call* call) override { call_ = *call; } - Call* call() { return &call_; } - - private: - Call call_; -}; - -class Server::HealthCheckAsyncRequestContext { - protected: - ServerContext server_context_; - HealthCheckAsyncResponseWriter rpc_; -}; - -class Server::HealthCheckAsyncRequest final - : public HealthCheckAsyncRequestContext, - public RegisteredAsyncRequest { - public: - HealthCheckAsyncRequest( - DefaultHealthCheckService::HealthCheckServiceImpl* service, - Server* server, ServerCompletionQueue* cq) - : RegisteredAsyncRequest(server, &server_context_, &rpc_, cq, this, - false), - service_(service), - server_(server), - cq_(cq) { - IssueRequest(service->server_tag(), &payload_, cq); - } - - bool FinalizeResult(void** tag, bool* status) override; - Call* call() { return rpc_.call(); } - ByteBuffer* response() { return &response_; } - Status* status() { return &status_; } - ServerContext* server_context() { return &server_context_; } - - private: - DefaultHealthCheckService::HealthCheckServiceImpl* service_; - Server* const server_; - ServerCompletionQueue* const cq_; - grpc_byte_buffer* payload_; - ByteBuffer request_; - ByteBuffer response_; - Status status_; -}; - -typedef SneakyCallOpSet - HealthCheckAsyncResponseOp; -class Server::HealthCheckAsyncResponse final - : public HealthCheckAsyncResponseOp { - public: - HealthCheckAsyncResponse(HealthCheckAsyncRequest* request); - ~HealthCheckAsyncResponse() { delete request_; } - - bool FinalizeResult(void** tag, bool* status) override { - HealthCheckAsyncResponseOp::FinalizeResult(tag, status); - delete this; - return false; - } - - private: - HealthCheckAsyncRequest* const request_; -}; - class ShutdownTag : public CompletionQueueTag { public: bool FinalizeResult(void** tag, bool* status) { return false; } @@ -572,14 +499,16 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { // Only create default health check service when user did not provide an // explicit one. - DefaultHealthCheckService::HealthCheckServiceImpl* health_service = nullptr; if (health_check_service_ == nullptr && !health_check_service_disabled_ && DefaultHealthCheckServiceEnabled()) { - auto* default_hc_service = new DefaultHealthCheckService; - health_check_service_.reset(default_hc_service); - health_service = - default_hc_service->GetHealthCheckService(!sync_server_cqs_->empty()); - RegisterService(nullptr, health_service); + if (sync_server_cqs_->empty()) { + gpr_log(GPR_ERROR, + "Default health check service disabled at async-only server."); + } else { + auto* default_hc_service = new DefaultHealthCheckService; + health_check_service_.reset(default_hc_service); + RegisterService(nullptr, default_hc_service->GetHealthCheckService()); + } } grpc_server_start(server_); @@ -596,14 +525,6 @@ bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) { } } - if (health_service && !health_service->sync()) { - for (size_t i = 0; i < num_cqs; i++) { - if (cqs[i]->IsFrequentlyPolled()) { - new HealthCheckAsyncRequest(health_service, this, cqs[i]); - } - } - } - for (auto it = sync_req_mgrs_.begin(); it != sync_req_mgrs_.end(); it++) { (*it)->Start(); } @@ -715,10 +636,8 @@ bool ServerInterface::BaseAsyncRequest::FinalizeResult(void** tag, ServerInterface::RegisteredAsyncRequest::RegisteredAsyncRequest( ServerInterface* server, ServerContext* context, - ServerAsyncStreamingInterface* stream, CompletionQueue* call_cq, void* tag, - bool delete_on_finalize) - : BaseAsyncRequest(server, context, stream, call_cq, tag, - delete_on_finalize) {} + ServerAsyncStreamingInterface* stream, CompletionQueue* call_cq, void* tag) + : BaseAsyncRequest(server, context, stream, call_cq, tag, true) {} void ServerInterface::RegisteredAsyncRequest::IssueRequest( void* registered_method, grpc_byte_buffer** payload, @@ -776,45 +695,6 @@ Server::UnimplementedAsyncResponse::UnimplementedAsyncResponse( request_->stream()->call_.PerformOps(this); } -bool Server::HealthCheckAsyncRequest::FinalizeResult(void** tag, bool* status) { - bool serialization_status = - *status && payload_ && - SerializationTraits::Deserialize(payload_, &request_).ok(); - RegisteredAsyncRequest::FinalizeResult(tag, status); - *status = serialization_status && *status; - if (*status) { - new HealthCheckAsyncRequest(service_, server_, cq_); - status_ = service_->Check(&server_context_, &request_, &response_); - new HealthCheckAsyncResponse(this); - return false; - } else { - delete this; - return false; - } -} - -Server::HealthCheckAsyncResponse::HealthCheckAsyncResponse( - HealthCheckAsyncRequest* request) - : request_(request) { - ServerContext* context = request_->server_context(); - if (!context->sent_initial_metadata_) { - SendInitialMetadata(context->initial_metadata_, - context->initial_metadata_flags()); - if (context->compression_level_set()) { - set_compression_level(context->compression_level()); - } - context->sent_initial_metadata_ = true; - } - Status* status = request_->status(); - if (status->ok()) { - ServerSendStatus(context->trailing_metadata_, - SendMessage(*request_->response())); - } else { - ServerSendStatus(context->trailing_metadata_, *status); - } - request_->call()->PerformOps(this); -} - ServerInitializer* Server::initializer() { return server_initializer_.get(); } } // namespace grpc diff --git a/test/cpp/end2end/health_service_end2end_test.cc b/test/cpp/end2end/health_service_end2end_test.cc index 8a6a9886c9a..3d510078570 100644 --- a/test/cpp/end2end/health_service_end2end_test.cc +++ b/test/cpp/end2end/health_service_end2end_test.cc @@ -273,12 +273,13 @@ TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceAsyncOnly) { SetUpServer(false, true, false, nullptr); cq_thread_ = std::thread(LoopCompletionQueue, cq_.get()); - VerifyHealthCheckService(); + HealthCheckServiceInterface* default_service = + server_->GetHealthCheckService(); + EXPECT_TRUE(default_service == nullptr); - // The default service has a size limit of the service name. - const grpc::string kTooLongServiceName(201, 'x'); - SendHealthCheckRpc(kTooLongServiceName, - Status(StatusCode::INVALID_ARGUMENT, "")); + ResetStubs(); + + SendHealthCheckRpc("", Status(StatusCode::UNIMPLEMENTED, "")); } // Provide an empty service to disable the default service. From 87b10b652ffbd42a78756f7c7ce24c9c4af28f43 Mon Sep 17 00:00:00 2001 From: Leonardo Saraiva Date: Wed, 15 Feb 2017 14:50:05 -0200 Subject: [PATCH 32/56] Fix class name on documentation --- src/ruby/lib/grpc/generic/client_stub.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ruby/lib/grpc/generic/client_stub.rb b/src/ruby/lib/grpc/generic/client_stub.rb index 6934257cbc0..d8de0beefb1 100644 --- a/src/ruby/lib/grpc/generic/client_stub.rb +++ b/src/ruby/lib/grpc/generic/client_stub.rb @@ -84,7 +84,7 @@ module GRPC # channel: # # - :channel_override - # when present, this must be a pre-created GRPC::Channel. If it's + # when present, this must be a pre-created GRPC::Core::Channel. If it's # present the host and arbitrary keyword arg areignored, and the RPC # connection uses this channel. # From 6da1e85255b921b88f0ff9a21edcbbd739c6044a Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 16 Feb 2017 10:34:06 -0800 Subject: [PATCH 33/56] Contain the links for the pending handshake managers inside handshake_manager --- .../transport/chttp2/server/chttp2_server.c | 57 +++---------------- src/core/lib/channel/handshaker.c | 37 ++++++++++++ src/core/lib/channel/handshaker.h | 16 ++++++ 3 files changed, 61 insertions(+), 49 deletions(-) diff --git a/src/core/ext/transport/chttp2/server/chttp2_server.c b/src/core/ext/transport/chttp2/server/chttp2_server.c index ae2c3838ed9..0fc180d52f1 100644 --- a/src/core/ext/transport/chttp2/server/chttp2_server.c +++ b/src/core/ext/transport/chttp2/server/chttp2_server.c @@ -55,11 +55,6 @@ #include "src/core/lib/surface/api_trace.h" #include "src/core/lib/surface/server.h" -typedef struct pending_handshake_manager_node { - grpc_handshake_manager *handshake_mgr; - struct pending_handshake_manager_node *next; -} pending_handshake_manager_node; - typedef struct { grpc_server *server; grpc_tcp_server *tcp_server; @@ -68,7 +63,7 @@ typedef struct { bool shutdown; grpc_closure tcp_server_shutdown_complete; grpc_closure *server_destroy_listener_done; - pending_handshake_manager_node *pending_handshake_mgrs; + grpc_handshake_manager *pending_handshake_mgrs; } server_state; typedef struct { @@ -78,44 +73,6 @@ typedef struct { grpc_handshake_manager *handshake_mgr; } server_connection_state; -static void pending_handshake_manager_add_locked( - server_state *state, grpc_handshake_manager *handshake_mgr) { - pending_handshake_manager_node *node = gpr_malloc(sizeof(*node)); - node->handshake_mgr = handshake_mgr; - node->next = state->pending_handshake_mgrs; - state->pending_handshake_mgrs = node; -} - -static void pending_handshake_manager_remove_locked( - server_state *state, grpc_handshake_manager *handshake_mgr) { - pending_handshake_manager_node **prev_node = &state->pending_handshake_mgrs; - for (pending_handshake_manager_node *node = state->pending_handshake_mgrs; - node != NULL; node = node->next) { - if (node->handshake_mgr == handshake_mgr) { - *prev_node = node->next; - gpr_free(node); - break; - } - prev_node = &node->next; - } -} - -static void pending_handshake_manager_shutdown_locked(grpc_exec_ctx *exec_ctx, - server_state *state, - grpc_error *why) { - pending_handshake_manager_node *prev_node = NULL; - for (pending_handshake_manager_node *node = state->pending_handshake_mgrs; - node != NULL; node = node->next) { - grpc_handshake_manager_shutdown(exec_ctx, node->handshake_mgr, - GRPC_ERROR_REF(why)); - gpr_free(prev_node); - prev_node = node; - } - gpr_free(prev_node); - state->pending_handshake_mgrs = NULL; - GRPC_ERROR_UNREF(why); -} - static void on_handshake_done(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) { grpc_handshaker_args *args = arg; @@ -153,8 +110,9 @@ static void on_handshake_done(grpc_exec_ctx *exec_ctx, void *arg, grpc_channel_args_destroy(exec_ctx, args->args); } } - pending_handshake_manager_remove_locked(connection_state->server_state, - connection_state->handshake_mgr); + grpc_handshake_manager_pending_list_remove( + &connection_state->server_state->pending_handshake_mgrs, + connection_state->handshake_mgr); gpr_mu_unlock(&connection_state->server_state->mu); grpc_handshake_manager_destroy(exec_ctx, connection_state->handshake_mgr); grpc_tcp_server_unref(exec_ctx, connection_state->server_state->tcp_server); @@ -174,7 +132,8 @@ static void on_accept(grpc_exec_ctx *exec_ctx, void *arg, grpc_endpoint *tcp, return; } grpc_handshake_manager *handshake_mgr = grpc_handshake_manager_create(); - pending_handshake_manager_add_locked(state, handshake_mgr); + grpc_handshake_manager_pending_list_add(&state->pending_handshake_mgrs, + handshake_mgr); gpr_mu_unlock(&state->mu); grpc_tcp_server_ref(state->tcp_server); server_connection_state *connection_state = @@ -213,8 +172,8 @@ static void tcp_server_shutdown_complete(grpc_exec_ctx *exec_ctx, void *arg, gpr_mu_lock(&state->mu); grpc_closure *destroy_done = state->server_destroy_listener_done; GPR_ASSERT(state->shutdown); - pending_handshake_manager_shutdown_locked(exec_ctx, state, - GRPC_ERROR_REF(error)); + grpc_handshake_manager_pending_list_shutdown_all( + exec_ctx, state->pending_handshake_mgrs, GRPC_ERROR_REF(error)); gpr_mu_unlock(&state->mu); // Flush queued work before destroying handshaker factory, since that // may do a synchronous unref. diff --git a/src/core/lib/channel/handshaker.c b/src/core/lib/channel/handshaker.c index 5bed2d041d8..82c361c7ef6 100644 --- a/src/core/lib/channel/handshaker.c +++ b/src/core/lib/channel/handshaker.c @@ -92,6 +92,10 @@ struct grpc_handshake_manager { void* user_data; // Handshaker args. grpc_handshaker_args args; + // Links to the previous and next managers in a list of all pending handshakes + // Used at server side only. + grpc_handshake_manager* prev; + grpc_handshake_manager* next; }; grpc_handshake_manager* grpc_handshake_manager_create() { @@ -102,6 +106,39 @@ grpc_handshake_manager* grpc_handshake_manager_create() { return mgr; } +void grpc_handshake_manager_pending_list_add(grpc_handshake_manager** head, + grpc_handshake_manager* mgr) { + GPR_ASSERT(mgr->prev == NULL); + GPR_ASSERT(mgr->next == NULL); + mgr->next = *head; + if (*head) { + (*head)->prev = mgr; + } + *head = mgr; +} + +void grpc_handshake_manager_pending_list_remove(grpc_handshake_manager** head, + grpc_handshake_manager* mgr) { + if (mgr->next != NULL) { + mgr->next->prev = mgr->prev; + } + if (mgr->prev != NULL) { + mgr->prev->next = mgr->next; + } else { + GPR_ASSERT(*head == mgr); + *head = mgr->next; + } +} + +void grpc_handshake_manager_pending_list_shutdown_all( + grpc_exec_ctx* exec_ctx, grpc_handshake_manager* head, grpc_error* why) { + while (head != NULL) { + grpc_handshake_manager_shutdown(exec_ctx, head, GRPC_ERROR_REF(why)); + head = head->next; + } + GRPC_ERROR_UNREF(why); +} + static bool is_power_of_2(size_t n) { return (n & (n - 1)) == 0; } void grpc_handshake_manager_add(grpc_handshake_manager* mgr, diff --git a/src/core/lib/channel/handshaker.h b/src/core/lib/channel/handshaker.h index a8e3692add4..5f97c3fc736 100644 --- a/src/core/lib/channel/handshaker.h +++ b/src/core/lib/channel/handshaker.h @@ -163,4 +163,20 @@ void grpc_handshake_manager_do_handshake( gpr_timespec deadline, grpc_tcp_server_acceptor* acceptor, grpc_iomgr_cb_func on_handshake_done, void* user_data); +/// Add \a mgr to the server side list of all pending handshake managers, the +/// list starts with \a *head. +// Not thread-safe. Caller needs to synchronize. +void grpc_handshake_manager_pending_list_add(grpc_handshake_manager** head, + grpc_handshake_manager* mgr); + +/// Remove \a mgr from the server side list of all pending handshake managers. +// Not thread-safe. Caller needs to synchronize. +void grpc_handshake_manager_pending_list_remove(grpc_handshake_manager** head, + grpc_handshake_manager* mgr); + +/// Shutdown all pending handshake managers on the server side. +// Not thread-safe. Caller needs to synchronize. +void grpc_handshake_manager_pending_list_shutdown_all( + grpc_exec_ctx* exec_ctx, grpc_handshake_manager* head, grpc_error* why); + #endif /* GRPC_CORE_LIB_CHANNEL_HANDSHAKER_H */ From 6a5c83d4dea710463c59b972170c7fb0d71fab35 Mon Sep 17 00:00:00 2001 From: Stanley Cheung Date: Thu, 16 Feb 2017 12:25:32 -0800 Subject: [PATCH 34/56] PHP: add macro for arg info in extension --- src/php/ext/grpc/call.c | 52 +++++++++++++++----- src/php/ext/grpc/call_credentials.c | 13 ++++- src/php/ext/grpc/channel.c | 35 +++++++++++-- src/php/ext/grpc/channel_credentials.c | 31 ++++++++++-- src/php/ext/grpc/server.c | 36 +++++++++++--- src/php/ext/grpc/server_credentials.c | 8 ++- src/php/ext/grpc/timeval.c | 68 ++++++++++++++++++++++---- 7 files changed, 201 insertions(+), 42 deletions(-) diff --git a/src/php/ext/grpc/call.c b/src/php/ext/grpc/call.c index be071903d03..48a374fa08e 100644 --- a/src/php/ext/grpc/call.c +++ b/src/php/ext/grpc/call.c @@ -104,7 +104,8 @@ zval *grpc_parse_metadata_array(grpc_metadata_array str_key = ecalloc(key_len + 1, sizeof(char)); memcpy(str_key, GRPC_SLICE_START_PTR(elem->key), key_len); str_val = ecalloc(GRPC_SLICE_LENGTH(elem->value) + 1, sizeof(char)); - memcpy(str_val, GRPC_SLICE_START_PTR(elem->value), GRPC_SLICE_LENGTH(elem->value)); + memcpy(str_val, GRPC_SLICE_START_PTR(elem->value), + GRPC_SLICE_LENGTH(elem->value)); if (php_grpc_zend_hash_find(array_hash, str_key, key_len, (void **)&data) == SUCCESS) { if (Z_TYPE_P(data) != IS_ARRAY) { @@ -115,7 +116,8 @@ zval *grpc_parse_metadata_array(grpc_metadata_array efree(str_val); return NULL; } - php_grpc_add_next_index_stringl(data, str_val, GRPC_SLICE_LENGTH(elem->value), + php_grpc_add_next_index_stringl(data, str_val, + GRPC_SLICE_LENGTH(elem->value), false); } else { PHP_GRPC_MAKE_STD_ZVAL(inner_array); @@ -172,8 +174,10 @@ bool create_metadata_array(zval *array, grpc_metadata_array *metadata) { if (Z_TYPE_P(value) != IS_STRING) { return false; } - metadata->metadata[metadata->count].key = grpc_slice_from_copied_string(key1); - metadata->metadata[metadata->count].value = grpc_slice_from_copied_buffer(Z_STRVAL_P(value), Z_STRLEN_P(value)); + metadata->metadata[metadata->count].key = + grpc_slice_from_copied_string(key1); + metadata->metadata[metadata->count].value = + grpc_slice_from_copied_buffer(Z_STRVAL_P(value), Z_STRLEN_P(value)); metadata->count += 1; PHP_GRPC_HASH_FOREACH_END() PHP_GRPC_HASH_FOREACH_END() @@ -233,7 +237,8 @@ PHP_METHOD(Call, __construct) { grpc_slice_from_copied_string(host_override) : grpc_empty_slice(); call->wrapped = grpc_channel_create_call(channel->wrapped, NULL, GRPC_PROPAGATE_DEFAULTS, - completion_queue, method_slice, host_override != NULL ? &host_slice : NULL, + completion_queue, method_slice, + host_override != NULL ? &host_slice : NULL, deadline->wrapped, NULL); grpc_slice_unref(method_slice); grpc_slice_unref(host_slice); @@ -384,8 +389,10 @@ PHP_METHOD(Call, startBatch) { 1 TSRMLS_CC); goto cleanup; } - send_status_details = grpc_slice_from_copied_string(Z_STRVAL_P(inner_value)); - ops[op_num].data.send_status_from_server.status_details = &send_status_details; + send_status_details = grpc_slice_from_copied_string( + Z_STRVAL_P(inner_value)); + ops[op_num].data.send_status_from_server.status_details = + &send_status_details; } else { zend_throw_exception(spl_ce_InvalidArgumentException, "String status details is required", @@ -557,12 +564,33 @@ PHP_METHOD(Call, setCredentials) { RETURN_LONG(error); } +ZEND_BEGIN_ARG_INFO_EX(arginfo_construct, 0, 0, 3) + ZEND_ARG_INFO(0, channel) + ZEND_ARG_INFO(0, method) + ZEND_ARG_INFO(0, deadline) + ZEND_ARG_INFO(0, host_override) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_startBatch, 0, 0, 1) + ZEND_ARG_INFO(0, ops) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_getPeer, 0, 0, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_cancel, 0, 0, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_setCredentials, 0, 0, 1) + ZEND_ARG_INFO(0, credentials) +ZEND_END_ARG_INFO() + static zend_function_entry call_methods[] = { - PHP_ME(Call, __construct, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) - PHP_ME(Call, startBatch, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Call, getPeer, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Call, cancel, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Call, setCredentials, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Call, __construct, arginfo_construct, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) + PHP_ME(Call, startBatch, arginfo_startBatch, ZEND_ACC_PUBLIC) + PHP_ME(Call, getPeer, arginfo_getPeer, ZEND_ACC_PUBLIC) + PHP_ME(Call, cancel, arginfo_cancel, ZEND_ACC_PUBLIC) + PHP_ME(Call, setCredentials, arginfo_setCredentials, ZEND_ACC_PUBLIC) PHP_FE_END }; diff --git a/src/php/ext/grpc/call_credentials.c b/src/php/ext/grpc/call_credentials.c index 043817facd1..625c0c62ae3 100644 --- a/src/php/ext/grpc/call_credentials.c +++ b/src/php/ext/grpc/call_credentials.c @@ -212,10 +212,19 @@ void plugin_destroy_state(void *ptr) { efree(state); } +ZEND_BEGIN_ARG_INFO_EX(arginfo_createComposite, 0, 0, 2) + ZEND_ARG_INFO(0, creds1) + ZEND_ARG_INFO(0, creds2) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_createFromPlugin, 0, 0, 1) + ZEND_ARG_INFO(0, callback) +ZEND_END_ARG_INFO() + static zend_function_entry call_credentials_methods[] = { - PHP_ME(CallCredentials, createComposite, NULL, + PHP_ME(CallCredentials, createComposite, arginfo_createComposite, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) - PHP_ME(CallCredentials, createFromPlugin, NULL, + PHP_ME(CallCredentials, createFromPlugin, arginfo_createFromPlugin, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) PHP_FE_END }; diff --git a/src/php/ext/grpc/channel.c b/src/php/ext/grpc/channel.c index 4ce4f307b04..c26fe4a6fb8 100644 --- a/src/php/ext/grpc/channel.c +++ b/src/php/ext/grpc/channel.c @@ -243,12 +243,37 @@ PHP_METHOD(Channel, close) { } } +ZEND_BEGIN_ARG_INFO_EX(arginfo_construct, 0, 0, 2) + ZEND_ARG_INFO(0, target) + ZEND_ARG_INFO(0, args) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_getTarget, 0, 0, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_getConnectivityState, 0, 0, 0) + ZEND_ARG_INFO(0, try_to_connect) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_watchConnectivityState, 0, 0, 2) + ZEND_ARG_INFO(0, last_state) + ZEND_ARG_INFO(0, deadline) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_close, 0, 0, 0) +ZEND_END_ARG_INFO() + static zend_function_entry channel_methods[] = { - PHP_ME(Channel, __construct, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) - PHP_ME(Channel, getTarget, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Channel, getConnectivityState, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Channel, watchConnectivityState, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Channel, close, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Channel, __construct, arginfo_construct, + ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) + PHP_ME(Channel, getTarget, arginfo_getTarget, + ZEND_ACC_PUBLIC) + PHP_ME(Channel, getConnectivityState, arginfo_getConnectivityState, + ZEND_ACC_PUBLIC) + PHP_ME(Channel, watchConnectivityState, arginfo_watchConnectivityState, + ZEND_ACC_PUBLIC) + PHP_ME(Channel, close, arginfo_close, + ZEND_ACC_PUBLIC) PHP_FE_END }; diff --git a/src/php/ext/grpc/channel_credentials.c b/src/php/ext/grpc/channel_credentials.c index 36a8223b880..2160a548c3e 100644 --- a/src/php/ext/grpc/channel_credentials.c +++ b/src/php/ext/grpc/channel_credentials.c @@ -199,16 +199,37 @@ PHP_METHOD(ChannelCredentials, createInsecure) { RETURN_NULL(); } +ZEND_BEGIN_ARG_INFO_EX(arginfo_setDefaultRootsPem, 0, 0, 1) + ZEND_ARG_INFO(0, pem_roots) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_createDefault, 0, 0, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_createSsl, 0, 0, 0) + ZEND_ARG_INFO(0, pem_root_certs) + ZEND_ARG_INFO(0, pem_private_key) + ZEND_ARG_INFO(0, pem_cert_chain) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_createComposite, 0, 0, 2) + ZEND_ARG_INFO(0, channel_creds) + ZEND_ARG_INFO(0, call_creds) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_createInsecure, 0, 0, 0) +ZEND_END_ARG_INFO() + static zend_function_entry channel_credentials_methods[] = { - PHP_ME(ChannelCredentials, setDefaultRootsPem, NULL, + PHP_ME(ChannelCredentials, setDefaultRootsPem, arginfo_setDefaultRootsPem, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) - PHP_ME(ChannelCredentials, createDefault, NULL, + PHP_ME(ChannelCredentials, createDefault, arginfo_createDefault, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) - PHP_ME(ChannelCredentials, createSsl, NULL, + PHP_ME(ChannelCredentials, createSsl, arginfo_createSsl, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) - PHP_ME(ChannelCredentials, createComposite, NULL, + PHP_ME(ChannelCredentials, createComposite, arginfo_createComposite, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) - PHP_ME(ChannelCredentials, createInsecure, NULL, + PHP_ME(ChannelCredentials, createInsecure, arginfo_createInsecure, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) PHP_FE_END }; diff --git a/src/php/ext/grpc/server.c b/src/php/ext/grpc/server.c index 9ac5d2a3c39..87780e997e3 100644 --- a/src/php/ext/grpc/server.c +++ b/src/php/ext/grpc/server.c @@ -116,8 +116,6 @@ PHP_METHOD(Server, __construct) { /** * Request a call on a server. Creates a single GRPC_SERVER_RPC_NEW event. - * @param long $tag_new The tag to associate with the new request - * @param long $tag_cancel The tag to use if the call is cancelled * @return void */ PHP_METHOD(Server, requestCall) { @@ -239,12 +237,36 @@ PHP_METHOD(Server, start) { grpc_server_start(server->wrapped); } +ZEND_BEGIN_ARG_INFO_EX(arginfo_construct, 0, 0, 0) + ZEND_ARG_INFO(0, args) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_requestCall, 0, 0, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_addHttp2Port, 0, 0, 1) + ZEND_ARG_INFO(0, addr) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_addSecureHttp2Port, 0, 0, 2) + ZEND_ARG_INFO(0, addr) + ZEND_ARG_INFO(0, server_creds) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_start, 0, 0, 0) +ZEND_END_ARG_INFO() + static zend_function_entry server_methods[] = { - PHP_ME(Server, __construct, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) - PHP_ME(Server, requestCall, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Server, addHttp2Port, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Server, addSecureHttp2Port, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Server, start, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Server, __construct, arginfo_construct, + ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) + PHP_ME(Server, requestCall, arginfo_requestCall, + ZEND_ACC_PUBLIC) + PHP_ME(Server, addHttp2Port, arginfo_addHttp2Port, + ZEND_ACC_PUBLIC) + PHP_ME(Server, addSecureHttp2Port, arginfo_addSecureHttp2Port, + ZEND_ACC_PUBLIC) + PHP_ME(Server, start, arginfo_start, + ZEND_ACC_PUBLIC) PHP_FE_END }; diff --git a/src/php/ext/grpc/server_credentials.c b/src/php/ext/grpc/server_credentials.c index 3e39fee246c..ec29dfdc7c2 100644 --- a/src/php/ext/grpc/server_credentials.c +++ b/src/php/ext/grpc/server_credentials.c @@ -117,8 +117,14 @@ PHP_METHOD(ServerCredentials, createSsl) { RETURN_DESTROY_ZVAL(creds_object); } +ZEND_BEGIN_ARG_INFO_EX(arginfo_createSsl, 0, 0, 3) + ZEND_ARG_INFO(0, pem_root_certs) + ZEND_ARG_INFO(0, pem_private_key) + ZEND_ARG_INFO(0, pem_cert_chain) +ZEND_END_ARG_INFO() + static zend_function_entry server_credentials_methods[] = { - PHP_ME(ServerCredentials, createSsl, NULL, + PHP_ME(ServerCredentials, createSsl, arginfo_createSsl, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) PHP_FE_END }; diff --git a/src/php/ext/grpc/timeval.c b/src/php/ext/grpc/timeval.c index 7ada915aadd..78c29e385b1 100644 --- a/src/php/ext/grpc/timeval.c +++ b/src/php/ext/grpc/timeval.c @@ -245,17 +245,65 @@ PHP_METHOD(Timeval, sleepUntil) { gpr_sleep_until(this->wrapped); } +ZEND_BEGIN_ARG_INFO_EX(arginfo_construct, 0, 0, 1) + ZEND_ARG_INFO(0, microseconds) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_add, 0, 0, 1) + ZEND_ARG_INFO(0, timeval) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_compare, 0, 0, 2) + ZEND_ARG_INFO(0, a_timeval) + ZEND_ARG_INFO(0, b_timeval) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_infFuture, 0, 0, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_infPast, 0, 0, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_now, 0, 0, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_similar, 0, 0, 3) + ZEND_ARG_INFO(0, a_timeval) + ZEND_ARG_INFO(0, b_timeval) + ZEND_ARG_INFO(0, threshold_timeval) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_sleepUntil, 0, 0, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_subtract, 0, 0, 1) + ZEND_ARG_INFO(0, timeval) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_zero, 0, 0, 0) +ZEND_END_ARG_INFO() + static zend_function_entry timeval_methods[] = { - PHP_ME(Timeval, __construct, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) - PHP_ME(Timeval, add, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Timeval, compare, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) - PHP_ME(Timeval, infFuture, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) - PHP_ME(Timeval, infPast, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) - PHP_ME(Timeval, now, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) - PHP_ME(Timeval, similar, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) - PHP_ME(Timeval, sleepUntil, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Timeval, subtract, NULL, ZEND_ACC_PUBLIC) - PHP_ME(Timeval, zero, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) + PHP_ME(Timeval, __construct, arginfo_construct, + ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) + PHP_ME(Timeval, add, arginfo_add, + ZEND_ACC_PUBLIC) + PHP_ME(Timeval, compare, arginfo_compare, + ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) + PHP_ME(Timeval, infFuture, arginfo_infFuture, + ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) + PHP_ME(Timeval, infPast, arginfo_infPast, + ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) + PHP_ME(Timeval, now, arginfo_now, + ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) + PHP_ME(Timeval, similar, arginfo_similar, + ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) + PHP_ME(Timeval, sleepUntil, arginfo_sleepUntil, + ZEND_ACC_PUBLIC) + PHP_ME(Timeval, subtract, arginfo_subtract, + ZEND_ACC_PUBLIC) + PHP_ME(Timeval, zero, arginfo_zero, + ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) PHP_FE_END }; From f07ed45439110033c8460295a71e4a5b4c42a0a1 Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 16 Feb 2017 23:01:28 -0800 Subject: [PATCH 35/56] Restore the NextMessageSize for streamed calls --- include/grpc++/impl/codegen/call.h | 15 ++++++++++++++- include/grpc++/impl/codegen/sync_stream.h | 8 ++++---- src/cpp/server/server_cc.cc | 4 ++-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/include/grpc++/impl/codegen/call.h b/include/grpc++/impl/codegen/call.h index a17cdf9236f..19a5ca2b2ee 100644 --- a/include/grpc++/impl/codegen/call.h +++ b/include/grpc++/impl/codegen/call.h @@ -618,7 +618,17 @@ class Call final { public: /* call is owned by the caller */ Call(grpc_call* call, CallHook* call_hook, CompletionQueue* cq) - : call_hook_(call_hook), cq_(cq), call_(call) {} + : call_hook_(call_hook), + cq_(cq), + call_(call), + max_receive_message_size_(-1) {} + + Call(grpc_call* call, CallHook* call_hook, CompletionQueue* cq, + int max_receive_message_size) + : call_hook_(call_hook), + cq_(cq), + call_(call), + max_receive_message_size_(max_receive_message_size) {} void PerformOps(CallOpSetInterface* ops) { call_hook_->PerformOpsOnCall(ops, this); @@ -627,10 +637,13 @@ class Call final { grpc_call* call() const { return call_; } CompletionQueue* cq() const { return cq_; } + int max_receive_message_size() const { return max_receive_message_size_; } + private: CallHook* call_hook_; CompletionQueue* cq_; grpc_call* call_; + int max_receive_message_size_; }; } // namespace grpc diff --git a/include/grpc++/impl/codegen/sync_stream.h b/include/grpc++/impl/codegen/sync_stream.h index 1f7708bab94..4d9b074e95f 100644 --- a/include/grpc++/impl/codegen/sync_stream.h +++ b/include/grpc++/impl/codegen/sync_stream.h @@ -160,7 +160,7 @@ class ClientReader final : public ClientReaderInterface { } bool NextMessageSize(uint32_t* sz) override { - *sz = INT_MAX; + *sz = call_.max_receive_message_size(); return true; } @@ -310,7 +310,7 @@ class ClientReaderWriter final : public ClientReaderWriterInterface { } bool NextMessageSize(uint32_t* sz) override { - *sz = INT_MAX; + *sz = call_.max_receive_message_size(); return true; } @@ -382,7 +382,7 @@ class ServerReader final : public ServerReaderInterface { } bool NextMessageSize(uint32_t* sz) override { - *sz = INT_MAX; + *sz = call_->max_receive_message_size(); return true; } @@ -474,7 +474,7 @@ class ServerReaderWriterBody final { } bool NextMessageSize(uint32_t* sz) { - *sz = INT_MAX; + *sz = call_->max_receive_message_size(); return true; } diff --git a/src/cpp/server/server_cc.cc b/src/cpp/server/server_cc.cc index 29898a4209e..5ed9f41d4f4 100644 --- a/src/cpp/server/server_cc.cc +++ b/src/cpp/server/server_cc.cc @@ -186,7 +186,7 @@ class Server::SyncRequest final : public CompletionQueueTag { public: explicit CallData(Server* server, SyncRequest* mrd) : cq_(mrd->cq_), - call_(mrd->call_, server, &cq_), + call_(mrd->call_, server, &cq_, server->max_receive_message_size()), ctx_(mrd->deadline_, mrd->request_metadata_.metadata, mrd->request_metadata_.count), has_request_payload_(mrd->has_request_payload_), @@ -590,7 +590,7 @@ bool ServerInterface::BaseAsyncRequest::FinalizeResult(void** tag, } context_->set_call(call_); context_->cq_ = call_cq_; - Call call(call_, server_, call_cq_); + Call call(call_, server_, call_cq_, server_->max_receive_message_size()); if (*status && call_) { context_->BeginCompletionOp(&call); } From 448191cb9ad4826b7604b40828fdd432dbe77e4f Mon Sep 17 00:00:00 2001 From: David Garcia Quintas Date: Fri, 17 Feb 2017 09:37:50 -0800 Subject: [PATCH 36/56] Temporarily disable lb policies test --- Makefile | 2 -- build.yaml | 2 +- tools/run_tests/generated/tests.json | 22 ---------------------- 3 files changed, 1 insertion(+), 25 deletions(-) diff --git a/Makefile b/Makefile index 0acf06e946d..9cffe04ddf7 100644 --- a/Makefile +++ b/Makefile @@ -1860,8 +1860,6 @@ test_c: buildtests_c flaky_test_c: buildtests_c - $(E) "[RUN] Testing lb_policies_test" - $(Q) $(BINDIR)/$(CONFIG)/lb_policies_test || ( echo test lb_policies_test failed ; exit 1 ) $(E) "[RUN] Testing mlog_test" $(Q) $(BINDIR)/$(CONFIG)/mlog_test || ( echo test mlog_test failed ; exit 1 ) diff --git a/build.yaml b/build.yaml index 5782afb62e3..ee4d0cb99f5 100644 --- a/build.yaml +++ b/build.yaml @@ -2348,8 +2348,8 @@ targets: - gpr - name: lb_policies_test cpu_cost: 0.1 - flaky: true build: test + run: false language: c src: - test/core/client_channel/lb_policies_test.c diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json index a161e8a670e..1ed1af9e6b1 100644 --- a/tools/run_tests/generated/tests.json +++ b/tools/run_tests/generated/tests.json @@ -1521,28 +1521,6 @@ "windows" ] }, - { - "args": [], - "ci_platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "exclude_iomgrs": [], - "flaky": true, - "gtest": false, - "language": "c", - "name": "lb_policies_test", - "platforms": [ - "linux", - "mac", - "posix", - "windows" - ] - }, { "args": [], "ci_platforms": [ From bbe6bfd6fdb7d59101ab457c4459f98140f71cf1 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 11:50:51 -0800 Subject: [PATCH 37/56] Add BUILD file for test/core/slice --- test/core/slice/BUILD | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 test/core/slice/BUILD diff --git a/test/core/slice/BUILD b/test/core/slice/BUILD new file mode 100644 index 00000000000..67a47063482 --- /dev/null +++ b/test/core/slice/BUILD @@ -0,0 +1,54 @@ +# Copyright 2017, 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. + +licenses(["notice"]) # 3-clause BSD + +load("//test/core/util:grpc_fuzzer.bzl", "grpc_fuzzer") + +grpc_fuzzer( + name = "percent_decode_fuzzer", + srcs = ["percent_decode_fuzzer.c"], + deps = ["//:gpr", "//:grpc", "//test/core/util:grpc_test_util"], + corpus = "response_corpus", + copts = ["-std=c99"], +) + +cc_test( + name = "percent_encoding_test", + srcs = ["percent_encoding_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "slice_buffer_test", + srcs = ["slice_string_helpers_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) From 92bc4156535116423d1cf3670a3e401f5315142b Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 11:58:30 -0800 Subject: [PATCH 38/56] Add BUILD file for test/core/fling --- test/core/fling/BUILD | 62 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 test/core/fling/BUILD diff --git a/test/core/fling/BUILD b/test/core/fling/BUILD new file mode 100644 index 00000000000..0b0ebcb2523 --- /dev/null +++ b/test/core/fling/BUILD @@ -0,0 +1,62 @@ +# Copyright 2017, 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. + +licenses(["notice"]) # 3-clause BSD + +load("//test/core/util:grpc_fuzzer.bzl", "grpc_fuzzer") + +cc_binary( + name = "client", + srcs = ["client.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util", "//test/core/end2end:ssl_test_data"], + testonly = 1, + copts = ['-std=c99'] +) + +cc_binary( + name = "server", + srcs = ["server.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util", "//test/core/end2end:ssl_test_data"], + testonly = 1, + copts = ['-std=c99'] +) + +cc_test( + name = "fling", + srcs = ["fling_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util", "//test/core/end2end:ssl_test_data"], + data = [":client", ":server"] +) + +cc_test( + name = "fling_stream", + srcs = ["fling_stream_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util", "//test/core/end2end:ssl_test_data"], + data = [":client", ":server"] +) From 4e0363af9c907139ae5fa5d706d32d97f58bf815 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 12:01:08 -0800 Subject: [PATCH 39/56] Complete test/core/http/BUILD --- test/core/http/BUILD | 55 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/test/core/http/BUILD b/test/core/http/BUILD index 037ede3cd1c..abfa7591798 100644 --- a/test/core/http/BUILD +++ b/test/core/http/BUILD @@ -47,3 +47,58 @@ grpc_fuzzer( copts = ["-std=c99"], ) +# Copyright 2017, 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. + +licenses(["notice"]) # 3-clause BSD + +load("//test/core/util:grpc_fuzzer.bzl", "grpc_fuzzer") + +cc_test( + name = "httpcli_test", + srcs = ["httpcli_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util", "//test/core/end2end:ssl_test_data"], + copts = ['-std=c99'], + data = ['test_server.py'] +) + +cc_test( + name = "httpscli_test", + srcs = ["httpscli_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util", "//test/core/end2end:ssl_test_data"], + copts = ['-std=c99'], + data = ['test_server.py'] +) + +cc_test( + name = "parser_test", + srcs = ["parser_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util", "//test/core/end2end:ssl_test_data"], + copts = ['-std=c99'] +) From 6f7b26ffb337413050e85ab0a6c4757b5e6ee594 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 12:06:43 -0800 Subject: [PATCH 40/56] Complete test/core/transport/chttp2; add test/core/transport/BUILD --- test/core/transport/BUILD | 72 ++++++++++++++++++++++++++++++++ test/core/transport/chttp2/BUILD | 55 ++++++++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 test/core/transport/BUILD diff --git a/test/core/transport/BUILD b/test/core/transport/BUILD new file mode 100644 index 00000000000..865b0c26ef5 --- /dev/null +++ b/test/core/transport/BUILD @@ -0,0 +1,72 @@ +# Copyright 2017, 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. + +licenses(["notice"]) # 3-clause BSD + +cc_test( + name = "bdp_estimator_test", + srcs = ["bdp_estimator_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "connectivity_state_test", + srcs = ["connectivity_state_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "metadata_test", + srcs = ["metadata_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "pid_controller_test", + srcs = ["pid_controller_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "status_conversion_test", + srcs = ["status_conversion_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "timeout_encoding_test", + srcs = ["timeout_encoding_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) diff --git a/test/core/transport/chttp2/BUILD b/test/core/transport/chttp2/BUILD index 94b48301386..b507e27efe5 100644 --- a/test/core/transport/chttp2/BUILD +++ b/test/core/transport/chttp2/BUILD @@ -38,3 +38,58 @@ grpc_fuzzer( corpus = "hpack_parser_corpus" ) +cc_test( + name = "alpn_test", + srcs = ["alpn_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "bin_decoder_test", + srcs = ["bin_decoder_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "bin_encoder_test", + srcs = ["bin_encoder_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "hpack_encoder_test", + srcs = ["hpack_encoder_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "hpack_parser_test", + srcs = ["hpack_parser_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "hpack_table_test", + srcs = ["hpack_table_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "stream_map_test", + srcs = ["stream_map_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "varint_test", + srcs = ["varint_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) From 911a5dc5b1e41a839d5bbdf0cfa383d7f3167cb9 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 12:09:05 -0800 Subject: [PATCH 41/56] Add test/core/tsi/BUILD --- test/core/tsi/BUILD | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 test/core/tsi/BUILD diff --git a/test/core/tsi/BUILD b/test/core/tsi/BUILD new file mode 100644 index 00000000000..e6cba344eef --- /dev/null +++ b/test/core/tsi/BUILD @@ -0,0 +1,37 @@ +# Copyright 2017, 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. + +licenses(["notice"]) # 3-clause BSD + +cc_test( + name = "transport_security_test", + srcs = ["transport_security_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) From 3b78f42ee39e5e8cf295cceeb0f417d630efe932 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 12:12:46 -0800 Subject: [PATCH 42/56] Add test/core/client_channel/BUILD --- test/core/client_channel/BUILD | 54 ++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 test/core/client_channel/BUILD diff --git a/test/core/client_channel/BUILD b/test/core/client_channel/BUILD new file mode 100644 index 00000000000..a29e9aca4e6 --- /dev/null +++ b/test/core/client_channel/BUILD @@ -0,0 +1,54 @@ +# Copyright 2017, 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. + +licenses(["notice"]) # 3-clause BSD + +load("//test/core/util:grpc_fuzzer.bzl", "grpc_fuzzer") + +grpc_fuzzer( + name = "uri_fuzzer_test", + srcs = ["uri_fuzzer_test.c"], + deps = ["//:gpr", "//:grpc", "//test/core/util:grpc_test_util"], + corpus = "uri_corpus", + copts = ["-std=c99"], +) + +cc_test( + name = "lb_policies_test", + srcs = ["lb_policies_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util", "//test/core/end2end:cq_verifier"], + copts = ['-std=c99'] +) + +cc_test( + name = "set_initial_connect_string_test", + srcs = ["set_initial_connect_string_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) From 54fa9244e702c64ccd63f085b784125641168f3e Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 12:14:45 -0800 Subject: [PATCH 43/56] Add test/core/client_channel/resolvers/BUILD --- test/core/client_channel/resolvers/BUILD | 51 ++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 test/core/client_channel/resolvers/BUILD diff --git a/test/core/client_channel/resolvers/BUILD b/test/core/client_channel/resolvers/BUILD new file mode 100644 index 00000000000..af37072e3a4 --- /dev/null +++ b/test/core/client_channel/resolvers/BUILD @@ -0,0 +1,51 @@ +# Copyright 2017, 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. + +licenses(["notice"]) # 3-clause BSD + +cc_test( + name = "dns_resolver_connectivity_test", + srcs = ["dns_resolver_connectivity_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "dns_resolver_test", + srcs = ["dns_resolver_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "sockaddr_resolver_test", + srcs = ["sockaddr_resolver_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) From a646b0e019e48b7cb79d59be8ae904e3891f11e2 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 12:21:33 -0800 Subject: [PATCH 44/56] Add test/core/iomgr/BUILD --- test/core/iomgr/BUILD | 180 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 test/core/iomgr/BUILD diff --git a/test/core/iomgr/BUILD b/test/core/iomgr/BUILD new file mode 100644 index 00000000000..08d4a07f413 --- /dev/null +++ b/test/core/iomgr/BUILD @@ -0,0 +1,180 @@ +# Copyright 2017, 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. + +licenses(["notice"]) # 3-clause BSD + +load("//test/core/util:grpc_fuzzer.bzl", "grpc_fuzzer") + +cc_library( + name = "endpoint_tests", + srcs = ["endpoint_tests.c"], + hdrs = ["endpoint_tests.h"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "combiner_test", + srcs = ["combiner_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "endpoint_pair_test", + srcs = ["endpoint_pair_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util", ":endpoint_tests"], + copts = ['-std=c99'] +) + +cc_test( + name = "ev_epoll_linux_test", + srcs = ["ev_epoll_linux_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "fd_conservation_posix_test", + srcs = ["fd_conservation_posix_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "fd_posix_test", + srcs = ["fd_posix_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "load_file_test", + srcs = ["load_file_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "pollset_set_test", + srcs = ["pollset_set_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "resolve_address_posix_test", + srcs = ["resolve_address_posix_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "resolve_address_test", + srcs = ["resolve_address_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "resource_quota_test", + srcs = ["resource_quota_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "sockaddr_utils_test", + srcs = ["sockaddr_utils_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "socket_utils_test", + srcs = ["socket_utils_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "tcp_client_posix_test", + srcs = ["tcp_client_posix_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "tcp_posix_test", + srcs = ["tcp_posix_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util", ":endpoint_tests"], + copts = ['-std=c99'] +) + +cc_test( + name = "tcp_server_posix_test", + srcs = ["tcp_server_posix_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "time_averaged_stats_test", + srcs = ["time_averaged_stats_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "timer_heap_test", + srcs = ["timer_heap_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "timer_list_test", + srcs = ["timer_list_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "udp_server_test", + srcs = ["udp_server_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "wakeup_fd_cv_test", + srcs = ["wakeup_fd_cv_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) From 8506219a1555877b2115a19ff89738dd7ece6413 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 12:28:39 -0800 Subject: [PATCH 45/56] Remove internal api canaries: they have never solved anything for us --- CMakeLists.txt | 84 -------- Makefile | 102 --------- build.yaml | 33 --- test/core/internal_api_canaries/iomgr.c | 119 ----------- test/core/internal_api_canaries/support.c | 58 ----- test/core/internal_api_canaries/transport.c | 81 ------- .../generated/sources_and_headers.json | 51 ----- vsprojects/buildtests_c.sln | 81 ------- .../internal_api_canary_iomgr_test.vcxproj | 199 ------------------ ...rnal_api_canary_iomgr_test.vcxproj.filters | 21 -- .../internal_api_canary_support_test.vcxproj | 199 ------------------ ...al_api_canary_support_test.vcxproj.filters | 21 -- ...internal_api_canary_transport_test.vcxproj | 199 ------------------ ..._api_canary_transport_test.vcxproj.filters | 21 -- 14 files changed, 1269 deletions(-) delete mode 100644 test/core/internal_api_canaries/iomgr.c delete mode 100644 test/core/internal_api_canaries/support.c delete mode 100644 test/core/internal_api_canaries/transport.c delete mode 100644 vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj delete mode 100644 vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj.filters delete mode 100644 vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj delete mode 100644 vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj.filters delete mode 100644 vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj delete mode 100644 vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj.filters diff --git a/CMakeLists.txt b/CMakeLists.txt index 101f0ad2ef9..00098656a42 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -420,9 +420,6 @@ if(_gRPC_PLATFORM_LINUX) add_dependencies(buildtests_c httpscli_test) endif() add_dependencies(buildtests_c init_test) -add_dependencies(buildtests_c internal_api_canary_iomgr_test) -add_dependencies(buildtests_c internal_api_canary_support_test) -add_dependencies(buildtests_c internal_api_canary_transport_test) add_dependencies(buildtests_c invalid_call_argument_test) add_dependencies(buildtests_c json_rewrite) add_dependencies(buildtests_c json_rewrite_test) @@ -5945,87 +5942,6 @@ target_link_libraries(init_test endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) -add_executable(internal_api_canary_iomgr_test - test/core/internal_api_canaries/iomgr.c -) - - -target_include_directories(internal_api_canary_iomgr_test - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${BENCHMARK_ROOT_DIR}/include - PRIVATE ${ZLIB_ROOT_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include -) - -target_link_libraries(internal_api_canary_iomgr_test - ${_gRPC_ALLTARGETS_LIBRARIES} - grpc_test_util - grpc - gpr_test_util - gpr -) - -endif (gRPC_BUILD_TESTS) -if (gRPC_BUILD_TESTS) - -add_executable(internal_api_canary_support_test - test/core/internal_api_canaries/iomgr.c -) - - -target_include_directories(internal_api_canary_support_test - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${BENCHMARK_ROOT_DIR}/include - PRIVATE ${ZLIB_ROOT_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include -) - -target_link_libraries(internal_api_canary_support_test - ${_gRPC_ALLTARGETS_LIBRARIES} - grpc_test_util - grpc - gpr_test_util - gpr -) - -endif (gRPC_BUILD_TESTS) -if (gRPC_BUILD_TESTS) - -add_executable(internal_api_canary_transport_test - test/core/internal_api_canaries/iomgr.c -) - - -target_include_directories(internal_api_canary_transport_test - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${BENCHMARK_ROOT_DIR}/include - PRIVATE ${ZLIB_ROOT_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include -) - -target_link_libraries(internal_api_canary_transport_test - ${_gRPC_ALLTARGETS_LIBRARIES} - grpc_test_util - grpc - gpr_test_util - gpr -) - -endif (gRPC_BUILD_TESTS) -if (gRPC_BUILD_TESTS) - add_executable(invalid_call_argument_test test/core/end2end/invalid_call_argument_test.c ) diff --git a/Makefile b/Makefile index 5dde577cca8..0d76b941d52 100644 --- a/Makefile +++ b/Makefile @@ -980,9 +980,6 @@ httpcli_format_request_test: $(BINDIR)/$(CONFIG)/httpcli_format_request_test httpcli_test: $(BINDIR)/$(CONFIG)/httpcli_test httpscli_test: $(BINDIR)/$(CONFIG)/httpscli_test init_test: $(BINDIR)/$(CONFIG)/init_test -internal_api_canary_iomgr_test: $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test -internal_api_canary_support_test: $(BINDIR)/$(CONFIG)/internal_api_canary_support_test -internal_api_canary_transport_test: $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test invalid_call_argument_test: $(BINDIR)/$(CONFIG)/invalid_call_argument_test json_fuzzer_test: $(BINDIR)/$(CONFIG)/json_fuzzer_test json_rewrite: $(BINDIR)/$(CONFIG)/json_rewrite @@ -1334,9 +1331,6 @@ buildtests_c: privatelibs_c \ $(BINDIR)/$(CONFIG)/httpcli_test \ $(BINDIR)/$(CONFIG)/httpscli_test \ $(BINDIR)/$(CONFIG)/init_test \ - $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test \ - $(BINDIR)/$(CONFIG)/internal_api_canary_support_test \ - $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test \ $(BINDIR)/$(CONFIG)/invalid_call_argument_test \ $(BINDIR)/$(CONFIG)/json_rewrite \ $(BINDIR)/$(CONFIG)/json_rewrite_test \ @@ -10340,102 +10334,6 @@ endif endif -INTERNAL_API_CANARY_IOMGR_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ - -INTERNAL_API_CANARY_IOMGR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_IOMGR_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) -endif -endif - - -INTERNAL_API_CANARY_SUPPORT_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ - -INTERNAL_API_CANARY_SUPPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_SUPPORT_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_support_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) -endif -endif - - -INTERNAL_API_CANARY_TRANSPORT_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ - -INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_TRANSPORT_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) -endif -endif - - INVALID_CALL_ARGUMENT_TEST_SRC = \ test/core/end2end/invalid_call_argument_test.c \ diff --git a/build.yaml b/build.yaml index 2fbaa2e2262..10943b0750c 100644 --- a/build.yaml +++ b/build.yaml @@ -2239,39 +2239,6 @@ targets: - grpc - gpr_test_util - gpr -- name: internal_api_canary_iomgr_test - build: test - run: false - language: c - src: - - test/core/internal_api_canaries/iomgr.c - deps: - - grpc_test_util - - grpc - - gpr_test_util - - gpr -- name: internal_api_canary_support_test - build: test - run: false - language: c - src: - - test/core/internal_api_canaries/iomgr.c - deps: - - grpc_test_util - - grpc - - gpr_test_util - - gpr -- name: internal_api_canary_transport_test - build: test - run: false - language: c - src: - - test/core/internal_api_canaries/iomgr.c - deps: - - grpc_test_util - - grpc - - gpr_test_util - - gpr - name: invalid_call_argument_test cpu_cost: 0.1 build: test diff --git a/test/core/internal_api_canaries/iomgr.c b/test/core/internal_api_canaries/iomgr.c deleted file mode 100644 index d73d5c175c9..00000000000 --- a/test/core/internal_api_canaries/iomgr.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#include "src/core/lib/iomgr/iomgr.h" -#include "src/core/lib/iomgr/closure.h" -#include "src/core/lib/iomgr/endpoint.h" -#include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/iomgr/executor.h" - -/******************************************************************************* - * NOTE: If this test fails to compile, then the api changes are likely to cause - * merge failures downstream. Please pay special attention to reviewing - * these changes, and solicit help as appropriate when merging downstream. - * - * This test is NOT expected to be run directly. - ******************************************************************************/ - -static void test_code(void) { - /* iomgr.h */ - grpc_iomgr_init(); - grpc_iomgr_shutdown(NULL); - - /* closure.h */ - grpc_closure closure; - closure.cb = NULL; - closure.cb_arg = NULL; - closure.next_data.scratch = 0; - - grpc_closure_list closure_list = GRPC_CLOSURE_LIST_INIT; - closure_list.head = NULL; - closure_list.tail = NULL; - - grpc_closure_init(&closure, NULL, NULL, grpc_schedule_on_exec_ctx); - - grpc_closure_create(NULL, NULL, grpc_schedule_on_exec_ctx); - - grpc_closure_list_move(NULL, NULL); - grpc_closure_list_append(NULL, NULL, GRPC_ERROR_CREATE("Foo")); - grpc_closure_list_empty(closure_list); - - /* exec_ctx.h */ - grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - grpc_exec_ctx_flush(&exec_ctx); - grpc_exec_ctx_finish(&exec_ctx); - grpc_closure_sched(&exec_ctx, &closure, GRPC_ERROR_CREATE("Foo")); - grpc_closure_list_sched(&exec_ctx, &closure_list); - - /* endpoint.h */ - grpc_endpoint endpoint; - grpc_endpoint_vtable vtable = {grpc_endpoint_read, - grpc_endpoint_write, - grpc_endpoint_get_workqueue, - grpc_endpoint_add_to_pollset, - grpc_endpoint_add_to_pollset_set, - grpc_endpoint_shutdown, - grpc_endpoint_destroy, - grpc_endpoint_get_resource_user, - grpc_endpoint_get_peer, - grpc_endpoint_get_fd}; - endpoint.vtable = &vtable; - - grpc_endpoint_read(&exec_ctx, &endpoint, NULL, NULL); - grpc_endpoint_get_peer(&endpoint); - grpc_endpoint_write(&exec_ctx, &endpoint, NULL, NULL); - grpc_endpoint_shutdown(&exec_ctx, &endpoint, GRPC_ERROR_CANCELLED); - grpc_endpoint_destroy(&exec_ctx, &endpoint); - grpc_endpoint_add_to_pollset(&exec_ctx, &endpoint, NULL); - grpc_endpoint_add_to_pollset_set(&exec_ctx, &endpoint, NULL); - - /* executor.h */ - grpc_executor_init(); - grpc_executor_shutdown(NULL); - - /* pollset.h */ - grpc_pollset_size(); - grpc_pollset_init(NULL, NULL); - grpc_pollset_shutdown(NULL, NULL, NULL); - grpc_pollset_reset(NULL); - grpc_pollset_destroy(NULL); - GRPC_ERROR_UNREF(grpc_pollset_work(NULL, NULL, NULL, - gpr_now(GPR_CLOCK_REALTIME), - gpr_now(GPR_CLOCK_MONOTONIC))); - GRPC_ERROR_UNREF(grpc_pollset_kick(NULL, NULL)); -} - -int main(void) { - if (false) test_code(); - return 0; -} diff --git a/test/core/internal_api_canaries/support.c b/test/core/internal_api_canaries/support.c deleted file mode 100644 index e992d2a66aa..00000000000 --- a/test/core/internal_api_canaries/support.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -/******************************************************************************* - * NOTE: If this test fails to compile, then the api changes are likely to cause - * merge failures downstream. Please pay special attention to reviewing - * these changes, and solicit help as appropriate when merging downstream. - * - * This test is NOT expected to be run directly. - ******************************************************************************/ - -#include "src/core/lib/iomgr/load_file.h" -#include "src/core/lib/support/env.h" -#include "src/core/lib/support/tmpfile.h" - -static void test_code(void) { - /* env.h */ - gpr_set_env("abc", gpr_getenv("xyz")); - /* load_file.h */ - grpc_load_file("abc", 1, NULL); - /* tmpfile.h */ - fclose(gpr_tmpfile("foo", NULL)); -} - -int main(void) { - if (false) test_code(); - return 0; -} diff --git a/test/core/internal_api_canaries/transport.c b/test/core/internal_api_canaries/transport.c deleted file mode 100644 index 2989f595353..00000000000 --- a/test/core/internal_api_canaries/transport.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -/******************************************************************************* - * NOTE: If this test fails to compile, then the api changes are likely to cause - * merge failures downstream. Please pay special attention to reviewing - * these changes, and solicit help as appropriate when merging downstream. - * - * This test is NOT expected to be run directly. - ******************************************************************************/ - -#include "src/core/lib/transport/transport.h" -#include "src/core/lib/transport/transport_impl.h" - -static void test_code(void) { - /* transport_impl.h */ - grpc_transport transport; - grpc_transport_vtable vtable = {12345, - grpc_transport_init_stream, - grpc_transport_set_pollset, - grpc_transport_perform_stream_op, - grpc_transport_perform_op, - grpc_transport_destroy_stream, - grpc_transport_destroy, - grpc_transport_get_peer}; - transport.vtable = &vtable; - - /* transport.h */ - GRPC_STREAM_REF_INIT(NULL, 0, NULL, NULL, "xyz"); - GPR_ASSERT(0 == grpc_transport_stream_size(NULL)); - GPR_ASSERT(grpc_transport_init_stream(&transport, NULL, NULL, NULL, NULL)); - grpc_transport_set_pollset(&transport, NULL, NULL, NULL); - grpc_transport_destroy_stream(&transport, NULL, NULL); - grpc_transport_stream_op_finish_with_failure(NULL, NULL); - grpc_transport_stream_op_add_cancellation(NULL, GRPC_STATUS_UNAVAILABLE); - grpc_transport_stream_op_add_close(NULL, GRPC_STATUS_UNAVAILABLE, - grpc_transport_op_string(NULL)); - grpc_transport_perform_stream_op(&transport, NULL, NULL, NULL); - grpc_transport_perform_op(&transport, NULL, NULL); - grpc_transport_ping(&transport, NULL); - grpc_transport_goaway(&transport, GRPC_STATUS_UNAVAILABLE, - grpc_slice_malloc(0)); - grpc_transport_close(&transport); - grpc_transport_destroy(&transport, NULL); - GPR_ASSERT("xyz" == grpc_transport_get_peer(&transport, NULL)); -} - -int main(void) { - if (false) test_code(); - return 0; -} diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json index 0d5aeb233c4..b31da122ae2 100644 --- a/tools/run_tests/generated/sources_and_headers.json +++ b/tools/run_tests/generated/sources_and_headers.json @@ -1289,57 +1289,6 @@ "third_party": false, "type": "target" }, - { - "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" - ], - "headers": [], - "is_filegroup": false, - "language": "c", - "name": "internal_api_canary_iomgr_test", - "src": [ - "test/core/internal_api_canaries/iomgr.c" - ], - "third_party": false, - "type": "target" - }, - { - "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" - ], - "headers": [], - "is_filegroup": false, - "language": "c", - "name": "internal_api_canary_support_test", - "src": [ - "test/core/internal_api_canaries/iomgr.c" - ], - "third_party": false, - "type": "target" - }, - { - "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" - ], - "headers": [], - "is_filegroup": false, - "language": "c", - "name": "internal_api_canary_transport_test", - "src": [ - "test/core/internal_api_canaries/iomgr.c" - ], - "third_party": false, - "type": "target" - }, { "deps": [ "gpr", diff --git a/vsprojects/buildtests_c.sln b/vsprojects/buildtests_c.sln index ca7f969aa1b..12a45ee1f85 100644 --- a/vsprojects/buildtests_c.sln +++ b/vsprojects/buildtests_c.sln @@ -1071,39 +1071,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "initial_settings_frame_bad_ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_iomgr_test", "vcxproj\test\internal_api_canary_iomgr_test\internal_api_canary_iomgr_test.vcxproj", "{28AE726B-1BFB-202B-48D2-41AF9D09B9EA}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_support_test", "vcxproj\test\internal_api_canary_support_test\internal_api_canary_support_test.vcxproj", "{D53575C6-713C-E6E3-FD74-E65F20916498}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_transport_test", "vcxproj\test\internal_api_canary_transport_test\internal_api_canary_transport_test.vcxproj", "{ED24E700-964E-B426-6A6A-1944E2EF7BCB}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "invalid_call_argument_test", "vcxproj\test\invalid_call_argument_test\invalid_call_argument_test.vcxproj", "{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}" ProjectSection(myProperties) = preProject lib = "False" @@ -3218,54 +3185,6 @@ Global {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|Win32.Build.0 = Release|Win32 {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|x64.ActiveCfg = Release|x64 {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|x64.Build.0 = Release|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|Win32.ActiveCfg = Debug|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|x64.ActiveCfg = Debug|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|Win32.ActiveCfg = Release|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|x64.ActiveCfg = Release|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|Win32.Build.0 = Debug|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|x64.Build.0 = Debug|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|Win32.Build.0 = Release|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|x64.Build.0 = Release|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|x64.Build.0 = Debug|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|Win32.Build.0 = Release|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|x64.ActiveCfg = Release|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|x64.Build.0 = Release|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|Win32.ActiveCfg = Debug|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|x64.ActiveCfg = Debug|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|Win32.ActiveCfg = Release|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|x64.ActiveCfg = Release|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|Win32.Build.0 = Debug|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|x64.Build.0 = Debug|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|Win32.Build.0 = Release|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|x64.Build.0 = Release|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|x64.Build.0 = Debug|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|Win32.Build.0 = Release|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|x64.ActiveCfg = Release|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|x64.Build.0 = Release|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|Win32.ActiveCfg = Debug|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|x64.ActiveCfg = Debug|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|Win32.ActiveCfg = Release|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|x64.ActiveCfg = Release|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|Win32.Build.0 = Debug|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|x64.Build.0 = Debug|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|Win32.Build.0 = Release|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|x64.Build.0 = Release|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|x64.Build.0 = Debug|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|Win32.Build.0 = Release|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|x64.ActiveCfg = Release|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|x64.Build.0 = Release|x64 {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|Win32.ActiveCfg = Debug|Win32 {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|x64.ActiveCfg = Debug|x64 {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj b/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj deleted file mode 100644 index 11d89a01c15..00000000000 --- a/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA} - true - $(SolutionDir)IntDir\$(MSBuildProjectName)\ - - - - v100 - - - v110 - - - v120 - - - v140 - - - Application - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - internal_api_canary_iomgr_test - static - Debug - static - Debug - - - internal_api_canary_iomgr_test - static - Release - static - Release - - - - NotUsing - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreadedDebug - true - None - false - - - Console - true - false - - - - - - NotUsing - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreadedDebug - true - None - false - - - Console - true - false - - - - - - NotUsing - Level3 - MaxSpeed - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - true - true - MultiThreaded - true - None - false - - - Console - true - false - true - true - - - - - - NotUsing - Level3 - MaxSpeed - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - true - true - MultiThreaded - true - None - false - - - Console - true - false - true - true - - - - - - - - - - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - - - {29D16885-7228-4C31-81ED-5F9187C7F2A9} - - - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - - - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - - - - - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - - - - diff --git a/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj.filters b/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj.filters deleted file mode 100644 index f1ee82d1f4c..00000000000 --- a/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - test\core\internal_api_canaries - - - - - - {881986d1-d1fe-b377-cf26-b3377af95009} - - - {4f9a544e-5680-18ee-30d7-38179bf82cee} - - - {6ab29f78-ec9d-d63a-8e8f-0d7552b3edd4} - - - - diff --git a/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj b/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj deleted file mode 100644 index 59092dc2b3c..00000000000 --- a/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {D53575C6-713C-E6E3-FD74-E65F20916498} - true - $(SolutionDir)IntDir\$(MSBuildProjectName)\ - - - - v100 - - - v110 - - - v120 - - - v140 - - - Application - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - internal_api_canary_support_test - static - Debug - static - Debug - - - internal_api_canary_support_test - static - Release - static - Release - - - - NotUsing - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreadedDebug - true - None - false - - - Console - true - false - - - - - - NotUsing - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreadedDebug - true - None - false - - - Console - true - false - - - - - - NotUsing - Level3 - MaxSpeed - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - true - true - MultiThreaded - true - None - false - - - Console - true - false - true - true - - - - - - NotUsing - Level3 - MaxSpeed - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - true - true - MultiThreaded - true - None - false - - - Console - true - false - true - true - - - - - - - - - - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - - - {29D16885-7228-4C31-81ED-5F9187C7F2A9} - - - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - - - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - - - - - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - - - - diff --git a/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj.filters b/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj.filters deleted file mode 100644 index f7f4e3200ed..00000000000 --- a/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - test\core\internal_api_canaries - - - - - - {a6c31cba-af9d-78ea-8980-8b77c9fc4485} - - - {d84283b8-4529-6c09-18bf-20a69f14f7ab} - - - {ea379f93-9285-7180-0d69-24a56da2b201} - - - - diff --git a/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj b/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj deleted file mode 100644 index 110f7e3b048..00000000000 --- a/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {ED24E700-964E-B426-6A6A-1944E2EF7BCB} - true - $(SolutionDir)IntDir\$(MSBuildProjectName)\ - - - - v100 - - - v110 - - - v120 - - - v140 - - - Application - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - internal_api_canary_transport_test - static - Debug - static - Debug - - - internal_api_canary_transport_test - static - Release - static - Release - - - - NotUsing - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreadedDebug - true - None - false - - - Console - true - false - - - - - - NotUsing - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreadedDebug - true - None - false - - - Console - true - false - - - - - - NotUsing - Level3 - MaxSpeed - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - true - true - MultiThreaded - true - None - false - - - Console - true - false - true - true - - - - - - NotUsing - Level3 - MaxSpeed - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - true - true - MultiThreaded - true - None - false - - - Console - true - false - true - true - - - - - - - - - - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - - - {29D16885-7228-4C31-81ED-5F9187C7F2A9} - - - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - - - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - - - - - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - - - - diff --git a/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj.filters b/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj.filters deleted file mode 100644 index 1e0b4c5557e..00000000000 --- a/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - test\core\internal_api_canaries - - - - - - {38e59e26-aad9-60fd-a1a7-c8fd9b606e2f} - - - {79aad60f-59b8-09e2-2cad-5b5e083ac008} - - - {e4f0214e-e3ec-b5b8-c00b-2932b5ec2422} - - - - From c547c0d9929f5aa83d263d3d8dff1352e3db54d4 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 12:43:08 -0800 Subject: [PATCH 46/56] Add test/core/json/BUILD --- test/core/json/BUILD | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/core/json/BUILD b/test/core/json/BUILD index 05d4c6e0c5e..7a12d68126d 100644 --- a/test/core/json/BUILD +++ b/test/core/json/BUILD @@ -39,3 +39,32 @@ grpc_fuzzer( copts = ["-std=c99"], ) +cc_binary( + name = "json_rewrite", + srcs = ["json_rewrite.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + testonly = 1, + copts = ['-std=c99'] +) + +cc_test( + name = "json_rewrite_test", + srcs = ["json_rewrite_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'], + data = ["rewrite_test_input.json", "rewrite_test_output_condensed.json", "rewrite_test_output_indented.json", ":json_stream_error_test"] +) + +cc_test( + name = "json_stream_error_test", + srcs = ["json_stream_error_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "json_test", + srcs = ["json_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) From 528072a1234de26e46f3563c0bd2a3a14b2a25b5 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 12:45:41 -0800 Subject: [PATCH 47/56] Add test/core/network_benchmarks/BUILD --- test/core/network_benchmarks/BUILD | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 test/core/network_benchmarks/BUILD diff --git a/test/core/network_benchmarks/BUILD b/test/core/network_benchmarks/BUILD new file mode 100644 index 00000000000..a5209de4c91 --- /dev/null +++ b/test/core/network_benchmarks/BUILD @@ -0,0 +1,37 @@ +# 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. + +licenses(["notice"]) # 3-clause BSD + +cc_binary( + name = "low_level_ping_pong", + srcs = ["low_level_ping_pong.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) From abd887012f096c597ce511d9da3079226c76ad64 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Fri, 17 Feb 2017 21:56:10 +0100 Subject: [PATCH 48/56] Initial test/cpp/util/BUILD file. --- test/cpp/util/BUILD | 63 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 test/cpp/util/BUILD diff --git a/test/cpp/util/BUILD b/test/cpp/util/BUILD new file mode 100644 index 00000000000..78eca8c3bd2 --- /dev/null +++ b/test/cpp/util/BUILD @@ -0,0 +1,63 @@ +# Copyright 2017, 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. + +licenses(["notice"]) # 3-clause BSD + +cc_library( + name = "test_config", + srcs = [ + "test_config_cc.cc", + ], + hdrs = [ + "test_config.h", + ], + deps = ["//:gpr"], + visibility = ["//test:__subpackages__"], +) + +cc_library( + name = "test_util", + srcs = [ +# "test/cpp/end2end/test_service_impl.cc", + "byte_buffer_proto_helper.cc", + "create_test_channel.cc", + "string_ref_helper.cc", + "subprocess.cc", + "test_credentials_provider.cc", + ], + hdrs = [ + "byte_buffer_proto_helper.h", + "create_test_channel.h", + "string_ref_helper.h", + "subprocess.h", + "test_credentials_provider.h", + ], + deps = ["//test/core/util:gpr_test_util", "//:grpc++", "//test/core/end2end:ssl_test_data"], + visibility = ["//test:__subpackages__"], +) From 554144699a386de06422ee04f63e5b1565ab64fa Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 12:56:23 -0800 Subject: [PATCH 49/56] Add test/core/security/BUILD --- test/core/iomgr/BUILD | 1 + test/core/security/BUILD | 104 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 test/core/security/BUILD diff --git a/test/core/iomgr/BUILD b/test/core/iomgr/BUILD index 08d4a07f413..0cf93e73f5c 100644 --- a/test/core/iomgr/BUILD +++ b/test/core/iomgr/BUILD @@ -36,6 +36,7 @@ cc_library( srcs = ["endpoint_tests.c"], hdrs = ["endpoint_tests.h"], deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + visibility = ["//test:__subpackages__"], copts = ['-std=c99'] ) diff --git a/test/core/security/BUILD b/test/core/security/BUILD new file mode 100644 index 00000000000..e750c39b7c6 --- /dev/null +++ b/test/core/security/BUILD @@ -0,0 +1,104 @@ +# Copyright 2017, 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. + +licenses(["notice"]) # 3-clause BSD + +load("//test/core/util:grpc_fuzzer.bzl", "grpc_fuzzer") + +grpc_fuzzer( + name = "ssl_server_fuzzer", + srcs = ["ssl_server_fuzzer.c"], + deps = ["//:gpr", "//:grpc", "//test/core/util:grpc_test_util"], + corpus = "corpus", + copts = ["-std=c99"], +) + +cc_library( + name = "oauth2_utils", + srcs = ["oauth2_utils.c"], + hdrs = ["oauth2_utils.h"], + deps = ["//:grpc"], + copts = ['-std=c99'] +) + +cc_test( + name = "auth_context_test", + srcs = ["auth_context_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "b64_test", + srcs = ["b64_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "credentials_test", + srcs = ["credentials_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_test( + name = "secure_endpoint_test", + srcs = ["secure_endpoint_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util", "//test/core/iomgr:endpoint_tests"], + copts = ['-std=c99'] +) + +cc_test( + name = "security_connector_test", + srcs = ["security_connector_test.c"], + deps = ["//:grpc", "//test/core/util:grpc_test_util", "//:gpr", "//test/core/util:gpr_test_util"], + copts = ['-std=c99'] +) + +cc_binary( + name = "create_jwt", + srcs = ["create_jwt.c"], + deps = ["//:grpc", "//:gpr"], + copts = ['-std=c99'] +) + +cc_binary( + name = "fetch_oauth2", + srcs = ["fetch_oauth2.c"], + deps = ["//:grpc", "//:gpr", ":oauth2_utils"], + copts = ['-std=c99'] +) + +cc_binary( + name = "verify_jwt", + srcs = ["verify_jwt.c"], + deps = ["//:grpc", "//:gpr"], + copts = ['-std=c99'] +) From 05fbe3c5185c8ba487041862496c41c304ff4c03 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 13:27:21 -0800 Subject: [PATCH 50/56] Get gtest building with Bazel, add first test in test/cpp/common/BUILD --- WORKSPACE | 11 +++++++++++ test/core/json/BUILD | 2 +- test/cpp/common/BUILD | 36 ++++++++++++++++++++++++++++++++++++ third_party/gtest.BUILD | 14 ++++++++++++++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 test/cpp/common/BUILD create mode 100644 third_party/gtest.BUILD diff --git a/WORKSPACE b/WORKSPACE index 98831096345..4f90f06d881 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -28,6 +28,11 @@ bind( actual = "@submodule_protobuf//:protoc", ) +bind( + name = "gtest", + actual = "@submodule_gtest//:gtest", +) + new_local_repository( name = "submodule_boringssl", path = "third_party/boringssl-with-bazel", @@ -45,3 +50,9 @@ new_local_repository( path = "third_party/protobuf", build_file = "third_party/protobuf/BUILD", ) + +new_local_repository( + name = "submodule_gtest", + path = "third_party/googletest", + build_file = "third_party/gtest.BUILD", +) diff --git a/test/core/json/BUILD b/test/core/json/BUILD index 7a12d68126d..f5a877e6af4 100644 --- a/test/core/json/BUILD +++ b/test/core/json/BUILD @@ -1,4 +1,4 @@ -# Copyright 2016, Google Inc. +# Copyright 2017, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without diff --git a/test/cpp/common/BUILD b/test/cpp/common/BUILD new file mode 100644 index 00000000000..0e2db00f0ab --- /dev/null +++ b/test/cpp/common/BUILD @@ -0,0 +1,36 @@ +# Copyright 2017, 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. + +licenses(["notice"]) # 3-clause BSD + +cc_test( + name = "alarm_cpp_test", + srcs = ["alarm_cpp_test.cc"], + deps = ["//:grpc++", "//external:gtest", "//test/core/util:gpr_test_util"], +) diff --git a/third_party/gtest.BUILD b/third_party/gtest.BUILD new file mode 100644 index 00000000000..bf980754ca2 --- /dev/null +++ b/third_party/gtest.BUILD @@ -0,0 +1,14 @@ +cc_library( + name = "gtest", + srcs = [ + "src/gtest-all.cc", + ], + hdrs = glob(["include/**/*.h", "src/*.cc", "src/*.h"]), + includes = [ + "include", "." + ], + linkstatic = 1, + visibility = [ + "//visibility:public", + ], +) From 221edc1e5b7699ca00336b98749953ea9571b230 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 13:58:19 -0800 Subject: [PATCH 51/56] Remove dead code --- test/cpp/qps/qps_test_with_poll.cc | 85 ------------------------------ 1 file changed, 85 deletions(-) delete mode 100644 test/cpp/qps/qps_test_with_poll.cc diff --git a/test/cpp/qps/qps_test_with_poll.cc b/test/cpp/qps/qps_test_with_poll.cc deleted file mode 100644 index c64e6c9d495..00000000000 --- a/test/cpp/qps/qps_test_with_poll.cc +++ /dev/null @@ -1,85 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#include - -#include - -#include "test/cpp/qps/driver.h" -#include "test/cpp/qps/report.h" -#include "test/cpp/util/benchmark_config.h" - -extern "C" { -#include "src/core/lib/iomgr/pollset_posix.h" -} - -namespace grpc { -namespace testing { - -static const int WARMUP = 5; -static const int BENCHMARK = 5; - -static void RunQPS() { - gpr_log(GPR_INFO, "Running QPS test"); - - ClientConfig client_config; - client_config.set_client_type(ASYNC_CLIENT); - client_config.set_outstanding_rpcs_per_channel(1000); - client_config.set_client_channels(8); - client_config.set_async_client_threads(8); - client_config.set_rpc_type(UNARY); - client_config.mutable_load_params()->mutable_closed_loop(); - - ServerConfig server_config; - server_config.set_server_type(ASYNC_SERVER); - server_config.set_async_server_threads(4); - - const auto result = - RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); - - GetReporter()->ReportQPSPerCore(*result); - GetReporter()->ReportLatency(*result); -} - -} // namespace testing -} // namespace grpc - -int main(int argc, char** argv) { - grpc::testing::InitBenchmark(&argc, &argv, true); - - grpc_platform_become_multipoller = grpc_poll_become_multipoller; - - grpc::testing::RunQPS(); - - return 0; -} From ece502fa12ae9db7fc969f0bae1f7c26ece1dce3 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 17 Feb 2017 16:20:50 -0800 Subject: [PATCH 52/56] Speed up latency profiling (and tune down the memory usage) --- tools/run_tests/run_microbenchmark.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/run_tests/run_microbenchmark.py b/tools/run_tests/run_microbenchmark.py index a9a563c1bec..1cafffb52dd 100755 --- a/tools/run_tests/run_microbenchmark.py +++ b/tools/run_tests/run_microbenchmark.py @@ -91,7 +91,9 @@ def collect_latency(bm_name, args): '--benchmark_list_tests']).splitlines(): link(line, '%s.txt' % fnize(line)) benchmarks.append( - jobset.JobSpec(['bins/basicprof/%s' % bm_name, '--benchmark_filter=^%s$' % line], + jobset.JobSpec(['bins/basicprof/%s' % bm_name, + '--benchmark_filter=^%s$' % line, + '--benchmark_min_time=0.05'], environ={'LATENCY_TRACE': '%s.trace' % fnize(line)})) profile_analysis.append( jobset.JobSpec([sys.executable, @@ -103,7 +105,7 @@ def collect_latency(bm_name, args): # consume upwards of five gigabytes of ram in some cases, and so analysing # hundreds of them at once is impractical -- but we want at least some # concurrency or the work takes too long - if len(benchmarks) >= min(4, multiprocessing.cpu_count()): + if len(benchmarks) >= min(16, multiprocessing.cpu_count()): # run up to half the cpu count: each benchmark can use up to two cores # (one for the microbenchmark, one for the data flush) jobset.run(benchmarks, maxjobs=max(1, multiprocessing.cpu_count()/2), From f3dec9c995e5c2b85460107a9ad9d937facd9a49 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 21 Feb 2017 10:02:31 -0800 Subject: [PATCH 53/56] Add counters for rmw atomic operations to microbenchmarks --- Makefile | 2 +- build.yaml | 2 +- include/grpc/impl/codegen/atm_gcc_atomic.h | 30 +++++++++---- src/core/lib/support/sync_posix.c | 9 ++-- test/cpp/microbenchmarks/bm_closure.cc | 51 ++++++++++++++++++++++ test/cpp/microbenchmarks/bm_fullstack.cc | 20 ++++++--- 6 files changed, 92 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index 8f92816672b..d47d967e477 100644 --- a/Makefile +++ b/Makefile @@ -217,7 +217,7 @@ CC_counters = $(DEFAULT_CC) CXX_counters = $(DEFAULT_CXX) LD_counters = $(DEFAULT_CC) LDXX_counters = $(DEFAULT_CXX) -CPPFLAGS_counters = -O2 -DGPR_MU_COUNTERS +CPPFLAGS_counters = -O2 -DGPR_LOW_LEVEL_COUNTERS DEFINES_counters = NDEBUG diff --git a/build.yaml b/build.yaml index 141526cb594..120c7a85b1e 100644 --- a/build.yaml +++ b/build.yaml @@ -3919,7 +3919,7 @@ configs: CPPFLAGS: -O2 -DGRPC_BASIC_PROFILER -DGRPC_TIMERS_RDTSC DEFINES: NDEBUG counters: - CPPFLAGS: -O2 -DGPR_MU_COUNTERS + CPPFLAGS: -O2 -DGPR_LOW_LEVEL_COUNTERS DEFINES: NDEBUG dbg: CPPFLAGS: -O0 diff --git a/include/grpc/impl/codegen/atm_gcc_atomic.h b/include/grpc/impl/codegen/atm_gcc_atomic.h index 7d4ae98cf78..e5a623f723c 100644 --- a/include/grpc/impl/codegen/atm_gcc_atomic.h +++ b/include/grpc/impl/codegen/atm_gcc_atomic.h @@ -40,6 +40,15 @@ typedef intptr_t gpr_atm; +#ifdef GPR_LOW_LEVEL_COUNTERS +extern gpr_atm gpr_counter_rmw; +#define GPR_ATM_INC_COUNTER(counter) \ + __atomic_fetch_add(&counter, 1, __ATOMIC_RELAXED) +#define GPR_ATM_INC_RMW_THEN(blah) (GPR_ATM_INC_COUNTER(gpr_counter_rmw), blah) +#else +#define GPR_ATM_INC_RMW_THEN(blah) blah +#endif + #define gpr_atm_full_barrier() (__atomic_thread_fence(__ATOMIC_SEQ_CST)) #define gpr_atm_acq_load(p) (__atomic_load_n((p), __ATOMIC_ACQUIRE)) @@ -50,25 +59,28 @@ typedef intptr_t gpr_atm; (__atomic_store_n((p), (intptr_t)(value), __ATOMIC_RELAXED)) #define gpr_atm_no_barrier_fetch_add(p, delta) \ - (__atomic_fetch_add((p), (intptr_t)(delta), __ATOMIC_RELAXED)) + GPR_ATM_INC_RMW_THEN( \ + __atomic_fetch_add((p), (intptr_t)(delta), __ATOMIC_RELAXED)) #define gpr_atm_full_fetch_add(p, delta) \ - (__atomic_fetch_add((p), (intptr_t)(delta), __ATOMIC_ACQ_REL)) + GPR_ATM_INC_RMW_THEN( \ + __atomic_fetch_add((p), (intptr_t)(delta), __ATOMIC_ACQ_REL)) static __inline int gpr_atm_no_barrier_cas(gpr_atm *p, gpr_atm o, gpr_atm n) { - return __atomic_compare_exchange_n(p, &o, n, 0, __ATOMIC_RELAXED, - __ATOMIC_RELAXED); + return GPR_ATM_INC_RMW_THEN(__atomic_compare_exchange_n( + p, &o, n, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED)); } static __inline int gpr_atm_acq_cas(gpr_atm *p, gpr_atm o, gpr_atm n) { - return __atomic_compare_exchange_n(p, &o, n, 0, __ATOMIC_ACQUIRE, - __ATOMIC_RELAXED); + return GPR_ATM_INC_RMW_THEN(__atomic_compare_exchange_n( + p, &o, n, 0, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED)); } static __inline int gpr_atm_rel_cas(gpr_atm *p, gpr_atm o, gpr_atm n) { - return __atomic_compare_exchange_n(p, &o, n, 0, __ATOMIC_RELEASE, - __ATOMIC_RELAXED); + return GPR_ATM_INC_RMW_THEN(__atomic_compare_exchange_n( + p, &o, n, 0, __ATOMIC_RELEASE, __ATOMIC_RELAXED)); } -#define gpr_atm_full_xchg(p, n) __atomic_exchange_n((p), (n), __ATOMIC_ACQ_REL) +#define gpr_atm_full_xchg(p, n) \ + GPR_ATM_INC_RMW_THEN(__atomic_exchange_n((p), (n), __ATOMIC_ACQ_REL)) #endif /* GRPC_IMPL_CODEGEN_ATM_GCC_ATOMIC_H */ diff --git a/src/core/lib/support/sync_posix.c b/src/core/lib/support/sync_posix.c index de0f0484b57..3b7d7806082 100644 --- a/src/core/lib/support/sync_posix.c +++ b/src/core/lib/support/sync_posix.c @@ -42,8 +42,9 @@ #include #include "src/core/lib/profiling/timers.h" -#ifdef GPR_MU_COUNTERS -gpr_atm grpc_mu_locks = 0; +#ifdef GPR_LOW_LEVEL_COUNTERS +gpr_atm gpr_mu_locks = 0; +gpr_atm gpr_counter_rmw = 0; #endif void gpr_mu_init(gpr_mu* mu) { GPR_ASSERT(pthread_mutex_init(mu, NULL) == 0); } @@ -51,8 +52,8 @@ void gpr_mu_init(gpr_mu* mu) { GPR_ASSERT(pthread_mutex_init(mu, NULL) == 0); } void gpr_mu_destroy(gpr_mu* mu) { GPR_ASSERT(pthread_mutex_destroy(mu) == 0); } void gpr_mu_lock(gpr_mu* mu) { -#ifdef GPR_MU_COUNTERS - gpr_atm_no_barrier_fetch_add(&grpc_mu_locks, 1); +#ifdef GPR_LOW_LEVEL_COUNTERS + GPR_ATM_INC_COUNTER(gpr_mu_locks); #endif GPR_TIMER_BEGIN("gpr_mu_lock", 0); GPR_ASSERT(pthread_mutex_lock(mu) == 0); diff --git a/test/cpp/microbenchmarks/bm_closure.cc b/test/cpp/microbenchmarks/bm_closure.cc index 80d6610e13b..16d05781bb4 100644 --- a/test/cpp/microbenchmarks/bm_closure.cc +++ b/test/cpp/microbenchmarks/bm_closure.cc @@ -43,13 +43,46 @@ extern "C" { #include "third_party/benchmark/include/benchmark/benchmark.h" +#include + +#ifdef GPR_LOW_LEVEL_COUNTERS +extern "C" gpr_atm gpr_mu_locks; +#endif + static class InitializeStuff { public: InitializeStuff() { grpc_init(); } ~InitializeStuff() { grpc_shutdown(); } } initialize_stuff; +class TrackCounters { + public: + TrackCounters(benchmark::State& state) : state_(state) {} + + ~TrackCounters() { + std::ostringstream out; +#ifdef GPR_LOW_LEVEL_COUNTERS + out << " locks/iter:" << ((double)(gpr_atm_no_barrier_load(&gpr_mu_locks) - + mu_locks_at_start_) / + (double)state_.iterations()) + << " atm_rmw/iter:" + << ((double)(gpr_atm_no_barrier_load(&gpr_counter_rmw) - + rmw_at_start_) / + (double)state_.iterations()); +#endif + state_.SetLabel(out.str()); + } + + private: + benchmark::State& state_; +#ifdef GPR_LOW_LEVEL_COUNTERS + const size_t mu_locks_at_start_ = gpr_atm_no_barrier_load(&gpr_mu_locks); + const size_t rmw_at_start_ = gpr_atm_no_barrier_load(&gpr_counter_rmw); +#endif +}; + static void BM_NoOpExecCtx(benchmark::State& state) { + TrackCounters track_counters(state); while (state.KeepRunning()) { grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; grpc_exec_ctx_finish(&exec_ctx); @@ -58,6 +91,7 @@ static void BM_NoOpExecCtx(benchmark::State& state) { BENCHMARK(BM_NoOpExecCtx); static void BM_WellFlushed(benchmark::State& state) { + TrackCounters track_counters(state); grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; while (state.KeepRunning()) { grpc_exec_ctx_flush(&exec_ctx); @@ -69,6 +103,7 @@ BENCHMARK(BM_WellFlushed); static void DoNothing(grpc_exec_ctx* exec_ctx, void* arg, grpc_error* error) {} static void BM_ClosureInitAgainstExecCtx(benchmark::State& state) { + TrackCounters track_counters(state); grpc_closure c; while (state.KeepRunning()) { benchmark::DoNotOptimize( @@ -78,6 +113,7 @@ static void BM_ClosureInitAgainstExecCtx(benchmark::State& state) { BENCHMARK(BM_ClosureInitAgainstExecCtx); static void BM_ClosureInitAgainstCombiner(benchmark::State& state) { + TrackCounters track_counters(state); grpc_combiner* combiner = grpc_combiner_create(NULL); grpc_closure c; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; @@ -91,6 +127,7 @@ static void BM_ClosureInitAgainstCombiner(benchmark::State& state) { BENCHMARK(BM_ClosureInitAgainstCombiner); static void BM_ClosureRunOnExecCtx(benchmark::State& state) { + TrackCounters track_counters(state); grpc_closure c; grpc_closure_init(&c, DoNothing, NULL, grpc_schedule_on_exec_ctx); grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; @@ -103,6 +140,7 @@ static void BM_ClosureRunOnExecCtx(benchmark::State& state) { BENCHMARK(BM_ClosureRunOnExecCtx); static void BM_ClosureCreateAndRun(benchmark::State& state) { + TrackCounters track_counters(state); grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; while (state.KeepRunning()) { grpc_closure_run(&exec_ctx, grpc_closure_create(DoNothing, NULL, @@ -114,6 +152,7 @@ static void BM_ClosureCreateAndRun(benchmark::State& state) { BENCHMARK(BM_ClosureCreateAndRun); static void BM_ClosureInitAndRun(benchmark::State& state) { + TrackCounters track_counters(state); grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; grpc_closure c; while (state.KeepRunning()) { @@ -126,6 +165,7 @@ static void BM_ClosureInitAndRun(benchmark::State& state) { BENCHMARK(BM_ClosureInitAndRun); static void BM_ClosureSchedOnExecCtx(benchmark::State& state) { + TrackCounters track_counters(state); grpc_closure c; grpc_closure_init(&c, DoNothing, NULL, grpc_schedule_on_exec_ctx); grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; @@ -138,6 +178,7 @@ static void BM_ClosureSchedOnExecCtx(benchmark::State& state) { BENCHMARK(BM_ClosureSchedOnExecCtx); static void BM_ClosureSched2OnExecCtx(benchmark::State& state) { + TrackCounters track_counters(state); grpc_closure c1; grpc_closure c2; grpc_closure_init(&c1, DoNothing, NULL, grpc_schedule_on_exec_ctx); @@ -153,6 +194,7 @@ static void BM_ClosureSched2OnExecCtx(benchmark::State& state) { BENCHMARK(BM_ClosureSched2OnExecCtx); static void BM_ClosureSched3OnExecCtx(benchmark::State& state) { + TrackCounters track_counters(state); grpc_closure c1; grpc_closure c2; grpc_closure c3; @@ -171,6 +213,7 @@ static void BM_ClosureSched3OnExecCtx(benchmark::State& state) { BENCHMARK(BM_ClosureSched3OnExecCtx); static void BM_AcquireMutex(benchmark::State& state) { + TrackCounters track_counters(state); // for comparison with the combiner stuff below gpr_mu mu; gpr_mu_init(&mu); @@ -185,6 +228,7 @@ static void BM_AcquireMutex(benchmark::State& state) { BENCHMARK(BM_AcquireMutex); static void BM_ClosureSchedOnCombiner(benchmark::State& state) { + TrackCounters track_counters(state); grpc_combiner* combiner = grpc_combiner_create(NULL); grpc_closure c; grpc_closure_init(&c, DoNothing, NULL, @@ -200,6 +244,7 @@ static void BM_ClosureSchedOnCombiner(benchmark::State& state) { BENCHMARK(BM_ClosureSchedOnCombiner); static void BM_ClosureSched2OnCombiner(benchmark::State& state) { + TrackCounters track_counters(state); grpc_combiner* combiner = grpc_combiner_create(NULL); grpc_closure c1; grpc_closure c2; @@ -219,6 +264,7 @@ static void BM_ClosureSched2OnCombiner(benchmark::State& state) { BENCHMARK(BM_ClosureSched2OnCombiner); static void BM_ClosureSched3OnCombiner(benchmark::State& state) { + TrackCounters track_counters(state); grpc_combiner* combiner = grpc_combiner_create(NULL); grpc_closure c1; grpc_closure c2; @@ -242,6 +288,7 @@ static void BM_ClosureSched3OnCombiner(benchmark::State& state) { BENCHMARK(BM_ClosureSched3OnCombiner); static void BM_ClosureSched2OnTwoCombiners(benchmark::State& state) { + TrackCounters track_counters(state); grpc_combiner* combiner1 = grpc_combiner_create(NULL); grpc_combiner* combiner2 = grpc_combiner_create(NULL); grpc_closure c1; @@ -263,6 +310,7 @@ static void BM_ClosureSched2OnTwoCombiners(benchmark::State& state) { BENCHMARK(BM_ClosureSched2OnTwoCombiners); static void BM_ClosureSched4OnTwoCombiners(benchmark::State& state) { + TrackCounters track_counters(state); grpc_combiner* combiner1 = grpc_combiner_create(NULL); grpc_combiner* combiner2 = grpc_combiner_create(NULL); grpc_closure c1; @@ -323,6 +371,7 @@ class Rescheduler { }; static void BM_ClosureReschedOnExecCtx(benchmark::State& state) { + TrackCounters track_counters(state); grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; Rescheduler r(state, grpc_schedule_on_exec_ctx); r.ScheduleFirst(&exec_ctx); @@ -331,6 +380,7 @@ static void BM_ClosureReschedOnExecCtx(benchmark::State& state) { BENCHMARK(BM_ClosureReschedOnExecCtx); static void BM_ClosureReschedOnCombiner(benchmark::State& state) { + TrackCounters track_counters(state); grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; grpc_combiner* combiner = grpc_combiner_create(NULL); Rescheduler r(state, grpc_combiner_scheduler(combiner, false)); @@ -342,6 +392,7 @@ static void BM_ClosureReschedOnCombiner(benchmark::State& state) { BENCHMARK(BM_ClosureReschedOnCombiner); static void BM_ClosureReschedOnCombinerFinally(benchmark::State& state) { + TrackCounters track_counters(state); grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; grpc_combiner* combiner = grpc_combiner_create(NULL); Rescheduler r(state, grpc_combiner_finally_scheduler(combiner, false)); diff --git a/test/cpp/microbenchmarks/bm_fullstack.cc b/test/cpp/microbenchmarks/bm_fullstack.cc index c63de0ce0ab..5bb456ab468 100644 --- a/test/cpp/microbenchmarks/bm_fullstack.cc +++ b/test/cpp/microbenchmarks/bm_fullstack.cc @@ -99,8 +99,9 @@ static void ApplyCommonChannelArguments(ChannelArguments* c) { c->SetInt(GRPC_ARG_MAX_SEND_MESSAGE_LENGTH, INT_MAX); } -#ifdef GPR_MU_COUNTERS -extern "C" gpr_atm grpc_mu_locks; +#ifdef GPR_LOW_LEVEL_COUNTERS +extern "C" gpr_atm gpr_mu_locks; +extern "C" gpr_atm gpr_counter_rmw; #endif class BaseFixture { @@ -108,10 +109,14 @@ class BaseFixture { void Finish(benchmark::State& s) { std::ostringstream out; this->AddToLabel(out, s); -#ifdef GPR_MU_COUNTERS - out << " locks/iter:" << ((double)(gpr_atm_no_barrier_load(&grpc_mu_locks) - +#ifdef GPR_LOW_LEVEL_COUNTERS + out << " locks/iter:" << ((double)(gpr_atm_no_barrier_load(&gpr_mu_locks) - mu_locks_at_start_) / - (double)s.iterations()); + (double)s.iterations()) + << " atm_rmw/iter:" + << ((double)(gpr_atm_no_barrier_load(&gpr_counter_rmw) - + rmw_at_start_) / + (double)s.iterations()); #endif grpc_memory_counters counters_at_end = grpc_memory_counters_snapshot(); out << " allocs/iter:" @@ -128,8 +133,9 @@ class BaseFixture { virtual void AddToLabel(std::ostream& out, benchmark::State& s) = 0; private: -#ifdef GPR_MU_COUNTERS - const size_t mu_locks_at_start_ = gpr_atm_no_barrier_load(&grpc_mu_locks); +#ifdef GPR_LOW_LEVEL_COUNTERS + const size_t mu_locks_at_start_ = gpr_atm_no_barrier_load(&gpr_mu_locks); + const size_t rmw_at_start_ = gpr_atm_no_barrier_load(&gpr_counter_rmw); #endif grpc_memory_counters counters_at_start_ = grpc_memory_counters_snapshot(); }; From 3d826b9e0acf79466726c5ef188975cb3cec45e0 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 21 Feb 2017 10:05:59 -0800 Subject: [PATCH 54/56] Fix script to track atomic rmws --- tools/profiling/microbenchmarks/bm2bq.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/profiling/microbenchmarks/bm2bq.py b/tools/profiling/microbenchmarks/bm2bq.py index a7d82269f55..62a2f699c7a 100755 --- a/tools/profiling/microbenchmarks/bm2bq.py +++ b/tools/profiling/microbenchmarks/bm2bq.py @@ -66,6 +66,7 @@ columns = [ ('cli_stream_stalls_per_iteration', 'float'), ('svr_transport_stalls_per_iteration', 'float'), ('svr_stream_stalls_per_iteration', 'float'), + ('atm_rmw_per_iteration', 'float') ] if sys.argv[1] == '--schema': @@ -158,7 +159,7 @@ def parse_name(name): for bm in js['benchmarks']: context = js['context'] if 'label' in bm: - labels_list = [s.split(':') for s in bm['label'].split(' ')] + labels_list = [s.split(':') for s in bm['label'].strip().split(' ')] for el in labels_list: el[0] = el[0].replace('/iter', '_per_iteration') labels = dict(labels_list) From 7f4d30a0321a042d4f8512815c1029cbaad6fac8 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 21 Feb 2017 10:24:00 -0800 Subject: [PATCH 55/56] Separate CAS/ADD RMWs --- include/grpc/impl/codegen/atm_gcc_atomic.h | 23 +++++++++++++--------- src/core/lib/support/sync_posix.c | 3 ++- test/cpp/microbenchmarks/bm_closure.cc | 15 ++++++++++---- test/cpp/microbenchmarks/bm_fullstack.cc | 18 ++++++++++++----- tools/profiling/microbenchmarks/bm2bq.py | 3 ++- 5 files changed, 42 insertions(+), 20 deletions(-) diff --git a/include/grpc/impl/codegen/atm_gcc_atomic.h b/include/grpc/impl/codegen/atm_gcc_atomic.h index e5a623f723c..4bd3b257413 100644 --- a/include/grpc/impl/codegen/atm_gcc_atomic.h +++ b/include/grpc/impl/codegen/atm_gcc_atomic.h @@ -41,12 +41,17 @@ typedef intptr_t gpr_atm; #ifdef GPR_LOW_LEVEL_COUNTERS -extern gpr_atm gpr_counter_rmw; +extern gpr_atm gpr_counter_atm_cas; +extern gpr_atm gpr_counter_atm_add; #define GPR_ATM_INC_COUNTER(counter) \ __atomic_fetch_add(&counter, 1, __ATOMIC_RELAXED) -#define GPR_ATM_INC_RMW_THEN(blah) (GPR_ATM_INC_COUNTER(gpr_counter_rmw), blah) +#define GPR_ATM_INC_CAS_THEN(blah) \ + (GPR_ATM_INC_COUNTER(gpr_counter_atm_cas), blah) +#define GPR_ATM_INC_ADD_THEN(blah) \ + (GPR_ATM_INC_COUNTER(gpr_counter_atm_add), blah) #else -#define GPR_ATM_INC_RMW_THEN(blah) blah +#define GPR_ATM_INC_CAS_THEN(blah) blah +#define GPR_ATM_INC_ADD_THEN(blah) blah #endif #define gpr_atm_full_barrier() (__atomic_thread_fence(__ATOMIC_SEQ_CST)) @@ -59,28 +64,28 @@ extern gpr_atm gpr_counter_rmw; (__atomic_store_n((p), (intptr_t)(value), __ATOMIC_RELAXED)) #define gpr_atm_no_barrier_fetch_add(p, delta) \ - GPR_ATM_INC_RMW_THEN( \ + GPR_ATM_INC_ADD_THEN( \ __atomic_fetch_add((p), (intptr_t)(delta), __ATOMIC_RELAXED)) #define gpr_atm_full_fetch_add(p, delta) \ - GPR_ATM_INC_RMW_THEN( \ + GPR_ATM_INC_ADD_THEN( \ __atomic_fetch_add((p), (intptr_t)(delta), __ATOMIC_ACQ_REL)) static __inline int gpr_atm_no_barrier_cas(gpr_atm *p, gpr_atm o, gpr_atm n) { - return GPR_ATM_INC_RMW_THEN(__atomic_compare_exchange_n( + return GPR_ATM_INC_CAS_THEN(__atomic_compare_exchange_n( p, &o, n, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED)); } static __inline int gpr_atm_acq_cas(gpr_atm *p, gpr_atm o, gpr_atm n) { - return GPR_ATM_INC_RMW_THEN(__atomic_compare_exchange_n( + return GPR_ATM_INC_CAS_THEN(__atomic_compare_exchange_n( p, &o, n, 0, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED)); } static __inline int gpr_atm_rel_cas(gpr_atm *p, gpr_atm o, gpr_atm n) { - return GPR_ATM_INC_RMW_THEN(__atomic_compare_exchange_n( + return GPR_ATM_INC_CAS_THEN(__atomic_compare_exchange_n( p, &o, n, 0, __ATOMIC_RELEASE, __ATOMIC_RELAXED)); } #define gpr_atm_full_xchg(p, n) \ - GPR_ATM_INC_RMW_THEN(__atomic_exchange_n((p), (n), __ATOMIC_ACQ_REL)) + GPR_ATM_INC_CAS_THEN(__atomic_exchange_n((p), (n), __ATOMIC_ACQ_REL)) #endif /* GRPC_IMPL_CODEGEN_ATM_GCC_ATOMIC_H */ diff --git a/src/core/lib/support/sync_posix.c b/src/core/lib/support/sync_posix.c index 3b7d7806082..16e7d6e12a5 100644 --- a/src/core/lib/support/sync_posix.c +++ b/src/core/lib/support/sync_posix.c @@ -44,7 +44,8 @@ #ifdef GPR_LOW_LEVEL_COUNTERS gpr_atm gpr_mu_locks = 0; -gpr_atm gpr_counter_rmw = 0; +gpr_atm gpr_counter_atm_cas = 0; +gpr_atm gpr_counter_atm_add = 0; #endif void gpr_mu_init(gpr_mu* mu) { GPR_ASSERT(pthread_mutex_init(mu, NULL) == 0); } diff --git a/test/cpp/microbenchmarks/bm_closure.cc b/test/cpp/microbenchmarks/bm_closure.cc index 16d05781bb4..03aede35b27 100644 --- a/test/cpp/microbenchmarks/bm_closure.cc +++ b/test/cpp/microbenchmarks/bm_closure.cc @@ -65,9 +65,13 @@ class TrackCounters { out << " locks/iter:" << ((double)(gpr_atm_no_barrier_load(&gpr_mu_locks) - mu_locks_at_start_) / (double)state_.iterations()) - << " atm_rmw/iter:" - << ((double)(gpr_atm_no_barrier_load(&gpr_counter_rmw) - - rmw_at_start_) / + << " atm_cas/iter:" + << ((double)(gpr_atm_no_barrier_load(&gpr_counter_atm_cas) - + atm_cas_at_start_) / + (double)state_.iterations()) + << " atm_add/iter:" + << ((double)(gpr_atm_no_barrier_load(&gpr_counter_atm_add) - + atm_add_at_start_) / (double)state_.iterations()); #endif state_.SetLabel(out.str()); @@ -77,7 +81,10 @@ class TrackCounters { benchmark::State& state_; #ifdef GPR_LOW_LEVEL_COUNTERS const size_t mu_locks_at_start_ = gpr_atm_no_barrier_load(&gpr_mu_locks); - const size_t rmw_at_start_ = gpr_atm_no_barrier_load(&gpr_counter_rmw); + const size_t atm_cas_at_start_ = + gpr_atm_no_barrier_load(&gpr_counter_atm_cas); + const size_t atm_add_at_start_ = + gpr_atm_no_barrier_load(&gpr_counter_atm_add); #endif }; diff --git a/test/cpp/microbenchmarks/bm_fullstack.cc b/test/cpp/microbenchmarks/bm_fullstack.cc index 5bb456ab468..48e131f1be0 100644 --- a/test/cpp/microbenchmarks/bm_fullstack.cc +++ b/test/cpp/microbenchmarks/bm_fullstack.cc @@ -101,7 +101,8 @@ static void ApplyCommonChannelArguments(ChannelArguments* c) { #ifdef GPR_LOW_LEVEL_COUNTERS extern "C" gpr_atm gpr_mu_locks; -extern "C" gpr_atm gpr_counter_rmw; +extern "C" gpr_atm gpr_counter_atm_cas; +extern "C" gpr_atm gpr_counter_atm_add; #endif class BaseFixture { @@ -113,9 +114,13 @@ class BaseFixture { out << " locks/iter:" << ((double)(gpr_atm_no_barrier_load(&gpr_mu_locks) - mu_locks_at_start_) / (double)s.iterations()) - << " atm_rmw/iter:" - << ((double)(gpr_atm_no_barrier_load(&gpr_counter_rmw) - - rmw_at_start_) / + << " atm_cas/iter:" + << ((double)(gpr_atm_no_barrier_load(&gpr_counter_atm_cas) - + atm_cas_at_start_) / + (double)s.iterations()) + << " atm_add/iter:" + << ((double)(gpr_atm_no_barrier_load(&gpr_counter_atm_add) - + atm_add_at_start_) / (double)s.iterations()); #endif grpc_memory_counters counters_at_end = grpc_memory_counters_snapshot(); @@ -135,7 +140,10 @@ class BaseFixture { private: #ifdef GPR_LOW_LEVEL_COUNTERS const size_t mu_locks_at_start_ = gpr_atm_no_barrier_load(&gpr_mu_locks); - const size_t rmw_at_start_ = gpr_atm_no_barrier_load(&gpr_counter_rmw); + const size_t atm_cas_at_start_ = + gpr_atm_no_barrier_load(&gpr_counter_atm_cas); + const size_t atm_add_at_start_ = + gpr_atm_no_barrier_load(&gpr_counter_atm_add); #endif grpc_memory_counters counters_at_start_ = grpc_memory_counters_snapshot(); }; diff --git a/tools/profiling/microbenchmarks/bm2bq.py b/tools/profiling/microbenchmarks/bm2bq.py index 62a2f699c7a..8ead4b44559 100755 --- a/tools/profiling/microbenchmarks/bm2bq.py +++ b/tools/profiling/microbenchmarks/bm2bq.py @@ -66,7 +66,8 @@ columns = [ ('cli_stream_stalls_per_iteration', 'float'), ('svr_transport_stalls_per_iteration', 'float'), ('svr_stream_stalls_per_iteration', 'float'), - ('atm_rmw_per_iteration', 'float') + ('atm_cas_per_iteration', 'float') + ('atm_add_per_iteration', 'float') ] if sys.argv[1] == '--schema': From ebcba69bc0f9483eb8c2ffac5ed90c437def2d89 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 21 Feb 2017 13:31:24 -0800 Subject: [PATCH 56/56] Fix typo --- tools/profiling/microbenchmarks/bm2bq.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/profiling/microbenchmarks/bm2bq.py b/tools/profiling/microbenchmarks/bm2bq.py index 8ead4b44559..8770fb71cf5 100755 --- a/tools/profiling/microbenchmarks/bm2bq.py +++ b/tools/profiling/microbenchmarks/bm2bq.py @@ -66,7 +66,7 @@ columns = [ ('cli_stream_stalls_per_iteration', 'float'), ('svr_transport_stalls_per_iteration', 'float'), ('svr_stream_stalls_per_iteration', 'float'), - ('atm_cas_per_iteration', 'float') + ('atm_cas_per_iteration', 'float'), ('atm_add_per_iteration', 'float') ]