From d2ee81fcd4b1e9dd6f7dbfefc796de7dd20d0b5e Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Fri, 26 Feb 2016 11:10:33 -0800 Subject: Created a Node grpc plugin --- vsprojects/grpc_protoc_plugins.sln | 16 ++++++++++++++++ .../grpc_plugin_support/grpc_plugin_support.vcxproj | 4 ++++ .../grpc_plugin_support.vcxproj.filters | 9 +++++++++ 3 files changed, 29 insertions(+) (limited to 'vsprojects') diff --git a/vsprojects/grpc_protoc_plugins.sln b/vsprojects/grpc_protoc_plugins.sln index ef1cbb8e57..ace295daea 100644 --- a/vsprojects/grpc_protoc_plugins.sln +++ b/vsprojects/grpc_protoc_plugins.sln @@ -24,6 +24,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_csharp_plugin", "vcxpr {B6E81D84-2ACB-41B8-8781-493A944C7817} = {B6E81D84-2ACB-41B8-8781-493A944C7817} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_node_plugin", "vcxproj\.\grpc_node_plugin\grpc_node_plugin.vcxproj", "{57ABD9A2-CE8E-CCA7-5171-35C4534F3595}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B6E81D84-2ACB-41B8-8781-493A944C7817} = {B6E81D84-2ACB-41B8-8781-493A944C7817} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_objective_c_plugin", "vcxproj\.\grpc_objective_c_plugin\grpc_objective_c_plugin.vcxproj", "{19564640-CEE6-4921-ABA5-676ED79A36F6}" ProjectSection(myProperties) = preProject lib = "False" @@ -80,6 +88,14 @@ Global {3C813052-A49A-4662-B90A-1ADBEC7EE453}.Debug|x64.Build.0 = Debug|x64 {3C813052-A49A-4662-B90A-1ADBEC7EE453}.Release|Win32.Build.0 = Release|Win32 {3C813052-A49A-4662-B90A-1ADBEC7EE453}.Release|x64.Build.0 = Release|x64 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Debug|Win32.ActiveCfg = Debug|Win32 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Debug|x64.ActiveCfg = Debug|x64 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Release|Win32.ActiveCfg = Release|Win32 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Release|x64.ActiveCfg = Release|x64 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Debug|Win32.Build.0 = Debug|Win32 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Debug|x64.Build.0 = Debug|x64 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Release|Win32.Build.0 = Release|Win32 + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595}.Release|x64.Build.0 = Release|x64 {19564640-CEE6-4921-ABA5-676ED79A36F6}.Debug|Win32.ActiveCfg = Debug|Win32 {19564640-CEE6-4921-ABA5-676ED79A36F6}.Debug|x64.ActiveCfg = Debug|x64 {19564640-CEE6-4921-ABA5-676ED79A36F6}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj index 89183902d7..147c251169 100644 --- a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj +++ b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj @@ -207,6 +207,8 @@ + + @@ -220,6 +222,8 @@ + + diff --git a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters index de33d98f6d..e9e68a9f27 100644 --- a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters @@ -7,6 +7,9 @@ src\compiler + + src\compiler + src\compiler @@ -197,6 +200,12 @@ src\compiler + + src\compiler + + + src\compiler + src\compiler -- cgit v1.2.3 From 7d69ea63c8af9c7be43434993c82f93033343dce Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Fri, 26 Feb 2016 11:44:24 -0800 Subject: Minor change to node generator, and add a folder --- src/compiler/node_generator.cc | 2 + .../grpc_node_plugin/grpc_node_plugin.vcxproj | 168 +++++++++++++++++++++ .../grpc_node_plugin.vcxproj.filters | 18 +++ 3 files changed, 188 insertions(+) create mode 100644 vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj create mode 100644 vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj.filters (limited to 'vsprojects') diff --git a/src/compiler/node_generator.cc b/src/compiler/node_generator.cc index 00db79cabb..7605b64531 100644 --- a/src/compiler/node_generator.cc +++ b/src/compiler/node_generator.cc @@ -210,6 +210,8 @@ grpc::string GetImports(const FileDescriptor *file) { return output; } + out.Print("// GENERATED CODE -- DO NOT EDIT!\n\n"); + out.Print("var grpc = require('grpc');\n"); if (file->message_type_count() > 0) { grpc::string file_path = GetRelativePath(file->name(), diff --git a/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj b/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj new file mode 100644 index 0000000000..faf93fd136 --- /dev/null +++ b/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj @@ -0,0 +1,168 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {57ABD9A2-CE8E-CCA7-5171-35C4534F3595} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + grpc_node_plugin + + + grpc_node_plugin + + + + 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 + + + + + + + + + + {B6E81D84-2ACB-41B8-8781-493A944C7817} + + + + + + + + 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/grpc_node_plugin/grpc_node_plugin.vcxproj.filters b/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj.filters new file mode 100644 index 0000000000..28b197f6f3 --- /dev/null +++ b/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj.filters @@ -0,0 +1,18 @@ + + + + + src\compiler + + + + + + {089d5d6b-d438-dc98-b30f-bd608e3bbb78} + + + {1cc34440-c001-7578-c4d3-78f5d98fb602} + + + + -- cgit v1.2.3 From 62c7a5a69975209cf056008ab5d8389dff8f485f Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Wed, 13 Apr 2016 22:25:03 -0700 Subject: Channel establishment --- Makefile | 2 + build.yaml | 2 + test/core/end2end/fuzzers/api_fuzzer.c | 16 +- test/core/util/passthru_endpoint.c | 158 ++ test/core/util/passthru_endpoint.h | 41 + tools/run_tests/sources_and_headers.json | 3 + tools/run_tests/tests.json | 2102 +------------------- .../vcxproj/grpc_test_util/grpc_test_util.vcxproj | 3 + .../grpc_test_util/grpc_test_util.vcxproj.filters | 6 + .../grpc_test_util_unsecure.vcxproj | 3 + .../grpc_test_util_unsecure.vcxproj.filters | 6 + 11 files changed, 255 insertions(+), 2087 deletions(-) create mode 100644 test/core/util/passthru_endpoint.c create mode 100644 test/core/util/passthru_endpoint.h (limited to 'vsprojects') diff --git a/Makefile b/Makefile index 50bbf19b23..5040602d30 100644 --- a/Makefile +++ b/Makefile @@ -2707,6 +2707,7 @@ LIBGRPC_TEST_UTIL_SRC = \ test/core/util/grpc_profiler.c \ test/core/util/mock_endpoint.c \ test/core/util/parse_hexstring.c \ + test/core/util/passthru_endpoint.c \ test/core/util/port_posix.c \ test/core/util/port_server_client.c \ test/core/util/port_windows.c \ @@ -2755,6 +2756,7 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \ test/core/util/grpc_profiler.c \ test/core/util/mock_endpoint.c \ test/core/util/parse_hexstring.c \ + test/core/util/passthru_endpoint.c \ test/core/util/port_posix.c \ test/core/util/port_server_client.c \ test/core/util/port_windows.c \ diff --git a/build.yaml b/build.yaml index 852f15b667..74119a37d2 100644 --- a/build.yaml +++ b/build.yaml @@ -569,6 +569,7 @@ filegroups: - test/core/util/grpc_profiler.h - test/core/util/mock_endpoint.h - test/core/util/parse_hexstring.h + - test/core/util/passthru_endpoint.h - test/core/util/port.h - test/core/util/port_server_client.h - test/core/util/slice_splitter.h @@ -579,6 +580,7 @@ filegroups: - test/core/util/grpc_profiler.c - test/core/util/mock_endpoint.c - test/core/util/parse_hexstring.c + - test/core/util/passthru_endpoint.c - test/core/util/port_posix.c - test/core/util/port_server_client.c - test/core/util/port_windows.c diff --git a/test/core/end2end/fuzzers/api_fuzzer.c b/test/core/end2end/fuzzers/api_fuzzer.c index 84a17cf56f..64fb310a59 100644 --- a/test/core/end2end/fuzzers/api_fuzzer.c +++ b/test/core/end2end/fuzzers/api_fuzzer.c @@ -43,7 +43,9 @@ #include "src/core/lib/iomgr/tcp_client.h" #include "src/core/lib/iomgr/timer.h" #include "src/core/lib/transport/metadata.h" -#include "test/core/util/mock_endpoint.h" +#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" +#include "src/core/lib/surface/server.h" +#include "test/core/util/passthru_endpoint.h" //////////////////////////////////////////////////////////////////////////////// // logging @@ -203,7 +205,17 @@ static void do_connect(grpc_exec_ctx *exec_ctx, void *arg, bool success) { *fc->ep = NULL; grpc_exec_ctx_enqueue(exec_ctx, fc->closure, false, NULL); } else if (g_server != NULL) { - abort(); + grpc_endpoint *client; + grpc_endpoint *server; + grpc_passthru_endpoint_create(&client, &server); + *fc->ep = client; + + grpc_transport *transport = + grpc_create_chttp2_transport(exec_ctx, NULL, server, 0); + grpc_server_setup_transport(exec_ctx, g_server, transport, NULL); + grpc_chttp2_transport_start_reading(exec_ctx, transport, NULL, 0); + + grpc_exec_ctx_enqueue(exec_ctx, fc->closure, false, NULL); } else { sched_connect(exec_ctx, fc->closure, fc->ep, fc->deadline); } diff --git a/test/core/util/passthru_endpoint.c b/test/core/util/passthru_endpoint.c new file mode 100644 index 0000000000..a47baeb637 --- /dev/null +++ b/test/core/util/passthru_endpoint.c @@ -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 "test/core/util/passthru_endpoint.h" + +#include +#include + +typedef struct passthru_endpoint passthru_endpoint; + +typedef struct { + grpc_endpoint base; + passthru_endpoint *parent; + gpr_slice_buffer read_buffer; + gpr_slice_buffer *on_read_out; + grpc_closure *on_read; +} half; + +struct passthru_endpoint { + gpr_mu mu; + int halves; + bool shutdown; + half client; + half server; +}; + +static void me_read(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, + gpr_slice_buffer *slices, grpc_closure *cb) { + half *m = (half *)ep; + gpr_mu_lock(&m->parent->mu); + if (m->parent->shutdown) { + grpc_exec_ctx_enqueue(exec_ctx, cb, false, NULL); + } else + if (m->read_buffer.count > 0) { + gpr_slice_buffer_swap(&m->read_buffer, slices); + grpc_exec_ctx_enqueue(exec_ctx, cb, true, NULL); + } else { + m->on_read = cb; + m->on_read_out = slices; + } + gpr_mu_unlock(&m->parent->mu); +} + +static half *other_half(half *h) { + if (h == &h->parent->client) + return &h->parent->server; + return &h->parent->client; +} + +static void me_write(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, + gpr_slice_buffer *slices, grpc_closure *cb) { + half *m = other_half((half *)ep); + gpr_mu_lock(&m->parent->mu); + bool ok= true; + if (m->parent->shutdown) { + ok = false; + } + else if (m->on_read != NULL) { + gpr_slice_buffer_addn(m->on_read_out, slices->slices, slices->count); + grpc_exec_ctx_enqueue(exec_ctx, m->on_read, true, NULL); + m->on_read = NULL; + } else { + gpr_slice_buffer_addn(&m->read_buffer, slices->slices, slices->count); + } + gpr_mu_unlock(&m->parent->mu); + grpc_exec_ctx_enqueue(exec_ctx, cb, ok, NULL); +} + +static void me_add_to_pollset(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, + grpc_pollset *pollset) {} + +static void me_add_to_pollset_set(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, + grpc_pollset_set *pollset) {} + +static void me_shutdown(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep) { + half *m = (half*)ep; + gpr_mu_lock(&m->parent->mu); + m->parent->shutdown = true; + if (m->on_read) { + grpc_exec_ctx_enqueue(exec_ctx, m->on_read, false, NULL); + m->on_read = NULL; + } + m = other_half(m); + if (m->on_read) { + grpc_exec_ctx_enqueue(exec_ctx, m->on_read, false, NULL); + m->on_read = NULL; + } + gpr_mu_unlock(&m->parent->mu); +} + +static void me_destroy(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep) { + passthru_endpoint *p = ((half*)ep)->parent; + gpr_mu_lock(&p->mu); + if (0 == --p->halves) { + gpr_mu_unlock(&p->mu); + gpr_mu_destroy(&p->mu); + gpr_slice_buffer_destroy(&p->client.read_buffer); + gpr_slice_buffer_destroy(&p->server.read_buffer); + gpr_free(p); + } else { + gpr_mu_unlock(&p->mu); + } +} + +static char *me_get_peer(grpc_endpoint *ep) { + return gpr_strdup("fake:mock_endpoint"); +} + +static const grpc_endpoint_vtable vtable = { + me_read, me_write, me_add_to_pollset, me_add_to_pollset_set, + me_shutdown, me_destroy, me_get_peer, +}; + +static void half_init(half *m) { + m->base.vtable = &vtable; + gpr_slice_buffer_init(&m->read_buffer); + m->on_read = NULL; +} + +void grpc_passthru_endpoint_create(grpc_endpoint **client, grpc_endpoint **server) { + passthru_endpoint *m = gpr_malloc(sizeof(*m)); + half_init(&m->client); + half_init(&m->server); + gpr_mu_init(&m->mu); + *client = &m->client.base; + *server = &m->server.base; +} + diff --git a/test/core/util/passthru_endpoint.h b/test/core/util/passthru_endpoint.h new file mode 100644 index 0000000000..ba075d508a --- /dev/null +++ b/test/core/util/passthru_endpoint.h @@ -0,0 +1,41 @@ +/* + * + * 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 MOCK_ENDPOINT_H +#define MOCK_ENDPOINT_H + +#include "src/core/lib/iomgr/endpoint.h" + +void grpc_passthru_endpoint_create(grpc_endpoint **client, grpc_endpoint **server); + +#endif diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index c1d263d819..8d805fd889 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -6261,6 +6261,7 @@ "test/core/util/grpc_profiler.h", "test/core/util/mock_endpoint.h", "test/core/util/parse_hexstring.h", + "test/core/util/passthru_endpoint.h", "test/core/util/port.h", "test/core/util/port_server_client.h", "test/core/util/slice_splitter.h" @@ -6280,6 +6281,8 @@ "test/core/util/mock_endpoint.h", "test/core/util/parse_hexstring.c", "test/core/util/parse_hexstring.h", + "test/core/util/passthru_endpoint.c", + "test/core/util/passthru_endpoint.h", "test/core/util/port.h", "test/core/util/port_posix.c", "test/core/util/port_server_client.c", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index d9ad342780..c897fe8e77 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -22346,7 +22346,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/01f28719f461d0e09499a9a1d40dab6ffaf7513c" + "test/core/end2end/fuzzers/api_fuzzer_corpus/00.bin" ], "ci_platforms": [ "linux", @@ -22368,7 +22368,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/03108f73a4908148ddacf8b20d744978a3dbb8e6" + "test/core/end2end/fuzzers/api_fuzzer_corpus/01.bin" ], "ci_platforms": [ "linux", @@ -22390,7 +22390,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/048d47eee51a1e6c89119b2bc58ccb755e6e781e" + "test/core/end2end/fuzzers/api_fuzzer_corpus/02.bin" ], "ci_platforms": [ "linux", @@ -22412,7 +22412,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/05a5068ccf28276b0142ac8ce464ed5cd1091c2f" + "test/core/end2end/fuzzers/api_fuzzer_corpus/03.bin" ], "ci_platforms": [ "linux", @@ -22434,7 +22434,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/07414c08d51096b30fe3a7c7495fbb370a9eb349" + "test/core/end2end/fuzzers/api_fuzzer_corpus/04.bin" ], "ci_platforms": [ "linux", @@ -22456,7 +22456,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/0d19d6ee751184422aa627302ea9271eeb959fad" + "test/core/end2end/fuzzers/api_fuzzer_corpus/05.bin" ], "ci_platforms": [ "linux", @@ -22478,7 +22478,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/0db8092253ef2cf2302e24a366415dcefa9f0aca" + "test/core/end2end/fuzzers/api_fuzzer_corpus/06.bin" ], "ci_platforms": [ "linux", @@ -22500,7 +22500,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/13f189df8c3bc8e7cc9fdf0b48eb65a133e8e252" + "test/core/end2end/fuzzers/api_fuzzer_corpus/07.bin" ], "ci_platforms": [ "linux", @@ -22522,7 +22522,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/15f287d50bcc52bddbbb3bc5b29a93ce56557882" + "test/core/end2end/fuzzers/api_fuzzer_corpus/08.bin" ], "ci_platforms": [ "linux", @@ -22544,7 +22544,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/16caabddd637cb1ab7c64db8515cd92dea1b6ce7" + "test/core/end2end/fuzzers/api_fuzzer_corpus/09.bin" ], "ci_platforms": [ "linux", @@ -22566,7 +22566,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/188d368922a5f43e60c90a6397eb0b7ff9164ad0" + "test/core/end2end/fuzzers/api_fuzzer_corpus/0a.bin" ], "ci_platforms": [ "linux", @@ -22588,7 +22588,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/1910516becba08fd6cbf71179f9b0d91f281d976" + "test/core/end2end/fuzzers/api_fuzzer_corpus/0b.bin" ], "ci_platforms": [ "linux", @@ -22610,7 +22610,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/1b85eab98d2fd10bb449648b8bb538ffe455fb3d" + "test/core/end2end/fuzzers/api_fuzzer_corpus/0c.bin" ], "ci_platforms": [ "linux", @@ -22632,7 +22632,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/1be5ba6372ab0eb27c0939f63c4287f736da4add" + "test/core/end2end/fuzzers/api_fuzzer_corpus/0d.bin" ], "ci_platforms": [ "linux", @@ -22654,7 +22654,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/1ef624482d620e43e6d34da1afe46267fc695d9b" + "test/core/end2end/fuzzers/api_fuzzer_corpus/0e.bin" ], "ci_platforms": [ "linux", @@ -22676,7 +22676,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/1f9c9faf2c2a7fc66191093ff11333d2d32b83a0" + "test/core/end2end/fuzzers/api_fuzzer_corpus/0f.bin" ], "ci_platforms": [ "linux", @@ -22698,2075 +22698,7 @@ }, { "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/1fbc12c332ab7671a787d6f7ca34f29afd581285" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/2300d27ee843d71b9b33ee01dcbd31b3b001d3d0" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/2311aab0528eeef24d615b638c3deeddcc91b040" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/2438538cf050251672d7c4922878192f19ad8414" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/29416e7301eb6f96233242a22d999e4794bfa7b9" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/31209f7b3279af6ecbd718405b4c3992051b64b7" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/37dc7f75b78630c09cb1b86d79938cb6e2b5c831" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/436ea2edd925add818d5933ea1a694c665c5bbda" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/437851faffe589031aee6285a7afffefbfb91e21" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/44e7df6ab7ed0d08f995dfdead1393d9502b91aa" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/473acfd07ec2374a7cd897f0d7414d650ee4ac60" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/4b990622c2aa94e4e20b2bf5563f83cd5f6ff0c2" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/4bc3e2a6f3ea88f833cb0d6455fa30d8abee8a30" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/4e7a0ceb5a28074458aef5fcd642fcdecfeca7b7" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/5007854f8a4c1f3f2389129cf34656aab03cf2c4" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/5244e8038db493928522ca91b367df27a8f12e02" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/529dc710a73aceb6a3baca4a553525871acaf30d" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/59664b5f2b37a0b969a70b94c8e9b650758742fd" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/5bab489bde99abf4ee0ad1eaef7a411910fc5c18" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/5e0c23806a130d5b6be6e8b18bac003318e32602" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/5e5cd885ba18536e1733494cb3f70899e82027e6" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/61eeb2999a0753c473248407fb2a498dd5b92b6a" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/621d3078be09fb0edfb50a3ca8e424827aa436ce" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/66dbd85c35e162aa686c7352062f6ea3a71a5b46" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/68501cda6a1119beb6ec5d6547d867f587b7ad82" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/6ee88ae97d75ba9598046324e6685504ebdf56c6" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/6fdaa6bb699f06faef1ca77860d5462fc6312978" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/74b02def11aa0df2216774654d9b016936d4ca7d" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/7532ab7df8ead62b9d4c96a74d73db02f34323d2" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/78a78375d00f6aad8d03ef3011e3ea678c32ea7d" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/78c42909d554be1e42738cc9c7386f72f3e449ef" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/79021b946be27e44e1e299b764d697b3df71c379" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/7a1f5e916b3df139db6c5c5e8daaac2ecd76a08a" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/7eceb77897f681041b72f4ef9253ba01a32ec01b" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/8238dd67c0a31f4d0d927994f928f881309e6e41" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/828d4f7971466d62168e6e738767bbf105377e4f" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/82ec4b7970e1a75e26f8003c4ca844f39f30a5ef" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/837911474ed148fb2fa022778fff0cad05bbbed6" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/84083368af0c14c6920a4a086faeff89cbcd807e" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/88c543cb216935d1c5d946d2c13885a6ddfecd99" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/897ee7add6c2b9560b2c8fbeedc5b1c5a4c37baa" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/8d41c62e5053bb95a68d80cac72b76f40d8681c7" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/8e93933bee0f4179eb19ca52f380b5d25177478a" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/94513377d6463f2844d424a4d2eacf12b87721f9" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/95c6237b14e73c71e6ee9906f30c320973f24f7a" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/9842926af7ca0a8cca12604f945414f07b01e13d" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/9a0b32c1a2d0d3e1b3f09f1ffd98d7baeea3974f" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/9e521658847affb0f3bca0d115fb8819019db00f" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/a98acdd829aa14229e33db36812c8b0c1d601072" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/aba2a9b19e26828ef2c984a821d4fb10540290cd" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/ac05889f7ee1f6f74048137060d2d2cc4b21c0c7" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/b15f4d14b937258d927518caa5097e592b240f48" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/b248dbda6ccc4675f503dfa5400b862840c6b74f" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/b278354ce3c3863f99b3d5c4bf01de494238f9fd" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/b28fd090e96e0ca032fee61fe7ddfbb62b446dcd" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/b5e16a7ea542c6d4182fdfb0af82172ecc35cf3d" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/b61e648d14adfbaac529099b792ee6a505601abe" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/b76ce3d7173d97c25cba87e0bbdb4433b21884b2" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/beda82bfa52db14394b736dddde9a4d32af02cd5" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/bf8b4530d8d246dd74ac53a13471bba17941dff7" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/c1f3aaf5994757fa2ba09f7125f8580017d4a8d3" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/c248dd64bcdaaf1153c18d670e286b29ee4af81c" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/c31b3a296bffaf72d61eba39f44dba9186d88fa6" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/c4a9bd57b8e28f27e150871f0549ca1cc8781952" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/c4ea21bb365bbeeaf5f2c654883e56d11e43c44e" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/c809013b63377afd7fe17fad8cf0732f10c411e4" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/c88264bd2df08fb772b8d7ec911a0715251b3911" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/ca032cbffbb34304877972062f797c42fbea661d" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/ca66a02a677c0df021b56adab5866ea30789becc" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/cbf6b8f3b8cdf5a8ce9a082a67931617a7eae0c4" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/cdb139c145391a913af004aa38e88940182674c3" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/cf63ceff8f7408790a5e3c7e15d0c984a08a791f" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-1c5a35969abe7f785dc5bdf045ed419d7745d59a" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-366d928de426e357730fc4b011bfdc19fbd51dd7" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-433d6907005077bd84a63487509c0001d4700d07" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/d01c2354d8797408fb8d73f5f9c2ec5b217c6072" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/d5225ed1690780f8e54bc15fe07f275ad4f1ea79" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/d5c32d1673d03363dce866f6c375a29b7573c3ac" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/d6361a489f999e840eec01a8f1f191426531aa4d" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/d6e3f338d678e927f608dd0642fa2b7841b5b83c" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/d8f94ef307da5d8d1d47e585dc0677bbbd083a1e" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/d99e0bc37dbbf5ee870ae9213923cc3d5e72e7cb" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/e15cde0fd6419be5594f70dc6d26de8619df864b" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/e36ad57e12e7b5d44e543b192121437a1dba99ea" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/e5690389240495c1d01d44203b4062276513a927" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/e719889934afb75552663dd466674f232763e086" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/ecff05d90eee72d9ebb498669725b50cb15c25a3" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/ed086108ea505a9503ccbd3d23c1228d59256a8a" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/ed93eaae0016b111eed7e065ed03649b62e46f56" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/empty" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/f2d2eb899cd11487e99cf3e509218c5d520ec614" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/f8b04eebb47cd685e394ac9f90dda53ad57faf97" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/f9358e37f9fb4b2172f91981c79af5ef04922503" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/fbd3bcdcf45e20be485e8359ae60871c166c1ae0" - ], - "ci_platforms": [ - "linux", - "mac", - "windows", - "posix" - ], - "cpu_cost": 0.1, - "exclude_configs": [], - "flaky": false, - "language": "c", - "name": "api_fuzzer_one_entry", - "platforms": [ - "linux", - "mac", - "windows", - "posix" - ] - }, - { - "args": [ - "test/core/end2end/fuzzers/api_fuzzer_corpus/fdee3f97ab3c5e924b6f61b218dc17138f4c56f1" + "test/core/end2end/fuzzers/api_fuzzer_corpus/bad.bin" ], "ci_platforms": [ "linux", diff --git a/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj b/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj index cb033a5aa4..44e9f8034a 100644 --- a/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj +++ b/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj @@ -155,6 +155,7 @@ + @@ -180,6 +181,8 @@ + + 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 81b2a81053..1cae9fb1fd 100644 --- a/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj.filters @@ -31,6 +31,9 @@ test\core\util + + test\core\util + test\core\util @@ -69,6 +72,9 @@ test\core\util + + test\core\util + test\core\util diff --git a/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj b/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj index bb93b2c6f3..e681622071 100644 --- a/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj +++ b/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj @@ -153,6 +153,7 @@ + @@ -170,6 +171,8 @@ + + diff --git a/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj.filters index 4c4620a288..b40fe48409 100644 --- a/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj.filters @@ -19,6 +19,9 @@ test\core\util + + test\core\util + test\core\util @@ -51,6 +54,9 @@ test\core\util + + test\core\util + test\core\util -- cgit v1.2.3 From b8aa58b2cd32339b77fa2d2a7f38629a02d9c5e1 Mon Sep 17 00:00:00 2001 From: yang-g Date: Thu, 14 Apr 2016 15:50:50 -0700 Subject: Add a test --- Makefile | 66 ++++++ build.yaml | 11 + src/proto/grpc/testing/compiler_test.proto | 74 ++++++ test/cpp/codegen/compiler_test_golden | 260 +++++++++++++++++++++ test/cpp/codegen/golden_file_test.cc | 64 +++++ tools/run_tests/sources_and_headers.json | 18 ++ tools/run_tests/tests.json | 21 ++ .../test/golden_file_test/golden_file_test.vcxproj | 206 ++++++++++++++++ .../golden_file_test.vcxproj.filters | 36 +++ 9 files changed, 756 insertions(+) create mode 100644 src/proto/grpc/testing/compiler_test.proto create mode 100644 test/cpp/codegen/compiler_test_golden create mode 100644 test/cpp/codegen/golden_file_test.cc create mode 100644 vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj create mode 100644 vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj.filters (limited to 'vsprojects') diff --git a/Makefile b/Makefile index 690b92fa4b..842251167b 100644 --- a/Makefile +++ b/Makefile @@ -1009,6 +1009,7 @@ cxx_time_test: $(BINDIR)/$(CONFIG)/cxx_time_test end2end_test: $(BINDIR)/$(CONFIG)/end2end_test generic_async_streaming_ping_pong_test: $(BINDIR)/$(CONFIG)/generic_async_streaming_ping_pong_test generic_end2end_test: $(BINDIR)/$(CONFIG)/generic_end2end_test +golden_file_test: $(BINDIR)/$(CONFIG)/golden_file_test grpc_cli: $(BINDIR)/$(CONFIG)/grpc_cli grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin grpc_csharp_plugin: $(BINDIR)/$(CONFIG)/grpc_csharp_plugin @@ -1375,6 +1376,7 @@ buildtests_cxx: buildtests_zookeeper privatelibs_cxx \ $(BINDIR)/$(CONFIG)/end2end_test \ $(BINDIR)/$(CONFIG)/generic_async_streaming_ping_pong_test \ $(BINDIR)/$(CONFIG)/generic_end2end_test \ + $(BINDIR)/$(CONFIG)/golden_file_test \ $(BINDIR)/$(CONFIG)/grpc_cli \ $(BINDIR)/$(CONFIG)/grpclb_api_test \ $(BINDIR)/$(CONFIG)/hybrid_end2end_test \ @@ -1705,6 +1707,8 @@ test_cxx: test_zookeeper buildtests_cxx $(Q) $(BINDIR)/$(CONFIG)/generic_async_streaming_ping_pong_test || ( echo test generic_async_streaming_ping_pong_test failed ; exit 1 ) $(E) "[RUN] Testing generic_end2end_test" $(Q) $(BINDIR)/$(CONFIG)/generic_end2end_test || ( echo test generic_end2end_test failed ; exit 1 ) + $(E) "[RUN] Testing golden_file_test" + $(Q) $(BINDIR)/$(CONFIG)/golden_file_test || ( echo test golden_file_test failed ; exit 1 ) $(E) "[RUN] Testing grpclb_api_test" $(Q) $(BINDIR)/$(CONFIG)/grpclb_api_test || ( echo test grpclb_api_test failed ; exit 1 ) $(E) "[RUN] Testing hybrid_end2end_test" @@ -1873,6 +1877,21 @@ $(GENDIR)/src/proto/grpc/lb/v0/load_balancer.grpc.pb.cc: src/proto/grpc/lb/v0/lo $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< endif +ifeq ($(NO_PROTOC),true) +$(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc: protoc_dep_error +else +$(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating protobuf CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< + +$(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< +endif + ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/control.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc: protoc_dep_error @@ -10376,6 +10395,53 @@ endif endif +GOLDEN_FILE_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc \ + test/cpp/codegen/golden_file_test.cc \ + +GOLDEN_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOLDEN_FILE_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/golden_file_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)/golden_file_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/golden_file_test: $(PROTOBUF_DEP) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/golden_file_test + +endif + +endif + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/compiler_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_golden_file_test: $(GOLDEN_FILE_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(GOLDEN_FILE_TEST_OBJS:.o=.dep) +endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc + + GRPC_CLI_SRC = \ test/cpp/util/grpc_cli.cc \ diff --git a/build.yaml b/build.yaml index e274b0335f..7c16cb5732 100644 --- a/build.yaml +++ b/build.yaml @@ -2516,6 +2516,17 @@ targets: - grpc - gpr_test_util - gpr +- name: golden_file_test + gtest: true + build: test + language: c++ + src: + - src/proto/grpc/testing/compiler_test.proto + - test/cpp/codegen/golden_file_test.cc + deps: + - grpc++ + - grpc + - gpr - name: grpc_cli build: test run: false diff --git a/src/proto/grpc/testing/compiler_test.proto b/src/proto/grpc/testing/compiler_test.proto new file mode 100644 index 0000000000..19003e702a --- /dev/null +++ b/src/proto/grpc/testing/compiler_test.proto @@ -0,0 +1,74 @@ +// 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. + +// File detached comment 1 + +// File detached comment 2 + +// File leading comment 1 +syntax = "proto3"; + +// File leading comment 2 +package grpc.testing; + +message Request { +} +message Response { +} + +// ServiceA detached comment 1 + +// ServiceA detached comment 2 + +// ServiceA leading comment 1 +service ServiceA { + // MethodA1 detached comment 1 + + // MethodA1 leading comment 1 + rpc MethodA1(Request) returns (Response); // MethodA1 trailing comment 1 + + // MethodA2 detached leading comment 1 + + // Method A2 leading comment 1 + // Method A2 leading comment 2 + rpc MethodA2(stream Request) returns (Response); + // MethodA2 trailing comment 1 +} + +// ServiceB leading comment 1 +service ServiceB { + // ServiceB trailing comment 1 + + // MethodB1 leading comment 1 + rpc MethodB1(Request) returns (Response); + // MethodB1 trailing comment 1 +} +// ServiceB trailing comment 2 + +// File trailing comment diff --git a/test/cpp/codegen/compiler_test_golden b/test/cpp/codegen/compiler_test_golden new file mode 100644 index 0000000000..00205fe8b9 --- /dev/null +++ b/test/cpp/codegen/compiler_test_golden @@ -0,0 +1,260 @@ +// Generated by the gRPC protobuf plugin. +// If you make any local change, they will be lost. +// source: src/proto/grpc/testing/compiler_test.proto +#ifndef GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED +#define GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED + +#include "src/proto/grpc/testing/compiler_test.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace grpc { +class CompletionQueue; +class Channel; +class RpcService; +class ServerCompletionQueue; +class ServerContext; +} // namespace grpc + +namespace grpc { +namespace testing { + +// ServiceA detached comment 1 +// +// ServiceA detached comment 2 +// +// ServiceA leading comment 1 +class ServiceA GRPC_FINAL { + public: + class StubInterface { + public: + virtual ~StubInterface() {} + // MethodA1 leading comment 1 + virtual ::grpc::Status MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> AsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(AsyncMethodA1Raw(context, request, cq)); + } + // MethodA1 trailing comment 1 + // MethodA2 detached leading comment 1 + // + // Method A2 leading comment 1 + // Method A2 leading comment 2 + std::unique_ptr< ::grpc::ClientWriterInterface< ::grpc::testing::Request>> MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response) { + return std::unique_ptr< ::grpc::ClientWriterInterface< ::grpc::testing::Request>>(MethodA2Raw(context, response)); + } + std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>> AsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) { + return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>>(AsyncMethodA2Raw(context, response, cq, tag)); + } + // MethodA2 trailing comment 1 + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* AsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientWriterInterface< ::grpc::testing::Request>* MethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response) = 0; + virtual ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>* AsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) = 0; + }; + class Stub GRPC_FINAL : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel); + ::grpc::Status MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) GRPC_OVERRIDE; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> AsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(AsyncMethodA1Raw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientWriter< ::grpc::testing::Request>> MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response) { + return std::unique_ptr< ::grpc::ClientWriter< ::grpc::testing::Request>>(MethodA2Raw(context, response)); + } + std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>> AsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) { + return std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>>(AsyncMethodA2Raw(context, response, cq, tag)); + } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* AsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) GRPC_OVERRIDE; + ::grpc::ClientWriter< ::grpc::testing::Request>* MethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response) GRPC_OVERRIDE; + ::grpc::ClientAsyncWriter< ::grpc::testing::Request>* AsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) GRPC_OVERRIDE; + const ::grpc::RpcMethod rpcmethod_MethodA1_; + const ::grpc::RpcMethod rpcmethod_MethodA2_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + // MethodA1 leading comment 1 + virtual ::grpc::Status MethodA1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response); + // MethodA1 trailing comment 1 + // MethodA2 detached leading comment 1 + // + // Method A2 leading comment 1 + // Method A2 leading comment 2 + virtual ::grpc::Status MethodA2(::grpc::ServerContext* context, ::grpc::ServerReader< ::grpc::testing::Request>* reader, ::grpc::testing::Response* response); + // MethodA2 trailing comment 1 + }; + template + class WithAsyncMethod_MethodA1 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_MethodA1() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_MethodA1() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodA1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestMethodA1(::grpc::ServerContext* context, ::grpc::testing::Request* request, ::grpc::ServerAsyncResponseWriter< ::grpc::testing::Response>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_MethodA2 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_MethodA2() { + ::grpc::Service::MarkMethodAsync(1); + } + ~WithAsyncMethod_MethodA2() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodA2(::grpc::ServerContext* context, ::grpc::ServerReader< ::grpc::testing::Request>* reader, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestMethodA2(::grpc::ServerContext* context, ::grpc::ServerAsyncReader< ::grpc::testing::Response, ::grpc::testing::Request>* reader, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncClientStreaming(1, context, reader, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_MethodA1 > AsyncService; + template + class WithGenericMethod_MethodA1 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_MethodA1() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_MethodA1() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodA1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_MethodA2 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_MethodA2() { + ::grpc::Service::MarkMethodGeneric(1); + } + ~WithGenericMethod_MethodA2() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodA2(::grpc::ServerContext* context, ::grpc::ServerReader< ::grpc::testing::Request>* reader, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; +}; +// MethodA1 detached comment 1 + +// ServiceB leading comment 1 +class ServiceB GRPC_FINAL { + public: + class StubInterface { + public: + virtual ~StubInterface() {} + // MethodB1 leading comment 1 + virtual ::grpc::Status MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> AsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(AsyncMethodB1Raw(context, request, cq)); + } + // MethodB1 trailing comment 1 + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* AsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub GRPC_FINAL : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel); + ::grpc::Status MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) GRPC_OVERRIDE; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> AsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(AsyncMethodB1Raw(context, request, cq)); + } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* AsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) GRPC_OVERRIDE; + const ::grpc::RpcMethod rpcmethod_MethodB1_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + // MethodB1 leading comment 1 + virtual ::grpc::Status MethodB1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response); + // MethodB1 trailing comment 1 + }; + template + class WithAsyncMethod_MethodB1 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_MethodB1() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_MethodB1() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodB1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestMethodB1(::grpc::ServerContext* context, ::grpc::testing::Request* request, ::grpc::ServerAsyncResponseWriter< ::grpc::testing::Response>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_MethodB1 AsyncService; + template + class WithGenericMethod_MethodB1 : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_MethodB1() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_MethodB1() GRPC_OVERRIDE { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status MethodB1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) GRPC_FINAL GRPC_OVERRIDE { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; +}; +// ServiceB trailing comment 1 + +} // namespace testing +} // namespace grpc + + +#endif // GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED diff --git a/test/cpp/codegen/golden_file_test.cc b/test/cpp/codegen/golden_file_test.cc new file mode 100644 index 0000000000..ec08d08de6 --- /dev/null +++ b/test/cpp/codegen/golden_file_test.cc @@ -0,0 +1,64 @@ +/* + * + * 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 + +// These paths rely on the fact that we run our tests under grpc/ +const char kGeneratedFilePath[] = + "gens/src/proto/grpc/testing/compiler_test.grpc.pb.h"; +const char kGoldenFilePath[] = "test/cpp/codegen/compiler_test_golden"; + +TEST(GoldenFileTest, TestGeneratedFile) { + std::ifstream generated(kGeneratedFilePath); + std::ifstream golden(kGoldenFilePath); + + ASSERT_TRUE(generated.good()); + ASSERT_TRUE(golden.good()); + + std::ostringstream gen_oss; + std::ostringstream gold_oss; + gen_oss << generated.rdbuf(); + gold_oss << golden.rdbuf(); + EXPECT_EQ(gold_oss.str(), gen_oss.str()); + + generated.close(); + golden.close(); +} + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index ca409e3c05..5e3dee70b8 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -2109,6 +2109,24 @@ "third_party": false, "type": "target" }, + { + "deps": [ + "gpr", + "grpc", + "grpc++" + ], + "headers": [ + "src/proto/grpc/testing/compiler_test.grpc.pb.h", + "src/proto/grpc/testing/compiler_test.pb.h" + ], + "language": "c++", + "name": "golden_file_test", + "src": [ + "test/cpp/codegen/golden_file_test.cc" + ], + "third_party": false, + "type": "target" + }, { "deps": [ "gpr", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index f8c658672b..ddc996e491 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -2267,6 +2267,27 @@ "windows" ] }, + { + "args": [], + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "flaky": false, + "gtest": true, + "language": "c++", + "name": "golden_file_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "args": [], "ci_platforms": [ diff --git a/vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj b/vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj new file mode 100644 index 0000000000..e9802773d8 --- /dev/null +++ b/vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj @@ -0,0 +1,206 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {0ECDE365-D634-4E15-099F-40A38E151C65} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + golden_file_test + static + Debug + static + Debug + + + golden_file_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 + + + + + + + + + + + + + + + + + + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} + + + {29D16885-7228-4C31-81ED-5F9187C7F2A9} + + + {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/golden_file_test/golden_file_test.vcxproj.filters b/vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj.filters new file mode 100644 index 0000000000..c329e4da5c --- /dev/null +++ b/vsprojects/vcxproj/test/golden_file_test/golden_file_test.vcxproj.filters @@ -0,0 +1,36 @@ + + + + + src\proto\grpc\testing + + + test\cpp\codegen + + + + + + {cd916cf8-bce0-7051-b6d4-e1cd0bf3894c} + + + {a2d414fe-b561-a38e-58a9-40d8bc68a107} + + + {edbc155a-ceb8-62b4-2b73-37228e5fa736} + + + {761a3503-8934-4ee6-8bf1-77ba1385baa7} + + + {4f08cfc5-a59d-7cb4-9ef5-a603b2025936} + + + {af281cac-e23b-109b-8e63-c7cff85c81f4} + + + {e105f656-566f-3d70-fbe5-e03fee8e612d} + + + + -- cgit v1.2.3 From c4b18a50de3ab04b189c9f0e2b56cb08a9f15542 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Fri, 15 Apr 2016 04:53:54 +0200 Subject: Adding support for msys. --- BUILD | 4 ++ Makefile | 2 + binding.gyp | 2 + build.yaml | 2 + config.m4 | 2 + gRPC.podspec | 2 + grpc.gemspec | 2 + include/grpc/impl/codegen/port_platform.h | 44 +++++++------- package.xml | 2 + src/core/lib/iomgr/tcp_server_windows.c | 27 +++------ src/core/lib/iomgr/tcp_windows.c | 14 ++++- src/core/lib/support/env_win32.c | 44 ++++++++------ src/core/lib/support/log_linux.c | 4 +- src/core/lib/support/log_win32.c | 18 +----- src/core/lib/support/string_util_win32.c | 91 +++++++++++++++++++++++++++++ src/core/lib/support/string_win32.c | 41 ++++--------- src/core/lib/support/time_win32.c | 4 +- src/core/lib/support/tmpfile_msys.c | 75 ++++++++++++++++++++++++ src/core/lib/support/tmpfile_posix.c | 4 +- src/core/lib/support/tmpfile_win32.c | 4 +- src/python/grpcio/grpc_core_dependencies.py | 2 + test/core/util/port_windows.c | 9 ++- test/core/util/test_config.c | 2 +- tools/doxygen/Doxyfile.core.internal | 2 + tools/run_tests/sources_and_headers.json | 2 + vsprojects/vcxproj/gpr/gpr.vcxproj | 4 ++ vsprojects/vcxproj/gpr/gpr.vcxproj.filters | 6 ++ 27 files changed, 296 insertions(+), 119 deletions(-) create mode 100644 src/core/lib/support/string_util_win32.c create mode 100644 src/core/lib/support/tmpfile_msys.c (limited to 'vsprojects') diff --git a/BUILD b/BUILD index fa9a120989..237322a5e1 100644 --- a/BUILD +++ b/BUILD @@ -84,6 +84,7 @@ cc_library( "src/core/lib/support/stack_lockfree.c", "src/core/lib/support/string.c", "src/core/lib/support/string_posix.c", + "src/core/lib/support/string_util_win32.c", "src/core/lib/support/string_win32.c", "src/core/lib/support/subprocess_posix.c", "src/core/lib/support/subprocess_windows.c", @@ -98,6 +99,7 @@ cc_library( "src/core/lib/support/time_precise.c", "src/core/lib/support/time_win32.c", "src/core/lib/support/tls_pthread.c", + "src/core/lib/support/tmpfile_msys.c", "src/core/lib/support/tmpfile_posix.c", "src/core/lib/support/tmpfile_win32.c", "src/core/lib/support/wrap_memcpy.c", @@ -1211,6 +1213,7 @@ objc_library( "src/core/lib/support/stack_lockfree.c", "src/core/lib/support/string.c", "src/core/lib/support/string_posix.c", + "src/core/lib/support/string_util_win32.c", "src/core/lib/support/string_win32.c", "src/core/lib/support/subprocess_posix.c", "src/core/lib/support/subprocess_windows.c", @@ -1225,6 +1228,7 @@ objc_library( "src/core/lib/support/time_precise.c", "src/core/lib/support/time_win32.c", "src/core/lib/support/tls_pthread.c", + "src/core/lib/support/tmpfile_msys.c", "src/core/lib/support/tmpfile_posix.c", "src/core/lib/support/tmpfile_win32.c", "src/core/lib/support/wrap_memcpy.c", diff --git a/Makefile b/Makefile index 488d6f4dce..fdc523907d 100644 --- a/Makefile +++ b/Makefile @@ -2322,6 +2322,7 @@ LIBGPR_SRC = \ src/core/lib/support/stack_lockfree.c \ src/core/lib/support/string.c \ src/core/lib/support/string_posix.c \ + src/core/lib/support/string_util_win32.c \ src/core/lib/support/string_win32.c \ src/core/lib/support/subprocess_posix.c \ src/core/lib/support/subprocess_windows.c \ @@ -2336,6 +2337,7 @@ LIBGPR_SRC = \ src/core/lib/support/time_precise.c \ src/core/lib/support/time_win32.c \ src/core/lib/support/tls_pthread.c \ + src/core/lib/support/tmpfile_msys.c \ src/core/lib/support/tmpfile_posix.c \ src/core/lib/support/tmpfile_win32.c \ src/core/lib/support/wrap_memcpy.c \ diff --git a/binding.gyp b/binding.gyp index 8efc8a2b8e..492b75f8fd 100644 --- a/binding.gyp +++ b/binding.gyp @@ -519,6 +519,7 @@ 'src/core/lib/support/stack_lockfree.c', 'src/core/lib/support/string.c', 'src/core/lib/support/string_posix.c', + 'src/core/lib/support/string_util_win32.c', 'src/core/lib/support/string_win32.c', 'src/core/lib/support/subprocess_posix.c', 'src/core/lib/support/subprocess_windows.c', @@ -533,6 +534,7 @@ 'src/core/lib/support/time_precise.c', 'src/core/lib/support/time_win32.c', 'src/core/lib/support/tls_pthread.c', + 'src/core/lib/support/tmpfile_msys.c', 'src/core/lib/support/tmpfile_posix.c', 'src/core/lib/support/tmpfile_win32.c', 'src/core/lib/support/wrap_memcpy.c', diff --git a/build.yaml b/build.yaml index a6feea5074..4a0663452d 100644 --- a/build.yaml +++ b/build.yaml @@ -103,6 +103,7 @@ filegroups: - src/core/lib/support/stack_lockfree.c - src/core/lib/support/string.c - src/core/lib/support/string_posix.c + - src/core/lib/support/string_util_win32.c - src/core/lib/support/string_win32.c - src/core/lib/support/subprocess_posix.c - src/core/lib/support/subprocess_windows.c @@ -117,6 +118,7 @@ filegroups: - src/core/lib/support/time_precise.c - src/core/lib/support/time_win32.c - src/core/lib/support/tls_pthread.c + - src/core/lib/support/tmpfile_msys.c - src/core/lib/support/tmpfile_posix.c - src/core/lib/support/tmpfile_win32.c - src/core/lib/support/wrap_memcpy.c diff --git a/config.m4 b/config.m4 index 7d3d899a40..acd798741f 100644 --- a/config.m4 +++ b/config.m4 @@ -63,6 +63,7 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/support/stack_lockfree.c \ src/core/lib/support/string.c \ src/core/lib/support/string_posix.c \ + src/core/lib/support/string_util_win32.c \ src/core/lib/support/string_win32.c \ src/core/lib/support/subprocess_posix.c \ src/core/lib/support/subprocess_windows.c \ @@ -77,6 +78,7 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/support/time_precise.c \ src/core/lib/support/time_win32.c \ src/core/lib/support/tls_pthread.c \ + src/core/lib/support/tmpfile_msys.c \ src/core/lib/support/tmpfile_posix.c \ src/core/lib/support/tmpfile_win32.c \ src/core/lib/support/wrap_memcpy.c \ diff --git a/gRPC.podspec b/gRPC.podspec index 82c5eaac41..b3122dd272 100644 --- a/gRPC.podspec +++ b/gRPC.podspec @@ -144,6 +144,7 @@ Pod::Spec.new do |s| 'src/core/lib/support/stack_lockfree.c', 'src/core/lib/support/string.c', 'src/core/lib/support/string_posix.c', + 'src/core/lib/support/string_util_win32.c', 'src/core/lib/support/string_win32.c', 'src/core/lib/support/subprocess_posix.c', 'src/core/lib/support/subprocess_windows.c', @@ -158,6 +159,7 @@ Pod::Spec.new do |s| 'src/core/lib/support/time_precise.c', 'src/core/lib/support/time_win32.c', 'src/core/lib/support/tls_pthread.c', + 'src/core/lib/support/tmpfile_msys.c', 'src/core/lib/support/tmpfile_posix.c', 'src/core/lib/support/tmpfile_win32.c', 'src/core/lib/support/wrap_memcpy.c', diff --git a/grpc.gemspec b/grpc.gemspec index b8cfc4e6c4..3e0677ebdc 100755 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -128,6 +128,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/support/stack_lockfree.c ) s.files += %w( src/core/lib/support/string.c ) s.files += %w( src/core/lib/support/string_posix.c ) + s.files += %w( src/core/lib/support/string_util_win32.c ) s.files += %w( src/core/lib/support/string_win32.c ) s.files += %w( src/core/lib/support/subprocess_posix.c ) s.files += %w( src/core/lib/support/subprocess_windows.c ) @@ -142,6 +143,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/support/time_precise.c ) s.files += %w( src/core/lib/support/time_win32.c ) s.files += %w( src/core/lib/support/tls_pthread.c ) + s.files += %w( src/core/lib/support/tmpfile_msys.c ) s.files += %w( src/core/lib/support/tmpfile_posix.c ) s.files += %w( src/core/lib/support/tmpfile_win32.c ) s.files += %w( src/core/lib/support/wrap_memcpy.c ) diff --git a/include/grpc/impl/codegen/port_platform.h b/include/grpc/impl/codegen/port_platform.h index 3242f07599..bbcb4098e3 100644 --- a/include/grpc/impl/codegen/port_platform.h +++ b/include/grpc/impl/codegen/port_platform.h @@ -82,28 +82,31 @@ things. */ #if !defined(GPR_NO_AUTODETECT_PLATFORM) +#if defined(_WIN64) || defined(WIN64) || defined(_WIN32) || defined(WIN32) #if defined(_WIN64) || defined(WIN64) -#define GPR_PLATFORM_STRING "windows" -#define GPR_WIN32 1 #define GPR_ARCH_64 1 -#define GPR_GETPID_IN_PROCESS_H 1 -#define GPR_WINSOCK_SOCKET 1 -#define GPR_WINDOWS_SUBPROCESS 1 -#ifdef __GNUC__ -#define GPR_GCC_ATOMIC 1 -#define GPR_GCC_TLS 1 #else -#define GPR_WIN32_ATOMIC 1 -#define GPR_MSVC_TLS 1 +#define GPR_ARCH_32 1 #endif -#define GPR_WINDOWS_CRASH_HANDLER 1 -#elif defined(_WIN32) || defined(WIN32) #define GPR_PLATFORM_STRING "windows" -#define GPR_ARCH_32 1 #define GPR_WIN32 1 -#define GPR_GETPID_IN_PROCESS_H 1 #define GPR_WINSOCK_SOCKET 1 #define GPR_WINDOWS_SUBPROCESS 1 +#define GPR_WIN32_ENV +#ifdef __MSYS__ +#define GPR_GETPID_IN_UNISTD_H 1 +#define GPR_MSYS_TMPFILE +#define GPR_POSIX_LOG +#define GPR_POSIX_STRING +#define GPR_POSIX_TIME +#else +#define GPR_GETPID_IN_PROCESS_H 1 +#define GPR_WIN32_TMPFILE +#define GPR_WIN32_LOG +#define GPR_WINDOWS_CRASH_HANDLER 1 +#define GPR_WIN32_STRING +#define GPR_WIN32_TIME +#endif #ifdef __GNUC__ #define GPR_GCC_ATOMIC 1 #define GPR_GCC_TLS 1 @@ -111,7 +114,6 @@ #define GPR_WIN32_ATOMIC 1 #define GPR_MSVC_TLS 1 #endif -#define GPR_WINDOWS_CRASH_HANDLER 1 #elif defined(ANDROID) || defined(__ANDROID__) #define GPR_PLATFORM_STRING "android" #define GPR_ANDROID 1 @@ -126,7 +128,8 @@ #define GPR_POSIX_SOCKETADDR 1 #define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 -#define GPR_POSIX_FILE 1 +#define GPR_POSIX_TMPFILE 1 +#define GPR_POSIX_LOG #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 @@ -153,6 +156,7 @@ #define GPR_GCC_ATOMIC 1 #define GPR_GCC_TLS 1 #define GPR_LINUX 1 +#define GPR_LINUX_LOG #define GPR_LINUX_MULTIPOLL_WITH_EPOLL 1 #define GPR_POSIX_WAKEUP_FD 1 #define GPR_POSIX_SOCKET 1 @@ -175,7 +179,7 @@ #ifndef GPR_LINUX_SOCKETUTILS #define GPR_POSIX_SOCKETUTILS #endif -#define GPR_POSIX_FILE 1 +#define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 @@ -213,7 +217,7 @@ #define GPR_POSIX_SOCKETADDR 1 #define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 -#define GPR_POSIX_FILE 1 +#define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 @@ -243,7 +247,7 @@ #define GPR_POSIX_SOCKETADDR 1 #define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 -#define GPR_POSIX_FILE 1 +#define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 @@ -280,7 +284,7 @@ #define GPR_POSIX_SOCKETADDR 1 #define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 -#define GPR_POSIX_FILE 1 +#define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 diff --git a/package.xml b/package.xml index 2f4c625539..b21e974c8e 100644 --- a/package.xml +++ b/package.xml @@ -131,6 +131,7 @@ + @@ -145,6 +146,7 @@ + diff --git a/src/core/lib/iomgr/tcp_server_windows.c b/src/core/lib/iomgr/tcp_server_windows.c index 6940dec7b0..53f58477a4 100644 --- a/src/core/lib/iomgr/tcp_server_windows.c +++ b/src/core/lib/iomgr/tcp_server_windows.c @@ -510,30 +510,17 @@ int grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, unsigned grpc_tcp_server_port_fd_count(grpc_tcp_server *s, unsigned port_index) { - grpc_tcp_listener *sp; - for (sp = s->head; sp && port_index != 0; sp = sp->next, --port_index) - ; - if (sp) { - return 1; - } else { - return 0; - } + (void)s; + (void)port_index; + abort(); } int grpc_tcp_server_port_fd(grpc_tcp_server *s, unsigned port_index, unsigned fd_index) { - grpc_tcp_listener *sp; - if (fd_index != 0) { - /* Windows implementation has only one fd per port_index. */ - return -1; - } - for (sp = s->head; sp && port_index != 0; sp = sp->next, --port_index) - ; - if (sp) { - return _open_osfhandle((intptr_t)sp->socket->socket, 0); - } else { - return -1; - } + (void)s; + (void)port_index; + (void)fd_index; + abort(); } void grpc_tcp_server_start(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s, diff --git a/src/core/lib/iomgr/tcp_windows.c b/src/core/lib/iomgr/tcp_windows.c index 7ee689a7e4..3996823933 100644 --- a/src/core/lib/iomgr/tcp_windows.c +++ b/src/core/lib/iomgr/tcp_windows.c @@ -35,6 +35,8 @@ #ifdef GPR_WINSOCK_SOCKET +#include + #include "src/core/lib/iomgr/sockaddr_win32.h" #include @@ -51,12 +53,20 @@ #include "src/core/lib/iomgr/tcp_client.h" #include "src/core/lib/iomgr/timer.h" +#if defined(__MSYS__) && defined(GPR_ARCH_64) +/* Nasty workaround for nasty bug when using the 64 bits msys compiler + in conjunction with Microsoft Windows headers. */ +#define GRPC_FIONBIO _IOW('f', 126, uint32_t) +#else +#define GRPC_FIONBIO FIONBIO +#endif + static int set_non_block(SOCKET sock) { int status; - unsigned long param = 1; + uint32_t param = 1; DWORD ret; status = - WSAIoctl(sock, FIONBIO, ¶m, sizeof(param), NULL, 0, &ret, NULL, NULL); + WSAIoctl(sock, GRPC_FIONBIO, ¶m, sizeof(param), NULL, 0, &ret, NULL, NULL); return status == 0; } diff --git a/src/core/lib/support/env_win32.c b/src/core/lib/support/env_win32.c index ef84c941df..e670e1e8d0 100644 --- a/src/core/lib/support/env_win32.c +++ b/src/core/lib/support/env_win32.c @@ -33,41 +33,47 @@ #include -#ifdef GPR_WIN32 +#ifdef GPR_WIN32_ENV + +#include #include "src/core/lib/support/env.h" #include "src/core/lib/support/string.h" - -#ifdef __MINGW32__ -errno_t getenv_s(size_t *size_needed, char *buffer, size_t size, - const char *varname); -#else -#include -#endif +#include "src/core/lib/support/string_win32.h" #include #include #include char *gpr_getenv(const char *name) { - size_t size; char *result = NULL; - errno_t err; + DWORD size; + LPTSTR tresult = NULL; + LPTSTR tname = gpr_char_to_tchar(name); + DWORD ret; - err = getenv_s(&size, NULL, 0, name); - if (err || (size == 0)) return NULL; - result = gpr_malloc(size); - err = getenv_s(&size, result, size, name); - if (err) { - gpr_free(result); + ret = GetEnvironmentVariable(tname, NULL, 0); + if (ret == 0) return NULL; + size = ret * (DWORD)sizeof(TCHAR); + tresult = gpr_malloc(size); + ret = GetEnvironmentVariable(tname, tresult, size); + gpr_free(tname); + if (ret == 0) { + gpr_free(tresult); return NULL; } + result = gpr_tchar_to_char(tresult); + gpr_free(tresult); return result; } void gpr_setenv(const char *name, const char *value) { - errno_t res = _putenv_s(name, value); - GPR_ASSERT(res == 0); + LPTSTR tname = gpr_char_to_tchar(name); + LPTSTR tvalue = gpr_char_to_tchar(value); + BOOL res = SetEnvironmentVariable(tname, tvalue); + gpr_free(tname); + gpr_free(tvalue); + GPR_ASSERT(res); } -#endif /* GPR_WIN32 */ +#endif /* GPR_WIN32_ENV */ diff --git a/src/core/lib/support/log_linux.c b/src/core/lib/support/log_linux.c index ff3febb38e..ca04c022e3 100644 --- a/src/core/lib/support/log_linux.c +++ b/src/core/lib/support/log_linux.c @@ -41,7 +41,7 @@ #include -#ifdef GPR_LINUX +#ifdef GPR_LINUX_LOG #include #include @@ -103,4 +103,4 @@ void gpr_default_log(gpr_log_func_args *args) { gpr_free(prefix); } -#endif +#endif /* GPR_LINUX_LOG */ diff --git a/src/core/lib/support/log_win32.c b/src/core/lib/support/log_win32.c index ba78497a0a..29735bd18c 100644 --- a/src/core/lib/support/log_win32.c +++ b/src/core/lib/support/log_win32.c @@ -33,7 +33,7 @@ #include -#ifdef GPR_WIN32 +#ifdef GPR_WIN32_LOG #include #include @@ -109,18 +109,4 @@ void gpr_default_log(gpr_log_func_args *args) { fflush(stderr); } -char *gpr_format_message(int messageid) { - LPTSTR tmessage; - char *message; - DWORD status = FormatMessage( - FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, (DWORD)messageid, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR)(&tmessage), 0, NULL); - if (status == 0) return gpr_strdup("Unable to retrieve error string"); - message = gpr_tchar_to_char(tmessage); - LocalFree(tmessage); - return message; -} - -#endif /* GPR_WIN32 */ +#endif /* GPR_WIN32_LOG */ diff --git a/src/core/lib/support/string_util_win32.c b/src/core/lib/support/string_util_win32.c new file mode 100644 index 0000000000..fd14ce54e4 --- /dev/null +++ b/src/core/lib/support/string_util_win32.c @@ -0,0 +1,91 @@ +/* + * + * 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. + * + */ + +/* Posix code for gpr snprintf support. */ + +#include + +#ifdef GPR_WIN32 + +#include +#include +#include +#include +#include + +#include +#include + +#include "src/core/lib/support/string.h" + +#if defined UNICODE || defined _UNICODE +LPTSTR +gpr_char_to_tchar(LPCSTR input) { + LPTSTR ret; + int needed = MultiByteToWideChar(CP_UTF8, 0, input, -1, NULL, 0); + if (needed <= 0) return NULL; + ret = gpr_malloc((unsigned)needed * sizeof(TCHAR)); + MultiByteToWideChar(CP_UTF8, 0, input, -1, ret, needed); + return ret; +} + +LPSTR +gpr_tchar_to_char(LPCTSTR input) { + LPSTR ret; + int needed = WideCharToMultiByte(CP_UTF8, 0, input, -1, NULL, 0, NULL, NULL); + if (needed <= 0) return NULL; + ret = gpr_malloc((unsigned)needed); + WideCharToMultiByte(CP_UTF8, 0, input, -1, ret, needed, NULL, NULL); + return ret; +} +#else +char *gpr_tchar_to_char(LPTSTR input) { return gpr_strdup(input); } + +char *gpr_char_to_tchar(LPTSTR input) { return gpr_strdup(input); } +#endif + +char *gpr_format_message(int messageid) { + LPTSTR tmessage; + char *message; + DWORD status = FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, (DWORD)messageid, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR)(&tmessage), 0, NULL); + if (status == 0) return gpr_strdup("Unable to retrieve error string"); + message = gpr_tchar_to_char(tmessage); + LocalFree(tmessage); + return message; +} + +#endif /* GPR_WIN32 */ diff --git a/src/core/lib/support/string_win32.c b/src/core/lib/support/string_win32.c index a2f9857356..8382cde15a 100644 --- a/src/core/lib/support/string_win32.c +++ b/src/core/lib/support/string_win32.c @@ -31,23 +31,28 @@ * */ -/* Posix code for gpr snprintf support. */ +/* Windows code for gpr snprintf support. */ #include -#ifdef GPR_WIN32 +#ifdef GPR_WIN32_STRING #include #include #include +#include +#include #include +#include #include "src/core/lib/support/string.h" int gpr_asprintf(char **strp, const char *format, ...) { va_list args; int ret; + + HRESULT success; size_t strp_buflen; /* Determine the length. */ @@ -68,9 +73,9 @@ int gpr_asprintf(char **strp, const char *format, ...) { /* Print to the buffer. */ va_start(args, format); - ret = vsnprintf_s(*strp, strp_buflen, _TRUNCATE, format, args); + success = StringCbVPrintfA(*strp, strp_buflen, format, args); va_end(args); - if ((size_t)ret == strp_buflen - 1) { + if (success == S_OK) { return ret; } @@ -80,30 +85,4 @@ int gpr_asprintf(char **strp, const char *format, ...) { return -1; } -#if defined UNICODE || defined _UNICODE -LPTSTR -gpr_char_to_tchar(LPCSTR input) { - LPTSTR ret; - int needed = MultiByteToWideChar(CP_UTF8, 0, input, -1, NULL, 0); - if (needed <= 0) return NULL; - ret = gpr_malloc((unsigned)needed * sizeof(TCHAR)); - MultiByteToWideChar(CP_UTF8, 0, input, -1, ret, needed); - return ret; -} - -LPSTR -gpr_tchar_to_char(LPCTSTR input) { - LPSTR ret; - int needed = WideCharToMultiByte(CP_UTF8, 0, input, -1, NULL, 0, NULL, NULL); - if (needed <= 0) return NULL; - ret = gpr_malloc((unsigned)needed); - WideCharToMultiByte(CP_UTF8, 0, input, -1, ret, needed, NULL, NULL); - return ret; -} -#else -char *gpr_tchar_to_char(LPTSTR input) { return gpr_strdup(input); } - -char *gpr_char_to_tchar(LPTSTR input) { return gpr_strdup(input); } -#endif - -#endif /* GPR_WIN32 */ +#endif /* GPR_WIN32_STRING */ diff --git a/src/core/lib/support/time_win32.c b/src/core/lib/support/time_win32.c index f7acbd14a6..9e924ab3f4 100644 --- a/src/core/lib/support/time_win32.c +++ b/src/core/lib/support/time_win32.c @@ -35,7 +35,7 @@ #include -#ifdef GPR_WIN32 +#ifdef GPR_WIN32_TIME #include #include @@ -107,4 +107,4 @@ void gpr_sleep_until(gpr_timespec until) { } } -#endif /* GPR_WIN32 */ +#endif /* GPR_WIN32_TIME */ diff --git a/src/core/lib/support/tmpfile_msys.c b/src/core/lib/support/tmpfile_msys.c new file mode 100644 index 0000000000..f0f803aa75 --- /dev/null +++ b/src/core/lib/support/tmpfile_msys.c @@ -0,0 +1,75 @@ +/* + * + * 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 + +#ifdef GPR_MSYS_TMPFILE + +#include +#include +#include +#include + +#include +#include +#include + +#include "src/core/lib/support/string_win32.h" +#include "src/core/lib/support/tmpfile.h" + +FILE *gpr_tmpfile(const char *prefix, char **tmp_filename_out) { + FILE *result = NULL; + char tmp_filename[MAX_PATH]; + UINT success; + + if (tmp_filename_out != NULL) *tmp_filename_out = NULL; + + /* Generate a unique filename with our template + temporary path. */ + success = GetTempFileNameA(".", prefix, 0, tmp_filename); + fprintf(stderr, "success = %d\n", success); + if (!success) goto end; + + /* Open a file there. */ + result = fopen(tmp_filename, "wb+"); + fprintf(stderr, "result = %p\n", result); + if (result == NULL) goto end; + +end: + if (result && tmp_filename_out) { + *tmp_filename_out = gpr_strdup(tmp_filename); + } + + return result; +} + +#endif /* GPR_MSYS_TMPFILE */ diff --git a/src/core/lib/support/tmpfile_posix.c b/src/core/lib/support/tmpfile_posix.c index 9e0e7ad808..0cd4bb6fc3 100644 --- a/src/core/lib/support/tmpfile_posix.c +++ b/src/core/lib/support/tmpfile_posix.c @@ -33,7 +33,7 @@ #include -#ifdef GPR_POSIX_FILE +#ifdef GPR_POSIX_TMPFILE #include "src/core/lib/support/tmpfile.h" @@ -82,4 +82,4 @@ end: return result; } -#endif /* GPR_POSIX_FILE */ +#endif /* GPR_POSIX_TMPFILE */ diff --git a/src/core/lib/support/tmpfile_win32.c b/src/core/lib/support/tmpfile_win32.c index 0cb2904f8d..9ac73128c3 100644 --- a/src/core/lib/support/tmpfile_win32.c +++ b/src/core/lib/support/tmpfile_win32.c @@ -33,7 +33,7 @@ #include -#ifdef GPR_WIN32 +#ifdef GPR_WIN32_TMPFILE #include #include @@ -81,4 +81,4 @@ end: return result; } -#endif /* GPR_WIN32 */ +#endif /* GPR_WIN32_TMPFILE */ diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py index 1f7f2a196b..e389782b47 100644 --- a/src/python/grpcio/grpc_core_dependencies.py +++ b/src/python/grpcio/grpc_core_dependencies.py @@ -57,6 +57,7 @@ CORE_SOURCE_FILES = [ 'src/core/lib/support/stack_lockfree.c', 'src/core/lib/support/string.c', 'src/core/lib/support/string_posix.c', + 'src/core/lib/support/string_util_win32.c', 'src/core/lib/support/string_win32.c', 'src/core/lib/support/subprocess_posix.c', 'src/core/lib/support/subprocess_windows.c', @@ -71,6 +72,7 @@ CORE_SOURCE_FILES = [ 'src/core/lib/support/time_precise.c', 'src/core/lib/support/time_win32.c', 'src/core/lib/support/tls_pthread.c', + 'src/core/lib/support/tmpfile_msys.c', 'src/core/lib/support/tmpfile_posix.c', 'src/core/lib/support/tmpfile_win32.c', 'src/core/lib/support/wrap_memcpy.c', diff --git a/test/core/util/port_windows.c b/test/core/util/port_windows.c index 2b6d3dd223..154d607ec7 100644 --- a/test/core/util/port_windows.c +++ b/test/core/util/port_windows.c @@ -51,6 +51,11 @@ #include "src/core/lib/support/env.h" #include "test/core/util/port_server_client.h" +#if GPR_GETPID_IN_UNISTD_H +#include +static int _getpid() { return getpid(); } +#endif + #define NUM_RANDOM_PORTS_TO_PICK 100 static int *chosen_ports = NULL; @@ -114,7 +119,7 @@ static int is_port_available(int *port, int is_tcp) { /* Try binding to port */ addr.sin_family = AF_INET; addr.sin_addr.s_addr = INADDR_ANY; - addr.sin_port = htons(*port); + addr.sin_port = htons((u_short)*port); if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { gpr_log(GPR_DEBUG, "bind(port=%d) failed: %s", *port, strerror(errno)); closesocket(fd); @@ -127,7 +132,7 @@ static int is_port_available(int *port, int is_tcp) { closesocket(fd); return 0; } - GPR_ASSERT(alen <= sizeof(addr)); + GPR_ASSERT(alen <= (socklen_t)sizeof(addr)); actual_port = ntohs(addr.sin_port); GPR_ASSERT(actual_port > 0); if (*port == 0) { diff --git a/test/core/util/test_config.c b/test/core/util/test_config.c index 3155a4ece6..62468a5a61 100644 --- a/test/core/util/test_config.c +++ b/test/core/util/test_config.c @@ -50,7 +50,7 @@ static unsigned seed(void) { return (unsigned)getpid(); } #if GPR_GETPID_IN_PROCESS_H #include -static unsigned seed(void) { return _getpid(); } +static unsigned seed(void) { return (unsigned)_getpid(); } #endif #if GPR_WINDOWS_CRASH_HANDLER diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index b131a55b59..e0d9714828 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -1167,6 +1167,7 @@ src/core/lib/support/slice_buffer.c \ src/core/lib/support/stack_lockfree.c \ src/core/lib/support/string.c \ src/core/lib/support/string_posix.c \ +src/core/lib/support/string_util_win32.c \ src/core/lib/support/string_win32.c \ src/core/lib/support/subprocess_posix.c \ src/core/lib/support/subprocess_windows.c \ @@ -1181,6 +1182,7 @@ src/core/lib/support/time_posix.c \ src/core/lib/support/time_precise.c \ src/core/lib/support/time_win32.c \ src/core/lib/support/tls_pthread.c \ +src/core/lib/support/tmpfile_msys.c \ src/core/lib/support/tmpfile_posix.c \ src/core/lib/support/tmpfile_win32.c \ src/core/lib/support/wrap_memcpy.c diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 0b68315c82..b9a004423c 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -5429,6 +5429,7 @@ "src/core/lib/support/string.c", "src/core/lib/support/string.h", "src/core/lib/support/string_posix.c", + "src/core/lib/support/string_util_win32.c", "src/core/lib/support/string_win32.c", "src/core/lib/support/string_win32.h", "src/core/lib/support/subprocess_posix.c", @@ -5447,6 +5448,7 @@ "src/core/lib/support/time_win32.c", "src/core/lib/support/tls_pthread.c", "src/core/lib/support/tmpfile.h", + "src/core/lib/support/tmpfile_msys.c", "src/core/lib/support/tmpfile_posix.c", "src/core/lib/support/tmpfile_win32.c", "src/core/lib/support/wrap_memcpy.c" diff --git a/vsprojects/vcxproj/gpr/gpr.vcxproj b/vsprojects/vcxproj/gpr/gpr.vcxproj index cdb128e48e..26195bb541 100644 --- a/vsprojects/vcxproj/gpr/gpr.vcxproj +++ b/vsprojects/vcxproj/gpr/gpr.vcxproj @@ -259,6 +259,8 @@ + + @@ -287,6 +289,8 @@ + + diff --git a/vsprojects/vcxproj/gpr/gpr.vcxproj.filters b/vsprojects/vcxproj/gpr/gpr.vcxproj.filters index 8af6fdd44c..be15391b09 100644 --- a/vsprojects/vcxproj/gpr/gpr.vcxproj.filters +++ b/vsprojects/vcxproj/gpr/gpr.vcxproj.filters @@ -82,6 +82,9 @@ src\core\lib\support + + src\core\lib\support + src\core\lib\support @@ -124,6 +127,9 @@ src\core\lib\support + + src\core\lib\support + src\core\lib\support -- cgit v1.2.3 From 88b9e4803ceb6d434c3b59ed0fe8e87f41681dd2 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Thu, 21 Apr 2016 15:09:56 -0700 Subject: fix boringssl --- Makefile | 72 ++- binding.gyp | 3 + config.m4 | 3 + grpc.gemspec | 5 +- package.xml | 5 +- src/boringssl/err_data.c | 510 +++++++++++---------- src/python/grpcio/grpc_core_dependencies.py | 3 + third_party/boringssl | 2 +- tools/run_tests/sources_and_headers.json | 27 +- tools/run_tests/tests.json | 24 + vsprojects/vcxproj/boringssl/boringssl.vcxproj | 8 +- .../vcxproj/boringssl/boringssl.vcxproj.filters | 15 +- .../boringssl_x509_test.vcxproj | 198 ++++++++ .../boringssl_x509_test.vcxproj.filters | 7 + .../boringssl_x509_test_lib.vcxproj | 170 +++++++ .../boringssl_x509_test_lib.vcxproj.filters | 24 + 16 files changed, 815 insertions(+), 261 deletions(-) create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_x509_test/boringssl_x509_test.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_x509_test/boringssl_x509_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_x509_test_lib/boringssl_x509_test_lib.vcxproj create mode 100644 vsprojects/vcxproj/test/boringssl/boringssl_x509_test_lib/boringssl_x509_test_lib.vcxproj.filters (limited to 'vsprojects') diff --git a/Makefile b/Makefile index ad030518a6..a2ddcbed90 100644 --- a/Makefile +++ b/Makefile @@ -1077,6 +1077,7 @@ boringssl_refcount_test: $(BINDIR)/$(CONFIG)/boringssl_refcount_test boringssl_rsa_test: $(BINDIR)/$(CONFIG)/boringssl_rsa_test boringssl_thread_test: $(BINDIR)/$(CONFIG)/boringssl_thread_test 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 @@ -1199,7 +1200,7 @@ pc_cxx: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++.pc pc_cxx_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++_unsecure.pc -privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.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_ssl_test_lib.a +privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.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 ifeq ($(HAS_ZOOKEEPER),true) privatelibs_zookeeper: @@ -1439,6 +1440,7 @@ buildtests_cxx: buildtests_zookeeper privatelibs_cxx \ $(BINDIR)/$(CONFIG)/boringssl_rsa_test \ $(BINDIR)/$(CONFIG)/boringssl_thread_test \ $(BINDIR)/$(CONFIG)/boringssl_pkcs7_test \ + $(BINDIR)/$(CONFIG)/boringssl_x509_test \ $(BINDIR)/$(CONFIG)/boringssl_tab_test \ $(BINDIR)/$(CONFIG)/boringssl_v3name_test \ $(BINDIR)/$(CONFIG)/boringssl_pqueue_test \ @@ -4087,6 +4089,7 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/bn/shift.c \ third_party/boringssl/crypto/bn/sqrt.c \ third_party/boringssl/crypto/buf/buf.c \ + third_party/boringssl/crypto/bytestring/asn1_compat.c \ third_party/boringssl/crypto/bytestring/ber.c \ third_party/boringssl/crypto/bytestring/cbb.c \ third_party/boringssl/crypto/bytestring/cbs.c \ @@ -4110,6 +4113,7 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/crypto/cpu-intel.c \ third_party/boringssl/crypto/crypto.c \ third_party/boringssl/crypto/curve25519/curve25519.c \ + third_party/boringssl/crypto/curve25519/x25519-x86_64.c \ third_party/boringssl/crypto/des/des.c \ third_party/boringssl/crypto/dh/check.c \ third_party/boringssl/crypto/dh/dh.c \ @@ -4301,6 +4305,7 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/ssl/ssl_buffer.c \ third_party/boringssl/ssl/ssl_cert.c \ third_party/boringssl/ssl/ssl_cipher.c \ + third_party/boringssl/ssl/ssl_ecdh.c \ third_party/boringssl/ssl/ssl_file.c \ third_party/boringssl/ssl/ssl_lib.c \ third_party/boringssl/ssl/ssl_rsa.c \ @@ -5529,6 +5534,44 @@ ifneq ($(NO_DEPS),true) endif +LIBBORINGSSL_X509_TEST_LIB_SRC = \ + third_party/boringssl/crypto/x509/x509_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_X509_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_X509_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_X509_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_X509_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 + +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_x509_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_X509_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a + $(Q) $(AR) $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBBORINGSSL_X509_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_X509_TEST_LIB_OBJS:.o=.dep) +endif + + LIBBORINGSSL_TAB_TEST_LIB_SRC = \ third_party/boringssl/crypto/x509v3/tab_test.c \ @@ -12740,6 +12783,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_X509_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(BORINGSSL_X509_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_X509_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_x509_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_x509_test: $(LIBDIR)/$(CONFIG)/libboringssl_x509_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_x509_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_x509_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 53d86534de..e6c31eda4d 100644 --- a/binding.gyp +++ b/binding.gyp @@ -223,6 +223,7 @@ 'third_party/boringssl/crypto/bn/shift.c', 'third_party/boringssl/crypto/bn/sqrt.c', 'third_party/boringssl/crypto/buf/buf.c', + 'third_party/boringssl/crypto/bytestring/asn1_compat.c', 'third_party/boringssl/crypto/bytestring/ber.c', 'third_party/boringssl/crypto/bytestring/cbb.c', 'third_party/boringssl/crypto/bytestring/cbs.c', @@ -246,6 +247,7 @@ 'third_party/boringssl/crypto/cpu-intel.c', 'third_party/boringssl/crypto/crypto.c', 'third_party/boringssl/crypto/curve25519/curve25519.c', + 'third_party/boringssl/crypto/curve25519/x25519-x86_64.c', 'third_party/boringssl/crypto/des/des.c', 'third_party/boringssl/crypto/dh/check.c', 'third_party/boringssl/crypto/dh/dh.c', @@ -437,6 +439,7 @@ 'third_party/boringssl/ssl/ssl_buffer.c', 'third_party/boringssl/ssl/ssl_cert.c', 'third_party/boringssl/ssl/ssl_cipher.c', + 'third_party/boringssl/ssl/ssl_ecdh.c', 'third_party/boringssl/ssl/ssl_file.c', 'third_party/boringssl/ssl/ssl_lib.c', 'third_party/boringssl/ssl/ssl_rsa.c', diff --git a/config.m4 b/config.m4 index c26cb7b881..d787614533 100644 --- a/config.m4 +++ b/config.m4 @@ -317,6 +317,7 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/bn/shift.c \ third_party/boringssl/crypto/bn/sqrt.c \ third_party/boringssl/crypto/buf/buf.c \ + third_party/boringssl/crypto/bytestring/asn1_compat.c \ third_party/boringssl/crypto/bytestring/ber.c \ third_party/boringssl/crypto/bytestring/cbb.c \ third_party/boringssl/crypto/bytestring/cbs.c \ @@ -340,6 +341,7 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/crypto/cpu-intel.c \ third_party/boringssl/crypto/crypto.c \ third_party/boringssl/crypto/curve25519/curve25519.c \ + third_party/boringssl/crypto/curve25519/x25519-x86_64.c \ third_party/boringssl/crypto/des/des.c \ third_party/boringssl/crypto/dh/check.c \ third_party/boringssl/crypto/dh/dh.c \ @@ -531,6 +533,7 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl/ssl/ssl_buffer.c \ third_party/boringssl/ssl/ssl_cert.c \ third_party/boringssl/ssl/ssl_cipher.c \ + third_party/boringssl/ssl/ssl_ecdh.c \ third_party/boringssl/ssl/ssl_file.c \ third_party/boringssl/ssl/ssl_lib.c \ third_party/boringssl/ssl/ssl_rsa.c \ diff --git a/grpc.gemspec b/grpc.gemspec index bac1f186f2..e94294f619 100755 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -483,12 +483,12 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/cipher/internal.h ) s.files += %w( third_party/boringssl/crypto/conf/conf_def.h ) 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/dsa/internal.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 ) @@ -653,6 +653,7 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/bn/shift.c ) s.files += %w( third_party/boringssl/crypto/bn/sqrt.c ) s.files += %w( third_party/boringssl/crypto/buf/buf.c ) + s.files += %w( third_party/boringssl/crypto/bytestring/asn1_compat.c ) 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 ) @@ -676,6 +677,7 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/crypto/cpu-intel.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/x25519-x86_64.c ) s.files += %w( third_party/boringssl/crypto/des/des.c ) s.files += %w( third_party/boringssl/crypto/dh/check.c ) s.files += %w( third_party/boringssl/crypto/dh/dh.c ) @@ -867,6 +869,7 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl/ssl/ssl_buffer.c ) s.files += %w( third_party/boringssl/ssl/ssl_cert.c ) s.files += %w( third_party/boringssl/ssl/ssl_cipher.c ) + s.files += %w( third_party/boringssl/ssl/ssl_ecdh.c ) s.files += %w( third_party/boringssl/ssl/ssl_file.c ) s.files += %w( third_party/boringssl/ssl/ssl_lib.c ) s.files += %w( third_party/boringssl/ssl/ssl_rsa.c ) diff --git a/package.xml b/package.xml index 99ef0b8c70..716250c677 100644 --- a/package.xml +++ b/package.xml @@ -486,12 +486,12 @@ + - @@ -656,6 +656,7 @@ + @@ -679,6 +680,7 @@ + @@ -870,6 +872,7 @@ + diff --git a/src/boringssl/err_data.c b/src/boringssl/err_data.c index 1a1d950419..d4cc08bd99 100644 --- a/src/boringssl/err_data.c +++ b/src/boringssl/err_data.c @@ -54,30 +54,30 @@ 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[] = { - 0xc3207ba, - 0xc3287d4, - 0xc3307e3, - 0xc3387f3, - 0xc340802, - 0xc34881b, - 0xc350827, - 0xc358844, - 0xc360856, - 0xc368864, - 0xc370874, - 0xc378881, - 0xc380891, - 0xc38889c, - 0xc3908b2, - 0xc3988c1, - 0xc3a08d5, - 0xc3a87c7, + 0xc3207ab, + 0xc3287c5, + 0xc3307d4, + 0xc3387e4, + 0xc3407f3, + 0xc34880c, + 0xc350818, + 0xc358835, + 0xc360847, + 0xc368855, + 0xc370865, + 0xc378872, + 0xc380882, + 0xc38888d, + 0xc3908a3, + 0xc3988b2, + 0xc3a08c6, + 0xc3a87b8, 0xc3b00b0, - 0x10321478, - 0x10329484, - 0x1033149d, - 0x103394b0, - 0x10340de1, + 0x10321484, + 0x10329490, + 0x103314a9, + 0x103394bc, + 0x10340ded, 0x103494cf, 0x103514e4, 0x10359516, @@ -97,7 +97,7 @@ const uint32_t kOpenSSLReasonValues[] = { 0x103c9658, 0x103d166f, 0x103d9682, - 0x103e0b6c, + 0x103e0b5d, 0x103e96b3, 0x103f16c6, 0x103f96e0, @@ -108,87 +108,91 @@ const uint32_t kOpenSSLReasonValues[] = { 0x10421747, 0x1042975b, 0x1043176d, - 0x104385d0, - 0x104408c1, + 0x104385c1, + 0x104408b2, 0x10449782, 0x10451799, 0x104597ae, 0x104617bc, 0x10469695, 0x104714f7, - 0x104787c7, + 0x104787b8, 0x104800b0, - 0x104894c3, - 0x14320b4f, - 0x14328b5d, - 0x14330b6c, - 0x14338b7e, + 0x10488b8c, + 0x14320b40, + 0x14328b4e, + 0x14330b5d, + 0x14338b6f, 0x18320083, - 0x18328e47, - 0x18340e75, - 0x18348e89, - 0x18358ec0, - 0x18368eed, - 0x18370f00, - 0x18378f14, - 0x18380f38, - 0x18388f46, - 0x18390f5c, - 0x18398f70, - 0x183a0f80, - 0x183b0f90, - 0x183b8fa5, - 0x183c8fd0, - 0x183d0fe4, - 0x183d8ff4, - 0x183e0b9b, - 0x183e9001, - 0x183f1013, - 0x183f901e, - 0x1840102e, - 0x1840903f, - 0x18411050, - 0x18419062, - 0x1842108b, - 0x184290bd, - 0x184310cc, - 0x18451135, - 0x1845914b, - 0x18461166, - 0x18468ed8, - 0x184709d9, + 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, - 0x18480fbc, - 0x18489101, - 0x18490e5d, - 0x18498e9e, - 0x184a119c, - 0x184a9119, - 0x184b10e0, - 0x184b8e37, - 0x184c10a4, - 0x184c866b, - 0x184d1181, - 0x203211c3, - 0x243211cf, - 0x24328907, - 0x243311e1, - 0x243391ee, - 0x243411fb, - 0x2434920d, - 0x2435121c, - 0x24359239, - 0x24361246, - 0x24369254, - 0x24371262, - 0x24379270, - 0x24381279, - 0x24389286, - 0x24391299, - 0x28320b8f, - 0x28328b9b, - 0x28330b6c, - 0x28338bae, + 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, @@ -207,7 +211,7 @@ const uint32_t kOpenSSLReasonValues[] = { 0x2c39a917, 0x2c3a292b, 0x2c3aa93c, - 0x2c3b1359, + 0x2c3b1365, 0x2c3ba94d, 0x2c3c2961, 0x2c3ca977, @@ -219,12 +223,12 @@ const uint32_t kOpenSSLReasonValues[] = { 0x2c3faa09, 0x2c402a2c, 0x2c40aa4b, - 0x2c4111c3, + 0x2c4111cf, 0x2c41aa5c, 0x2c422a6f, - 0x2c429135, + 0x2c429141, 0x2c432a80, - 0x2c4386a2, + 0x2c438693, 0x2c4429ad, 0x30320000, 0x30328015, @@ -277,77 +281,79 @@ const uint32_t kOpenSSLReasonValues[] = { 0x304a03b4, 0x304a83c7, 0x304b03d2, - 0x304b83e1, - 0x304c03f2, - 0x304c83fe, - 0x304d0414, - 0x304d8422, - 0x304e0438, - 0x304e844a, - 0x304f045c, - 0x304f846f, - 0x30500482, - 0x30508493, - 0x305104a3, - 0x305184bb, - 0x305204d0, - 0x305284e8, - 0x305304fc, - 0x30538514, - 0x3054052d, - 0x30548546, - 0x30550563, - 0x3055856e, - 0x30560586, - 0x30568596, - 0x305705a7, - 0x305785ba, - 0x305805d0, - 0x305885d9, - 0x305905ee, + 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, - 0x305a0610, + 0x305a0621, 0x305a8630, - 0x305b063f, - 0x305b864b, - 0x305c066b, - 0x305c8687, - 0x305d0698, - 0x305d86a2, - 0x34320ac9, - 0x34328add, - 0x34330afa, - 0x34338b0d, - 0x34340b1c, - 0x34348b39, + 0x305b063c, + 0x305b865c, + 0x305c0678, + 0x305c8689, + 0x305d0693, + 0x34320aba, + 0x34328ace, + 0x34330aeb, + 0x34338afe, + 0x34340b0d, + 0x34348b2a, 0x3c320083, - 0x3c328bd8, - 0x3c330bf1, - 0x3c338c0c, - 0x3c340c29, - 0x3c348c44, - 0x3c350c5f, - 0x3c358c74, - 0x3c360c8d, - 0x3c368ca5, - 0x3c370cb6, - 0x3c378cc4, - 0x3c380cd1, - 0x3c388ce5, - 0x3c390b9b, - 0x3c398cf9, - 0x3c3a0d0d, - 0x3c3a8881, - 0x3c3b0d1d, - 0x3c3b8d38, - 0x3c3c0d4a, - 0x3c3c8d60, - 0x3c3d0d6a, - 0x3c3d8d7e, - 0x3c3e0d8c, - 0x3c3e8db1, - 0x3c3f0bc4, - 0x3c3f8d9a, + 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, @@ -362,7 +368,7 @@ const uint32_t kOpenSSLReasonValues[] = { 0x403798b8, 0x403818c3, 0x403898d5, - 0x40390de1, + 0x40390ded, 0x403998e5, 0x403a18f8, 0x403a9919, @@ -437,7 +443,7 @@ const uint32_t kOpenSSLReasonValues[] = { 0x405d1e9e, 0x405d9eb5, 0x405e1ed5, - 0x405e8a17, + 0x405e8a08, 0x405f1ef6, 0x405f9f03, 0x40601f11, @@ -474,18 +480,18 @@ const uint32_t kOpenSSLReasonValues[] = { 0x406fa60d, 0x40702620, 0x4070a63d, - 0x40710782, + 0x40710773, 0x4071a64f, 0x40722662, 0x4072a67b, 0x40732693, - 0x407390bd, + 0x407390c9, 0x407426a7, 0x4074a6c1, 0x407526d2, 0x4075a6e6, 0x407626f4, - 0x40769286, + 0x40769292, 0x40772719, 0x4077a73b, 0x40782756, @@ -528,48 +534,48 @@ const uint32_t kOpenSSLReasonValues[] = { 0x422c251d, 0x422ca4d8, 0x422d24b7, - 0x443206ad, - 0x443286bc, - 0x443306c8, - 0x443386d6, - 0x443406e9, - 0x443486fa, - 0x44350701, - 0x4435870b, - 0x4436071e, - 0x44368734, - 0x44370746, - 0x44378753, - 0x44380762, - 0x4438876a, - 0x44390782, - 0x44398790, - 0x443a07a3, - 0x4c3212b0, - 0x4c3292c0, - 0x4c3312d3, - 0x4c3392f3, + 0x4432069e, + 0x443286ad, + 0x443306b9, + 0x443386c7, + 0x443406da, + 0x443486eb, + 0x443506f2, + 0x443586fc, + 0x4436070f, + 0x44368725, + 0x44370737, + 0x44378744, + 0x44380753, + 0x4438875b, + 0x44390773, + 0x44398781, + 0x443a0794, + 0x4c3212bc, + 0x4c3292cc, + 0x4c3312df, + 0x4c3392ff, 0x4c340094, 0x4c3480b0, - 0x4c3512ff, - 0x4c35930d, - 0x4c361329, - 0x4c36933c, - 0x4c37134b, - 0x4c379359, - 0x4c38136e, - 0x4c38937a, - 0x4c39139a, - 0x4c3993c4, - 0x4c3a13dd, - 0x4c3a93f6, - 0x4c3b05d0, - 0x4c3b940f, - 0x4c3c1421, - 0x4c3c9430, - 0x4c3d10bd, - 0x4c3d9449, - 0x4c3e1456, + 0x4c35130b, + 0x4c359319, + 0x4c361335, + 0x4c369348, + 0x4c371357, + 0x4c379365, + 0x4c38137a, + 0x4c389386, + 0x4c3913a6, + 0x4c3993d0, + 0x4c3a13e9, + 0x4c3a9402, + 0x4c3b05c1, + 0x4c3b941b, + 0x4c3c142d, + 0x4c3c943c, + 0x4c3d10c9, + 0x4c3d9455, + 0x4c3e1462, 0x50322a92, 0x5032aaa1, 0x50332aac, @@ -607,7 +613,7 @@ const uint32_t kOpenSSLReasonValues[] = { 0x50432d43, 0x5043ad53, 0x50442d62, - 0x50448414, + 0x50448405, 0x50452d76, 0x5045ad94, 0x50462da7, @@ -631,45 +637,45 @@ const uint32_t kOpenSSLReasonValues[] = { 0x504f2f62, 0x504faf79, 0x50502f88, - 0x50508687, + 0x50508678, 0x50512f9b, - 0x58320e1f, - 0x68320de1, - 0x68328b9b, - 0x68330bae, - 0x68338def, - 0x68340dff, + 0x58320e2b, + 0x68320ded, + 0x68328b98, + 0x68330bab, + 0x68338dfb, + 0x68340e0b, 0x683480b0, - 0x6c320dbd, - 0x6c328b7e, - 0x6c330dc8, - 0x7432098d, - 0x783208f2, - 0x78328907, - 0x78330913, + 0x6c320dc9, + 0x6c328b6f, + 0x6c330dd4, + 0x7432097e, + 0x783208e3, + 0x783288f8, + 0x78330904, 0x78338083, - 0x78340922, - 0x78348937, - 0x78350956, - 0x78358978, - 0x7836098d, - 0x783689a3, - 0x783709b3, - 0x783789c6, - 0x783809d9, - 0x783889eb, - 0x783909f8, - 0x78398a17, - 0x783a0a2c, - 0x783a8a3a, - 0x783b0a44, - 0x783b8a58, - 0x783c0a6f, - 0x783c8a84, - 0x783d0a9b, - 0x783d8ab0, - 0x783e0a06, - 0x7c3211b2, + 0x78340913, + 0x78348928, + 0x78350947, + 0x78358969, + 0x7836097e, + 0x78368994, + 0x783709a4, + 0x783789b7, + 0x783809ca, + 0x783889dc, + 0x783909e9, + 0x78398a08, + 0x783a0a1d, + 0x783a8a2b, + 0x783b0a35, + 0x783b8a49, + 0x783c0a60, + 0x783c8a75, + 0x783d0a8c, + 0x783d8aa1, + 0x783e09f7, + 0x7c3211be, }; const size_t kOpenSSLReasonValuesLen = sizeof(kOpenSSLReasonValues) / sizeof(kOpenSSLReasonValues[0]); @@ -725,7 +731,6 @@ const char kOpenSSLReasonStringData[] = "INVALID_UNIVERSALSTRING_LENGTH\0" "INVALID_UTF8STRING\0" "LIST_ERROR\0" - "MALLOC_FAILURE\0" "MISSING_ASN1_EOS\0" "MISSING_EOC\0" "MISSING_SECOND_NUMBER\0" @@ -833,6 +838,7 @@ const char kOpenSSLReasonStringData[] = "MODULUS_TOO_LARGE\0" "NO_PRIVATE_VALUE\0" "BAD_Q_VALUE\0" + "BAD_VERSION\0" "MISSING_PARAMETERS\0" "NEED_NEW_SETUP_VALUES\0" "BIGNUM_OUT_OF_RANGE\0" @@ -840,6 +846,7 @@ const char kOpenSSLReasonStringData[] = "D2I_ECPKPARAMETERS_FAILURE\0" "EC_GROUP_NEW_BY_NAME_FAILURE\0" "GROUP2PKPARAMETERS_FAILURE\0" + "GROUP_MISMATCH\0" "I2D_ECPKPARAMETERS_FAILURE\0" "INCOMPATIBLE_OBJECTS\0" "INVALID_COMPRESSED_POINT\0" @@ -948,7 +955,6 @@ const char kOpenSSLReasonStringData[] = "BAD_FIXED_HEADER_DECRYPT\0" "BAD_PAD_BYTE_COUNT\0" "BAD_RSA_PARAMETERS\0" - "BAD_VERSION\0" "BLOCK_TYPE_IS_NOT_01\0" "BN_NOT_INITIALIZED\0" "CANNOT_RECOVER_MULTI_PRIME_KEY\0" diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py index de25edbeb5..94e1807c6b 100644 --- a/src/python/grpcio/grpc_core_dependencies.py +++ b/src/python/grpcio/grpc_core_dependencies.py @@ -311,6 +311,7 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/bn/shift.c', 'third_party/boringssl/crypto/bn/sqrt.c', 'third_party/boringssl/crypto/buf/buf.c', + 'third_party/boringssl/crypto/bytestring/asn1_compat.c', 'third_party/boringssl/crypto/bytestring/ber.c', 'third_party/boringssl/crypto/bytestring/cbb.c', 'third_party/boringssl/crypto/bytestring/cbs.c', @@ -334,6 +335,7 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/crypto/cpu-intel.c', 'third_party/boringssl/crypto/crypto.c', 'third_party/boringssl/crypto/curve25519/curve25519.c', + 'third_party/boringssl/crypto/curve25519/x25519-x86_64.c', 'third_party/boringssl/crypto/des/des.c', 'third_party/boringssl/crypto/dh/check.c', 'third_party/boringssl/crypto/dh/dh.c', @@ -525,6 +527,7 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl/ssl/ssl_buffer.c', 'third_party/boringssl/ssl/ssl_cert.c', 'third_party/boringssl/ssl/ssl_cipher.c', + 'third_party/boringssl/ssl/ssl_ecdh.c', 'third_party/boringssl/ssl/ssl_file.c', 'third_party/boringssl/ssl/ssl_lib.c', 'third_party/boringssl/ssl/ssl_rsa.c', diff --git a/third_party/boringssl b/third_party/boringssl index 907ae62b9d..c880e42ba1 160000 --- a/third_party/boringssl +++ b/third_party/boringssl @@ -1 +1 @@ -Subproject commit 907ae62b9d81121cb86b604f83e6b811a43f7a87 +Subproject commit c880e42ba1c8032d4cdde2aba0541d8a9d9fa2e9 diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index cfbdbbfbc2..475dfbc67b 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -3202,6 +3202,19 @@ "third_party": true, "type": "target" }, + { + "deps": [ + "boringssl", + "boringssl_test_util", + "boringssl_x509_test_lib" + ], + "headers": [], + "language": "c++", + "name": "boringssl_x509_test", + "src": [], + "third_party": true, + "type": "target" + }, { "deps": [ "boringssl", @@ -4575,12 +4588,12 @@ "third_party/boringssl/crypto/cipher/internal.h", "third_party/boringssl/crypto/conf/conf_def.h", "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/dsa/internal.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", @@ -5087,6 +5100,18 @@ "third_party": true, "type": "lib" }, + { + "deps": [ + "boringssl", + "boringssl_test_util" + ], + "headers": [], + "language": "c++", + "name": "boringssl_x509_test_lib", + "src": [], + "third_party": true, + "type": "lib" + }, { "deps": [ "boringssl", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index ab7dca699a..973921faec 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -4240,6 +4240,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_x509_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "args": [], "boringssl": true, diff --git a/vsprojects/vcxproj/boringssl/boringssl.vcxproj b/vsprojects/vcxproj/boringssl/boringssl.vcxproj index 27125c42dc..59db775d79 100644 --- a/vsprojects/vcxproj/boringssl/boringssl.vcxproj +++ b/vsprojects/vcxproj/boringssl/boringssl.vcxproj @@ -156,12 +156,12 @@ + - @@ -400,6 +400,8 @@ + + @@ -446,6 +448,8 @@ + + @@ -828,6 +832,8 @@ + + diff --git a/vsprojects/vcxproj/boringssl/boringssl.vcxproj.filters b/vsprojects/vcxproj/boringssl/boringssl.vcxproj.filters index 8cee094270..bd996bdc44 100644 --- a/vsprojects/vcxproj/boringssl/boringssl.vcxproj.filters +++ b/vsprojects/vcxproj/boringssl/boringssl.vcxproj.filters @@ -217,6 +217,9 @@ third_party\boringssl\crypto\buf + + third_party\boringssl\crypto\bytestring + third_party\boringssl\crypto\bytestring @@ -286,6 +289,9 @@ third_party\boringssl\crypto\curve25519 + + third_party\boringssl\crypto\curve25519 + third_party\boringssl\crypto\des @@ -859,6 +865,9 @@ third_party\boringssl\ssl + + third_party\boringssl\ssl + third_party\boringssl\ssl @@ -912,6 +921,9 @@ third_party\boringssl\crypto\conf + + third_party\boringssl\crypto\curve25519 + third_party\boringssl\crypto\des @@ -927,9 +939,6 @@ third_party\boringssl\crypto - - third_party\boringssl\crypto\dsa - third_party\boringssl\crypto\ec diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_x509_test/boringssl_x509_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_x509_test/boringssl_x509_test.vcxproj new file mode 100644 index 0000000000..2bf7f71531 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_x509_test/boringssl_x509_test.vcxproj @@ -0,0 +1,198 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {0E1472A5-A857-7680-45C6-7C4DD2F6BE48} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + boringssl_x509_test + static + Debug + static + Debug + + + boringssl_x509_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 + + + + + + + + + + {62DBB3BA-05D6-D2CF-7EC5-253F2AC25892} + + + {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_x509_test/boringssl_x509_test.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_x509_test/boringssl_x509_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_x509_test/boringssl_x509_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_x509_test_lib/boringssl_x509_test_lib.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_x509_test_lib/boringssl_x509_test_lib.vcxproj new file mode 100644 index 0000000000..f8b0e7a701 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_x509_test_lib/boringssl_x509_test_lib.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {62DBB3BA-05D6-D2CF-7EC5-253F2AC25892} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + boringssl_x509_test_lib + + + boringssl_x509_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_x509_test_lib/boringssl_x509_test_lib.vcxproj.filters b/vsprojects/vcxproj/test/boringssl/boringssl_x509_test_lib/boringssl_x509_test_lib.vcxproj.filters new file mode 100644 index 0000000000..216a56fae3 --- /dev/null +++ b/vsprojects/vcxproj/test/boringssl/boringssl_x509_test_lib/boringssl_x509_test_lib.vcxproj.filters @@ -0,0 +1,24 @@ + + + + + third_party\boringssl\crypto\x509 + + + + + + {0a04403f-6935-8e9c-c271-cfcb728d6dd3} + + + {8ffac2f8-0d1d-00df-018c-56100e9842f7} + + + {2d1857b4-2355-6af6-b6c8-b33f3ec27013} + + + {615f50f9-1415-e8e4-49ec-987a5772c7ee} + + + + -- cgit v1.2.3