diff options
457 files changed, 9347 insertions, 2937 deletions
diff --git a/.gitignore b/.gitignore index f059eca239..471649d7a0 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,13 @@ gens libs objs -# Python virtual environments -python*_virtual_environment +# Python items +.coverage* +.eggs +.tox +htmlcov/ +dist/ +*.egg # gcov coverage data reports diff --git a/.rspec b/.rspec new file mode 100755 index 0000000000..b94d663c9a --- /dev/null +++ b/.rspec @@ -0,0 +1,6 @@ +-Isrc/ruby +-Isrc/ruby/pb +--backtrace +--require spec/spec_helper +--format documentation +--color @@ -385,6 +385,7 @@ cc_library( "src/core/surface/server.c", "src/core/surface/server_chttp2.c", "src/core/surface/server_create.c", + "src/core/surface/validate_metadata.c", "src/core/surface/version.c", "src/core/transport/byte_stream.c", "src/core/transport/chttp2/alpn.c", @@ -656,6 +657,7 @@ cc_library( "src/core/surface/server.c", "src/core/surface/server_chttp2.c", "src/core/surface/server_create.c", + "src/core/surface/validate_metadata.c", "src/core/surface/version.c", "src/core/transport/byte_stream.c", "src/core/transport/chttp2/alpn.c", @@ -969,8 +971,8 @@ cc_library( ".", ], deps = [ - ":gpr", ":grpc", + ":gpr", ], ) @@ -1190,6 +1192,7 @@ objc_library( "src/core/surface/server.c", "src/core/surface/server_chttp2.c", "src/core/surface/server_create.c", + "src/core/surface/validate_metadata.c", "src/core/surface/version.c", "src/core/transport/byte_stream.c", "src/core/transport/chttp2/alpn.c", diff --git a/src/ruby/Gemfile b/Gemfile index 597a7d4f4b..597a7d4f4b 100755 --- a/src/ruby/Gemfile +++ b/Gemfile diff --git a/MANIFEST.md b/MANIFEST.md new file mode 100644 index 0000000000..b523f8f6fa --- /dev/null +++ b/MANIFEST.md @@ -0,0 +1,14 @@ +# Top-level Items by language + +## Node +* [binding.gyp](binding.gyp) + +## Objective-C +* [gRPC.podspec](gRPC.podspec) + +## Python +* [requirements.txt](requirements.txt) +* [setup.cfg](setup.cfg) +* [setup.py](setup.py) +* [tox.ini](tox.ini) +* [PYTHON-MANIFEST.in](PYTHON-MANIFEST.in) @@ -5,7 +5,7 @@ # This file can be regenerated from the template by running # tools/buildgen/generate_projects.sh -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -36,6 +36,9 @@ +comma := , + + # Basic platform detection HOST_SYSTEM = $(shell uname | cut -f 1 -d_) ifeq ($(SYSTEM),) @@ -147,9 +150,9 @@ CC_tsan = clang CXX_tsan = clang++ LD_tsan = clang LDXX_tsan = clang++ -CFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE -CXXFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE -LDFLAGS_tsan = -fsanitize=thread -pie +CFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE -pie +CXXFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE -pie +LDFLAGS_tsan = -fsanitize=thread -fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,) DEFINES_tsan = NDEBUG GRPC_TEST_SLOWDOWN_BUILD_FACTOR=10 VALID_CONFIG_asan = 1 @@ -169,9 +172,9 @@ CC_msan = clang CXX_msan = clang++-libc++ LD_msan = clang LDXX_msan = clang++-libc++ -CFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -CXXFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -pie +CFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie +CXXFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie +LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,) DEFINES_msan = NDEBUG GRPC_TEST_SLOWDOWN_BUILD_FACTOR=4 VALID_CONFIG_ubsan = 1 @@ -903,6 +906,7 @@ cxx_slice_test: $(BINDIR)/$(CONFIG)/cxx_slice_test cxx_string_ref_test: $(BINDIR)/$(CONFIG)/cxx_string_ref_test 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 grpc_cli: $(BINDIR)/$(CONFIG)/grpc_cli grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin @@ -1256,6 +1260,7 @@ buildtests_cxx: buildtests_zookeeper privatelibs_cxx \ $(BINDIR)/$(CONFIG)/cxx_string_ref_test \ $(BINDIR)/$(CONFIG)/cxx_time_test \ $(BINDIR)/$(CONFIG)/end2end_test \ + $(BINDIR)/$(CONFIG)/generic_async_streaming_ping_pong_test \ $(BINDIR)/$(CONFIG)/generic_end2end_test \ $(BINDIR)/$(CONFIG)/grpc_cli \ $(BINDIR)/$(CONFIG)/interop_client \ @@ -1555,6 +1560,8 @@ test_cxx: test_zookeeper buildtests_cxx $(Q) $(BINDIR)/$(CONFIG)/cxx_time_test || ( echo test cxx_time_test failed ; exit 1 ) $(E) "[RUN] Testing end2end_test" $(Q) $(BINDIR)/$(CONFIG)/end2end_test || ( echo test end2end_test failed ; exit 1 ) + $(E) "[RUN] Testing generic_async_streaming_ping_pong_test" + $(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 interop_test" @@ -1710,180 +1717,180 @@ $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++_unsecure.pc: $(Q) echo "$(GRPCXX_UNSECURE_PC_FILE)" | tr , '\n' >$@ ifeq ($(NO_PROTOC),true) -$(GENDIR)/test/cpp/qps/perf_db.pb.cc: protoc_dep_error -$(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/control.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/cpp/qps/perf_db.pb.cc: test/cpp/qps/perf_db.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/control.pb.cc: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc: test/cpp/qps/perf_db.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(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)/test/cpp/util/echo.pb.cc: protoc_dep_error -$(GENDIR)/test/cpp/util/echo.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/cpp/util/echo.pb.cc: test/cpp/util/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/cpp/util/echo.grpc.pb.cc: test/cpp/util/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(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)/test/cpp/util/echo_duplicate.pb.cc: protoc_dep_error -$(GENDIR)/test/cpp/util/echo_duplicate.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/echo.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/cpp/util/echo_duplicate.pb.cc: test/cpp/util/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/echo.pb.cc: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/cpp/util/echo_duplicate.grpc.pb.cc: test/cpp/util/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(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)/test/cpp/util/messages.pb.cc: protoc_dep_error -$(GENDIR)/test/cpp/util/messages.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/cpp/util/messages.pb.cc: test/cpp/util/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/cpp/util/messages.grpc.pb.cc: test/cpp/util/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc: src/proto/grpc/testing/echo_messages.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)/test/proto/benchmarks/control.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/empty.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/benchmarks/control.pb.cc: test/proto/benchmarks/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/empty.pb.cc: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc: test/proto/benchmarks/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc: src/proto/grpc/testing/empty.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)/test/proto/benchmarks/payloads.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/messages.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/benchmarks/payloads.pb.cc: test/proto/benchmarks/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/messages.pb.cc: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc: test/proto/benchmarks/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc: src/proto/grpc/testing/messages.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)/test/proto/benchmarks/services.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/metrics.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/benchmarks/services.pb.cc: test/proto/benchmarks/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/metrics.pb.cc: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc: test/proto/benchmarks/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc: src/proto/grpc/testing/metrics.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)/test/proto/benchmarks/stats.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/payloads.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/benchmarks/stats.pb.cc: test/proto/benchmarks/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/payloads.pb.cc: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc: test/proto/benchmarks/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc: src/proto/grpc/testing/payloads.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)/test/proto/empty.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/empty.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/empty.pb.cc: test/proto/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc: src/proto/grpc/testing/perf_db.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/empty.grpc.pb.cc: test/proto/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc: src/proto/grpc/testing/perf_db.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(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)/test/proto/messages.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/messages.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/services.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/messages.pb.cc: test/proto/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/services.pb.cc: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/messages.grpc.pb.cc: test/proto/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(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)/test/proto/metrics.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/metrics.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/stats.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/metrics.pb.cc: test/proto/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/stats.pb.cc: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/metrics.grpc.pb.cc: test/proto/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc: src/proto/grpc/testing/stats.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)/test/proto/test.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/test.grpc.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/test.pb.cc: protoc_dep_error +$(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/test.pb.cc: test/proto/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/test.pb.cc: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/test.grpc.pb.cc: test/proto/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(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 $< @@ -2418,6 +2425,7 @@ LIBGRPC_SRC = \ src/core/surface/server.c \ src/core/surface/server_chttp2.c \ src/core/surface/server_create.c \ + src/core/surface/validate_metadata.c \ src/core/surface/version.c \ src/core/transport/byte_stream.c \ src/core/transport/chttp2/alpn.c \ @@ -2720,6 +2728,7 @@ LIBGRPC_UNSECURE_SRC = \ src/core/surface/server.c \ src/core/surface/server_chttp2.c \ src/core/surface/server_create.c \ + src/core/surface/validate_metadata.c \ src/core/surface/version.c \ src/core/transport/byte_stream.c \ src/core/transport/chttp2/alpn.c \ @@ -3146,9 +3155,9 @@ endif LIBGRPC++_TEST_UTIL_SRC = \ - $(GENDIR)/test/cpp/util/messages.pb.cc $(GENDIR)/test/cpp/util/messages.grpc.pb.cc \ - $(GENDIR)/test/cpp/util/echo.pb.cc $(GENDIR)/test/cpp/util/echo.grpc.pb.cc \ - $(GENDIR)/test/cpp/util/echo_duplicate.pb.cc $(GENDIR)/test/cpp/util/echo_duplicate.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc \ test/cpp/util/cli_call.cc \ test/cpp/util/create_test_channel.cc \ test/cpp/util/string_ref_helper.cc \ @@ -3197,10 +3206,10 @@ ifneq ($(NO_DEPS),true) -include $(LIBGRPC++_TEST_UTIL_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_call.o: $(GENDIR)/test/cpp/util/messages.pb.cc $(GENDIR)/test/cpp/util/messages.grpc.pb.cc $(GENDIR)/test/cpp/util/echo.pb.cc $(GENDIR)/test/cpp/util/echo.grpc.pb.cc $(GENDIR)/test/cpp/util/echo_duplicate.pb.cc $(GENDIR)/test/cpp/util/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/create_test_channel.o: $(GENDIR)/test/cpp/util/messages.pb.cc $(GENDIR)/test/cpp/util/messages.grpc.pb.cc $(GENDIR)/test/cpp/util/echo.pb.cc $(GENDIR)/test/cpp/util/echo.grpc.pb.cc $(GENDIR)/test/cpp/util/echo_duplicate.pb.cc $(GENDIR)/test/cpp/util/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o: $(GENDIR)/test/cpp/util/messages.pb.cc $(GENDIR)/test/cpp/util/messages.grpc.pb.cc $(GENDIR)/test/cpp/util/echo.pb.cc $(GENDIR)/test/cpp/util/echo.grpc.pb.cc $(GENDIR)/test/cpp/util/echo_duplicate.pb.cc $(GENDIR)/test/cpp/util/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/subprocess.o: $(GENDIR)/test/cpp/util/messages.pb.cc $(GENDIR)/test/cpp/util/messages.grpc.pb.cc $(GENDIR)/test/cpp/util/echo.pb.cc $(GENDIR)/test/cpp/util/echo.grpc.pb.cc $(GENDIR)/test/cpp/util/echo_duplicate.pb.cc $(GENDIR)/test/cpp/util/echo_duplicate.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_call.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/create_test_channel.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/subprocess.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc LIBGRPC++_UNSECURE_SRC = \ @@ -3384,7 +3393,7 @@ endif LIBINTEROP_CLIENT_HELPER_SRC = \ - $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ test/cpp/interop/client_helper.cc \ @@ -3430,13 +3439,13 @@ ifneq ($(NO_DEPS),true) -include $(LIBINTEROP_CLIENT_HELPER_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/client_helper.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/client_helper.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc LIBINTEROP_CLIENT_MAIN_SRC = \ - $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc \ - $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ - $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ test/cpp/interop/client.cc \ test/cpp/interop/interop_client.cc \ @@ -3483,8 +3492,8 @@ ifneq ($(NO_DEPS),true) -include $(LIBINTEROP_CLIENT_MAIN_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/client.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc LIBINTEROP_SERVER_HELPER_SRC = \ @@ -3536,9 +3545,9 @@ endif LIBINTEROP_SERVER_MAIN_SRC = \ - $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc \ - $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ - $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ test/cpp/interop/server.cc \ @@ -3584,16 +3593,16 @@ ifneq ($(NO_DEPS),true) -include $(LIBINTEROP_SERVER_MAIN_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/server.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc LIBQPS_SRC = \ - $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ - $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc \ - $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc \ - $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc \ - $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc \ - $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc \ test/cpp/qps/client_async.cc \ test/cpp/qps/client_sync.cc \ test/cpp/qps/driver.cc \ @@ -3648,16 +3657,16 @@ ifneq ($(NO_DEPS),true) -include $(LIBQPS_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc LIBGRPC_CSHARP_EXT_SRC = \ @@ -3694,18 +3703,18 @@ endif ifeq ($(SYSTEM),MINGW32) -$(LIBDIR)/$(CONFIG)/grpc_csharp_ext.$(SHARED_EXT): $(LIBGRPC_CSHARP_EXT_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/gpr.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/grpc.$(SHARED_EXT) $(OPENSSL_DEP) +$(LIBDIR)/$(CONFIG)/grpc_csharp_ext.$(SHARED_EXT): $(LIBGRPC_CSHARP_EXT_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_DEP) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_csharp_ext.def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext-imp.a -o $(LIBDIR)/$(CONFIG)/grpc_csharp_ext.$(SHARED_EXT) $(LIBGRPC_CSHARP_EXT_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgpr-imp -lgrpc-imp + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_csharp_ext.def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext-imp.a -o $(LIBDIR)/$(CONFIG)/grpc_csharp_ext.$(SHARED_EXT) $(LIBGRPC_CSHARP_EXT_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(ZLIB_MERGE_LIBS) else -$(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.$(SHARED_EXT): $(LIBGRPC_CSHARP_EXT_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc.$(SHARED_EXT) $(OPENSSL_DEP) +$(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.$(SHARED_EXT): $(LIBGRPC_CSHARP_EXT_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_DEP) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` ifeq ($(SYSTEM),Darwin) - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name libgrpc_csharp_ext.$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.$(SHARED_EXT) $(LIBGRPC_CSHARP_EXT_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgpr -lgrpc + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name libgrpc_csharp_ext.$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.$(SHARED_EXT) $(LIBGRPC_CSHARP_EXT_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(ZLIB_MERGE_LIBS) else - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_csharp_ext.so.0 -o $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.$(SHARED_EXT) $(LIBGRPC_CSHARP_EXT_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgpr -lgrpc + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_csharp_ext.so.0 -o $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.$(SHARED_EXT) $(LIBGRPC_CSHARP_EXT_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(ZLIB_MERGE_LIBS) $(Q) ln -sf libgrpc_csharp_ext.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.so.0 $(Q) ln -sf libgrpc_csharp_ext.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.so endif @@ -9325,6 +9334,49 @@ endif endif +GENERIC_ASYNC_STREAMING_PING_PONG_TEST_SRC = \ + test/cpp/qps/generic_async_streaming_ping_pong_test.cc \ + +GENERIC_ASYNC_STREAMING_PING_PONG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GENERIC_ASYNC_STREAMING_PING_PONG_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/generic_async_streaming_ping_pong_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)/generic_async_streaming_ping_pong_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/generic_async_streaming_ping_pong_test: $(PROTOBUF_DEP) $(GENERIC_ASYNC_STREAMING_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(GENERIC_ASYNC_STREAMING_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/generic_async_streaming_ping_pong_test + +endif + +endif + +$(OBJDIR)/$(CONFIG)/test/cpp/qps/generic_async_streaming_ping_pong_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_generic_async_streaming_ping_pong_test: $(GENERIC_ASYNC_STREAMING_PING_PONG_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(GENERIC_ASYNC_STREAMING_PING_PONG_TEST_OBJS:.o=.dep) +endif +endif + + GENERIC_END2END_TEST_SRC = \ test/cpp/end2end/generic_end2end_test.cc \ @@ -9672,7 +9724,7 @@ endif METRICS_CLIENT_SRC = \ - $(GENDIR)/test/proto/metrics.pb.cc $(GENDIR)/test/proto/metrics.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ test/cpp/interop/metrics_client.cc \ METRICS_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(METRICS_CLIENT_SRC)))) @@ -9704,7 +9756,7 @@ endif endif -$(OBJDIR)/$(CONFIG)/test/proto/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a @@ -9715,7 +9767,7 @@ ifneq ($(NO_DEPS),true) -include $(METRICS_CLIENT_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(GENDIR)/test/proto/metrics.pb.cc $(GENDIR)/test/proto/metrics.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc MOCK_TEST_SRC = \ @@ -9977,9 +10029,9 @@ endif RECONNECT_INTEROP_CLIENT_SRC = \ - $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc \ - $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ - $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ test/cpp/interop/reconnect_interop_client.cc \ RECONNECT_INTEROP_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_CLIENT_SRC)))) @@ -10011,11 +10063,11 @@ endif endif -$(OBJDIR)/$(CONFIG)/test/proto/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/proto/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/proto/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a @@ -10026,13 +10078,13 @@ ifneq ($(NO_DEPS),true) -include $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc RECONNECT_INTEROP_SERVER_SRC = \ - $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc \ - $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ - $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ test/cpp/interop/reconnect_interop_server.cc \ RECONNECT_INTEROP_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_SERVER_SRC)))) @@ -10064,11 +10116,11 @@ endif endif -$(OBJDIR)/$(CONFIG)/test/proto/empty.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/proto/messages.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/proto/test.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a @@ -10079,7 +10131,7 @@ ifneq ($(NO_DEPS),true) -include $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc SECURE_AUTH_CONTEXT_TEST_SRC = \ @@ -10384,10 +10436,10 @@ endif STRESS_TEST_SRC = \ - $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc \ - $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ - $(GENDIR)/test/proto/metrics.pb.cc $(GENDIR)/test/proto/metrics.grpc.pb.cc \ - $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ test/cpp/interop/interop_client.cc \ test/cpp/interop/stress_interop_client.cc \ test/cpp/interop/stress_test.cc \ @@ -10422,13 +10474,13 @@ endif endif -$(OBJDIR)/$(CONFIG)/test/proto/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/proto/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/proto/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/proto/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a @@ -10445,10 +10497,10 @@ ifneq ($(NO_DEPS),true) -include $(STRESS_TEST_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/metrics.pb.cc $(GENDIR)/test/proto/metrics.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/metrics.pb.cc $(GENDIR)/test/proto/metrics.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/metrics.pb.cc $(GENDIR)/test/proto/metrics.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/metrics.pb.cc $(GENDIR)/test/proto/metrics.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc SYNC_STREAMING_PING_PONG_TEST_SRC = \ @@ -10581,6 +10633,7 @@ endif ZOOKEEPER_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc \ test/cpp/end2end/zookeeper_test.cc \ ZOOKEEPER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ZOOKEEPER_TEST_SRC)))) @@ -10612,6 +10665,8 @@ endif endif +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/echo.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc_zookeeper.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(OBJDIR)/$(CONFIG)/test/cpp/end2end/zookeeper_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc_zookeeper.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a deps_zookeeper_test: $(ZOOKEEPER_TEST_OBJS:.o=.dep) @@ -10621,6 +10676,7 @@ ifneq ($(NO_DEPS),true) -include $(ZOOKEEPER_TEST_OBJS:.o=.dep) endif endif +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/zookeeper_test.o: $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc PUBLIC_HEADERS_MUST_BE_C89_SRC = \ diff --git a/PYTHON-MANIFEST.in b/PYTHON-MANIFEST.in new file mode 100644 index 0000000000..02bd9b5229 --- /dev/null +++ b/PYTHON-MANIFEST.in @@ -0,0 +1,10 @@ +graft src/python/grpcio/grpc +graft src/python/grpcio/tests +graft src/core +graft include/grpc +graft third_party/boringssl +include src/python/grpcio/commands.py +include src/python/grpcio/grpc_core_dependencies.py +include src/python/grpcio/README.rst +include requirements.txt +include etc/roots.pem @@ -11,16 +11,16 @@ You can find more detailed documentation and examples in the [doc](doc) and [exa #Installation -See grpc/INSTALL for installation instructions for various platforms. +See [grpc/INSTALL](INSTALL) for installation instructions for various platforms. #Repository Structure & Status This repository contains source code for gRPC libraries for multiple languages written on top of shared C core library [src/core] (src/core). -Libraries in different languages are in different state of development. We are seeking contributions for all of these libraries. +Libraries in different languages are in different states of development. We are seeking contributions for all of these libraries. -| Language | Source | Status | -|-------------------------|-------------------------------------|---------------------------------| +| Language | Source | Status | +|-------------------------|-------------------------------------|----------------------------------| | Shared C [core library] | [src/core] (src/core) | Beta - the surface API is stable | | C++ | [src/cpp] (src/cpp) | Beta - the surface API is stable | | Ruby | [src/ruby] (src/ruby) | Beta - the surface API is stable | @@ -31,10 +31,12 @@ Libraries in different languages are in different state of development. We are s | Objective-C | [src/objective-c] (src/objective-c) | Beta - the surface API is stable | <small> -Java source code is in [grpc-java] (http://github.com/grpc/grpc-java) repository. -Go source code is in [grpc-go] (http://github.com/grpc/grpc-go) repository. +Java source code is in the [grpc-java] (http://github.com/grpc/grpc-java) repository. +Go source code is in the [grpc-go] (http://github.com/grpc/grpc-go) repository. </small> +See [MANIFEST.md](MANIFEST.md) for a listing of top-level items in the +repository. #Overview diff --git a/src/ruby/Rakefile b/Rakefile index cc7832b12d..079df67996 100755 --- a/src/ruby/Rakefile +++ b/Rakefile @@ -5,23 +5,28 @@ require 'rubocop/rake_task' require 'bundler/gem_tasks' # Add rubocop style checking tasks -RuboCop::RakeTask.new +RuboCop::RakeTask.new(:rubocop) do |task| + task.options = ['-c', 'src/ruby/.rubocop.yml'] + task.patterns = ['src/ruby/{lib,spec}/**/*.rb'] +end # Add the extension compiler task Rake::ExtensionTask.new 'grpc' do |ext| - ext.lib_dir = File.join('lib', 'grpc') + ext.source_pattern = '**/*.{c,h}' + ext.ext_dir = File.join('src', 'ruby', 'ext', 'grpc') + ext.lib_dir = File.join('src', 'ruby', 'lib', 'grpc') end # Define the test suites SPEC_SUITES = [ - { id: :wrapper, title: 'wrapper layer', files: %w(spec/*.rb) }, - { id: :idiomatic, title: 'idiomatic layer', dir: %w(spec/generic), + { id: :wrapper, title: 'wrapper layer', files: %w(src/ruby/spec/*.rb) }, + { id: :idiomatic, title: 'idiomatic layer', dir: %w(src/ruby/spec/generic), tags: ['~bidi', '~server'] }, - { id: :bidi, title: 'bidi tests', dir: %w(spec/generic), + { id: :bidi, title: 'bidi tests', dir: %w(src/ruby/spec/generic), tag: 'bidi' }, - { id: :server, title: 'rpc server thread tests', dir: %w(spec/generic), + { id: :server, title: 'rpc server thread tests', dir: %w(src/ruby/spec/generic), tag: 'server' }, - { id: :pb, title: 'protobuf service tests', dir: %w(spec/pb) } + { id: :pb, title: 'protobuf service tests', dir: %w(src/ruby/spec/pb) } ] namespace :suite do SPEC_SUITES.each do |suite| @@ -34,7 +39,7 @@ namespace :suite do if suite[:dir] suite[:dir].each { |f| spec_files += Dir["#{f}/**/*_spec.rb"] } end - helper = 'spec/spec_helper.rb' + helper = 'src/ruby/spec/spec_helper.rb' spec_files << helper unless spec_files.include?(helper) t.pattern = spec_files diff --git a/binding.gyp b/binding.gyp index e5b4b9722e..a5e993353c 100644 --- a/binding.gyp +++ b/binding.gyp @@ -279,6 +279,7 @@ 'src/core/surface/server.c', 'src/core/surface/server_chttp2.c', 'src/core/surface/server_create.c', + 'src/core/surface/validate_metadata.c', 'src/core/surface/version.c', 'src/core/transport/byte_stream.c', 'src/core/transport/chttp2/alpn.c', diff --git a/build.yaml b/build.yaml index 51d417ed0e..61a28cb256 100644 --- a/build.yaml +++ b/build.yaml @@ -316,6 +316,7 @@ filegroups: - src/core/surface/server.c - src/core/surface/server_chttp2.c - src/core/surface/server_create.c + - src/core/surface/validate_metadata.c - src/core/surface/version.c - src/core/transport/byte_stream.c - src/core/transport/chttp2/alpn.c @@ -640,9 +641,9 @@ libs: - test/cpp/util/string_ref_helper.h - test/cpp/util/subprocess.h src: - - test/cpp/util/messages.proto - - test/cpp/util/echo.proto - - test/cpp/util/echo_duplicate.proto + - src/proto/grpc/testing/echo_messages.proto + - src/proto/grpc/testing/echo.proto + - src/proto/grpc/testing/duplicate/echo_duplicate.proto - test/cpp/util/cli_call.cc - test/cpp/util/create_test_channel.cc - test/cpp/util/string_ref_helper.cc @@ -698,7 +699,7 @@ libs: headers: - test/cpp/interop/client_helper.h src: - - test/proto/messages.proto + - src/proto/grpc/testing/messages.proto - test/cpp/interop/client_helper.cc deps: - grpc++_test_util @@ -712,9 +713,9 @@ libs: headers: - test/cpp/interop/interop_client.h src: - - test/proto/empty.proto - - test/proto/messages.proto - - test/proto/test.proto + - src/proto/grpc/testing/empty.proto + - src/proto/grpc/testing/messages.proto + - src/proto/grpc/testing/test.proto - test/cpp/interop/client.cc - test/cpp/interop/interop_client.cc deps: @@ -742,9 +743,9 @@ libs: build: private language: c++ src: - - test/proto/empty.proto - - test/proto/messages.proto - - test/proto/test.proto + - src/proto/grpc/testing/empty.proto + - src/proto/grpc/testing/messages.proto + - src/proto/grpc/testing/test.proto - test/cpp/interop/server.cc deps: - interop_server_helper @@ -771,12 +772,12 @@ libs: - test/cpp/qps/timer.h - test/cpp/util/benchmark_config.h src: - - test/proto/messages.proto - - test/proto/benchmarks/control.proto - - test/proto/benchmarks/payloads.proto - - test/proto/benchmarks/services.proto - - test/proto/benchmarks/stats.proto - - test/cpp/qps/perf_db.proto + - src/proto/grpc/testing/messages.proto + - src/proto/grpc/testing/control.proto + - src/proto/grpc/testing/payloads.proto + - src/proto/grpc/testing/services.proto + - src/proto/grpc/testing/stats.proto + - src/proto/grpc/testing/perf_db.proto - test/cpp/qps/client_async.cc - test/cpp/qps/client_sync.cc - test/cpp/qps/driver.cc @@ -797,8 +798,9 @@ libs: src: - src/csharp/ext/grpc_csharp_ext.c deps: - - gpr - grpc + - gpr + deps_linkage: static dll: only vs_config_type: DynamicLibrary vs_packages: @@ -920,6 +922,7 @@ targets: - gpr_test_util - gpr - name: dualstack_socket_test + cpu_cost: 0.1 build: test language: c src: @@ -994,6 +997,7 @@ targets: - gpr_test_util - gpr - name: fling_stream_test + cpu_cost: 2 build: test language: c src: @@ -1008,6 +1012,7 @@ targets: - linux - posix - name: fling_test + cpu_cost: 2 build: test language: c src: @@ -1116,6 +1121,7 @@ targets: - gpr_test_util - gpr - name: gpr_stack_lockfree_test + cpu_cost: 10 build: test language: c src: @@ -1132,6 +1138,7 @@ targets: - gpr_test_util - gpr - name: gpr_sync_test + cpu_cost: 10 build: test language: c src: @@ -1140,6 +1147,7 @@ targets: - gpr_test_util - gpr - name: gpr_thd_test + cpu_cost: 10 build: test language: c src: @@ -1366,6 +1374,7 @@ targets: - gpr_test_util - gpr - name: httpcli_test + cpu_cost: 0.5 build: test language: c src: @@ -1380,6 +1389,7 @@ targets: - linux - posix - name: httpscli_test + cpu_cost: 0.5 build: test language: c src: @@ -1461,6 +1471,7 @@ targets: - gpr_test_util - gpr - name: lb_policies_test + cpu_cost: 0.1 build: test language: c src: @@ -1513,6 +1524,7 @@ targets: - gpr_test_util - gpr - name: no_server_test + cpu_cost: 0.1 build: test language: c src: @@ -1573,6 +1585,7 @@ targets: - gpr_test_util - gpr - name: set_initial_connect_string_test + cpu_cost: 0.1 build: test language: c src: @@ -1618,6 +1631,7 @@ targets: - linux - posix - name: tcp_client_posix_test + cpu_cost: 0.5 build: test language: c src: @@ -1632,6 +1646,7 @@ targets: - linux - posix - name: tcp_posix_test + cpu_cost: 0.5 build: test language: c src: @@ -1861,6 +1876,7 @@ targets: - gpr_test_util - gpr - name: client_crash_test + cpu_cost: 0.1 build: test language: c++ src: @@ -1939,6 +1955,7 @@ targets: - gpr_test_util - gpr - name: end2end_test + cpu_cost: 0.5 build: test language: c++ src: @@ -1950,6 +1967,23 @@ targets: - grpc - gpr_test_util - gpr +- name: generic_async_streaming_ping_pong_test + build: test + language: c++ + src: + - test/cpp/qps/generic_async_streaming_ping_pong_test.cc + deps: + - qps + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc + - gpr_test_util + - gpr + platforms: + - mac + - linux + - posix - name: generic_end2end_test build: test language: c++ @@ -2065,6 +2099,7 @@ targets: - linux - posix - name: interop_test + cpu_cost: 0.1 build: test language: c++ src: @@ -2085,7 +2120,7 @@ targets: headers: - test/cpp/util/metrics_server.h src: - - test/proto/metrics.proto + - src/proto/grpc/testing/metrics.proto - test/cpp/interop/metrics_client.cc deps: - grpc++ @@ -2156,6 +2191,7 @@ targets: - linux - posix - name: qps_test + cpu_cost: 10 build: test language: c++ src: @@ -2197,9 +2233,9 @@ targets: run: false language: c++ src: - - test/proto/empty.proto - - test/proto/messages.proto - - test/proto/test.proto + - src/proto/grpc/testing/empty.proto + - src/proto/grpc/testing/messages.proto + - src/proto/grpc/testing/test.proto - test/cpp/interop/reconnect_interop_client.cc deps: - grpc++_test_util @@ -2214,9 +2250,9 @@ targets: run: false language: c++ src: - - test/proto/empty.proto - - test/proto/messages.proto - - test/proto/test.proto + - src/proto/grpc/testing/empty.proto + - src/proto/grpc/testing/messages.proto + - src/proto/grpc/testing/test.proto - test/cpp/interop/reconnect_interop_server.cc deps: - reconnect_server @@ -2258,6 +2294,7 @@ targets: - linux - posix - name: server_crash_test + cpu_cost: 0.1 build: test language: c++ src: @@ -2335,10 +2372,10 @@ targets: - test/cpp/interop/stress_interop_client.h - test/cpp/util/metrics_server.h src: - - test/proto/empty.proto - - test/proto/messages.proto - - test/proto/metrics.proto - - test/proto/test.proto + - src/proto/grpc/testing/empty.proto + - src/proto/grpc/testing/messages.proto + - src/proto/grpc/testing/metrics.proto + - src/proto/grpc/testing/test.proto - test/cpp/interop/interop_client.cc - test/cpp/interop/stress_interop_client.cc - test/cpp/interop/stress_test.cc @@ -2386,6 +2423,7 @@ targets: - linux - posix - name: thread_stress_test + cpu_cost: 100 build: test language: c++ src: @@ -2402,6 +2440,7 @@ targets: run: false language: c++ src: + - src/proto/grpc/testing/echo.proto - test/cpp/end2end/zookeeper_test.cc deps: - grpc++_test_util @@ -2429,7 +2468,8 @@ vspackages: props: false redist: true version: 1.2.8.10 -- name: grpc.dependencies.openssl +- linkage: static + name: grpc.dependencies.openssl props: true redist: true version: 1.0.204.1 @@ -2474,3 +2514,8 @@ node_modules: - src/node/ext/server.cc - src/node/ext/server_credentials.cc - src/node/ext/timeval.cc +python_dependencies: + deps: + - grpc + - gpr + - boringssl diff --git a/doc/connection-backoff-interop-test-description.md b/doc/connection-backoff-interop-test-description.md index 64405431d2..4778efe453 100644 --- a/doc/connection-backoff-interop-test-description.md +++ b/doc/connection-backoff-interop-test-description.md @@ -18,7 +18,7 @@ which translates to about 13 retries. are conforming the spec or do its own check on the backoffs in the response. Client and server use -[test.proto](https://github.com/grpc/grpc/blob/master/test/proto/test.proto). +[test.proto](https://github.com/grpc/grpc/blob/master/src/proto/grpc/testing/test.proto). Each language should implement its own client. The C++ server is shared among languages. diff --git a/gRPC.podspec b/gRPC.podspec index 80f26817d0..97e13c0d30 100644 --- a/gRPC.podspec +++ b/gRPC.podspec @@ -396,6 +396,7 @@ Pod::Spec.new do |s| 'src/core/surface/server.c', 'src/core/surface/server_chttp2.c', 'src/core/surface/server_create.c', + 'src/core/surface/validate_metadata.c', 'src/core/surface/version.c', 'src/core/transport/byte_stream.c', 'src/core/transport/chttp2/alpn.c', diff --git a/grpc.gemspec b/grpc.gemspec new file mode 100755 index 0000000000..4f3a3f2dd9 --- /dev/null +++ b/grpc.gemspec @@ -0,0 +1,416 @@ +# -*- ruby -*- +# encoding: utf-8 +$LOAD_PATH.push File.expand_path('../src/ruby/lib', __FILE__) +require 'grpc/version' + +Gem::Specification.new do |s| + s.name = 'grpc' + s.version = GRPC::VERSION + s.authors = ['gRPC Authors'] + s.email = 'temiola@google.com' + s.homepage = 'https://github.com/google/grpc/tree/master/src/ruby' + s.summary = 'GRPC system in Ruby' + s.description = 'Send RPCs from Ruby using GRPC' + s.license = 'BSD-3-Clause' + + s.required_ruby_version = '>= 2.0.0' + s.requirements << 'libgrpc ~> 0.11.0 needs to be installed' + + s.files = %w( Rakefile Makefile ) + s.files += %w( etc/roots.pem ) + s.files += Dir.glob('src/ruby/bin/**/*') + s.files += Dir.glob('src/ruby/ext/**/*') + s.files += Dir.glob('src/ruby/lib/**/*') + s.files += Dir.glob('src/ruby/pb/**/*') + s.files += Dir.glob('include/grpc/**/*') + s.test_files = Dir.glob('src/ruby/spec/**/*') + s.bindir = 'src/ruby/bin' + %w(math noproto).each do |b| + s.executables += ["#{b}_client.rb", "#{b}_server.rb"] + end + s.executables += %w(grpc_ruby_interop_client grpc_ruby_interop_server) + s.require_paths = %w( src/ruby/bin src/ruby/lib src/ruby/pb ) + s.platform = Gem::Platform::RUBY + + s.add_dependency 'google-protobuf', '~> 3.0.0alpha.1.1' + s.add_dependency 'googleauth', '~> 0.5.1' + + s.add_development_dependency 'bundler', '~> 1.9' + s.add_development_dependency 'logging', '~> 2.0' + s.add_development_dependency 'simplecov', '~> 0.9' + s.add_development_dependency 'rake', '~> 10.4' + s.add_development_dependency 'rake-compiler', '~> 0.9' + s.add_development_dependency 'rspec', '~> 3.2' + s.add_development_dependency 'rubocop', '~> 0.30.0' + s.add_development_dependency 'signet', '~>0.7.0' + + s.extensions = %w(src/ruby/ext/grpc/extconf.rb) + + s.files += %w( include/grpc/support/alloc.h ) + s.files += %w( include/grpc/support/atm.h ) + s.files += %w( include/grpc/support/atm_gcc_atomic.h ) + s.files += %w( include/grpc/support/atm_gcc_sync.h ) + s.files += %w( include/grpc/support/atm_win32.h ) + s.files += %w( include/grpc/support/avl.h ) + s.files += %w( include/grpc/support/cmdline.h ) + s.files += %w( include/grpc/support/cpu.h ) + s.files += %w( include/grpc/support/histogram.h ) + s.files += %w( include/grpc/support/host_port.h ) + s.files += %w( include/grpc/support/log.h ) + s.files += %w( include/grpc/support/log_win32.h ) + s.files += %w( include/grpc/support/port_platform.h ) + s.files += %w( include/grpc/support/slice.h ) + s.files += %w( include/grpc/support/slice_buffer.h ) + s.files += %w( include/grpc/support/string_util.h ) + s.files += %w( include/grpc/support/subprocess.h ) + s.files += %w( include/grpc/support/sync.h ) + s.files += %w( include/grpc/support/sync_generic.h ) + s.files += %w( include/grpc/support/sync_posix.h ) + s.files += %w( include/grpc/support/sync_win32.h ) + s.files += %w( include/grpc/support/thd.h ) + s.files += %w( include/grpc/support/time.h ) + s.files += %w( include/grpc/support/tls.h ) + s.files += %w( include/grpc/support/tls_gcc.h ) + s.files += %w( include/grpc/support/tls_msvc.h ) + s.files += %w( include/grpc/support/tls_pthread.h ) + s.files += %w( include/grpc/support/useful.h ) + s.files += %w( src/core/profiling/timers.h ) + s.files += %w( src/core/support/block_annotate.h ) + s.files += %w( src/core/support/env.h ) + s.files += %w( src/core/support/file.h ) + s.files += %w( src/core/support/murmur_hash.h ) + s.files += %w( src/core/support/stack_lockfree.h ) + s.files += %w( src/core/support/string.h ) + s.files += %w( src/core/support/string_win32.h ) + s.files += %w( src/core/support/thd_internal.h ) + s.files += %w( src/core/support/time_precise.h ) + s.files += %w( src/core/profiling/basic_timers.c ) + s.files += %w( src/core/profiling/stap_timers.c ) + s.files += %w( src/core/support/alloc.c ) + s.files += %w( src/core/support/avl.c ) + s.files += %w( src/core/support/cmdline.c ) + s.files += %w( src/core/support/cpu_iphone.c ) + s.files += %w( src/core/support/cpu_linux.c ) + s.files += %w( src/core/support/cpu_posix.c ) + s.files += %w( src/core/support/cpu_windows.c ) + s.files += %w( src/core/support/env_linux.c ) + s.files += %w( src/core/support/env_posix.c ) + s.files += %w( src/core/support/env_win32.c ) + s.files += %w( src/core/support/file.c ) + s.files += %w( src/core/support/file_posix.c ) + s.files += %w( src/core/support/file_win32.c ) + s.files += %w( src/core/support/histogram.c ) + s.files += %w( src/core/support/host_port.c ) + s.files += %w( src/core/support/log.c ) + s.files += %w( src/core/support/log_android.c ) + s.files += %w( src/core/support/log_linux.c ) + s.files += %w( src/core/support/log_posix.c ) + s.files += %w( src/core/support/log_win32.c ) + s.files += %w( src/core/support/murmur_hash.c ) + s.files += %w( src/core/support/slice.c ) + s.files += %w( src/core/support/slice_buffer.c ) + s.files += %w( src/core/support/stack_lockfree.c ) + s.files += %w( src/core/support/string.c ) + s.files += %w( src/core/support/string_posix.c ) + s.files += %w( src/core/support/string_win32.c ) + s.files += %w( src/core/support/subprocess_posix.c ) + s.files += %w( src/core/support/sync.c ) + s.files += %w( src/core/support/sync_posix.c ) + s.files += %w( src/core/support/sync_win32.c ) + s.files += %w( src/core/support/thd.c ) + s.files += %w( src/core/support/thd_posix.c ) + s.files += %w( src/core/support/thd_win32.c ) + s.files += %w( src/core/support/time.c ) + s.files += %w( src/core/support/time_posix.c ) + s.files += %w( src/core/support/time_precise.c ) + s.files += %w( src/core/support/time_win32.c ) + s.files += %w( src/core/support/tls_pthread.c ) + s.files += %w( include/grpc/grpc_security.h ) + s.files += %w( include/grpc/byte_buffer.h ) + s.files += %w( include/grpc/byte_buffer_reader.h ) + s.files += %w( include/grpc/compression.h ) + s.files += %w( include/grpc/grpc.h ) + s.files += %w( include/grpc/status.h ) + s.files += %w( include/grpc/census.h ) + s.files += %w( src/core/security/auth_filters.h ) + s.files += %w( src/core/security/base64.h ) + s.files += %w( src/core/security/credentials.h ) + s.files += %w( src/core/security/handshake.h ) + s.files += %w( src/core/security/json_token.h ) + s.files += %w( src/core/security/jwt_verifier.h ) + s.files += %w( src/core/security/secure_endpoint.h ) + s.files += %w( src/core/security/security_connector.h ) + s.files += %w( src/core/security/security_context.h ) + s.files += %w( src/core/tsi/fake_transport_security.h ) + s.files += %w( src/core/tsi/ssl_transport_security.h ) + s.files += %w( src/core/tsi/ssl_types.h ) + s.files += %w( src/core/tsi/transport_security.h ) + s.files += %w( src/core/tsi/transport_security_interface.h ) + s.files += %w( src/core/census/grpc_filter.h ) + s.files += %w( src/core/channel/channel_args.h ) + s.files += %w( src/core/channel/channel_stack.h ) + s.files += %w( src/core/channel/client_channel.h ) + s.files += %w( src/core/channel/client_uchannel.h ) + s.files += %w( src/core/channel/compress_filter.h ) + s.files += %w( src/core/channel/connected_channel.h ) + s.files += %w( src/core/channel/context.h ) + s.files += %w( src/core/channel/http_client_filter.h ) + s.files += %w( src/core/channel/http_server_filter.h ) + s.files += %w( src/core/channel/subchannel_call_holder.h ) + s.files += %w( src/core/client_config/client_config.h ) + s.files += %w( src/core/client_config/connector.h ) + s.files += %w( src/core/client_config/initial_connect_string.h ) + s.files += %w( src/core/client_config/lb_policies/pick_first.h ) + s.files += %w( src/core/client_config/lb_policies/round_robin.h ) + s.files += %w( src/core/client_config/lb_policy.h ) + s.files += %w( src/core/client_config/lb_policy_factory.h ) + s.files += %w( src/core/client_config/lb_policy_registry.h ) + s.files += %w( src/core/client_config/resolver.h ) + s.files += %w( src/core/client_config/resolver_factory.h ) + s.files += %w( src/core/client_config/resolver_registry.h ) + s.files += %w( src/core/client_config/resolvers/dns_resolver.h ) + s.files += %w( src/core/client_config/resolvers/sockaddr_resolver.h ) + s.files += %w( src/core/client_config/subchannel.h ) + s.files += %w( src/core/client_config/subchannel_factory.h ) + s.files += %w( src/core/client_config/uri_parser.h ) + s.files += %w( src/core/compression/algorithm_metadata.h ) + s.files += %w( src/core/compression/message_compress.h ) + s.files += %w( src/core/debug/trace.h ) + s.files += %w( src/core/httpcli/format_request.h ) + s.files += %w( src/core/httpcli/httpcli.h ) + s.files += %w( src/core/httpcli/parser.h ) + s.files += %w( src/core/iomgr/closure.h ) + s.files += %w( src/core/iomgr/endpoint.h ) + s.files += %w( src/core/iomgr/endpoint_pair.h ) + s.files += %w( src/core/iomgr/exec_ctx.h ) + s.files += %w( src/core/iomgr/executor.h ) + s.files += %w( src/core/iomgr/fd_posix.h ) + s.files += %w( src/core/iomgr/iocp_windows.h ) + s.files += %w( src/core/iomgr/iomgr.h ) + s.files += %w( src/core/iomgr/iomgr_internal.h ) + s.files += %w( src/core/iomgr/iomgr_posix.h ) + s.files += %w( src/core/iomgr/pollset.h ) + s.files += %w( src/core/iomgr/pollset_posix.h ) + s.files += %w( src/core/iomgr/pollset_set.h ) + s.files += %w( src/core/iomgr/pollset_set_posix.h ) + s.files += %w( src/core/iomgr/pollset_set_windows.h ) + s.files += %w( src/core/iomgr/pollset_windows.h ) + s.files += %w( src/core/iomgr/resolve_address.h ) + s.files += %w( src/core/iomgr/sockaddr.h ) + s.files += %w( src/core/iomgr/sockaddr_posix.h ) + s.files += %w( src/core/iomgr/sockaddr_utils.h ) + s.files += %w( src/core/iomgr/sockaddr_win32.h ) + s.files += %w( src/core/iomgr/socket_utils_posix.h ) + s.files += %w( src/core/iomgr/socket_windows.h ) + s.files += %w( src/core/iomgr/tcp_client.h ) + s.files += %w( src/core/iomgr/tcp_posix.h ) + s.files += %w( src/core/iomgr/tcp_server.h ) + s.files += %w( src/core/iomgr/tcp_windows.h ) + s.files += %w( src/core/iomgr/time_averaged_stats.h ) + s.files += %w( src/core/iomgr/timer.h ) + s.files += %w( src/core/iomgr/timer_heap.h ) + s.files += %w( src/core/iomgr/timer_internal.h ) + s.files += %w( src/core/iomgr/udp_server.h ) + s.files += %w( src/core/iomgr/wakeup_fd_pipe.h ) + s.files += %w( src/core/iomgr/wakeup_fd_posix.h ) + s.files += %w( src/core/iomgr/workqueue.h ) + s.files += %w( src/core/iomgr/workqueue_posix.h ) + s.files += %w( src/core/iomgr/workqueue_windows.h ) + s.files += %w( src/core/json/json.h ) + s.files += %w( src/core/json/json_common.h ) + s.files += %w( src/core/json/json_reader.h ) + s.files += %w( src/core/json/json_writer.h ) + s.files += %w( src/core/statistics/census_interface.h ) + s.files += %w( src/core/statistics/census_rpc_stats.h ) + s.files += %w( src/core/surface/api_trace.h ) + s.files += %w( src/core/surface/call.h ) + s.files += %w( src/core/surface/call_test_only.h ) + s.files += %w( src/core/surface/channel.h ) + s.files += %w( src/core/surface/completion_queue.h ) + s.files += %w( src/core/surface/event_string.h ) + s.files += %w( src/core/surface/init.h ) + s.files += %w( src/core/surface/server.h ) + s.files += %w( src/core/surface/surface_trace.h ) + s.files += %w( src/core/transport/byte_stream.h ) + s.files += %w( src/core/transport/chttp2/alpn.h ) + s.files += %w( src/core/transport/chttp2/bin_encoder.h ) + s.files += %w( src/core/transport/chttp2/frame.h ) + s.files += %w( src/core/transport/chttp2/frame_data.h ) + s.files += %w( src/core/transport/chttp2/frame_goaway.h ) + s.files += %w( src/core/transport/chttp2/frame_ping.h ) + s.files += %w( src/core/transport/chttp2/frame_rst_stream.h ) + s.files += %w( src/core/transport/chttp2/frame_settings.h ) + s.files += %w( src/core/transport/chttp2/frame_window_update.h ) + s.files += %w( src/core/transport/chttp2/hpack_encoder.h ) + s.files += %w( src/core/transport/chttp2/hpack_parser.h ) + s.files += %w( src/core/transport/chttp2/hpack_table.h ) + s.files += %w( src/core/transport/chttp2/http2_errors.h ) + s.files += %w( src/core/transport/chttp2/huffsyms.h ) + s.files += %w( src/core/transport/chttp2/incoming_metadata.h ) + s.files += %w( src/core/transport/chttp2/internal.h ) + s.files += %w( src/core/transport/chttp2/status_conversion.h ) + s.files += %w( src/core/transport/chttp2/stream_map.h ) + s.files += %w( src/core/transport/chttp2/timeout_encoding.h ) + s.files += %w( src/core/transport/chttp2/varint.h ) + s.files += %w( src/core/transport/chttp2_transport.h ) + s.files += %w( src/core/transport/connectivity_state.h ) + s.files += %w( src/core/transport/metadata.h ) + s.files += %w( src/core/transport/metadata_batch.h ) + s.files += %w( src/core/transport/static_metadata.h ) + s.files += %w( src/core/transport/transport.h ) + s.files += %w( src/core/transport/transport_impl.h ) + s.files += %w( src/core/census/aggregation.h ) + s.files += %w( src/core/census/context.h ) + s.files += %w( src/core/census/rpc_metric_id.h ) + s.files += %w( src/core/httpcli/httpcli_security_connector.c ) + s.files += %w( src/core/security/base64.c ) + s.files += %w( src/core/security/client_auth_filter.c ) + s.files += %w( src/core/security/credentials.c ) + s.files += %w( src/core/security/credentials_metadata.c ) + s.files += %w( src/core/security/credentials_posix.c ) + s.files += %w( src/core/security/credentials_win32.c ) + s.files += %w( src/core/security/google_default_credentials.c ) + s.files += %w( src/core/security/handshake.c ) + s.files += %w( src/core/security/json_token.c ) + s.files += %w( src/core/security/jwt_verifier.c ) + s.files += %w( src/core/security/secure_endpoint.c ) + s.files += %w( src/core/security/security_connector.c ) + s.files += %w( src/core/security/security_context.c ) + s.files += %w( src/core/security/server_auth_filter.c ) + s.files += %w( src/core/security/server_secure_chttp2.c ) + s.files += %w( src/core/surface/init_secure.c ) + s.files += %w( src/core/surface/secure_channel_create.c ) + s.files += %w( src/core/tsi/fake_transport_security.c ) + s.files += %w( src/core/tsi/ssl_transport_security.c ) + s.files += %w( src/core/tsi/transport_security.c ) + s.files += %w( src/core/census/grpc_context.c ) + s.files += %w( src/core/census/grpc_filter.c ) + s.files += %w( src/core/channel/channel_args.c ) + s.files += %w( src/core/channel/channel_stack.c ) + s.files += %w( src/core/channel/client_channel.c ) + s.files += %w( src/core/channel/client_uchannel.c ) + s.files += %w( src/core/channel/compress_filter.c ) + s.files += %w( src/core/channel/connected_channel.c ) + s.files += %w( src/core/channel/http_client_filter.c ) + s.files += %w( src/core/channel/http_server_filter.c ) + s.files += %w( src/core/channel/subchannel_call_holder.c ) + s.files += %w( src/core/client_config/client_config.c ) + s.files += %w( src/core/client_config/connector.c ) + s.files += %w( src/core/client_config/default_initial_connect_string.c ) + s.files += %w( src/core/client_config/initial_connect_string.c ) + s.files += %w( src/core/client_config/lb_policies/pick_first.c ) + s.files += %w( src/core/client_config/lb_policies/round_robin.c ) + s.files += %w( src/core/client_config/lb_policy.c ) + s.files += %w( src/core/client_config/lb_policy_factory.c ) + s.files += %w( src/core/client_config/lb_policy_registry.c ) + s.files += %w( src/core/client_config/resolver.c ) + s.files += %w( src/core/client_config/resolver_factory.c ) + s.files += %w( src/core/client_config/resolver_registry.c ) + s.files += %w( src/core/client_config/resolvers/dns_resolver.c ) + s.files += %w( src/core/client_config/resolvers/sockaddr_resolver.c ) + s.files += %w( src/core/client_config/subchannel.c ) + s.files += %w( src/core/client_config/subchannel_factory.c ) + s.files += %w( src/core/client_config/uri_parser.c ) + s.files += %w( src/core/compression/algorithm.c ) + s.files += %w( src/core/compression/message_compress.c ) + s.files += %w( src/core/debug/trace.c ) + s.files += %w( src/core/httpcli/format_request.c ) + s.files += %w( src/core/httpcli/httpcli.c ) + s.files += %w( src/core/httpcli/parser.c ) + s.files += %w( src/core/iomgr/closure.c ) + s.files += %w( src/core/iomgr/endpoint.c ) + s.files += %w( src/core/iomgr/endpoint_pair_posix.c ) + s.files += %w( src/core/iomgr/endpoint_pair_windows.c ) + s.files += %w( src/core/iomgr/exec_ctx.c ) + s.files += %w( src/core/iomgr/executor.c ) + s.files += %w( src/core/iomgr/fd_posix.c ) + s.files += %w( src/core/iomgr/iocp_windows.c ) + s.files += %w( src/core/iomgr/iomgr.c ) + s.files += %w( src/core/iomgr/iomgr_posix.c ) + s.files += %w( src/core/iomgr/iomgr_windows.c ) + s.files += %w( src/core/iomgr/pollset_multipoller_with_epoll.c ) + s.files += %w( src/core/iomgr/pollset_multipoller_with_poll_posix.c ) + s.files += %w( src/core/iomgr/pollset_posix.c ) + s.files += %w( src/core/iomgr/pollset_set_posix.c ) + s.files += %w( src/core/iomgr/pollset_set_windows.c ) + s.files += %w( src/core/iomgr/pollset_windows.c ) + s.files += %w( src/core/iomgr/resolve_address_posix.c ) + s.files += %w( src/core/iomgr/resolve_address_windows.c ) + s.files += %w( src/core/iomgr/sockaddr_utils.c ) + s.files += %w( src/core/iomgr/socket_utils_common_posix.c ) + s.files += %w( src/core/iomgr/socket_utils_linux.c ) + s.files += %w( src/core/iomgr/socket_utils_posix.c ) + s.files += %w( src/core/iomgr/socket_windows.c ) + s.files += %w( src/core/iomgr/tcp_client_posix.c ) + s.files += %w( src/core/iomgr/tcp_client_windows.c ) + s.files += %w( src/core/iomgr/tcp_posix.c ) + s.files += %w( src/core/iomgr/tcp_server_posix.c ) + s.files += %w( src/core/iomgr/tcp_server_windows.c ) + s.files += %w( src/core/iomgr/tcp_windows.c ) + s.files += %w( src/core/iomgr/time_averaged_stats.c ) + s.files += %w( src/core/iomgr/timer.c ) + s.files += %w( src/core/iomgr/timer_heap.c ) + s.files += %w( src/core/iomgr/udp_server.c ) + s.files += %w( src/core/iomgr/wakeup_fd_eventfd.c ) + s.files += %w( src/core/iomgr/wakeup_fd_nospecial.c ) + s.files += %w( src/core/iomgr/wakeup_fd_pipe.c ) + s.files += %w( src/core/iomgr/wakeup_fd_posix.c ) + s.files += %w( src/core/iomgr/workqueue_posix.c ) + s.files += %w( src/core/iomgr/workqueue_windows.c ) + s.files += %w( src/core/json/json.c ) + s.files += %w( src/core/json/json_reader.c ) + s.files += %w( src/core/json/json_string.c ) + s.files += %w( src/core/json/json_writer.c ) + s.files += %w( src/core/surface/api_trace.c ) + s.files += %w( src/core/surface/byte_buffer.c ) + s.files += %w( src/core/surface/byte_buffer_reader.c ) + s.files += %w( src/core/surface/call.c ) + s.files += %w( src/core/surface/call_details.c ) + s.files += %w( src/core/surface/call_log_batch.c ) + s.files += %w( src/core/surface/channel.c ) + s.files += %w( src/core/surface/channel_connectivity.c ) + s.files += %w( src/core/surface/channel_create.c ) + s.files += %w( src/core/surface/channel_ping.c ) + s.files += %w( src/core/surface/completion_queue.c ) + s.files += %w( src/core/surface/event_string.c ) + s.files += %w( src/core/surface/init.c ) + s.files += %w( src/core/surface/lame_client.c ) + s.files += %w( src/core/surface/metadata_array.c ) + s.files += %w( src/core/surface/server.c ) + s.files += %w( src/core/surface/server_chttp2.c ) + s.files += %w( src/core/surface/server_create.c ) + s.files += %w( src/core/surface/validate_metadata.c ) + s.files += %w( src/core/surface/version.c ) + s.files += %w( src/core/transport/byte_stream.c ) + s.files += %w( src/core/transport/chttp2/alpn.c ) + s.files += %w( src/core/transport/chttp2/bin_encoder.c ) + s.files += %w( src/core/transport/chttp2/frame_data.c ) + s.files += %w( src/core/transport/chttp2/frame_goaway.c ) + s.files += %w( src/core/transport/chttp2/frame_ping.c ) + s.files += %w( src/core/transport/chttp2/frame_rst_stream.c ) + s.files += %w( src/core/transport/chttp2/frame_settings.c ) + s.files += %w( src/core/transport/chttp2/frame_window_update.c ) + s.files += %w( src/core/transport/chttp2/hpack_encoder.c ) + s.files += %w( src/core/transport/chttp2/hpack_parser.c ) + s.files += %w( src/core/transport/chttp2/hpack_table.c ) + s.files += %w( src/core/transport/chttp2/huffsyms.c ) + s.files += %w( src/core/transport/chttp2/incoming_metadata.c ) + s.files += %w( src/core/transport/chttp2/parsing.c ) + s.files += %w( src/core/transport/chttp2/status_conversion.c ) + s.files += %w( src/core/transport/chttp2/stream_lists.c ) + s.files += %w( src/core/transport/chttp2/stream_map.c ) + s.files += %w( src/core/transport/chttp2/timeout_encoding.c ) + s.files += %w( src/core/transport/chttp2/varint.c ) + s.files += %w( src/core/transport/chttp2/writing.c ) + s.files += %w( src/core/transport/chttp2_transport.c ) + s.files += %w( src/core/transport/connectivity_state.c ) + s.files += %w( src/core/transport/metadata.c ) + s.files += %w( src/core/transport/metadata_batch.c ) + s.files += %w( src/core/transport/static_metadata.c ) + s.files += %w( src/core/transport/transport.c ) + s.files += %w( src/core/transport/transport_op_string.c ) + s.files += %w( src/core/census/context.c ) + s.files += %w( src/core/census/initialize.c ) + s.files += %w( src/core/census/operation.c ) + s.files += %w( src/core/census/tracing.c ) +end diff --git a/include/grpc++/channel.h b/include/grpc++/channel.h index d6d72a9cf9..541be1345f 100644 --- a/include/grpc++/channel.h +++ b/include/grpc++/channel.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -54,13 +54,13 @@ template <class R> class ClientReader; template <class W> class ClientWriter; -template <class R, class W> +template <class W, class R> class ClientReaderWriter; template <class R> class ClientAsyncReader; template <class W> class ClientAsyncWriter; -template <class R, class W> +template <class W, class R> class ClientAsyncReaderWriter; template <class R> class ClientAsyncResponseReader; @@ -98,13 +98,13 @@ class Channel GRPC_FINAL : public GrpcLibrary, friend class ::grpc::ClientReader; template <class W> friend class ::grpc::ClientWriter; - template <class R, class W> + template <class W, class R> friend class ::grpc::ClientReaderWriter; template <class R> friend class ::grpc::ClientAsyncReader; template <class W> friend class ::grpc::ClientAsyncWriter; - template <class R, class W> + template <class W, class R> friend class ::grpc::ClientAsyncReaderWriter; template <class R> friend class ::grpc::ClientAsyncResponseReader; diff --git a/include/grpc++/client_context.h b/include/grpc++/client_context.h index ab8ffb6474..25eeb3876f 100644 --- a/include/grpc++/client_context.h +++ b/include/grpc++/client_context.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -76,13 +76,13 @@ template <class R> class ClientReader; template <class W> class ClientWriter; -template <class R, class W> +template <class W, class R> class ClientReaderWriter; template <class R> class ClientAsyncReader; template <class W> class ClientAsyncWriter; -template <class R, class W> +template <class W, class R> class ClientAsyncReaderWriter; template <class R> class ClientAsyncResponseReader; @@ -244,7 +244,7 @@ class ClientContext { /// client’s identity, role, or whether it is authorized to make a particular /// call. /// - /// \see https://github.com/grpc/grpc/blob/master/doc/grpc-auth-support.md + /// \see http://www.grpc.io/docs/guides/auth.html void set_credentials(const std::shared_ptr<CallCredentials>& creds) { creds_ = creds; } @@ -304,13 +304,13 @@ class ClientContext { friend class ::grpc::ClientReader; template <class W> friend class ::grpc::ClientWriter; - template <class R, class W> + template <class W, class R> friend class ::grpc::ClientReaderWriter; template <class R> friend class ::grpc::ClientAsyncReader; template <class W> friend class ::grpc::ClientAsyncWriter; - template <class R, class W> + template <class W, class R> friend class ::grpc::ClientAsyncReaderWriter; template <class R> friend class ::grpc::ClientAsyncResponseReader; diff --git a/include/grpc++/completion_queue.h b/include/grpc++/completion_queue.h index 0ea970417e..5c2bc202c3 100644 --- a/include/grpc++/completion_queue.h +++ b/include/grpc++/completion_queue.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -49,13 +49,13 @@ template <class R> class ClientReader; template <class W> class ClientWriter; -template <class R, class W> +template <class W, class R> class ClientReaderWriter; template <class R> class ServerReader; template <class W> class ServerWriter; -template <class R, class W> +template <class W, class R> class ServerReaderWriter; template <class ServiceType, class RequestType, class ResponseType> class RpcMethodHandler; @@ -151,13 +151,13 @@ class CompletionQueue : public GrpcLibrary { friend class ::grpc::ClientReader; template <class W> friend class ::grpc::ClientWriter; - template <class R, class W> + template <class W, class R> friend class ::grpc::ClientReaderWriter; template <class R> friend class ::grpc::ServerReader; template <class W> friend class ::grpc::ServerWriter; - template <class R, class W> + template <class W, class R> friend class ::grpc::ServerReaderWriter; template <class ServiceType, class RequestType, class ResponseType> friend class RpcMethodHandler; diff --git a/include/grpc++/generic/async_generic_service.h b/include/grpc++/generic/async_generic_service.h index 8578d850ff..57a2696b3b 100644 --- a/include/grpc++/generic/async_generic_service.h +++ b/include/grpc++/generic/async_generic_service.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -61,6 +61,7 @@ class AsyncGenericService GRPC_FINAL { // TODO(yangg) Once we can add multiple completion queues to the server // in c core, add a CompletionQueue* argument to the ctor here. // TODO(yangg) support methods list. + AsyncGenericService() : server_(nullptr) {} AsyncGenericService(const grpc::string& methods) : server_(nullptr) {} void RequestCall(GenericServerContext* ctx, diff --git a/include/grpc++/security/credentials.h b/include/grpc++/security/credentials.h index a06dcf14ea..75945fd8e8 100644 --- a/include/grpc++/security/credentials.h +++ b/include/grpc++/security/credentials.h @@ -55,7 +55,7 @@ class SecureCallCredentials; /// It can make various assertions, e.g., about the client’s identity, role /// for all the calls on that channel. /// -/// \see https://github.com/grpc/grpc/blob/master/doc/grpc-auth-support.md +/// \see http://www.grpc.io/docs/guides/auth.html class ChannelCredentials : public GrpcLibrary { public: ~ChannelCredentials() GRPC_OVERRIDE; diff --git a/include/grpc++/server_context.h b/include/grpc++/server_context.h index 85f384d477..8ba73486dc 100644 --- a/include/grpc++/server_context.h +++ b/include/grpc++/server_context.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -58,13 +58,13 @@ template <class W> class ServerAsyncWriter; template <class W> class ServerAsyncResponseWriter; -template <class R, class W> +template <class W, class R> class ServerAsyncReaderWriter; template <class R> class ServerReader; template <class W> class ServerWriter; -template <class R, class W> +template <class W, class R> class ServerReaderWriter; template <class ServiceType, class RequestType, class ResponseType> class RpcMethodHandler; @@ -145,13 +145,13 @@ class ServerContext { friend class ::grpc::ServerAsyncWriter; template <class W> friend class ::grpc::ServerAsyncResponseWriter; - template <class R, class W> + template <class W, class R> friend class ::grpc::ServerAsyncReaderWriter; template <class R> friend class ::grpc::ServerReader; template <class W> friend class ::grpc::ServerWriter; - template <class R, class W> + template <class W, class R> friend class ::grpc::ServerReaderWriter; template <class ServiceType, class RequestType, class ResponseType> friend class RpcMethodHandler; diff --git a/include/grpc++/support/async_stream.h b/include/grpc++/support/async_stream.h index 823fcd2e8e..0c96352ccd 100644 --- a/include/grpc++/support/async_stream.h +++ b/include/grpc++/support/async_stream.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/include/grpc++/support/byte_buffer.h b/include/grpc++/support/byte_buffer.h index 9d19b07708..82591a88ef 100644 --- a/include/grpc++/support/byte_buffer.h +++ b/include/grpc++/support/byte_buffer.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -55,8 +55,14 @@ class ByteBuffer GRPC_FINAL { /// Construct buffer from \a slices, of which there are \a nslices. ByteBuffer(const Slice* slices, size_t nslices); + /// Constuct a byte buffer by referencing elements of existing buffer + /// \a buf. Wrapper of core function grpc_byte_buffer_copy + ByteBuffer(const ByteBuffer& buf); + ~ByteBuffer(); + ByteBuffer& operator=(const ByteBuffer&); + /// Dump (read) the buffer contents into \a slices. void Dump(std::vector<Slice>* slices) const; @@ -69,9 +75,6 @@ class ByteBuffer GRPC_FINAL { private: friend class SerializationTraits<ByteBuffer, void>; - ByteBuffer(const ByteBuffer&); - ByteBuffer& operator=(const ByteBuffer&); - // takes ownership void set_buffer(grpc_byte_buffer* buf) { if (buffer_) { diff --git a/include/grpc++/support/slice.h b/include/grpc++/support/slice.h index be316e7c94..724691a033 100644 --- a/include/grpc++/support/slice.h +++ b/include/grpc++/support/slice.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -39,7 +39,7 @@ namespace grpc { -/// A wrapper around \a grpc_slice. +/// A wrapper around \a gpr_slice. /// /// A slice represents a contiguous reference counted array of bytes. /// It is cheap to take references to a slice, and it is cheap to create a diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h index be4c4d2b17..952e86ea49 100644 --- a/include/grpc/grpc.h +++ b/include/grpc/grpc.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -715,6 +715,16 @@ void grpc_server_destroy(grpc_server *server); thread-safety issues raised by it should not be of concern. */ int grpc_tracer_set_enabled(const char *name, int enabled); +/** Check whether a metadata key is legal (will be accepted by core) */ +int grpc_header_key_is_legal(const char *key, size_t length); + +/** Check whether a non-binary metadata value is legal (will be accepted by + core) */ +int grpc_header_nonbin_value_is_legal(const char *value, size_t length); + +/** Check whether a metadata key corresponds to a binary value */ +int grpc_is_binary_header(const char *key, size_t length); + #ifdef __cplusplus } #endif diff --git a/package.json b/package.json index f39dfc4c7c..e0bbb7d80f 100644 --- a/package.json +++ b/package.json @@ -31,13 +31,13 @@ "protobufjs": "^4.0.0" }, "devDependencies": { - "async": "^0.9.0", + "async": "^1.5.0", "google-auth-library": "^0.9.2", "istanbul": "^0.3.21", "jsdoc": "^3.3.2", "jshint": "^2.5.0", "minimist": "^1.1.0", - "mocha": "~1.21.0", + "mocha": "^2.3.4", "mocha-jenkins-reporter": "^0.1.9", "mustache": "^2.0.0", "poisson-process": "^0.2.1" @@ -48,14 +48,401 @@ "files": [ "LICENSE", "src/node/README.md", - "src/node/index.js", - "src/node/ext", "src/node/health_check", - "src/node/src", - "src/core", - "test/proto", - "include", + "src/proto", "etc", + "src/node/ext/byte_buffer.h", + "src/node/ext/call.h", + "src/node/ext/call_credentials.h", + "src/node/ext/channel.h", + "src/node/ext/channel_credentials.h", + "src/node/ext/completion_queue_async_worker.h", + "src/node/ext/server.h", + "src/node/ext/server_credentials.h", + "src/node/ext/timeval.h", + "src/node/ext/byte_buffer.cc", + "src/node/ext/call.cc", + "src/node/ext/call_credentials.cc", + "src/node/ext/channel.cc", + "src/node/ext/channel_credentials.cc", + "src/node/ext/completion_queue_async_worker.cc", + "src/node/ext/node_grpc.cc", + "src/node/ext/server.cc", + "src/node/ext/server_credentials.cc", + "src/node/ext/timeval.cc", + "src/node/index.js", + "src/node/src/client.js", + "src/node/src/common.js", + "src/node/src/credentials.js", + "src/node/src/metadata.js", + "src/node/src/server.js", + "include/grpc/grpc_security.h", + "include/grpc/byte_buffer.h", + "include/grpc/byte_buffer_reader.h", + "include/grpc/compression.h", + "include/grpc/grpc.h", + "include/grpc/status.h", + "include/grpc/census.h", + "src/core/security/auth_filters.h", + "src/core/security/base64.h", + "src/core/security/credentials.h", + "src/core/security/handshake.h", + "src/core/security/json_token.h", + "src/core/security/jwt_verifier.h", + "src/core/security/secure_endpoint.h", + "src/core/security/security_connector.h", + "src/core/security/security_context.h", + "src/core/tsi/fake_transport_security.h", + "src/core/tsi/ssl_transport_security.h", + "src/core/tsi/ssl_types.h", + "src/core/tsi/transport_security.h", + "src/core/tsi/transport_security_interface.h", + "src/core/census/grpc_filter.h", + "src/core/channel/channel_args.h", + "src/core/channel/channel_stack.h", + "src/core/channel/client_channel.h", + "src/core/channel/client_uchannel.h", + "src/core/channel/compress_filter.h", + "src/core/channel/connected_channel.h", + "src/core/channel/context.h", + "src/core/channel/http_client_filter.h", + "src/core/channel/http_server_filter.h", + "src/core/channel/subchannel_call_holder.h", + "src/core/client_config/client_config.h", + "src/core/client_config/connector.h", + "src/core/client_config/initial_connect_string.h", + "src/core/client_config/lb_policies/pick_first.h", + "src/core/client_config/lb_policies/round_robin.h", + "src/core/client_config/lb_policy.h", + "src/core/client_config/lb_policy_factory.h", + "src/core/client_config/lb_policy_registry.h", + "src/core/client_config/resolver.h", + "src/core/client_config/resolver_factory.h", + "src/core/client_config/resolver_registry.h", + "src/core/client_config/resolvers/dns_resolver.h", + "src/core/client_config/resolvers/sockaddr_resolver.h", + "src/core/client_config/subchannel.h", + "src/core/client_config/subchannel_factory.h", + "src/core/client_config/uri_parser.h", + "src/core/compression/algorithm_metadata.h", + "src/core/compression/message_compress.h", + "src/core/debug/trace.h", + "src/core/httpcli/format_request.h", + "src/core/httpcli/httpcli.h", + "src/core/httpcli/parser.h", + "src/core/iomgr/closure.h", + "src/core/iomgr/endpoint.h", + "src/core/iomgr/endpoint_pair.h", + "src/core/iomgr/exec_ctx.h", + "src/core/iomgr/executor.h", + "src/core/iomgr/fd_posix.h", + "src/core/iomgr/iocp_windows.h", + "src/core/iomgr/iomgr.h", + "src/core/iomgr/iomgr_internal.h", + "src/core/iomgr/iomgr_posix.h", + "src/core/iomgr/pollset.h", + "src/core/iomgr/pollset_posix.h", + "src/core/iomgr/pollset_set.h", + "src/core/iomgr/pollset_set_posix.h", + "src/core/iomgr/pollset_set_windows.h", + "src/core/iomgr/pollset_windows.h", + "src/core/iomgr/resolve_address.h", + "src/core/iomgr/sockaddr.h", + "src/core/iomgr/sockaddr_posix.h", + "src/core/iomgr/sockaddr_utils.h", + "src/core/iomgr/sockaddr_win32.h", + "src/core/iomgr/socket_utils_posix.h", + "src/core/iomgr/socket_windows.h", + "src/core/iomgr/tcp_client.h", + "src/core/iomgr/tcp_posix.h", + "src/core/iomgr/tcp_server.h", + "src/core/iomgr/tcp_windows.h", + "src/core/iomgr/time_averaged_stats.h", + "src/core/iomgr/timer.h", + "src/core/iomgr/timer_heap.h", + "src/core/iomgr/timer_internal.h", + "src/core/iomgr/udp_server.h", + "src/core/iomgr/wakeup_fd_pipe.h", + "src/core/iomgr/wakeup_fd_posix.h", + "src/core/iomgr/workqueue.h", + "src/core/iomgr/workqueue_posix.h", + "src/core/iomgr/workqueue_windows.h", + "src/core/json/json.h", + "src/core/json/json_common.h", + "src/core/json/json_reader.h", + "src/core/json/json_writer.h", + "src/core/statistics/census_interface.h", + "src/core/statistics/census_rpc_stats.h", + "src/core/surface/api_trace.h", + "src/core/surface/call.h", + "src/core/surface/call_test_only.h", + "src/core/surface/channel.h", + "src/core/surface/completion_queue.h", + "src/core/surface/event_string.h", + "src/core/surface/init.h", + "src/core/surface/server.h", + "src/core/surface/surface_trace.h", + "src/core/transport/byte_stream.h", + "src/core/transport/chttp2/alpn.h", + "src/core/transport/chttp2/bin_encoder.h", + "src/core/transport/chttp2/frame.h", + "src/core/transport/chttp2/frame_data.h", + "src/core/transport/chttp2/frame_goaway.h", + "src/core/transport/chttp2/frame_ping.h", + "src/core/transport/chttp2/frame_rst_stream.h", + "src/core/transport/chttp2/frame_settings.h", + "src/core/transport/chttp2/frame_window_update.h", + "src/core/transport/chttp2/hpack_encoder.h", + "src/core/transport/chttp2/hpack_parser.h", + "src/core/transport/chttp2/hpack_table.h", + "src/core/transport/chttp2/http2_errors.h", + "src/core/transport/chttp2/huffsyms.h", + "src/core/transport/chttp2/incoming_metadata.h", + "src/core/transport/chttp2/internal.h", + "src/core/transport/chttp2/status_conversion.h", + "src/core/transport/chttp2/stream_map.h", + "src/core/transport/chttp2/timeout_encoding.h", + "src/core/transport/chttp2/varint.h", + "src/core/transport/chttp2_transport.h", + "src/core/transport/connectivity_state.h", + "src/core/transport/metadata.h", + "src/core/transport/metadata_batch.h", + "src/core/transport/static_metadata.h", + "src/core/transport/transport.h", + "src/core/transport/transport_impl.h", + "src/core/census/aggregation.h", + "src/core/census/context.h", + "src/core/census/rpc_metric_id.h", + "src/core/httpcli/httpcli_security_connector.c", + "src/core/security/base64.c", + "src/core/security/client_auth_filter.c", + "src/core/security/credentials.c", + "src/core/security/credentials_metadata.c", + "src/core/security/credentials_posix.c", + "src/core/security/credentials_win32.c", + "src/core/security/google_default_credentials.c", + "src/core/security/handshake.c", + "src/core/security/json_token.c", + "src/core/security/jwt_verifier.c", + "src/core/security/secure_endpoint.c", + "src/core/security/security_connector.c", + "src/core/security/security_context.c", + "src/core/security/server_auth_filter.c", + "src/core/security/server_secure_chttp2.c", + "src/core/surface/init_secure.c", + "src/core/surface/secure_channel_create.c", + "src/core/tsi/fake_transport_security.c", + "src/core/tsi/ssl_transport_security.c", + "src/core/tsi/transport_security.c", + "src/core/census/grpc_context.c", + "src/core/census/grpc_filter.c", + "src/core/channel/channel_args.c", + "src/core/channel/channel_stack.c", + "src/core/channel/client_channel.c", + "src/core/channel/client_uchannel.c", + "src/core/channel/compress_filter.c", + "src/core/channel/connected_channel.c", + "src/core/channel/http_client_filter.c", + "src/core/channel/http_server_filter.c", + "src/core/channel/subchannel_call_holder.c", + "src/core/client_config/client_config.c", + "src/core/client_config/connector.c", + "src/core/client_config/default_initial_connect_string.c", + "src/core/client_config/initial_connect_string.c", + "src/core/client_config/lb_policies/pick_first.c", + "src/core/client_config/lb_policies/round_robin.c", + "src/core/client_config/lb_policy.c", + "src/core/client_config/lb_policy_factory.c", + "src/core/client_config/lb_policy_registry.c", + "src/core/client_config/resolver.c", + "src/core/client_config/resolver_factory.c", + "src/core/client_config/resolver_registry.c", + "src/core/client_config/resolvers/dns_resolver.c", + "src/core/client_config/resolvers/sockaddr_resolver.c", + "src/core/client_config/subchannel.c", + "src/core/client_config/subchannel_factory.c", + "src/core/client_config/uri_parser.c", + "src/core/compression/algorithm.c", + "src/core/compression/message_compress.c", + "src/core/debug/trace.c", + "src/core/httpcli/format_request.c", + "src/core/httpcli/httpcli.c", + "src/core/httpcli/parser.c", + "src/core/iomgr/closure.c", + "src/core/iomgr/endpoint.c", + "src/core/iomgr/endpoint_pair_posix.c", + "src/core/iomgr/endpoint_pair_windows.c", + "src/core/iomgr/exec_ctx.c", + "src/core/iomgr/executor.c", + "src/core/iomgr/fd_posix.c", + "src/core/iomgr/iocp_windows.c", + "src/core/iomgr/iomgr.c", + "src/core/iomgr/iomgr_posix.c", + "src/core/iomgr/iomgr_windows.c", + "src/core/iomgr/pollset_multipoller_with_epoll.c", + "src/core/iomgr/pollset_multipoller_with_poll_posix.c", + "src/core/iomgr/pollset_posix.c", + "src/core/iomgr/pollset_set_posix.c", + "src/core/iomgr/pollset_set_windows.c", + "src/core/iomgr/pollset_windows.c", + "src/core/iomgr/resolve_address_posix.c", + "src/core/iomgr/resolve_address_windows.c", + "src/core/iomgr/sockaddr_utils.c", + "src/core/iomgr/socket_utils_common_posix.c", + "src/core/iomgr/socket_utils_linux.c", + "src/core/iomgr/socket_utils_posix.c", + "src/core/iomgr/socket_windows.c", + "src/core/iomgr/tcp_client_posix.c", + "src/core/iomgr/tcp_client_windows.c", + "src/core/iomgr/tcp_posix.c", + "src/core/iomgr/tcp_server_posix.c", + "src/core/iomgr/tcp_server_windows.c", + "src/core/iomgr/tcp_windows.c", + "src/core/iomgr/time_averaged_stats.c", + "src/core/iomgr/timer.c", + "src/core/iomgr/timer_heap.c", + "src/core/iomgr/udp_server.c", + "src/core/iomgr/wakeup_fd_eventfd.c", + "src/core/iomgr/wakeup_fd_nospecial.c", + "src/core/iomgr/wakeup_fd_pipe.c", + "src/core/iomgr/wakeup_fd_posix.c", + "src/core/iomgr/workqueue_posix.c", + "src/core/iomgr/workqueue_windows.c", + "src/core/json/json.c", + "src/core/json/json_reader.c", + "src/core/json/json_string.c", + "src/core/json/json_writer.c", + "src/core/surface/api_trace.c", + "src/core/surface/byte_buffer.c", + "src/core/surface/byte_buffer_reader.c", + "src/core/surface/call.c", + "src/core/surface/call_details.c", + "src/core/surface/call_log_batch.c", + "src/core/surface/channel.c", + "src/core/surface/channel_connectivity.c", + "src/core/surface/channel_create.c", + "src/core/surface/channel_ping.c", + "src/core/surface/completion_queue.c", + "src/core/surface/event_string.c", + "src/core/surface/init.c", + "src/core/surface/lame_client.c", + "src/core/surface/metadata_array.c", + "src/core/surface/server.c", + "src/core/surface/server_chttp2.c", + "src/core/surface/server_create.c", + "src/core/surface/validate_metadata.c", + "src/core/surface/version.c", + "src/core/transport/byte_stream.c", + "src/core/transport/chttp2/alpn.c", + "src/core/transport/chttp2/bin_encoder.c", + "src/core/transport/chttp2/frame_data.c", + "src/core/transport/chttp2/frame_goaway.c", + "src/core/transport/chttp2/frame_ping.c", + "src/core/transport/chttp2/frame_rst_stream.c", + "src/core/transport/chttp2/frame_settings.c", + "src/core/transport/chttp2/frame_window_update.c", + "src/core/transport/chttp2/hpack_encoder.c", + "src/core/transport/chttp2/hpack_parser.c", + "src/core/transport/chttp2/hpack_table.c", + "src/core/transport/chttp2/huffsyms.c", + "src/core/transport/chttp2/incoming_metadata.c", + "src/core/transport/chttp2/parsing.c", + "src/core/transport/chttp2/status_conversion.c", + "src/core/transport/chttp2/stream_lists.c", + "src/core/transport/chttp2/stream_map.c", + "src/core/transport/chttp2/timeout_encoding.c", + "src/core/transport/chttp2/varint.c", + "src/core/transport/chttp2/writing.c", + "src/core/transport/chttp2_transport.c", + "src/core/transport/connectivity_state.c", + "src/core/transport/metadata.c", + "src/core/transport/metadata_batch.c", + "src/core/transport/static_metadata.c", + "src/core/transport/transport.c", + "src/core/transport/transport_op_string.c", + "src/core/census/context.c", + "src/core/census/initialize.c", + "src/core/census/operation.c", + "src/core/census/tracing.c", + "include/grpc/support/alloc.h", + "include/grpc/support/atm.h", + "include/grpc/support/atm_gcc_atomic.h", + "include/grpc/support/atm_gcc_sync.h", + "include/grpc/support/atm_win32.h", + "include/grpc/support/avl.h", + "include/grpc/support/cmdline.h", + "include/grpc/support/cpu.h", + "include/grpc/support/histogram.h", + "include/grpc/support/host_port.h", + "include/grpc/support/log.h", + "include/grpc/support/log_win32.h", + "include/grpc/support/port_platform.h", + "include/grpc/support/slice.h", + "include/grpc/support/slice_buffer.h", + "include/grpc/support/string_util.h", + "include/grpc/support/subprocess.h", + "include/grpc/support/sync.h", + "include/grpc/support/sync_generic.h", + "include/grpc/support/sync_posix.h", + "include/grpc/support/sync_win32.h", + "include/grpc/support/thd.h", + "include/grpc/support/time.h", + "include/grpc/support/tls.h", + "include/grpc/support/tls_gcc.h", + "include/grpc/support/tls_msvc.h", + "include/grpc/support/tls_pthread.h", + "include/grpc/support/useful.h", + "src/core/profiling/timers.h", + "src/core/support/block_annotate.h", + "src/core/support/env.h", + "src/core/support/file.h", + "src/core/support/murmur_hash.h", + "src/core/support/stack_lockfree.h", + "src/core/support/string.h", + "src/core/support/string_win32.h", + "src/core/support/thd_internal.h", + "src/core/support/time_precise.h", + "src/core/profiling/basic_timers.c", + "src/core/profiling/stap_timers.c", + "src/core/support/alloc.c", + "src/core/support/avl.c", + "src/core/support/cmdline.c", + "src/core/support/cpu_iphone.c", + "src/core/support/cpu_linux.c", + "src/core/support/cpu_posix.c", + "src/core/support/cpu_windows.c", + "src/core/support/env_linux.c", + "src/core/support/env_posix.c", + "src/core/support/env_win32.c", + "src/core/support/file.c", + "src/core/support/file_posix.c", + "src/core/support/file_win32.c", + "src/core/support/histogram.c", + "src/core/support/host_port.c", + "src/core/support/log.c", + "src/core/support/log_android.c", + "src/core/support/log_linux.c", + "src/core/support/log_posix.c", + "src/core/support/log_win32.c", + "src/core/support/murmur_hash.c", + "src/core/support/slice.c", + "src/core/support/slice_buffer.c", + "src/core/support/stack_lockfree.c", + "src/core/support/string.c", + "src/core/support/string_posix.c", + "src/core/support/string_win32.c", + "src/core/support/subprocess_posix.c", + "src/core/support/sync.c", + "src/core/support/sync_posix.c", + "src/core/support/sync_win32.c", + "src/core/support/thd.c", + "src/core/support/thd_posix.c", + "src/core/support/thd_win32.c", + "src/core/support/time.c", + "src/core/support/time_posix.c", + "src/core/support/time_precise.c", + "src/core/support/time_win32.c", + "src/core/support/tls_pthread.c", "binding.gyp" ], "main": "src/node/index.js", diff --git a/src/python/grpcio/requirements.txt b/requirements.txt index 06516ee0d7..9d00274449 100644 --- a/src/python/grpcio/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +# GRPC Python setup requirements enum34>=1.0.4 futures>=2.2.0 cython>=0.23 diff --git a/src/python/grpcio/setup.cfg b/setup.cfg index 52b6b50900..add6ee8749 100644 --- a/src/python/grpcio/setup.cfg +++ b/setup.cfg @@ -1,3 +1,5 @@ +# Setup settings for GRPC Python + [coverage:run] plugins = Cython.Coverage diff --git a/src/python/grpcio/setup.py b/setup.py index 366ebe3b3f..4012397800 100644 --- a/src/python/grpcio/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -31,17 +31,30 @@ import os import os.path +import shutil import sys from distutils import core as _core from distutils import extension as _extension import setuptools +from setuptools.command import egg_info + +# Redirect the manifest template from MANIFEST.in to PYTHON-MANIFEST.in. +egg_info.manifest_maker.template = 'PYTHON-MANIFEST.in' + +PYTHON_STEM = './src/python/grpcio' +CORE_INCLUDE = ('./include', '.',) +BORINGSSL_INCLUDE = ('./third_party/boringssl/include',) # Ensure we're in the proper directory whether or not we're being used by pip. os.chdir(os.path.dirname(os.path.abspath(__file__))) +sys.path.insert(0, PYTHON_STEM) -# Break import-style to ensure we can actually find our commands module. +# Break import-style to ensure we can actually find our in-repo dependencies. import commands +import grpc_core_dependencies + +LICENSE = '3-clause BSD' # Environment variable to determine whether or not the Cython extension should # *use* Cython or use the generated C files. Note that this requires the C files @@ -59,44 +72,38 @@ INSTALL_TESTS = os.environ.get('GRPC_PYTHON_INSTALL_TESTS', False) CYTHON_EXTENSION_PACKAGE_NAMES = () -CYTHON_EXTENSION_MODULE_NAMES = ( - 'grpc._cython.cygrpc', - 'grpc._cython._cygrpc.call', - 'grpc._cython._cygrpc.channel', - 'grpc._cython._cygrpc.completion_queue', - 'grpc._cython._cygrpc.credentials', - 'grpc._cython._cygrpc.records', - 'grpc._cython._cygrpc.server', -) +CYTHON_EXTENSION_MODULE_NAMES = ('grpc._cython.cygrpc',) EXTENSION_INCLUDE_DIRECTORIES = ( - '.', -) + (PYTHON_STEM,) + CORE_INCLUDE + BORINGSSL_INCLUDE) -EXTENSION_LIBRARIES = ( - 'grpc', - 'gpr', -) +EXTENSION_LIBRARIES = () if not "darwin" in sys.platform: EXTENSION_LIBRARIES += ('rt',) +DEFINE_MACROS = (('OPENSSL_NO_ASM', 1),) def cython_extensions(package_names, module_names, include_dirs, libraries, - build_with_cython=False): + define_macros, build_with_cython=False): + if ENABLE_CYTHON_TRACING: + define_macros = define_macros + [('CYTHON_TRACE_NOGIL', 1)] file_extension = 'pyx' if build_with_cython else 'c' - module_files = [name.replace('.', '/') + '.' + file_extension + module_files = [os.path.join(PYTHON_STEM, + name.replace('.', '/') + '.' + file_extension) for name in module_names] extensions = [ _extension.Extension( - name=module_name, sources=[module_file], + name=module_name, + sources=[module_file] + grpc_core_dependencies.CORE_SOURCE_FILES, include_dirs=include_dirs, libraries=libraries, - define_macros=[('CYTHON_TRACE_NOGIL', 1)] if ENABLE_CYTHON_TRACING else [] + define_macros=define_macros, ) for (module_name, module_file) in zip(module_names, module_files) ] if build_with_cython: import Cython.Build return Cython.Build.cythonize( extensions, + include_path=include_dirs, compiler_directives={'linetrace': bool(ENABLE_CYTHON_TRACING)}) else: return extensions @@ -104,10 +111,10 @@ def cython_extensions(package_names, module_names, include_dirs, libraries, CYTHON_EXTENSION_MODULES = cython_extensions( list(CYTHON_EXTENSION_PACKAGE_NAMES), list(CYTHON_EXTENSION_MODULE_NAMES), list(EXTENSION_INCLUDE_DIRECTORIES), list(EXTENSION_LIBRARIES), - bool(BUILD_WITH_CYTHON)) + list(DEFINE_MACROS), bool(BUILD_WITH_CYTHON)) PACKAGE_DIRECTORIES = { - '': '.', + '': PYTHON_STEM, } INSTALL_REQUIRES = ( @@ -124,10 +131,19 @@ COMMAND_CLASS = { 'build_proto_modules': commands.BuildProtoModules, 'build_project_metadata': commands.BuildProjectMetadata, 'build_py': commands.BuildPy, + 'build_ext': commands.BuildExt, 'gather': commands.Gather, 'run_interop': commands.RunInterop, } +# Ensure that package data is copied over before any commands have been run: +credentials_dir = os.path.join(PYTHON_STEM, 'grpc/_adapter/credentials') +try: + os.mkdir(credentials_dir) +except OSError: + pass +shutil.copyfile('etc/roots.pem', os.path.join(credentials_dir, 'roots.pem')) + TEST_PACKAGE_DATA = { 'tests.interop': [ 'credentials/ca.pem', @@ -142,6 +158,9 @@ TEST_PACKAGE_DATA = { 'credentials/server1.key', 'credentials/server1.pem', ], + 'grpc._adapter': [ + 'credentials/roots.pem' + ], } TESTS_REQUIRE = ( @@ -157,16 +176,19 @@ TEST_RUNNER = 'tests:Runner' PACKAGE_DATA = {} if INSTALL_TESTS: PACKAGE_DATA = dict(PACKAGE_DATA, **TEST_PACKAGE_DATA) - PACKAGES = setuptools.find_packages('.') + PACKAGES = setuptools.find_packages(PYTHON_STEM) else: - PACKAGES = setuptools.find_packages('.', exclude=['tests', 'tests.*']) + PACKAGES = setuptools.find_packages( + PYTHON_STEM, exclude=['tests', 'tests.*']) setuptools.setup( name='grpcio', - version='0.12.0b0', + version='0.12.0b5', + license=LICENSE, ext_modules=CYTHON_EXTENSION_MODULES, packages=list(PACKAGES), package_dir=PACKAGE_DIRECTORIES, + package_data=PACKAGE_DATA, install_requires=INSTALL_REQUIRES, setup_requires=SETUP_REQUIRES, cmdclass=COMMAND_CLASS, diff --git a/src/boringssl/gen_build_yaml.py b/src/boringssl/gen_build_yaml.py index 424912ba70..b635ee4c13 100755 --- a/src/boringssl/gen_build_yaml.py +++ b/src/boringssl/gen_build_yaml.py @@ -137,7 +137,8 @@ class Grpc(object): 'platforms': ['linux', 'mac', 'posix', 'windows'], 'flaky': False, 'language': 'c++', - 'boringssl': True + 'boringssl': True, + 'cpu_cost': 1.0 } for test in files['tests'] ] diff --git a/src/compiler/python_generator.cc b/src/compiler/python_generator.cc index 83133f2b6e..c754ae299b 100644 --- a/src/compiler/python_generator.cc +++ b/src/compiler/python_generator.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -148,91 +148,6 @@ class IndentScope { // END FORMATTING BOILERPLATE // //////////////////////////////// -bool PrintAlphaServicer(const ServiceDescriptor* service, - Printer* out) { - grpc::string doc = "<fill me in later!>"; - map<grpc::string, grpc::string> dict = ListToDict({ - "Service", service->name(), - "Documentation", doc, - }); - out->Print(dict, "class EarlyAdopter$Service$Servicer(object):\n"); - { - IndentScope raii_class_indent(out); - out->Print(dict, "\"\"\"$Documentation$\"\"\"\n"); - out->Print("__metaclass__ = abc.ABCMeta\n"); - for (int i = 0; i < service->method_count(); ++i) { - auto meth = service->method(i); - grpc::string arg_name = meth->client_streaming() ? - "request_iterator" : "request"; - out->Print("@abc.abstractmethod\n"); - out->Print("def $Method$(self, $ArgName$, context):\n", - "Method", meth->name(), "ArgName", arg_name); - { - IndentScope raii_method_indent(out); - out->Print("raise NotImplementedError()\n"); - } - } - } - return true; -} - -bool PrintAlphaServer(const ServiceDescriptor* service, Printer* out) { - grpc::string doc = "<fill me in later!>"; - map<grpc::string, grpc::string> dict = ListToDict({ - "Service", service->name(), - "Documentation", doc, - }); - out->Print(dict, "class EarlyAdopter$Service$Server(object):\n"); - { - IndentScope raii_class_indent(out); - out->Print(dict, "\"\"\"$Documentation$\"\"\"\n"); - out->Print("__metaclass__ = abc.ABCMeta\n"); - out->Print("@abc.abstractmethod\n"); - out->Print("def start(self):\n"); - { - IndentScope raii_method_indent(out); - out->Print("raise NotImplementedError()\n"); - } - - out->Print("@abc.abstractmethod\n"); - out->Print("def stop(self):\n"); - { - IndentScope raii_method_indent(out); - out->Print("raise NotImplementedError()\n"); - } - } - return true; -} - -bool PrintAlphaStub(const ServiceDescriptor* service, - Printer* out) { - grpc::string doc = "<fill me in later!>"; - map<grpc::string, grpc::string> dict = ListToDict({ - "Service", service->name(), - "Documentation", doc, - }); - out->Print(dict, "class EarlyAdopter$Service$Stub(object):\n"); - { - IndentScope raii_class_indent(out); - out->Print(dict, "\"\"\"$Documentation$\"\"\"\n"); - out->Print("__metaclass__ = abc.ABCMeta\n"); - for (int i = 0; i < service->method_count(); ++i) { - const MethodDescriptor* meth = service->method(i); - grpc::string arg_name = meth->client_streaming() ? - "request_iterator" : "request"; - auto methdict = ListToDict({"Method", meth->name(), "ArgName", arg_name}); - out->Print("@abc.abstractmethod\n"); - out->Print(methdict, "def $Method$(self, $ArgName$):\n"); - { - IndentScope raii_method_indent(out); - out->Print("raise NotImplementedError()\n"); - } - out->Print(methdict, "$Method$.async = None\n"); - } - } - return true; -} - // TODO(protobuf team): Export `ModuleName` from protobuf's // `src/google/protobuf/compiler/python/python_generator.cc` file. grpc::string ModuleName(const grpc::string& filename) { @@ -268,172 +183,6 @@ bool GetModuleAndMessagePath(const Descriptor* type, return true; } -bool PrintAlphaServerFactory(const grpc::string& package_qualified_service_name, - const ServiceDescriptor* service, Printer* out) { - out->Print("def early_adopter_create_$Service$_server(servicer, port, " - "private_key=None, certificate_chain=None):\n", - "Service", service->name()); - { - IndentScope raii_create_server_indent(out); - map<grpc::string, grpc::string> method_description_constructors; - map<grpc::string, pair<grpc::string, grpc::string>> - input_message_modules_and_classes; - map<grpc::string, pair<grpc::string, grpc::string>> - output_message_modules_and_classes; - for (int i = 0; i < service->method_count(); ++i) { - const MethodDescriptor* method = service->method(i); - const grpc::string method_description_constructor = - grpc::string(method->client_streaming() ? "stream_" : "unary_") + - grpc::string(method->server_streaming() ? "stream_" : "unary_") + - "service_description"; - pair<grpc::string, grpc::string> input_message_module_and_class; - if (!GetModuleAndMessagePath(method->input_type(), - &input_message_module_and_class)) { - return false; - } - pair<grpc::string, grpc::string> output_message_module_and_class; - if (!GetModuleAndMessagePath(method->output_type(), - &output_message_module_and_class)) { - return false; - } - // Import the modules that define the messages used in RPCs. - out->Print("import $Module$\n", "Module", - input_message_module_and_class.first); - out->Print("import $Module$\n", "Module", - output_message_module_and_class.first); - method_description_constructors.insert( - make_pair(method->name(), method_description_constructor)); - input_message_modules_and_classes.insert( - make_pair(method->name(), input_message_module_and_class)); - output_message_modules_and_classes.insert( - make_pair(method->name(), output_message_module_and_class)); - } - out->Print("method_service_descriptions = {\n"); - for (auto name_and_description_constructor = - method_description_constructors.begin(); - name_and_description_constructor != - method_description_constructors.end(); - name_and_description_constructor++) { - IndentScope raii_descriptions_indent(out); - const grpc::string method_name = name_and_description_constructor->first; - auto input_message_module_and_class = - input_message_modules_and_classes.find(method_name); - auto output_message_module_and_class = - output_message_modules_and_classes.find(method_name); - out->Print("\"$Method$\": alpha_utilities.$Constructor$(\n", "Method", - method_name, "Constructor", - name_and_description_constructor->second); - { - IndentScope raii_description_arguments_indent(out); - out->Print("servicer.$Method$,\n", "Method", method_name); - out->Print( - "$InputTypeModule$.$InputTypeClass$.FromString,\n", - "InputTypeModule", input_message_module_and_class->second.first, - "InputTypeClass", input_message_module_and_class->second.second); - out->Print( - "$OutputTypeModule$.$OutputTypeClass$.SerializeToString,\n", - "OutputTypeModule", output_message_module_and_class->second.first, - "OutputTypeClass", output_message_module_and_class->second.second); - } - out->Print("),\n"); - } - out->Print("}\n"); - out->Print( - "return early_adopter_implementations.server(" - "\"$PackageQualifiedServiceName$\"," - " method_service_descriptions, port, private_key=private_key," - " certificate_chain=certificate_chain)\n", - "PackageQualifiedServiceName", package_qualified_service_name); - } - return true; -} - -bool PrintAlphaStubFactory(const grpc::string& package_qualified_service_name, - const ServiceDescriptor* service, Printer* out) { - map<grpc::string, grpc::string> dict = ListToDict({ - "Service", service->name(), - }); - out->Print(dict, "def early_adopter_create_$Service$_stub(host, port," - " metadata_transformer=None," - " secure=False, root_certificates=None, private_key=None," - " certificate_chain=None, server_host_override=None):\n"); - { - IndentScope raii_create_server_indent(out); - map<grpc::string, grpc::string> method_description_constructors; - map<grpc::string, pair<grpc::string, grpc::string>> - input_message_modules_and_classes; - map<grpc::string, pair<grpc::string, grpc::string>> - output_message_modules_and_classes; - for (int i = 0; i < service->method_count(); ++i) { - const MethodDescriptor* method = service->method(i); - const grpc::string method_description_constructor = - grpc::string(method->client_streaming() ? "stream_" : "unary_") + - grpc::string(method->server_streaming() ? "stream_" : "unary_") + - "invocation_description"; - pair<grpc::string, grpc::string> input_message_module_and_class; - if (!GetModuleAndMessagePath(method->input_type(), - &input_message_module_and_class)) { - return false; - } - pair<grpc::string, grpc::string> output_message_module_and_class; - if (!GetModuleAndMessagePath(method->output_type(), - &output_message_module_and_class)) { - return false; - } - // Import the modules that define the messages used in RPCs. - out->Print("import $Module$\n", "Module", - input_message_module_and_class.first); - out->Print("import $Module$\n", "Module", - output_message_module_and_class.first); - method_description_constructors.insert( - make_pair(method->name(), method_description_constructor)); - input_message_modules_and_classes.insert( - make_pair(method->name(), input_message_module_and_class)); - output_message_modules_and_classes.insert( - make_pair(method->name(), output_message_module_and_class)); - } - out->Print("method_invocation_descriptions = {\n"); - for (auto name_and_description_constructor = - method_description_constructors.begin(); - name_and_description_constructor != - method_description_constructors.end(); - name_and_description_constructor++) { - IndentScope raii_descriptions_indent(out); - const grpc::string method_name = name_and_description_constructor->first; - auto input_message_module_and_class = - input_message_modules_and_classes.find(method_name); - auto output_message_module_and_class = - output_message_modules_and_classes.find(method_name); - out->Print("\"$Method$\": alpha_utilities.$Constructor$(\n", "Method", - method_name, "Constructor", - name_and_description_constructor->second); - { - IndentScope raii_description_arguments_indent(out); - out->Print( - "$InputTypeModule$.$InputTypeClass$.SerializeToString,\n", - "InputTypeModule", input_message_module_and_class->second.first, - "InputTypeClass", input_message_module_and_class->second.second); - out->Print( - "$OutputTypeModule$.$OutputTypeClass$.FromString,\n", - "OutputTypeModule", output_message_module_and_class->second.first, - "OutputTypeClass", output_message_module_and_class->second.second); - } - out->Print("),\n"); - } - out->Print("}\n"); - out->Print( - "return early_adopter_implementations.stub(" - "\"$PackageQualifiedServiceName$\"," - " method_invocation_descriptions, host, port," - " metadata_transformer=metadata_transformer, secure=secure," - " root_certificates=root_certificates, private_key=private_key," - " certificate_chain=certificate_chain," - " server_host_override=server_host_override)\n", - "PackageQualifiedServiceName", package_qualified_service_name); - } - return true; -} - bool PrintBetaServicer(const ServiceDescriptor* service, Printer* out) { grpc::string doc = "<fill me in later!>"; @@ -703,9 +452,6 @@ bool PrintPreamble(const FileDescriptor* file, out->Print("import abc\n"); out->Print("from $Package$ import implementations as beta_implementations\n", "Package", config.beta_package_root); - out->Print("from $Package$ import implementations as early_adopter_implementations\n", - "Package", config.early_adopter_package_root); - out->Print("from grpc.framework.alpha import utilities as alpha_utilities\n"); out->Print("from grpc.framework.common import cardinality\n"); out->Print("from grpc.framework.interfaces.face import utilities as face_utilities\n"); return true; @@ -714,7 +460,7 @@ bool PrintPreamble(const FileDescriptor* file, } // namespace pair<bool, grpc::string> GetServices(const FileDescriptor* file, - const GeneratorConfiguration& config) { + const GeneratorConfiguration& config) { grpc::string output; { // Scope the output stream so it closes and finalizes output to the string. @@ -730,12 +476,7 @@ pair<bool, grpc::string> GetServices(const FileDescriptor* file, for (int i = 0; i < file->service_count(); ++i) { auto service = file->service(i); auto package_qualified_service_name = package + service->name(); - if (!(PrintAlphaServicer(service, &out) && - PrintAlphaServer(service, &out) && - PrintAlphaStub(service, &out) && - PrintAlphaServerFactory(package_qualified_service_name, service, &out) && - PrintAlphaStubFactory(package_qualified_service_name, service, &out) && - PrintBetaServicer(service, &out) && + if (!(PrintBetaServicer(service, &out) && PrintBetaStub(service, &out) && PrintBetaServerFactory(package_qualified_service_name, service, &out) && PrintBetaStubFactory(package_qualified_service_name, service, &out))) { diff --git a/src/compiler/python_generator.h b/src/compiler/python_generator.h index 44ed4b3f98..68da18f9ba 100644 --- a/src/compiler/python_generator.h +++ b/src/compiler/python_generator.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -43,7 +43,6 @@ namespace grpc_python_generator { // Data pertaining to configuration of the generator with respect to anything // that may be used internally at Google. struct GeneratorConfiguration { - grpc::string early_adopter_package_root; grpc::string beta_package_root; }; diff --git a/src/compiler/python_plugin.cc b/src/compiler/python_plugin.cc index c7cef54900..d781ddbee5 100644 --- a/src/compiler/python_plugin.cc +++ b/src/compiler/python_plugin.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,6 @@ int main(int argc, char* argv[]) { grpc_python_generator::GeneratorConfiguration config; - config.early_adopter_package_root = "grpc.early_adopter"; config.beta_package_root = "grpc.beta"; grpc_python_generator::PythonGrpcGenerator generator(config); return grpc::protobuf::compiler::PluginMain(argc, argv, &generator); diff --git a/src/core/census/initialize.c b/src/core/census/initialize.c index 8d60f790eb..b7af714e0b 100644 --- a/src/core/census/initialize.c +++ b/src/core/census/initialize.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -39,12 +39,11 @@ int census_initialize(int features) { if (features_enabled != CENSUS_FEATURE_NONE) { return 1; } - if (features != CENSUS_FEATURE_NONE) { + if (features == CENSUS_FEATURE_NONE) { return 1; - } else { - features_enabled = features; - return 0; } + features_enabled = features; + return 0; } void census_shutdown(void) { features_enabled = CENSUS_FEATURE_NONE; } diff --git a/src/core/channel/client_channel.c b/src/core/channel/client_channel.c index 385ae3be9b..a92a6ecaf2 100644 --- a/src/core/channel/client_channel.c +++ b/src/core/channel/client_channel.c @@ -353,10 +353,13 @@ static int cc_pick_subchannel(grpc_exec_ctx *exec_ctx, void *elemp, return 1; } if (chand->lb_policy != NULL) { - int r = - grpc_lb_policy_pick(exec_ctx, chand->lb_policy, calld->pollset, - initial_metadata, connected_subchannel, on_ready); + grpc_lb_policy *lb_policy = chand->lb_policy; + int r; + GRPC_LB_POLICY_REF(lb_policy, "cc_pick_subchannel"); gpr_mu_unlock(&chand->mu_config); + r = grpc_lb_policy_pick(exec_ctx, lb_policy, calld->pollset, + initial_metadata, connected_subchannel, on_ready); + GRPC_LB_POLICY_UNREF(exec_ctx, lb_policy, "cc_pick_subchannel"); return r; } if (chand->resolver != NULL && !chand->started_resolving) { diff --git a/src/core/client_config/lb_policies/pick_first.c b/src/core/client_config/lb_policies/pick_first.c index 37de3e9f68..e6ddb1a11f 100644 --- a/src/core/client_config/lb_policies/pick_first.c +++ b/src/core/client_config/lb_policies/pick_first.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -55,12 +55,11 @@ typedef struct { grpc_closure connectivity_changed; + /** the selected channel (a grpc_connected_subchannel) */ + gpr_atm selected; + /** mutex protecting remaining members */ gpr_mu mu; - /** the selected channel - TODO(ctiller): this should be atomically set so we don't - need to take a mutex in the common case */ - grpc_connected_subchannel *selected; /** have we started picking? */ int started_picking; /** are we shut down? */ @@ -76,15 +75,19 @@ typedef struct { grpc_connectivity_state_tracker state_tracker; } pick_first_lb_policy; +#define GET_SELECTED(p) \ + ((grpc_connected_subchannel *)gpr_atm_no_barrier_load(&(p)->selected)) + void pf_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) { pick_first_lb_policy *p = (pick_first_lb_policy *)pol; + grpc_connected_subchannel *selected = GET_SELECTED(p); size_t i; GPR_ASSERT(p->pending_picks == NULL); for (i = 0; i < p->num_subchannels; i++) { GRPC_SUBCHANNEL_UNREF(exec_ctx, p->subchannels[i], "pick_first"); } - if (p->selected) { - GRPC_CONNECTED_SUBCHANNEL_UNREF(exec_ctx, p->selected, "picked_first"); + if (selected != NULL) { + GRPC_CONNECTED_SUBCHANNEL_UNREF(exec_ctx, selected, "picked_first"); } grpc_connectivity_state_destroy(exec_ctx, &p->state_tracker); gpr_free(p->subchannels); @@ -95,16 +98,18 @@ void pf_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) { void pf_shutdown(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) { pick_first_lb_policy *p = (pick_first_lb_policy *)pol; pending_pick *pp; + grpc_connected_subchannel *selected; gpr_mu_lock(&p->mu); + selected = GET_SELECTED(p); p->shutdown = 1; pp = p->pending_picks; p->pending_picks = NULL; grpc_connectivity_state_set(exec_ctx, &p->state_tracker, GRPC_CHANNEL_FATAL_FAILURE, "shutdown"); /* cancel subscription */ - if (p->selected != NULL) { + if (selected != NULL) { grpc_connected_subchannel_notify_on_state_change( - exec_ctx, p->selected, NULL, NULL, &p->connectivity_changed); + exec_ctx, selected, NULL, NULL, &p->connectivity_changed); } else { grpc_subchannel_notify_on_state_change( exec_ctx, p->subchannels[p->checking_subchannel], NULL, NULL, @@ -171,10 +176,20 @@ int pf_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol, grpc_pollset *pollset, grpc_connected_subchannel **target, grpc_closure *on_complete) { pick_first_lb_policy *p = (pick_first_lb_policy *)pol; pending_pick *pp; + + /* Check atomically for a selected channel */ + grpc_connected_subchannel *selected = GET_SELECTED(p); + if (selected != NULL) { + *target = selected; + return 1; + } + + /* No subchannel selected yet, so acquire lock and then attempt again */ gpr_mu_lock(&p->mu); - if (p->selected) { + selected = GET_SELECTED(p); + if (selected) { gpr_mu_unlock(&p->mu); - *target = p->selected; + *target = selected; return 1; } else { if (!p->started_picking) { @@ -219,14 +234,17 @@ static void pf_connectivity_changed(grpc_exec_ctx *exec_ctx, void *arg, pick_first_lb_policy *p = arg; grpc_subchannel *selected_subchannel; pending_pick *pp; + grpc_connected_subchannel *selected; gpr_mu_lock(&p->mu); + selected = GET_SELECTED(p); + if (p->shutdown) { gpr_mu_unlock(&p->mu); GRPC_LB_POLICY_WEAK_UNREF(exec_ctx, &p->base, "pick_first_connectivity"); return; - } else if (p->selected != NULL) { + } else if (selected != NULL) { if (p->checking_connectivity == GRPC_CHANNEL_TRANSIENT_FAILURE) { /* if the selected channel goes bad, we're done */ p->checking_connectivity = GRPC_CHANNEL_FATAL_FAILURE; @@ -235,7 +253,7 @@ static void pf_connectivity_changed(grpc_exec_ctx *exec_ctx, void *arg, p->checking_connectivity, "selected_changed"); if (p->checking_connectivity != GRPC_CHANNEL_FATAL_FAILURE) { grpc_connected_subchannel_notify_on_state_change( - exec_ctx, p->selected, &p->base.interested_parties, + exec_ctx, selected, &p->base.interested_parties, &p->checking_connectivity, &p->connectivity_changed); } else { GRPC_LB_POLICY_WEAK_UNREF(exec_ctx, &p->base, "pick_first_connectivity"); @@ -247,10 +265,11 @@ static void pf_connectivity_changed(grpc_exec_ctx *exec_ctx, void *arg, grpc_connectivity_state_set(exec_ctx, &p->state_tracker, GRPC_CHANNEL_READY, "connecting_ready"); selected_subchannel = p->subchannels[p->checking_subchannel]; - p->selected = + selected = grpc_subchannel_get_connected_subchannel(selected_subchannel); - GPR_ASSERT(p->selected); - GRPC_CONNECTED_SUBCHANNEL_REF(p->selected, "picked_first"); + GPR_ASSERT(selected != NULL); + gpr_atm_no_barrier_store(&p->selected, (gpr_atm)selected); + GRPC_CONNECTED_SUBCHANNEL_REF(selected, "picked_first"); /* drop the pick list: we are connected now */ GRPC_LB_POLICY_WEAK_REF(&p->base, "destroy_subchannels"); grpc_exec_ctx_enqueue(exec_ctx, @@ -258,14 +277,14 @@ static void pf_connectivity_changed(grpc_exec_ctx *exec_ctx, void *arg, /* update any calls that were waiting for a pick */ while ((pp = p->pending_picks)) { p->pending_picks = pp->next; - *pp->target = p->selected; + *pp->target = selected; grpc_pollset_set_del_pollset(exec_ctx, &p->base.interested_parties, pp->pollset); grpc_exec_ctx_enqueue(exec_ctx, pp->on_complete, 1); gpr_free(pp); } grpc_connected_subchannel_notify_on_state_change( - exec_ctx, p->selected, &p->base.interested_parties, + exec_ctx, selected, &p->base.interested_parties, &p->checking_connectivity, &p->connectivity_changed); break; case GRPC_CHANNEL_TRANSIENT_FAILURE: @@ -351,13 +370,12 @@ void pf_notify_on_state_change(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol, void pf_ping_one(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol, grpc_closure *closure) { pick_first_lb_policy *p = (pick_first_lb_policy *)pol; - gpr_mu_lock(&p->mu); - if (p->selected) { - grpc_connected_subchannel_ping(exec_ctx, p->selected, closure); + grpc_connected_subchannel *selected = GET_SELECTED(p); + if (selected) { + grpc_connected_subchannel_ping(exec_ctx, selected, closure); } else { grpc_exec_ctx_enqueue(exec_ctx, closure, 0); } - gpr_mu_unlock(&p->mu); } static const grpc_lb_policy_vtable pick_first_lb_policy_vtable = { diff --git a/src/core/iomgr/fd_posix.c b/src/core/iomgr/fd_posix.c index 917307a4c0..89c938bc04 100644 --- a/src/core/iomgr/fd_posix.c +++ b/src/core/iomgr/fd_posix.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -211,6 +211,16 @@ static int has_watchers(grpc_fd *fd) { fd->inactive_watcher_root.next != &fd->inactive_watcher_root; } +static void close_fd_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd) { + fd->closed = 1; + if (!fd->released) { + close(fd->fd); + } else { + grpc_remove_fd_from_all_epoll_sets(fd->fd); + } + grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, 1); +} + int grpc_fd_wrapped_fd(grpc_fd *fd) { if (fd->released || fd->closed) { return -1; @@ -231,11 +241,7 @@ void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done, gpr_mu_lock(&fd->mu); REF_BY(fd, 1, reason); /* remove active status, but keep referenced */ if (!has_watchers(fd)) { - fd->closed = 1; - if (!fd->released) { - close(fd->fd); - } - grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, 1); + close_fd_locked(exec_ctx, fd); } else { wake_all_watchers_locked(fd); } @@ -425,11 +431,7 @@ void grpc_fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *watcher, maybe_wake_one_watcher_locked(fd); } if (grpc_fd_is_orphaned(fd) && !has_watchers(fd) && !fd->closed) { - fd->closed = 1; - if (!fd->released) { - close(fd->fd); - } - grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, 1); + close_fd_locked(exec_ctx, fd); } gpr_mu_unlock(&fd->mu); diff --git a/src/core/iomgr/fd_posix.h b/src/core/iomgr/fd_posix.h index 8062dd01db..17e7de88ff 100644 --- a/src/core/iomgr/fd_posix.h +++ b/src/core/iomgr/fd_posix.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/core/iomgr/pollset_multipoller_with_epoll.c b/src/core/iomgr/pollset_multipoller_with_epoll.c index 6e31efa013..d117485327 100644 --- a/src/core/iomgr/pollset_multipoller_with_epoll.c +++ b/src/core/iomgr/pollset_multipoller_with_epoll.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -43,9 +43,68 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/useful.h> #include "src/core/iomgr/fd_posix.h" -#include "src/core/support/block_annotate.h" #include "src/core/profiling/timers.h" +#include "src/core/support/block_annotate.h" + +struct epoll_fd_list { + int *epoll_fds; + size_t count; + size_t capacity; +}; + +static struct epoll_fd_list epoll_fd_global_list; +static gpr_once init_epoll_fd_list_mu = GPR_ONCE_INIT; +static gpr_mu epoll_fd_list_mu; + +static void init_mu(void) { gpr_mu_init(&epoll_fd_list_mu); } + +static void add_epoll_fd_to_global_list(int epoll_fd) { + gpr_once_init(&init_epoll_fd_list_mu, init_mu); + + gpr_mu_lock(&epoll_fd_list_mu); + if (epoll_fd_global_list.count == epoll_fd_global_list.capacity) { + epoll_fd_global_list.capacity = + GPR_MAX((size_t)8, epoll_fd_global_list.capacity * 2); + epoll_fd_global_list.epoll_fds = + gpr_realloc(epoll_fd_global_list.epoll_fds, + epoll_fd_global_list.capacity * sizeof(int)); + } + epoll_fd_global_list.epoll_fds[epoll_fd_global_list.count++] = epoll_fd; + gpr_mu_unlock(&epoll_fd_list_mu); +} + +static void remove_epoll_fd_from_global_list(int epoll_fd) { + gpr_mu_lock(&epoll_fd_list_mu); + GPR_ASSERT(epoll_fd_global_list.count > 0); + for (size_t i = 0; i < epoll_fd_global_list.count; i++) { + if (epoll_fd == epoll_fd_global_list.epoll_fds[i]) { + epoll_fd_global_list.epoll_fds[i] = + epoll_fd_global_list.epoll_fds[--(epoll_fd_global_list.count)]; + break; + } + } + gpr_mu_unlock(&epoll_fd_list_mu); +} + +void grpc_remove_fd_from_all_epoll_sets(int fd) { + int err; + gpr_once_init(&init_epoll_fd_list_mu, init_mu); + gpr_mu_lock(&epoll_fd_list_mu); + if (epoll_fd_global_list.count == 0) { + gpr_mu_unlock(&epoll_fd_list_mu); + return; + } + for (size_t i = 0; i < epoll_fd_global_list.count; i++) { + err = epoll_ctl(epoll_fd_global_list.epoll_fds[i], EPOLL_CTL_DEL, fd, NULL); + if (err < 0 && errno != ENOENT) { + gpr_log(GPR_ERROR, "epoll_ctl del for %d failed: %s", fd, + strerror(errno)); + } + } + gpr_mu_unlock(&epoll_fd_list_mu); +} typedef struct { grpc_pollset *pollset; @@ -211,6 +270,7 @@ static void multipoll_with_epoll_pollset_finish_shutdown( static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) { pollset_hdr *h = pollset->data.ptr; close(h->epoll_fd); + remove_epoll_fd_from_global_list(h->epoll_fd); gpr_free(h); } @@ -236,6 +296,7 @@ static void epoll_become_multipoller(grpc_exec_ctx *exec_ctx, gpr_log(GPR_ERROR, "epoll_create1 failed: %s", strerror(errno)); abort(); } + add_epoll_fd_to_global_list(h->epoll_fd); ev.events = (uint32_t)(EPOLLIN | EPOLLET); ev.data.ptr = NULL; @@ -255,4 +316,8 @@ static void epoll_become_multipoller(grpc_exec_ctx *exec_ctx, grpc_platform_become_multipoller_type grpc_platform_become_multipoller = epoll_become_multipoller; +#else /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */ + +void grpc_remove_fd_from_all_epoll_sets(int fd) {} + #endif /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */ diff --git a/src/core/iomgr/pollset_multipoller_with_poll_posix.c b/src/core/iomgr/pollset_multipoller_with_poll_posix.c index a7282b9896..809f8f39da 100644 --- a/src/core/iomgr/pollset_multipoller_with_poll_posix.c +++ b/src/core/iomgr/pollset_multipoller_with_poll_posix.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/core/iomgr/pollset_posix.h b/src/core/iomgr/pollset_posix.h index 78fc27d2b3..b34bb09426 100644 --- a/src/core/iomgr/pollset_posix.h +++ b/src/core/iomgr/pollset_posix.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -139,6 +139,8 @@ void grpc_poll_become_multipoller(grpc_exec_ctx *exec_ctx, * be locked) */ int grpc_pollset_has_workers(grpc_pollset *pollset); +void grpc_remove_fd_from_all_epoll_sets(int fd); + /* override to allow tests to hook poll() usage */ typedef int (*grpc_poll_function_type)(struct pollfd *, nfds_t, int); extern grpc_poll_function_type grpc_poll_function; diff --git a/src/core/iomgr/tcp_posix.c b/src/core/iomgr/tcp_posix.c index 65783a7afa..4fa8ca8c71 100644 --- a/src/core/iomgr/tcp_posix.c +++ b/src/core/iomgr/tcp_posix.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/core/iomgr/tcp_posix.h b/src/core/iomgr/tcp_posix.h index 495ed009c8..2a40cdd385 100644 --- a/src/core/iomgr/tcp_posix.h +++ b/src/core/iomgr/tcp_posix.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/core/security/base64.c b/src/core/security/base64.c index e68359602e..8367c160c3 100644 --- a/src/core/security/base64.c +++ b/src/core/security/base64.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,6 +33,7 @@ #include "src/core/security/base64.h" +#include <stdint.h> #include <string.h> #include <grpc/support/alloc.h> @@ -41,7 +42,7 @@ /* --- Constants. --- */ -static const char base64_bytes[] = { +static const int8_t base64_bytes[] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, diff --git a/src/core/support/sync_posix.c b/src/core/support/sync_posix.c index 4d59a10002..d3c483f1b5 100644 --- a/src/core/support/sync_posix.c +++ b/src/core/support/sync_posix.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/core/surface/call.c b/src/core/surface/call.c index b1ba2afa8b..880666bb38 100644 --- a/src/core/surface/call.c +++ b/src/core/surface/call.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,6 +37,7 @@ #include <string.h> #include <grpc/compression.h> +#include <grpc/grpc.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> @@ -562,12 +563,16 @@ static int prepare_application_metadata(grpc_call *call, int count, GPR_ASSERT(sizeof(grpc_linked_mdelem) == sizeof(md->internal_data)); l->md = grpc_mdelem_from_string_and_buffer( md->key, (const uint8_t *)md->value, md->value_length); - if (!grpc_mdstr_is_legal_header(l->md->key)) { + if (!grpc_header_key_is_legal(grpc_mdstr_as_c_string(l->md->key), + GRPC_MDSTR_LENGTH(l->md->key))) { gpr_log(GPR_ERROR, "attempt to send invalid metadata key: %s", grpc_mdstr_as_c_string(l->md->key)); return 0; - } else if (!grpc_mdstr_is_bin_suffixed(l->md->key) && - !grpc_mdstr_is_legal_nonbin_header(l->md->value)) { + } else if (!grpc_is_binary_header(grpc_mdstr_as_c_string(l->md->key), + GRPC_MDSTR_LENGTH(l->md->key)) && + !grpc_header_nonbin_value_is_legal( + grpc_mdstr_as_c_string(l->md->value), + GRPC_MDSTR_LENGTH(l->md->value))) { gpr_log(GPR_ERROR, "attempt to send invalid metadata value"); return 0; } diff --git a/src/core/surface/validate_metadata.c b/src/core/surface/validate_metadata.c new file mode 100644 index 0000000000..df2e80b4b7 --- /dev/null +++ b/src/core/surface/validate_metadata.c @@ -0,0 +1,73 @@ +/* + * + * 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 <stdlib.h> +#include <string.h> + +#include <grpc/support/port_platform.h> + +static int conforms_to(const char *s, size_t len, const uint8_t *legal_bits) { + const char *p = s; + const char *e = s + len; + for (; p != e; p++) { + int idx = *p; + int byte = idx / 8; + int bit = idx % 8; + if ((legal_bits[byte] & (1 << bit)) == 0) return 0; + } + return 1; +} + +int grpc_header_key_is_legal(const char *key, size_t length) { + static const uint8_t legal_header_bits[256 / 8] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x80, 0xfe, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + if (length == 0) { + return 0; + } + return conforms_to(key, length, legal_header_bits); +} + +int grpc_header_nonbin_value_is_legal(const char *value, size_t length) { + static const uint8_t legal_header_bits[256 / 8] = { + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + return conforms_to(value, length, legal_header_bits); +} + +int grpc_is_binary_header(const char *key, size_t length) { + if (length < 5) return 0; + return 0 == memcmp(key + length - 4, "-bin", 4); +} diff --git a/src/core/transport/chttp2/bin_encoder.c b/src/core/transport/chttp2/bin_encoder.c index a6a8e3e035..f26bc7e29b 100644 --- a/src/core/transport/chttp2/bin_encoder.c +++ b/src/core/transport/chttp2/bin_encoder.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -283,8 +283,3 @@ gpr_slice grpc_chttp2_base64_encode_and_huffman_compress(gpr_slice input) { GPR_ASSERT(in == GPR_SLICE_END_PTR(input)); return output; } - -int grpc_is_binary_header(const char *key, size_t length) { - if (length < 5) return 0; - return 0 == memcmp(key + length - 4, "-bin", 4); -} diff --git a/src/core/transport/chttp2/bin_encoder.h b/src/core/transport/chttp2/bin_encoder.h index d3e5a855dd..036fddf998 100644 --- a/src/core/transport/chttp2/bin_encoder.h +++ b/src/core/transport/chttp2/bin_encoder.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -51,6 +51,4 @@ gpr_slice grpc_chttp2_huffman_compress(gpr_slice input); return y; */ gpr_slice grpc_chttp2_base64_encode_and_huffman_compress(gpr_slice input); -int grpc_is_binary_header(const char *key, size_t length); - #endif /* GRPC_INTERNAL_CORE_TRANSPORT_CHTTP2_BIN_ENCODER_H */ diff --git a/src/core/transport/chttp2/hpack_encoder.c b/src/core/transport/chttp2/hpack_encoder.c index d6a352afd5..89a80d896c 100644 --- a/src/core/transport/chttp2/hpack_encoder.c +++ b/src/core/transport/chttp2/hpack_encoder.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -36,6 +36,11 @@ #include <assert.h> #include <string.h> +/* This is here for grpc_is_binary_header + * TODO(murgatroid99): Remove this + */ +#include <grpc/grpc.h> + #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/useful.h> diff --git a/src/core/transport/chttp2/hpack_parser.c b/src/core/transport/chttp2/hpack_parser.c index 16395d6be1..a63c7db1f6 100644 --- a/src/core/transport/chttp2/hpack_parser.c +++ b/src/core/transport/chttp2/hpack_parser.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,6 +38,11 @@ #include <string.h> #include <assert.h> +/* This is here for grpc_is_binary_header + * TODO(murgatroid99): Remove this + */ +#include <grpc/grpc.h> + #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/port_platform.h> diff --git a/src/core/transport/chttp2/internal.h b/src/core/transport/chttp2/internal.h index 0b0fccfcd4..a8262b7af2 100644 --- a/src/core/transport/chttp2/internal.h +++ b/src/core/transport/chttp2/internal.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c index c154c07772..05b25fd8b0 100644 --- a/src/core/transport/chttp2_transport.c +++ b/src/core/transport/chttp2_transport.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/core/transport/metadata.c b/src/core/transport/metadata.c index ada889983c..14912af7df 100644 --- a/src/core/transport/metadata.c +++ b/src/core/transport/metadata.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -688,37 +688,3 @@ gpr_slice grpc_mdstr_as_base64_encoded_and_huffman_compressed(grpc_mdstr *gs) { gpr_mu_unlock(&shard->mu); return slice; } - -static int conforms_to(grpc_mdstr *s, const uint8_t *legal_bits) { - const uint8_t *p = GPR_SLICE_START_PTR(s->slice); - const uint8_t *e = GPR_SLICE_END_PTR(s->slice); - for (; p != e; p++) { - int idx = *p; - int byte = idx / 8; - int bit = idx % 8; - if ((legal_bits[byte] & (1 << bit)) == 0) return 0; - } - return 1; -} - -int grpc_mdstr_is_legal_header(grpc_mdstr *s) { - static const uint8_t legal_header_bits[256 / 8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xff, 0x03, 0x00, 0x00, 0x00, - 0x80, 0xfe, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - return conforms_to(s, legal_header_bits); -} - -int grpc_mdstr_is_legal_nonbin_header(grpc_mdstr *s) { - static const uint8_t legal_header_bits[256 / 8] = { - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - return conforms_to(s, legal_header_bits); -} - -int grpc_mdstr_is_bin_suffixed(grpc_mdstr *s) { - /* TODO(ctiller): consider caching this */ - return grpc_is_binary_header((const char *)GPR_SLICE_START_PTR(s->slice), - GPR_SLICE_LENGTH(s->slice)); -} diff --git a/src/core/transport/metadata.h b/src/core/transport/metadata.h index a7c9fd6e84..8742846be7 100644 --- a/src/core/transport/metadata.h +++ b/src/core/transport/metadata.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -142,6 +142,8 @@ void grpc_mdelem_unref(grpc_mdelem *md); Does not promise that the returned string has no embedded nulls however. */ const char *grpc_mdstr_as_c_string(grpc_mdstr *s); +#define GRPC_MDSTR_LENGTH(s) (GPR_SLICE_LENGTH(s->slice)) + int grpc_mdstr_is_legal_header(grpc_mdstr *s); int grpc_mdstr_is_legal_nonbin_header(grpc_mdstr *s); int grpc_mdstr_is_bin_suffixed(grpc_mdstr *s); diff --git a/src/cpp/util/byte_buffer.cc b/src/cpp/util/byte_buffer.cc index 755234d7e8..2952f94b24 100644 --- a/src/cpp/util/byte_buffer.cc +++ b/src/cpp/util/byte_buffer.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -69,6 +69,7 @@ void ByteBuffer::Dump(std::vector<Slice>* slices) const { while (grpc_byte_buffer_reader_next(&reader, &s)) { slices->push_back(Slice(s, Slice::STEAL_REF)); } + grpc_byte_buffer_reader_destroy(&reader); } size_t ByteBuffer::Length() const { @@ -79,4 +80,13 @@ size_t ByteBuffer::Length() const { } } +ByteBuffer::ByteBuffer(const ByteBuffer& buf) + : buffer_(grpc_byte_buffer_copy(buf.buffer_)) {} + +ByteBuffer& ByteBuffer::operator=(const ByteBuffer& buf) { + Clear(); // first remove existing data + buffer_ = grpc_byte_buffer_copy(buf.buffer_); // then copy + return *this; +} + } // namespace grpc diff --git a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs index 246072bff1..d5a1eeb0fb 100644 --- a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs +++ b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -219,4 +219,4 @@ namespace Grpc.Core.Internal.Tests } } } -}
\ No newline at end of file +} diff --git a/src/csharp/Grpc.Core.Tests/PInvokeTest.cs b/src/csharp/Grpc.Core.Tests/PInvokeTest.cs index af55cb0566..da0ea2e6dc 100644 --- a/src/csharp/Grpc.Core.Tests/PInvokeTest.cs +++ b/src/csharp/Grpc.Core.Tests/PInvokeTest.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -45,13 +45,9 @@ namespace Grpc.Core.Tests { public class PInvokeTest { - int counter; - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_test_callback([MarshalAs(UnmanagedType.FunctionPtr)] OpCompletionDelegate callback); + static readonly NativeMethods Native = NativeMethods.Get(); - [DllImport("grpc_csharp_ext.dll")] - static extern IntPtr grpcsharp_test_nop(IntPtr ptr); + int counter; /// <summary> /// (~1.26us .NET Windows) @@ -87,7 +83,7 @@ namespace Grpc.Core.Tests 1000000, 10000000, () => { - grpcsharp_test_callback(handler); + Native.grpcsharp_test_callback(handler); }); Assert.AreNotEqual(0, counter); } @@ -106,7 +102,7 @@ namespace Grpc.Core.Tests 10000, 10000, () => { - grpcsharp_test_callback(new OpCompletionDelegate(Handler)); + Native.grpcsharp_test_callback(new OpCompletionDelegate(Handler)); }); Assert.AreNotEqual(0, counter); } @@ -122,7 +118,7 @@ namespace Grpc.Core.Tests 1000000, 100000000, () => { - grpcsharp_test_nop(IntPtr.Zero); + Native.grpcsharp_test_nop(IntPtr.Zero); }); } diff --git a/src/csharp/Grpc.Core/Grpc.Core.csproj b/src/csharp/Grpc.Core/Grpc.Core.csproj index 5b3da7c6c9..ef4ec70a4a 100644 --- a/src/csharp/Grpc.Core/Grpc.Core.csproj +++ b/src/csharp/Grpc.Core/Grpc.Core.csproj @@ -8,7 +8,7 @@ <RootNamespace>Grpc.Core</RootNamespace> <AssemblyName>Grpc.Core</AssemblyName> <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> - <NuGetPackageImportStamp>be3e9d03</NuGetPackageImportStamp> + <NuGetPackageImportStamp>c0512805</NuGetPackageImportStamp> <DocumentationFile>bin\$(Configuration)\Grpc.Core.Xml</DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> @@ -49,6 +49,10 @@ <Compile Include="AsyncAuthInterceptor.cs" /> <Compile Include="CallCredentials.cs" /> <Compile Include="IClientStreamWriter.cs" /> + <Compile Include="Internal\NativeMethods.cs" /> + <Compile Include="Internal\PlatformApis.cs" /> + <Compile Include="Internal\NativeExtension.cs" /> + <Compile Include="Internal\UnmanagedLibrary.cs" /> <Compile Include="Internal\NativeMetadataCredentialsPlugin.cs" /> <Compile Include="Internal\INativeCall.cs" /> <Compile Include="IServerStreamWriter.cs" /> @@ -128,29 +132,6 @@ <None Include="Grpc.Core.nuspec" /> <None Include="packages.config" /> </ItemGroup> - <Choose> - <!-- Under older versions of Monodevelop, Choose is not supported and is just - ignored, which gives us the desired effect. --> - <When Condition=" '$(OS)' != 'Unix' "> - <ItemGroup> - <Content Include="..\..\..\vsprojects\Debug\grpc_csharp_ext.dll"> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> - </Content> - </ItemGroup> - </When> - <Otherwise /> - </Choose> + <Import Project="NativeDeps.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> - <ItemGroup /> - <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> - <PropertyGroup> - <ErrorText>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}.</ErrorText> - </PropertyGroup> - <Error Condition="!Exists('..\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\portable-net45+netcore45+wpa81+wp8\grpc.dependencies.openssl.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\portable-net45+netcore45+wpa81+wp8\grpc.dependencies.openssl.redist.targets'))" /> - <Error Condition="!Exists('..\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\portable-net45+netcore45+wpa81+wp8\grpc.dependencies.zlib.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\portable-net45+netcore45+wpa81+wp8\grpc.dependencies.zlib.redist.targets'))" /> - </Target> - <Import Project="..\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\portable-net45+netcore45+wpa81+wp8\grpc.dependencies.openssl.redist.targets" Condition="Exists('..\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\portable-net45+netcore45+wpa81+wp8\grpc.dependencies.openssl.redist.targets')" /> - <Import Project="..\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\portable-net45+netcore45+wpa81+wp8\grpc.dependencies.zlib.redist.targets" Condition="Exists('..\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\portable-net45+netcore45+wpa81+wp8\grpc.dependencies.zlib.redist.targets')" /> - <ItemGroup /> - <ItemGroup /> -</Project> +</Project>
\ No newline at end of file diff --git a/src/csharp/Grpc.Core/GrpcEnvironment.cs b/src/csharp/Grpc.Core/GrpcEnvironment.cs index e7c04185c2..f3aa3d79de 100644 --- a/src/csharp/Grpc.Core/GrpcEnvironment.cs +++ b/src/csharp/Grpc.Core/GrpcEnvironment.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -47,15 +47,6 @@ namespace Grpc.Core { const int THREAD_POOL_SIZE = 4; - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_init(); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_shutdown(); - - [DllImport("grpc_csharp_ext.dll")] - static extern IntPtr grpcsharp_version_string(); // returns not-owned const char* - static object staticLock = new object(); static GrpcEnvironment instance; static int refCount; @@ -136,7 +127,6 @@ namespace Grpc.Core /// </summary> private GrpcEnvironment() { - NativeLogRedirector.Redirect(); GrpcNativeInit(); completionRegistry = new CompletionRegistry(this); threadPool = new GrpcThreadPool(this, THREAD_POOL_SIZE); @@ -181,18 +171,18 @@ namespace Grpc.Core /// </summary> internal static string GetCoreVersionString() { - var ptr = grpcsharp_version_string(); // the pointer is not owned + var ptr = NativeMethods.Get().grpcsharp_version_string(); // the pointer is not owned return Marshal.PtrToStringAnsi(ptr); } internal static void GrpcNativeInit() { - grpcsharp_init(); + NativeMethods.Get().grpcsharp_init(); } internal static void GrpcNativeShutdown() { - grpcsharp_shutdown(); + NativeMethods.Get().grpcsharp_shutdown(); } /// <summary> diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs index e3ecc47282..7dc4490281 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -456,4 +456,4 @@ namespace Grpc.Core.Internal streamingCallFinishedTcs.SetResult(null); } } -}
\ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs index 92f8d77e85..81a9a40fcc 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -356,4 +356,4 @@ namespace Grpc.Core.Internal FireCompletion(origCompletionDelegate, msg, null); } } -}
\ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs index 0c805097f9..6752d3fab3 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -215,4 +215,4 @@ namespace Grpc.Core.Internal finishedServersideTcs.SetResult(null); } } -}
\ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs b/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs index c88cae98fe..d5bbf676ff 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -91,4 +91,4 @@ namespace Grpc.Core.Internal tcs.SetException(error); } } -}
\ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs index 3a96414bea..0e2108f0f2 100644 --- a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -42,47 +42,7 @@ namespace Grpc.Core.Internal /// </summary> internal class BatchContextSafeHandle : SafeHandleZeroIsInvalid { - [DllImport("grpc_csharp_ext.dll")] - static extern BatchContextSafeHandle grpcsharp_batch_context_create(); - - [DllImport("grpc_csharp_ext.dll")] - static extern IntPtr grpcsharp_batch_context_recv_initial_metadata(BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern IntPtr grpcsharp_batch_context_recv_message_length(BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_batch_context_recv_message_to_buffer(BatchContextSafeHandle ctx, byte[] buffer, UIntPtr bufferLen); - - [DllImport("grpc_csharp_ext.dll")] - static extern StatusCode grpcsharp_batch_context_recv_status_on_client_status(BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern IntPtr grpcsharp_batch_context_recv_status_on_client_details(BatchContextSafeHandle ctx); // returns const char* - - [DllImport("grpc_csharp_ext.dll")] - static extern IntPtr grpcsharp_batch_context_recv_status_on_client_trailing_metadata(BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern CallSafeHandle grpcsharp_batch_context_server_rpc_new_call(BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern IntPtr grpcsharp_batch_context_server_rpc_new_method(BatchContextSafeHandle ctx); // returns const char* - - [DllImport("grpc_csharp_ext.dll")] - static extern IntPtr grpcsharp_batch_context_server_rpc_new_host(BatchContextSafeHandle ctx); // returns const char* - - [DllImport("grpc_csharp_ext.dll")] - static extern Timespec grpcsharp_batch_context_server_rpc_new_deadline(BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern IntPtr grpcsharp_batch_context_server_rpc_new_request_metadata(BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern int grpcsharp_batch_context_recv_close_on_server_cancelled(BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_batch_context_destroy(IntPtr ctx); + static readonly NativeMethods Native = NativeMethods.Get(); private BatchContextSafeHandle() { @@ -90,7 +50,7 @@ namespace Grpc.Core.Internal public static BatchContextSafeHandle Create() { - return grpcsharp_batch_context_create(); + return Native.grpcsharp_batch_context_create(); } public IntPtr Handle @@ -104,17 +64,17 @@ namespace Grpc.Core.Internal // Gets data of recv_initial_metadata completion. public Metadata GetReceivedInitialMetadata() { - IntPtr metadataArrayPtr = grpcsharp_batch_context_recv_initial_metadata(this); + IntPtr metadataArrayPtr = Native.grpcsharp_batch_context_recv_initial_metadata(this); return MetadataArraySafeHandle.ReadMetadataFromPtrUnsafe(metadataArrayPtr); } // Gets data of recv_status_on_client completion. public ClientSideStatus GetReceivedStatusOnClient() { - string details = Marshal.PtrToStringAnsi(grpcsharp_batch_context_recv_status_on_client_details(this)); - var status = new Status(grpcsharp_batch_context_recv_status_on_client_status(this), details); + string details = Marshal.PtrToStringAnsi(Native.grpcsharp_batch_context_recv_status_on_client_details(this)); + var status = new Status(Native.grpcsharp_batch_context_recv_status_on_client_status(this), details); - IntPtr metadataArrayPtr = grpcsharp_batch_context_recv_status_on_client_trailing_metadata(this); + IntPtr metadataArrayPtr = Native.grpcsharp_batch_context_recv_status_on_client_trailing_metadata(this); var metadata = MetadataArraySafeHandle.ReadMetadataFromPtrUnsafe(metadataArrayPtr); return new ClientSideStatus(status, metadata); @@ -123,26 +83,26 @@ namespace Grpc.Core.Internal // Gets data of recv_message completion. public byte[] GetReceivedMessage() { - IntPtr len = grpcsharp_batch_context_recv_message_length(this); + IntPtr len = Native.grpcsharp_batch_context_recv_message_length(this); if (len == new IntPtr(-1)) { return null; } byte[] data = new byte[(int)len]; - grpcsharp_batch_context_recv_message_to_buffer(this, data, new UIntPtr((ulong)data.Length)); + Native.grpcsharp_batch_context_recv_message_to_buffer(this, data, new UIntPtr((ulong)data.Length)); return data; } // Gets data of server_rpc_new completion. public ServerRpcNew GetServerRpcNew(Server server) { - var call = grpcsharp_batch_context_server_rpc_new_call(this); + var call = Native.grpcsharp_batch_context_server_rpc_new_call(this); - var method = Marshal.PtrToStringAnsi(grpcsharp_batch_context_server_rpc_new_method(this)); - var host = Marshal.PtrToStringAnsi(grpcsharp_batch_context_server_rpc_new_host(this)); - var deadline = grpcsharp_batch_context_server_rpc_new_deadline(this); + var method = Marshal.PtrToStringAnsi(Native.grpcsharp_batch_context_server_rpc_new_method(this)); + var host = Marshal.PtrToStringAnsi(Native.grpcsharp_batch_context_server_rpc_new_host(this)); + var deadline = Native.grpcsharp_batch_context_server_rpc_new_deadline(this); - IntPtr metadataArrayPtr = grpcsharp_batch_context_server_rpc_new_request_metadata(this); + IntPtr metadataArrayPtr = Native.grpcsharp_batch_context_server_rpc_new_request_metadata(this); var metadata = MetadataArraySafeHandle.ReadMetadataFromPtrUnsafe(metadataArrayPtr); return new ServerRpcNew(server, call, method, host, deadline, metadata); @@ -151,12 +111,12 @@ namespace Grpc.Core.Internal // Gets data of receive_close_on_server completion. public bool GetReceivedCloseOnServerCancelled() { - return grpcsharp_batch_context_recv_close_on_server_cancelled(this) != 0; + return Native.grpcsharp_batch_context_recv_close_on_server_cancelled(this) != 0; } protected override bool ReleaseHandle() { - grpcsharp_batch_context_destroy(handle); + Native.grpcsharp_batch_context_destroy(handle); return true; } } @@ -263,4 +223,4 @@ namespace Grpc.Core.Internal } } } -}
\ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/CStringSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CStringSafeHandle.cs index 92fbe8cf0f..4ae57aa773 100644 --- a/src/csharp/Grpc.Core/Internal/CStringSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/CStringSafeHandle.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -39,8 +39,7 @@ namespace Grpc.Core.Internal /// </summary> internal class CStringSafeHandle : SafeHandleZeroIsInvalid { - [DllImport("grpc_csharp_ext.dll")] - static extern void gprsharp_free(IntPtr ptr); + static readonly NativeMethods Native = NativeMethods.Get(); private CStringSafeHandle() { @@ -53,7 +52,7 @@ namespace Grpc.Core.Internal protected override bool ReleaseHandle() { - gprsharp_free(handle); + Native.gprsharp_free(handle); return true; } } diff --git a/src/csharp/Grpc.Core/Internal/CallCredentialsSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CallCredentialsSafeHandle.cs index 3678c7dd86..0f36337f11 100644 --- a/src/csharp/Grpc.Core/Internal/CallCredentialsSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/CallCredentialsSafeHandle.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -40,11 +40,7 @@ namespace Grpc.Core.Internal /// </summary> internal class CallCredentialsSafeHandle : SafeHandleZeroIsInvalid { - [DllImport("grpc_csharp_ext.dll")] - static extern CallCredentialsSafeHandle grpcsharp_composite_call_credentials_create(CallCredentialsSafeHandle creds1, CallCredentialsSafeHandle creds2); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_call_credentials_release(IntPtr credentials); + static readonly NativeMethods Native = NativeMethods.Get(); private CallCredentialsSafeHandle() { @@ -52,12 +48,12 @@ namespace Grpc.Core.Internal public static CallCredentialsSafeHandle CreateComposite(CallCredentialsSafeHandle creds1, CallCredentialsSafeHandle creds2) { - return grpcsharp_composite_call_credentials_create(creds1, creds2); + return Native.grpcsharp_composite_call_credentials_create(creds1, creds2); } protected override bool ReleaseHandle() { - grpcsharp_call_credentials_release(handle); + Native.grpcsharp_call_credentials_release(handle); return true; } } diff --git a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs index 69dbdfea5e..bc045b67b1 100644 --- a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -44,71 +44,12 @@ namespace Grpc.Core.Internal internal class CallSafeHandle : SafeHandleZeroIsInvalid, INativeCall { public static readonly CallSafeHandle NullInstance = new CallSafeHandle(); + static readonly NativeMethods Native = NativeMethods.Get(); const uint GRPC_WRITE_BUFFER_HINT = 1; CompletionRegistry completionRegistry; CompletionQueueSafeHandle completionQueue; - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_cancel(CallSafeHandle call); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_cancel_with_status(CallSafeHandle call, StatusCode status, string description); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_start_unary(CallSafeHandle call, - BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_start_client_streaming(CallSafeHandle call, - BatchContextSafeHandle ctx, MetadataArraySafeHandle metadataArray); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_start_server_streaming(CallSafeHandle call, - BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, - MetadataArraySafeHandle metadataArray, WriteFlags writeFlags); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_start_duplex_streaming(CallSafeHandle call, - BatchContextSafeHandle ctx, MetadataArraySafeHandle metadataArray); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_send_message(CallSafeHandle call, - BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, WriteFlags writeFlags, bool sendEmptyInitialMetadata); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_send_close_from_client(CallSafeHandle call, - BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_send_status_from_server(CallSafeHandle call, - BatchContextSafeHandle ctx, StatusCode statusCode, string statusMessage, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_recv_message(CallSafeHandle call, - BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_recv_initial_metadata(CallSafeHandle call, - BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_start_serverside(CallSafeHandle call, - BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_send_initial_metadata(CallSafeHandle call, - BatchContextSafeHandle ctx, MetadataArraySafeHandle metadataArray); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_call_set_credentials(CallSafeHandle call, CallCredentialsSafeHandle credentials); - - [DllImport("grpc_csharp_ext.dll")] - static extern CStringSafeHandle grpcsharp_call_get_peer(CallSafeHandle call); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_call_destroy(IntPtr call); - private CallSafeHandle() { } @@ -121,7 +62,7 @@ namespace Grpc.Core.Internal public void SetCredentials(CallCredentialsSafeHandle credentials) { - grpcsharp_call_set_credentials(this, credentials).CheckOk(); + Native.grpcsharp_call_set_credentials(this, credentials).CheckOk(); } public void StartUnary(UnaryResponseClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags) @@ -130,7 +71,7 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedStatusOnClient(), context.GetReceivedMessage(), context.GetReceivedInitialMetadata())); - grpcsharp_call_start_unary(this, ctx, payload, new UIntPtr((ulong)payload.Length), metadataArray, writeFlags) + Native.grpcsharp_call_start_unary(this, ctx, payload, new UIntPtr((ulong)payload.Length), metadataArray, writeFlags) .CheckOk(); } } @@ -139,7 +80,7 @@ namespace Grpc.Core.Internal { using (Profilers.ForCurrentThread().NewScope("CallSafeHandle.StartUnary")) { - grpcsharp_call_start_unary(this, ctx, payload, new UIntPtr((ulong)payload.Length), metadataArray, writeFlags) + Native.grpcsharp_call_start_unary(this, ctx, payload, new UIntPtr((ulong)payload.Length), metadataArray, writeFlags) .CheckOk(); } } @@ -150,7 +91,7 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedStatusOnClient(), context.GetReceivedMessage(), context.GetReceivedInitialMetadata())); - grpcsharp_call_start_client_streaming(this, ctx, metadataArray).CheckOk(); + Native.grpcsharp_call_start_client_streaming(this, ctx, metadataArray).CheckOk(); } } @@ -160,7 +101,7 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedStatusOnClient())); - grpcsharp_call_start_server_streaming(this, ctx, payload, new UIntPtr((ulong)payload.Length), metadataArray, writeFlags).CheckOk(); + Native.grpcsharp_call_start_server_streaming(this, ctx, payload, new UIntPtr((ulong)payload.Length), metadataArray, writeFlags).CheckOk(); } } @@ -170,7 +111,7 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedStatusOnClient())); - grpcsharp_call_start_duplex_streaming(this, ctx, metadataArray).CheckOk(); + Native.grpcsharp_call_start_duplex_streaming(this, ctx, metadataArray).CheckOk(); } } @@ -180,7 +121,7 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success)); - grpcsharp_call_send_message(this, ctx, payload, new UIntPtr((ulong)payload.Length), writeFlags, sendEmptyInitialMetadata).CheckOk(); + Native.grpcsharp_call_send_message(this, ctx, payload, new UIntPtr((ulong)payload.Length), writeFlags, sendEmptyInitialMetadata).CheckOk(); } } @@ -190,7 +131,7 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success)); - grpcsharp_call_send_close_from_client(this, ctx).CheckOk(); + Native.grpcsharp_call_send_close_from_client(this, ctx).CheckOk(); } } @@ -200,7 +141,7 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success)); - grpcsharp_call_send_status_from_server(this, ctx, status.StatusCode, status.Detail, metadataArray, sendEmptyInitialMetadata).CheckOk(); + Native.grpcsharp_call_send_status_from_server(this, ctx, status.StatusCode, status.Detail, metadataArray, sendEmptyInitialMetadata).CheckOk(); } } @@ -210,7 +151,7 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedMessage())); - grpcsharp_call_recv_message(this, ctx).CheckOk(); + Native.grpcsharp_call_recv_message(this, ctx).CheckOk(); } } @@ -220,7 +161,7 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedInitialMetadata())); - grpcsharp_call_recv_initial_metadata(this, ctx).CheckOk(); + Native.grpcsharp_call_recv_initial_metadata(this, ctx).CheckOk(); } } @@ -230,7 +171,7 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedCloseOnServerCancelled())); - grpcsharp_call_start_serverside(this, ctx).CheckOk(); + Native.grpcsharp_call_start_serverside(this, ctx).CheckOk(); } } @@ -240,23 +181,23 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success)); - grpcsharp_call_send_initial_metadata(this, ctx, metadataArray).CheckOk(); + Native.grpcsharp_call_send_initial_metadata(this, ctx, metadataArray).CheckOk(); } } public void Cancel() { - grpcsharp_call_cancel(this).CheckOk(); + Native.grpcsharp_call_cancel(this).CheckOk(); } public void CancelWithStatus(Status status) { - grpcsharp_call_cancel_with_status(this, status.StatusCode, status.Detail).CheckOk(); + Native.grpcsharp_call_cancel_with_status(this, status.StatusCode, status.Detail).CheckOk(); } public string GetPeer() { - using (var cstring = grpcsharp_call_get_peer(this)) + using (var cstring = Native.grpcsharp_call_get_peer(this)) { return cstring.GetValue(); } @@ -264,7 +205,7 @@ namespace Grpc.Core.Internal protected override bool ReleaseHandle() { - grpcsharp_call_destroy(handle); + Native.grpcsharp_call_destroy(handle); return true; } @@ -273,4 +214,4 @@ namespace Grpc.Core.Internal return buffered ? 0 : GRPC_WRITE_BUFFER_HINT; } } -}
\ No newline at end of file +} diff --git a/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs index ea5b52374e..f6aa710b21 100644 --- a/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -39,17 +39,7 @@ namespace Grpc.Core.Internal /// </summary> internal class ChannelArgsSafeHandle : SafeHandleZeroIsInvalid { - [DllImport("grpc_csharp_ext.dll")] - static extern ChannelArgsSafeHandle grpcsharp_channel_args_create(UIntPtr numArgs); - - [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] - static extern void grpcsharp_channel_args_set_string(ChannelArgsSafeHandle args, UIntPtr index, string key, string value); - - [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] - static extern void grpcsharp_channel_args_set_integer(ChannelArgsSafeHandle args, UIntPtr index, string key, int value); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_channel_args_destroy(IntPtr args); + static readonly NativeMethods Native = NativeMethods.Get(); private ChannelArgsSafeHandle() { @@ -62,22 +52,22 @@ namespace Grpc.Core.Internal public static ChannelArgsSafeHandle Create(int size) { - return grpcsharp_channel_args_create(new UIntPtr((uint)size)); + return Native.grpcsharp_channel_args_create(new UIntPtr((uint)size)); } public void SetString(int index, string key, string value) { - grpcsharp_channel_args_set_string(this, new UIntPtr((uint)index), key, value); + Native.grpcsharp_channel_args_set_string(this, new UIntPtr((uint)index), key, value); } public void SetInteger(int index, string key, int value) { - grpcsharp_channel_args_set_integer(this, new UIntPtr((uint)index), key, value); + Native.grpcsharp_channel_args_set_integer(this, new UIntPtr((uint)index), key, value); } protected override bool ReleaseHandle() { - grpcsharp_channel_args_destroy(handle); + Native.grpcsharp_channel_args_destroy(handle); return true; } } diff --git a/src/csharp/Grpc.Core/Internal/ChannelCredentialsSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ChannelCredentialsSafeHandle.cs index 8a58c64478..65cc2e019f 100644 --- a/src/csharp/Grpc.Core/Internal/ChannelCredentialsSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/ChannelCredentialsSafeHandle.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -40,14 +40,7 @@ namespace Grpc.Core.Internal /// </summary> internal class ChannelCredentialsSafeHandle : SafeHandleZeroIsInvalid { - [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] - static extern ChannelCredentialsSafeHandle grpcsharp_ssl_credentials_create(string pemRootCerts, string keyCertPairCertChain, string keyCertPairPrivateKey); - - [DllImport("grpc_csharp_ext.dll")] - static extern ChannelCredentialsSafeHandle grpcsharp_composite_channel_credentials_create(ChannelCredentialsSafeHandle channelCreds, CallCredentialsSafeHandle callCreds); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_channel_credentials_release(IntPtr credentials); + static readonly NativeMethods Native = NativeMethods.Get(); private ChannelCredentialsSafeHandle() { @@ -64,22 +57,22 @@ namespace Grpc.Core.Internal { if (keyCertPair != null) { - return grpcsharp_ssl_credentials_create(pemRootCerts, keyCertPair.CertificateChain, keyCertPair.PrivateKey); + return Native.grpcsharp_ssl_credentials_create(pemRootCerts, keyCertPair.CertificateChain, keyCertPair.PrivateKey); } else { - return grpcsharp_ssl_credentials_create(pemRootCerts, null, null); + return Native.grpcsharp_ssl_credentials_create(pemRootCerts, null, null); } } public static ChannelCredentialsSafeHandle CreateComposite(ChannelCredentialsSafeHandle channelCreds, CallCredentialsSafeHandle callCreds) { - return grpcsharp_composite_channel_credentials_create(channelCreds, callCreds); + return Native.grpcsharp_composite_channel_credentials_create(channelCreds, callCreds); } protected override bool ReleaseHandle() { - grpcsharp_channel_credentials_release(handle); + Native.grpcsharp_channel_credentials_release(handle); return true; } } diff --git a/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs index 4a5584121e..2199905cc6 100644 --- a/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -41,27 +41,7 @@ namespace Grpc.Core.Internal /// </summary> internal class ChannelSafeHandle : SafeHandleZeroIsInvalid { - [DllImport("grpc_csharp_ext.dll")] - static extern ChannelSafeHandle grpcsharp_insecure_channel_create(string target, ChannelArgsSafeHandle channelArgs); - - [DllImport("grpc_csharp_ext.dll")] - static extern ChannelSafeHandle grpcsharp_secure_channel_create(ChannelCredentialsSafeHandle credentials, string target, ChannelArgsSafeHandle channelArgs); - - [DllImport("grpc_csharp_ext.dll")] - static extern CallSafeHandle grpcsharp_channel_create_call(ChannelSafeHandle channel, CallSafeHandle parentCall, ContextPropagationFlags propagationMask, CompletionQueueSafeHandle cq, string method, string host, Timespec deadline); - - [DllImport("grpc_csharp_ext.dll")] - static extern ChannelState grpcsharp_channel_check_connectivity_state(ChannelSafeHandle channel, int tryToConnect); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_channel_watch_connectivity_state(ChannelSafeHandle channel, ChannelState lastObservedState, - Timespec deadline, CompletionQueueSafeHandle cq, BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern CStringSafeHandle grpcsharp_channel_get_target(ChannelSafeHandle call); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_channel_destroy(IntPtr channel); + static readonly NativeMethods Native = NativeMethods.Get(); private ChannelSafeHandle() { @@ -72,7 +52,7 @@ namespace Grpc.Core.Internal // Increment reference count for the native gRPC environment to make sure we don't do grpc_shutdown() before destroying the server handle. // Doing so would make object finalizer crash if we end up abandoning the handle. GrpcEnvironment.GrpcNativeInit(); - return grpcsharp_insecure_channel_create(target, channelArgs); + return Native.grpcsharp_insecure_channel_create(target, channelArgs); } public static ChannelSafeHandle CreateSecure(ChannelCredentialsSafeHandle credentials, string target, ChannelArgsSafeHandle channelArgs) @@ -80,14 +60,14 @@ namespace Grpc.Core.Internal // Increment reference count for the native gRPC environment to make sure we don't do grpc_shutdown() before destroying the server handle. // Doing so would make object finalizer crash if we end up abandoning the handle. GrpcEnvironment.GrpcNativeInit(); - return grpcsharp_secure_channel_create(credentials, target, channelArgs); + return Native.grpcsharp_secure_channel_create(credentials, target, channelArgs); } public CallSafeHandle CreateCall(CompletionRegistry registry, CallSafeHandle parentCall, ContextPropagationFlags propagationMask, CompletionQueueSafeHandle cq, string method, string host, Timespec deadline, CallCredentialsSafeHandle credentials) { using (Profilers.ForCurrentThread().NewScope("ChannelSafeHandle.CreateCall")) { - var result = grpcsharp_channel_create_call(this, parentCall, propagationMask, cq, method, host, deadline); + var result = Native.grpcsharp_channel_create_call(this, parentCall, propagationMask, cq, method, host, deadline); if (credentials != null) { result.SetCredentials(credentials); @@ -99,7 +79,7 @@ namespace Grpc.Core.Internal public ChannelState CheckConnectivityState(bool tryToConnect) { - return grpcsharp_channel_check_connectivity_state(this, tryToConnect ? 1 : 0); + return Native.grpcsharp_channel_check_connectivity_state(this, tryToConnect ? 1 : 0); } public void WatchConnectivityState(ChannelState lastObservedState, Timespec deadline, CompletionQueueSafeHandle cq, @@ -107,12 +87,12 @@ namespace Grpc.Core.Internal { var ctx = BatchContextSafeHandle.Create(); completionRegistry.RegisterBatchCompletion(ctx, callback); - grpcsharp_channel_watch_connectivity_state(this, lastObservedState, deadline, cq, ctx); + Native.grpcsharp_channel_watch_connectivity_state(this, lastObservedState, deadline, cq, ctx); } public string GetTarget() { - using (var cstring = grpcsharp_channel_get_target(this)) + using (var cstring = Native.grpcsharp_channel_get_target(this)) { return cstring.GetValue(); } @@ -120,7 +100,7 @@ namespace Grpc.Core.Internal protected override bool ReleaseHandle() { - grpcsharp_channel_destroy(handle); + Native.grpcsharp_channel_destroy(handle); GrpcEnvironment.GrpcNativeShutdown(); return true; } diff --git a/src/csharp/Grpc.Core/Internal/CompletionQueueEvent.cs b/src/csharp/Grpc.Core/Internal/CompletionQueueEvent.cs index 3f517514a3..36a92ecd8e 100644 --- a/src/csharp/Grpc.Core/Internal/CompletionQueueEvent.cs +++ b/src/csharp/Grpc.Core/Internal/CompletionQueueEvent.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -42,8 +42,7 @@ namespace Grpc.Core.Internal [StructLayout(LayoutKind.Sequential)] internal struct CompletionQueueEvent { - [DllImport("grpc_csharp_ext.dll")] - static extern int grpcsharp_sizeof_grpc_event(); + static readonly NativeMethods Native = NativeMethods.Get(); public GRPCCompletionType type; public int success; @@ -53,7 +52,7 @@ namespace Grpc.Core.Internal { get { - return grpcsharp_sizeof_grpc_event(); + return Native.grpcsharp_sizeof_grpc_event(); } } } diff --git a/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs index 3754ad382e..9d7a990c42 100644 --- a/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -42,22 +42,9 @@ namespace Grpc.Core.Internal /// </summary> internal class CompletionQueueSafeHandle : SafeHandleZeroIsInvalid { - AtomicCounter shutdownRefcount = new AtomicCounter(1); - - [DllImport("grpc_csharp_ext.dll")] - static extern CompletionQueueSafeHandle grpcsharp_completion_queue_create(); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_completion_queue_shutdown(CompletionQueueSafeHandle cq); + static readonly NativeMethods Native = NativeMethods.Get(); - [DllImport("grpc_csharp_ext.dll")] - static extern CompletionQueueEvent grpcsharp_completion_queue_next(CompletionQueueSafeHandle cq); - - [DllImport("grpc_csharp_ext.dll")] - static extern CompletionQueueEvent grpcsharp_completion_queue_pluck(CompletionQueueSafeHandle cq, IntPtr tag); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_completion_queue_destroy(IntPtr cq); + AtomicCounter shutdownRefcount = new AtomicCounter(1); private CompletionQueueSafeHandle() { @@ -65,20 +52,20 @@ namespace Grpc.Core.Internal public static CompletionQueueSafeHandle Create() { - return grpcsharp_completion_queue_create(); + return Native.grpcsharp_completion_queue_create(); } public CompletionQueueEvent Next() { - return grpcsharp_completion_queue_next(this); + return Native.grpcsharp_completion_queue_next(this); } public CompletionQueueEvent Pluck(IntPtr tag) { using (Profilers.ForCurrentThread().NewScope("CompletionQueueSafeHandle.Pluck")) { - return grpcsharp_completion_queue_pluck(this, tag); + return Native.grpcsharp_completion_queue_pluck(this, tag); } } @@ -98,7 +85,7 @@ namespace Grpc.Core.Internal protected override bool ReleaseHandle() { - grpcsharp_completion_queue_destroy(handle); + Native.grpcsharp_completion_queue_destroy(handle); return true; } @@ -106,7 +93,7 @@ namespace Grpc.Core.Internal { if (shutdownRefcount.Decrement() == 0) { - grpcsharp_completion_queue_shutdown(this); + Native.grpcsharp_completion_queue_shutdown(this); } } diff --git a/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs b/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs index ed1bd24498..81760d7a10 100644 --- a/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -40,26 +40,7 @@ namespace Grpc.Core.Internal /// </summary> internal class MetadataArraySafeHandle : SafeHandleZeroIsInvalid { - [DllImport("grpc_csharp_ext.dll")] - static extern MetadataArraySafeHandle grpcsharp_metadata_array_create(UIntPtr capacity); - - [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] - static extern void grpcsharp_metadata_array_add(MetadataArraySafeHandle array, string key, byte[] value, UIntPtr valueLength); - - [DllImport("grpc_csharp_ext.dll")] - static extern UIntPtr grpcsharp_metadata_array_count(IntPtr metadataArray); - - [DllImport("grpc_csharp_ext.dll")] - static extern IntPtr grpcsharp_metadata_array_get_key(IntPtr metadataArray, UIntPtr index); - - [DllImport("grpc_csharp_ext.dll")] - static extern IntPtr grpcsharp_metadata_array_get_value(IntPtr metadataArray, UIntPtr index); - - [DllImport("grpc_csharp_ext.dll")] - static extern UIntPtr grpcsharp_metadata_array_get_value_length(IntPtr metadataArray, UIntPtr index); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_metadata_array_destroy_full(IntPtr array); + static readonly NativeMethods Native = NativeMethods.Get(); private MetadataArraySafeHandle() { @@ -70,11 +51,11 @@ namespace Grpc.Core.Internal using (Profilers.ForCurrentThread().NewScope("MetadataArraySafeHandle.Create")) { // TODO(jtattermusch): we might wanna check that the metadata is readonly - var metadataArray = grpcsharp_metadata_array_create(new UIntPtr((ulong)metadata.Count)); + var metadataArray = Native.grpcsharp_metadata_array_create(new UIntPtr((ulong)metadata.Count)); for (int i = 0; i < metadata.Count; i++) { var valueBytes = metadata[i].GetSerializedValueUnsafe(); - grpcsharp_metadata_array_add(metadataArray, metadata[i].Key, valueBytes, new UIntPtr((ulong)valueBytes.Length)); + Native.grpcsharp_metadata_array_add(metadataArray, metadata[i].Key, valueBytes, new UIntPtr((ulong)valueBytes.Length)); } return metadataArray; } @@ -90,15 +71,15 @@ namespace Grpc.Core.Internal return null; } - ulong count = grpcsharp_metadata_array_count(metadataArray).ToUInt64(); + ulong count = Native.grpcsharp_metadata_array_count(metadataArray).ToUInt64(); var metadata = new Metadata(); for (ulong i = 0; i < count; i++) { var index = new UIntPtr(i); - string key = Marshal.PtrToStringAnsi(grpcsharp_metadata_array_get_key(metadataArray, index)); - var bytes = new byte[grpcsharp_metadata_array_get_value_length(metadataArray, index).ToUInt64()]; - Marshal.Copy(grpcsharp_metadata_array_get_value(metadataArray, index), bytes, 0, bytes.Length); + string key = Marshal.PtrToStringAnsi(Native.grpcsharp_metadata_array_get_key(metadataArray, index)); + var bytes = new byte[Native.grpcsharp_metadata_array_get_value_length(metadataArray, index).ToUInt64()]; + Marshal.Copy(Native.grpcsharp_metadata_array_get_value(metadataArray, index), bytes, 0, bytes.Length); metadata.Add(Metadata.Entry.CreateUnsafe(key, bytes)); } return metadata; @@ -114,7 +95,7 @@ namespace Grpc.Core.Internal protected override bool ReleaseHandle() { - grpcsharp_metadata_array_destroy_full(handle); + Native.grpcsharp_metadata_array_destroy_full(handle); return true; } } diff --git a/src/csharp/Grpc.Core/Internal/NativeExtension.cs b/src/csharp/Grpc.Core/Internal/NativeExtension.cs new file mode 100644 index 0000000000..137533b3ef --- /dev/null +++ b/src/csharp/Grpc.Core/Internal/NativeExtension.cs @@ -0,0 +1,158 @@ +#region Copyright notice and license + +// Copyright 2015-2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#endregion + +using System; +using System.IO; +using System.Reflection; + +using Grpc.Core.Logging; + +namespace Grpc.Core.Internal +{ + /// <summary> + /// Takes care of loading C# native extension and provides access to PInvoke calls the library exports. + /// </summary> + internal sealed class NativeExtension + { + const string NativeLibrariesDir = "nativelibs"; + + static readonly ILogger Logger = GrpcEnvironment.Logger.ForType<NativeExtension>(); + static readonly object staticLock = new object(); + static volatile NativeExtension instance; + + readonly NativeMethods nativeMethods; + + private NativeExtension() + { + this.nativeMethods = new NativeMethods(Load()); + + // Redirect the the native logs as the very first thing after loading the native extension + // to make sure we don't lose any logs. + NativeLogRedirector.Redirect(this.nativeMethods); + + Logger.Debug("gRPC native library loaded successfully."); + } + + /// <summary> + /// Gets singleton instance of this class. + /// The native extension is loaded when called for the first time. + /// </summary> + public static NativeExtension Get() + { + if (instance == null) + { + lock (staticLock) + { + if (instance == null) { + instance = new NativeExtension(); + } + } + } + return instance; + } + + /// <summary> + /// Provides access to the exported native methods. + /// </summary> + public NativeMethods NativeMethods + { + get { return this.nativeMethods; } + } + + /// <summary> + /// Detects which configuration of native extension to load and load it. + /// </summary> + private static UnmanagedLibrary Load() + { + // TODO: allow customizing path to native extension (possibly through exposing a GrpcEnvironment property). + + var libraryFlavor = string.Format("{0}_{1}", GetPlatformString(), GetArchitectureString()); + var fullPath = Path.Combine(GetExecutingAssemblyDirectory(), + NativeLibrariesDir, libraryFlavor, GetNativeLibraryFilename()); + return new UnmanagedLibrary(fullPath); + } + + private static string GetExecutingAssemblyDirectory() + { + return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + } + + private static string GetPlatformString() + { + if (PlatformApis.IsWindows) + { + return "windows"; + } + if (PlatformApis.IsLinux) + { + return "linux"; + } + if (PlatformApis.IsMacOSX) + { + return "macosx"; + } + throw new InvalidOperationException("Unsupported platform."); + } + + // Currently, only Intel platform is supported. + private static string GetArchitectureString() + { + if (PlatformApis.Is64Bit) + { + return "x64"; + } + else + { + return "x86"; + } + } + + // platform specific file name of the extension library + private static string GetNativeLibraryFilename() + { + if (PlatformApis.IsWindows) + { + return "grpc_csharp_ext.dll"; + } + if (PlatformApis.IsLinux) + { + return "libgrpc_csharp_ext.so"; + } + if (PlatformApis.IsMacOSX) + { + return "libgrpc_csharp_ext.dylib"; + } + throw new InvalidOperationException("Unsupported platform."); + } + } +} diff --git a/src/csharp/Grpc.Core/Internal/NativeLogRedirector.cs b/src/csharp/Grpc.Core/Internal/NativeLogRedirector.cs index b8a55c5fe8..4bbbb4808c 100644 --- a/src/csharp/Grpc.Core/Internal/NativeLogRedirector.cs +++ b/src/csharp/Grpc.Core/Internal/NativeLogRedirector.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -51,20 +51,17 @@ namespace Grpc.Core.Internal static object staticLock = new object(); static GprLogDelegate writeCallback; - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_redirect_log(GprLogDelegate callback); - /// <summary> /// Redirects logs from native gRPC C core library to a general logger. /// </summary> - public static void Redirect() + public static void Redirect(NativeMethods native) { lock (staticLock) { if (writeCallback == null) { writeCallback = new GprLogDelegate(HandleWrite); - grpcsharp_redirect_log(writeCallback); + native.grpcsharp_redirect_log(writeCallback); } } } diff --git a/src/csharp/Grpc.Core/Internal/NativeMetadataCredentialsPlugin.cs b/src/csharp/Grpc.Core/Internal/NativeMetadataCredentialsPlugin.cs index 8bb646d303..36b865c09c 100644 --- a/src/csharp/Grpc.Core/Internal/NativeMetadataCredentialsPlugin.cs +++ b/src/csharp/Grpc.Core/Internal/NativeMetadataCredentialsPlugin.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -44,12 +44,7 @@ namespace Grpc.Core.Internal { const string GetMetadataExceptionMsg = "Exception occured in metadata credentials plugin."; static readonly ILogger Logger = GrpcEnvironment.Logger.ForType<NativeMetadataCredentialsPlugin>(); - - [DllImport("grpc_csharp_ext.dll")] - static extern CallCredentialsSafeHandle grpcsharp_metadata_credentials_create_from_plugin(NativeMetadataInterceptor interceptor); - - [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] - static extern void grpcsharp_metadata_credentials_notify_from_plugin(IntPtr callbackPtr, IntPtr userData, MetadataArraySafeHandle metadataArray, StatusCode statusCode, string errorDetails); + static readonly NativeMethods Native = NativeMethods.Get(); AsyncAuthInterceptor interceptor; GCHandle gcHandle; @@ -63,7 +58,7 @@ namespace Grpc.Core.Internal // Make sure the callback doesn't get garbage collected until it is destroyed. this.gcHandle = GCHandle.Alloc(this.nativeInterceptor, GCHandleType.Normal); - this.credentials = grpcsharp_metadata_credentials_create_from_plugin(nativeInterceptor); + this.credentials = Native.grpcsharp_metadata_credentials_create_from_plugin(nativeInterceptor); } public CallCredentialsSafeHandle Credentials @@ -87,7 +82,7 @@ namespace Grpc.Core.Internal } catch (Exception e) { - grpcsharp_metadata_credentials_notify_from_plugin(callbackPtr, userDataPtr, MetadataArraySafeHandle.Create(Metadata.Empty), StatusCode.Unknown, GetMetadataExceptionMsg); + Native.grpcsharp_metadata_credentials_notify_from_plugin(callbackPtr, userDataPtr, MetadataArraySafeHandle.Create(Metadata.Empty), StatusCode.Unknown, GetMetadataExceptionMsg); Logger.Error(e, GetMetadataExceptionMsg); } } @@ -101,12 +96,12 @@ namespace Grpc.Core.Internal using (var metadataArray = MetadataArraySafeHandle.Create(metadata)) { - grpcsharp_metadata_credentials_notify_from_plugin(callbackPtr, userDataPtr, metadataArray, StatusCode.OK, null); + Native.grpcsharp_metadata_credentials_notify_from_plugin(callbackPtr, userDataPtr, metadataArray, StatusCode.OK, null); } } catch (Exception e) { - grpcsharp_metadata_credentials_notify_from_plugin(callbackPtr, userDataPtr, MetadataArraySafeHandle.Create(Metadata.Empty), StatusCode.Unknown, GetMetadataExceptionMsg); + Native.grpcsharp_metadata_credentials_notify_from_plugin(callbackPtr, userDataPtr, MetadataArraySafeHandle.Create(Metadata.Empty), StatusCode.Unknown, GetMetadataExceptionMsg); Logger.Error(e, GetMetadataExceptionMsg); } } diff --git a/src/csharp/Grpc.Core/Internal/NativeMethods.cs b/src/csharp/Grpc.Core/Internal/NativeMethods.cs new file mode 100644 index 0000000000..af37d61c73 --- /dev/null +++ b/src/csharp/Grpc.Core/Internal/NativeMethods.cs @@ -0,0 +1,816 @@ +#region Copyright notice and license + +// Copyright 2015-2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#endregion + +using System; +using System.Collections.Concurrent; +using System.Diagnostics; +using System.IO; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Threading; + +using Grpc.Core.Logging; +using Grpc.Core.Utils; + +namespace Grpc.Core.Internal +{ + /// <summary> + /// Provides access to all native methods provided by <c>NativeExtension</c>. + /// An extra level of indirection is added to P/Invoke calls to allow intelligent loading + /// of the right configuration of the native extension based on current platform, architecture etc. + /// </summary> + internal class NativeMethods + { + #region Native methods + + public readonly Delegates.grpcsharp_init_delegate grpcsharp_init; + public readonly Delegates.grpcsharp_shutdown_delegate grpcsharp_shutdown; + public readonly Delegates.grpcsharp_version_string_delegate grpcsharp_version_string; + + public readonly Delegates.grpcsharp_batch_context_create_delegate grpcsharp_batch_context_create; + public readonly Delegates.grpcsharp_batch_context_recv_initial_metadata_delegate grpcsharp_batch_context_recv_initial_metadata; + public readonly Delegates.grpcsharp_batch_context_recv_message_length_delegate grpcsharp_batch_context_recv_message_length; + public readonly Delegates.grpcsharp_batch_context_recv_message_to_buffer_delegate grpcsharp_batch_context_recv_message_to_buffer; + public readonly Delegates.grpcsharp_batch_context_recv_status_on_client_status_delegate grpcsharp_batch_context_recv_status_on_client_status; + public readonly Delegates.grpcsharp_batch_context_recv_status_on_client_details_delegate grpcsharp_batch_context_recv_status_on_client_details; + public readonly Delegates.grpcsharp_batch_context_recv_status_on_client_trailing_metadata_delegate grpcsharp_batch_context_recv_status_on_client_trailing_metadata; + public readonly Delegates.grpcsharp_batch_context_server_rpc_new_call_delegate grpcsharp_batch_context_server_rpc_new_call; + public readonly Delegates.grpcsharp_batch_context_server_rpc_new_method_delegate grpcsharp_batch_context_server_rpc_new_method; + public readonly Delegates.grpcsharp_batch_context_server_rpc_new_host_delegate grpcsharp_batch_context_server_rpc_new_host; + public readonly Delegates.grpcsharp_batch_context_server_rpc_new_deadline_delegate grpcsharp_batch_context_server_rpc_new_deadline; + public readonly Delegates.grpcsharp_batch_context_server_rpc_new_request_metadata_delegate grpcsharp_batch_context_server_rpc_new_request_metadata; + public readonly Delegates.grpcsharp_batch_context_recv_close_on_server_cancelled_delegate grpcsharp_batch_context_recv_close_on_server_cancelled; + public readonly Delegates.grpcsharp_batch_context_destroy_delegate grpcsharp_batch_context_destroy; + + public readonly Delegates.grpcsharp_composite_call_credentials_create_delegate grpcsharp_composite_call_credentials_create; + public readonly Delegates.grpcsharp_call_credentials_release_delegate grpcsharp_call_credentials_release; + + public readonly Delegates.grpcsharp_call_cancel_delegate grpcsharp_call_cancel; + public readonly Delegates.grpcsharp_call_cancel_with_status_delegate grpcsharp_call_cancel_with_status; + public readonly Delegates.grpcsharp_call_start_unary_delegate grpcsharp_call_start_unary; + public readonly Delegates.grpcsharp_call_start_client_streaming_delegate grpcsharp_call_start_client_streaming; + public readonly Delegates.grpcsharp_call_start_server_streaming_delegate grpcsharp_call_start_server_streaming; + public readonly Delegates.grpcsharp_call_start_duplex_streaming_delegate grpcsharp_call_start_duplex_streaming; + public readonly Delegates.grpcsharp_call_send_message_delegate grpcsharp_call_send_message; + public readonly Delegates.grpcsharp_call_send_close_from_client_delegate grpcsharp_call_send_close_from_client; + public readonly Delegates.grpcsharp_call_send_status_from_server_delegate grpcsharp_call_send_status_from_server; + public readonly Delegates.grpcsharp_call_recv_message_delegate grpcsharp_call_recv_message; + public readonly Delegates.grpcsharp_call_recv_initial_metadata_delegate grpcsharp_call_recv_initial_metadata; + public readonly Delegates.grpcsharp_call_start_serverside_delegate grpcsharp_call_start_serverside; + public readonly Delegates.grpcsharp_call_send_initial_metadata_delegate grpcsharp_call_send_initial_metadata; + public readonly Delegates.grpcsharp_call_set_credentials_delegate grpcsharp_call_set_credentials; + public readonly Delegates.grpcsharp_call_get_peer_delegate grpcsharp_call_get_peer; + public readonly Delegates.grpcsharp_call_destroy_delegate grpcsharp_call_destroy; + + public readonly Delegates.grpcsharp_channel_args_create_delegate grpcsharp_channel_args_create; + public readonly Delegates.grpcsharp_channel_args_set_string_delegate grpcsharp_channel_args_set_string; + public readonly Delegates.grpcsharp_channel_args_set_integer_delegate grpcsharp_channel_args_set_integer; + public readonly Delegates.grpcsharp_channel_args_destroy_delegate grpcsharp_channel_args_destroy; + + public readonly Delegates.grpcsharp_ssl_credentials_create_delegate grpcsharp_ssl_credentials_create; + public readonly Delegates.grpcsharp_composite_channel_credentials_create_delegate grpcsharp_composite_channel_credentials_create; + public readonly Delegates.grpcsharp_channel_credentials_release_delegate grpcsharp_channel_credentials_release; + + public readonly Delegates.grpcsharp_insecure_channel_create_delegate grpcsharp_insecure_channel_create; + public readonly Delegates.grpcsharp_secure_channel_create_delegate grpcsharp_secure_channel_create; + public readonly Delegates.grpcsharp_channel_create_call_delegate grpcsharp_channel_create_call; + public readonly Delegates.grpcsharp_channel_check_connectivity_state_delegate grpcsharp_channel_check_connectivity_state; + public readonly Delegates.grpcsharp_channel_watch_connectivity_state_delegate grpcsharp_channel_watch_connectivity_state; + public readonly Delegates.grpcsharp_channel_get_target_delegate grpcsharp_channel_get_target; + public readonly Delegates.grpcsharp_channel_destroy_delegate grpcsharp_channel_destroy; + + public readonly Delegates.grpcsharp_sizeof_grpc_event_delegate grpcsharp_sizeof_grpc_event; + + public readonly Delegates.grpcsharp_completion_queue_create_delegate grpcsharp_completion_queue_create; + public readonly Delegates.grpcsharp_completion_queue_shutdown_delegate grpcsharp_completion_queue_shutdown; + public readonly Delegates.grpcsharp_completion_queue_next_delegate grpcsharp_completion_queue_next; + public readonly Delegates.grpcsharp_completion_queue_pluck_delegate grpcsharp_completion_queue_pluck; + public readonly Delegates.grpcsharp_completion_queue_destroy_delegate grpcsharp_completion_queue_destroy; + + public readonly Delegates.gprsharp_free_delegate gprsharp_free; + + public readonly Delegates.grpcsharp_metadata_array_create_delegate grpcsharp_metadata_array_create; + public readonly Delegates.grpcsharp_metadata_array_add_delegate grpcsharp_metadata_array_add; + public readonly Delegates.grpcsharp_metadata_array_count_delegate grpcsharp_metadata_array_count; + public readonly Delegates.grpcsharp_metadata_array_get_key_delegate grpcsharp_metadata_array_get_key; + public readonly Delegates.grpcsharp_metadata_array_get_value_delegate grpcsharp_metadata_array_get_value; + public readonly Delegates.grpcsharp_metadata_array_get_value_length_delegate grpcsharp_metadata_array_get_value_length; + public readonly Delegates.grpcsharp_metadata_array_destroy_full_delegate grpcsharp_metadata_array_destroy_full; + + public readonly Delegates.grpcsharp_redirect_log_delegate grpcsharp_redirect_log; + + public readonly Delegates.grpcsharp_metadata_credentials_create_from_plugin_delegate grpcsharp_metadata_credentials_create_from_plugin; + public readonly Delegates.grpcsharp_metadata_credentials_notify_from_plugin_delegate grpcsharp_metadata_credentials_notify_from_plugin; + + public readonly Delegates.grpcsharp_ssl_server_credentials_create_delegate grpcsharp_ssl_server_credentials_create; + public readonly Delegates.grpcsharp_server_credentials_release_delegate grpcsharp_server_credentials_release; + + public readonly Delegates.grpcsharp_server_create_delegate grpcsharp_server_create; + public readonly Delegates.grpcsharp_server_add_insecure_http2_port_delegate grpcsharp_server_add_insecure_http2_port; + public readonly Delegates.grpcsharp_server_add_secure_http2_port_delegate grpcsharp_server_add_secure_http2_port; + public readonly Delegates.grpcsharp_server_start_delegate grpcsharp_server_start; + public readonly Delegates.grpcsharp_server_request_call_delegate grpcsharp_server_request_call; + public readonly Delegates.grpcsharp_server_cancel_all_calls_delegate grpcsharp_server_cancel_all_calls; + public readonly Delegates.grpcsharp_server_shutdown_and_notify_callback_delegate grpcsharp_server_shutdown_and_notify_callback; + public readonly Delegates.grpcsharp_server_destroy_delegate grpcsharp_server_destroy; + + public readonly Delegates.gprsharp_now_delegate gprsharp_now; + public readonly Delegates.gprsharp_inf_future_delegate gprsharp_inf_future; + public readonly Delegates.gprsharp_inf_past_delegate gprsharp_inf_past; + public readonly Delegates.gprsharp_convert_clock_type_delegate gprsharp_convert_clock_type; + public readonly Delegates.gprsharp_sizeof_timespec_delegate gprsharp_sizeof_timespec; + + public readonly Delegates.grpcsharp_test_callback_delegate grpcsharp_test_callback; + public readonly Delegates.grpcsharp_test_nop_delegate grpcsharp_test_nop; + + #endregion + + public NativeMethods(UnmanagedLibrary library) + { + if (PlatformApis.IsLinux || PlatformApis.IsMacOSX) + { + this.grpcsharp_init = GetMethodDelegate<Delegates.grpcsharp_init_delegate>(library); + this.grpcsharp_shutdown = GetMethodDelegate<Delegates.grpcsharp_shutdown_delegate>(library); + this.grpcsharp_version_string = GetMethodDelegate<Delegates.grpcsharp_version_string_delegate>(library); + + this.grpcsharp_batch_context_create = GetMethodDelegate<Delegates.grpcsharp_batch_context_create_delegate>(library); + this.grpcsharp_batch_context_recv_initial_metadata = GetMethodDelegate<Delegates.grpcsharp_batch_context_recv_initial_metadata_delegate>(library); + this.grpcsharp_batch_context_recv_message_length = GetMethodDelegate<Delegates.grpcsharp_batch_context_recv_message_length_delegate>(library); + this.grpcsharp_batch_context_recv_message_to_buffer = GetMethodDelegate<Delegates.grpcsharp_batch_context_recv_message_to_buffer_delegate>(library); + this.grpcsharp_batch_context_recv_status_on_client_status = GetMethodDelegate<Delegates.grpcsharp_batch_context_recv_status_on_client_status_delegate>(library); + this.grpcsharp_batch_context_recv_status_on_client_details = GetMethodDelegate<Delegates.grpcsharp_batch_context_recv_status_on_client_details_delegate>(library); + this.grpcsharp_batch_context_recv_status_on_client_trailing_metadata = GetMethodDelegate<Delegates.grpcsharp_batch_context_recv_status_on_client_trailing_metadata_delegate>(library); + this.grpcsharp_batch_context_server_rpc_new_call = GetMethodDelegate<Delegates.grpcsharp_batch_context_server_rpc_new_call_delegate>(library); + this.grpcsharp_batch_context_server_rpc_new_method = GetMethodDelegate<Delegates.grpcsharp_batch_context_server_rpc_new_method_delegate>(library); + this.grpcsharp_batch_context_server_rpc_new_host = GetMethodDelegate<Delegates.grpcsharp_batch_context_server_rpc_new_host_delegate>(library); + this.grpcsharp_batch_context_server_rpc_new_deadline = GetMethodDelegate<Delegates.grpcsharp_batch_context_server_rpc_new_deadline_delegate>(library); + this.grpcsharp_batch_context_server_rpc_new_request_metadata = GetMethodDelegate<Delegates.grpcsharp_batch_context_server_rpc_new_request_metadata_delegate>(library); + this.grpcsharp_batch_context_recv_close_on_server_cancelled = GetMethodDelegate<Delegates.grpcsharp_batch_context_recv_close_on_server_cancelled_delegate>(library); + this.grpcsharp_batch_context_destroy = GetMethodDelegate<Delegates.grpcsharp_batch_context_destroy_delegate>(library); + + this.grpcsharp_composite_call_credentials_create = GetMethodDelegate<Delegates.grpcsharp_composite_call_credentials_create_delegate>(library); + this.grpcsharp_call_credentials_release = GetMethodDelegate<Delegates.grpcsharp_call_credentials_release_delegate>(library); + + this.grpcsharp_call_cancel = GetMethodDelegate<Delegates.grpcsharp_call_cancel_delegate>(library); + this.grpcsharp_call_cancel_with_status = GetMethodDelegate<Delegates.grpcsharp_call_cancel_with_status_delegate>(library); + this.grpcsharp_call_start_unary = GetMethodDelegate<Delegates.grpcsharp_call_start_unary_delegate>(library); + this.grpcsharp_call_start_client_streaming = GetMethodDelegate<Delegates.grpcsharp_call_start_client_streaming_delegate>(library); + this.grpcsharp_call_start_server_streaming = GetMethodDelegate<Delegates.grpcsharp_call_start_server_streaming_delegate>(library); + this.grpcsharp_call_start_duplex_streaming = GetMethodDelegate<Delegates.grpcsharp_call_start_duplex_streaming_delegate>(library); + this.grpcsharp_call_send_message = GetMethodDelegate<Delegates.grpcsharp_call_send_message_delegate>(library); + this.grpcsharp_call_send_close_from_client = GetMethodDelegate<Delegates.grpcsharp_call_send_close_from_client_delegate>(library); + this.grpcsharp_call_send_status_from_server = GetMethodDelegate<Delegates.grpcsharp_call_send_status_from_server_delegate>(library); + this.grpcsharp_call_recv_message = GetMethodDelegate<Delegates.grpcsharp_call_recv_message_delegate>(library); + this.grpcsharp_call_recv_initial_metadata = GetMethodDelegate<Delegates.grpcsharp_call_recv_initial_metadata_delegate>(library); + this.grpcsharp_call_start_serverside = GetMethodDelegate<Delegates.grpcsharp_call_start_serverside_delegate>(library); + this.grpcsharp_call_send_initial_metadata = GetMethodDelegate<Delegates.grpcsharp_call_send_initial_metadata_delegate>(library); + this.grpcsharp_call_set_credentials = GetMethodDelegate<Delegates.grpcsharp_call_set_credentials_delegate>(library); + this.grpcsharp_call_get_peer = GetMethodDelegate<Delegates.grpcsharp_call_get_peer_delegate>(library); + this.grpcsharp_call_destroy = GetMethodDelegate<Delegates.grpcsharp_call_destroy_delegate>(library); + + this.grpcsharp_channel_args_create = GetMethodDelegate<Delegates.grpcsharp_channel_args_create_delegate>(library); + this.grpcsharp_channel_args_set_string = GetMethodDelegate<Delegates.grpcsharp_channel_args_set_string_delegate>(library); + this.grpcsharp_channel_args_set_integer = GetMethodDelegate<Delegates.grpcsharp_channel_args_set_integer_delegate>(library); + this.grpcsharp_channel_args_destroy = GetMethodDelegate<Delegates.grpcsharp_channel_args_destroy_delegate>(library); + + this.grpcsharp_ssl_credentials_create = GetMethodDelegate<Delegates.grpcsharp_ssl_credentials_create_delegate>(library); + this.grpcsharp_composite_channel_credentials_create = GetMethodDelegate<Delegates.grpcsharp_composite_channel_credentials_create_delegate>(library); + this.grpcsharp_channel_credentials_release = GetMethodDelegate<Delegates.grpcsharp_channel_credentials_release_delegate>(library); + + this.grpcsharp_insecure_channel_create = GetMethodDelegate<Delegates.grpcsharp_insecure_channel_create_delegate>(library); + this.grpcsharp_secure_channel_create = GetMethodDelegate<Delegates.grpcsharp_secure_channel_create_delegate>(library); + this.grpcsharp_channel_create_call = GetMethodDelegate<Delegates.grpcsharp_channel_create_call_delegate>(library); + this.grpcsharp_channel_check_connectivity_state = GetMethodDelegate<Delegates.grpcsharp_channel_check_connectivity_state_delegate>(library); + this.grpcsharp_channel_watch_connectivity_state = GetMethodDelegate<Delegates.grpcsharp_channel_watch_connectivity_state_delegate>(library); + this.grpcsharp_channel_get_target = GetMethodDelegate<Delegates.grpcsharp_channel_get_target_delegate>(library); + this.grpcsharp_channel_destroy = GetMethodDelegate<Delegates.grpcsharp_channel_destroy_delegate>(library); + + this.grpcsharp_sizeof_grpc_event = GetMethodDelegate<Delegates.grpcsharp_sizeof_grpc_event_delegate>(library); + + this.grpcsharp_completion_queue_create = GetMethodDelegate<Delegates.grpcsharp_completion_queue_create_delegate>(library); + this.grpcsharp_completion_queue_shutdown = GetMethodDelegate<Delegates.grpcsharp_completion_queue_shutdown_delegate>(library); + this.grpcsharp_completion_queue_next = GetMethodDelegate<Delegates.grpcsharp_completion_queue_next_delegate>(library); + this.grpcsharp_completion_queue_pluck = GetMethodDelegate<Delegates.grpcsharp_completion_queue_pluck_delegate>(library); + this.grpcsharp_completion_queue_destroy = GetMethodDelegate<Delegates.grpcsharp_completion_queue_destroy_delegate>(library); + + this.gprsharp_free = GetMethodDelegate<Delegates.gprsharp_free_delegate>(library); + + this.grpcsharp_metadata_array_create = GetMethodDelegate<Delegates.grpcsharp_metadata_array_create_delegate>(library); + this.grpcsharp_metadata_array_add = GetMethodDelegate<Delegates.grpcsharp_metadata_array_add_delegate>(library); + this.grpcsharp_metadata_array_count = GetMethodDelegate<Delegates.grpcsharp_metadata_array_count_delegate>(library); + this.grpcsharp_metadata_array_get_key = GetMethodDelegate<Delegates.grpcsharp_metadata_array_get_key_delegate>(library); + this.grpcsharp_metadata_array_get_value = GetMethodDelegate<Delegates.grpcsharp_metadata_array_get_value_delegate>(library); + this.grpcsharp_metadata_array_get_value_length = GetMethodDelegate<Delegates.grpcsharp_metadata_array_get_value_length_delegate>(library); + this.grpcsharp_metadata_array_destroy_full = GetMethodDelegate<Delegates.grpcsharp_metadata_array_destroy_full_delegate>(library); + + this.grpcsharp_redirect_log = GetMethodDelegate<Delegates.grpcsharp_redirect_log_delegate>(library); + + this.grpcsharp_metadata_credentials_create_from_plugin = GetMethodDelegate<Delegates.grpcsharp_metadata_credentials_create_from_plugin_delegate>(library); + this.grpcsharp_metadata_credentials_notify_from_plugin = GetMethodDelegate<Delegates.grpcsharp_metadata_credentials_notify_from_plugin_delegate>(library); + + this.grpcsharp_ssl_server_credentials_create = GetMethodDelegate<Delegates.grpcsharp_ssl_server_credentials_create_delegate>(library); + this.grpcsharp_server_credentials_release = GetMethodDelegate<Delegates.grpcsharp_server_credentials_release_delegate>(library); + + this.grpcsharp_server_create = GetMethodDelegate<Delegates.grpcsharp_server_create_delegate>(library); + this.grpcsharp_server_add_insecure_http2_port = GetMethodDelegate<Delegates.grpcsharp_server_add_insecure_http2_port_delegate>(library); + this.grpcsharp_server_add_secure_http2_port = GetMethodDelegate<Delegates.grpcsharp_server_add_secure_http2_port_delegate>(library); + this.grpcsharp_server_start = GetMethodDelegate<Delegates.grpcsharp_server_start_delegate>(library); + this.grpcsharp_server_request_call = GetMethodDelegate<Delegates.grpcsharp_server_request_call_delegate>(library); + this.grpcsharp_server_cancel_all_calls = GetMethodDelegate<Delegates.grpcsharp_server_cancel_all_calls_delegate>(library); + this.grpcsharp_server_shutdown_and_notify_callback = GetMethodDelegate<Delegates.grpcsharp_server_shutdown_and_notify_callback_delegate>(library); + this.grpcsharp_server_destroy = GetMethodDelegate<Delegates.grpcsharp_server_destroy_delegate>(library); + + this.gprsharp_now = GetMethodDelegate<Delegates.gprsharp_now_delegate>(library); + this.gprsharp_inf_future = GetMethodDelegate<Delegates.gprsharp_inf_future_delegate>(library); + this.gprsharp_inf_past = GetMethodDelegate<Delegates.gprsharp_inf_past_delegate>(library); + this.gprsharp_convert_clock_type = GetMethodDelegate<Delegates.gprsharp_convert_clock_type_delegate>(library); + this.gprsharp_sizeof_timespec = GetMethodDelegate<Delegates.gprsharp_sizeof_timespec_delegate>(library); + + this.grpcsharp_test_callback = GetMethodDelegate<Delegates.grpcsharp_test_callback_delegate>(library); + this.grpcsharp_test_nop = GetMethodDelegate<Delegates.grpcsharp_test_nop_delegate>(library); + } + else + { + // Windows or fallback + this.grpcsharp_init = PInvokeMethods.grpcsharp_init; + this.grpcsharp_shutdown = PInvokeMethods.grpcsharp_shutdown; + this.grpcsharp_version_string = PInvokeMethods.grpcsharp_version_string; + + this.grpcsharp_batch_context_create = PInvokeMethods.grpcsharp_batch_context_create; + this.grpcsharp_batch_context_recv_initial_metadata = PInvokeMethods.grpcsharp_batch_context_recv_initial_metadata; + this.grpcsharp_batch_context_recv_message_length = PInvokeMethods.grpcsharp_batch_context_recv_message_length; + this.grpcsharp_batch_context_recv_message_to_buffer = PInvokeMethods.grpcsharp_batch_context_recv_message_to_buffer; + this.grpcsharp_batch_context_recv_status_on_client_status = PInvokeMethods.grpcsharp_batch_context_recv_status_on_client_status; + this.grpcsharp_batch_context_recv_status_on_client_details = PInvokeMethods.grpcsharp_batch_context_recv_status_on_client_details; + this.grpcsharp_batch_context_recv_status_on_client_trailing_metadata = PInvokeMethods.grpcsharp_batch_context_recv_status_on_client_trailing_metadata; + this.grpcsharp_batch_context_server_rpc_new_call = PInvokeMethods.grpcsharp_batch_context_server_rpc_new_call; + this.grpcsharp_batch_context_server_rpc_new_method = PInvokeMethods.grpcsharp_batch_context_server_rpc_new_method; + this.grpcsharp_batch_context_server_rpc_new_host = PInvokeMethods.grpcsharp_batch_context_server_rpc_new_host; + this.grpcsharp_batch_context_server_rpc_new_deadline = PInvokeMethods.grpcsharp_batch_context_server_rpc_new_deadline; + this.grpcsharp_batch_context_server_rpc_new_request_metadata = PInvokeMethods.grpcsharp_batch_context_server_rpc_new_request_metadata; + this.grpcsharp_batch_context_recv_close_on_server_cancelled = PInvokeMethods.grpcsharp_batch_context_recv_close_on_server_cancelled; + this.grpcsharp_batch_context_destroy = PInvokeMethods.grpcsharp_batch_context_destroy; + + this.grpcsharp_composite_call_credentials_create = PInvokeMethods.grpcsharp_composite_call_credentials_create; + this.grpcsharp_call_credentials_release = PInvokeMethods.grpcsharp_call_credentials_release; + + this.grpcsharp_call_cancel = PInvokeMethods.grpcsharp_call_cancel; + this.grpcsharp_call_cancel_with_status = PInvokeMethods.grpcsharp_call_cancel_with_status; + this.grpcsharp_call_start_unary = PInvokeMethods.grpcsharp_call_start_unary; + this.grpcsharp_call_start_client_streaming = PInvokeMethods.grpcsharp_call_start_client_streaming; + this.grpcsharp_call_start_server_streaming = PInvokeMethods.grpcsharp_call_start_server_streaming; + this.grpcsharp_call_start_duplex_streaming = PInvokeMethods.grpcsharp_call_start_duplex_streaming; + this.grpcsharp_call_send_message = PInvokeMethods.grpcsharp_call_send_message; + this.grpcsharp_call_send_close_from_client = PInvokeMethods.grpcsharp_call_send_close_from_client; + this.grpcsharp_call_send_status_from_server = PInvokeMethods.grpcsharp_call_send_status_from_server; + this.grpcsharp_call_recv_message = PInvokeMethods.grpcsharp_call_recv_message; + this.grpcsharp_call_recv_initial_metadata = PInvokeMethods.grpcsharp_call_recv_initial_metadata; + this.grpcsharp_call_start_serverside = PInvokeMethods.grpcsharp_call_start_serverside; + this.grpcsharp_call_send_initial_metadata = PInvokeMethods.grpcsharp_call_send_initial_metadata; + this.grpcsharp_call_set_credentials = PInvokeMethods.grpcsharp_call_set_credentials; + this.grpcsharp_call_get_peer = PInvokeMethods.grpcsharp_call_get_peer; + this.grpcsharp_call_destroy = PInvokeMethods.grpcsharp_call_destroy; + + this.grpcsharp_channel_args_create = PInvokeMethods.grpcsharp_channel_args_create; + this.grpcsharp_channel_args_set_string = PInvokeMethods.grpcsharp_channel_args_set_string; + this.grpcsharp_channel_args_set_integer = PInvokeMethods.grpcsharp_channel_args_set_integer; + this.grpcsharp_channel_args_destroy = PInvokeMethods.grpcsharp_channel_args_destroy; + + this.grpcsharp_ssl_credentials_create = PInvokeMethods.grpcsharp_ssl_credentials_create; + this.grpcsharp_composite_channel_credentials_create = PInvokeMethods.grpcsharp_composite_channel_credentials_create; + this.grpcsharp_channel_credentials_release = PInvokeMethods.grpcsharp_channel_credentials_release; + + this.grpcsharp_insecure_channel_create = PInvokeMethods.grpcsharp_insecure_channel_create; + this.grpcsharp_secure_channel_create = PInvokeMethods.grpcsharp_secure_channel_create; + this.grpcsharp_channel_create_call = PInvokeMethods.grpcsharp_channel_create_call; + this.grpcsharp_channel_check_connectivity_state = PInvokeMethods.grpcsharp_channel_check_connectivity_state; + this.grpcsharp_channel_watch_connectivity_state = PInvokeMethods.grpcsharp_channel_watch_connectivity_state; + this.grpcsharp_channel_get_target = PInvokeMethods.grpcsharp_channel_get_target; + this.grpcsharp_channel_destroy = PInvokeMethods.grpcsharp_channel_destroy; + + this.grpcsharp_sizeof_grpc_event = PInvokeMethods.grpcsharp_sizeof_grpc_event; + + this.grpcsharp_completion_queue_create = PInvokeMethods.grpcsharp_completion_queue_create; + this.grpcsharp_completion_queue_shutdown = PInvokeMethods.grpcsharp_completion_queue_shutdown; + this.grpcsharp_completion_queue_next = PInvokeMethods.grpcsharp_completion_queue_next; + this.grpcsharp_completion_queue_pluck = PInvokeMethods.grpcsharp_completion_queue_pluck; + this.grpcsharp_completion_queue_destroy = PInvokeMethods.grpcsharp_completion_queue_destroy; + + this.gprsharp_free = PInvokeMethods.gprsharp_free; + + this.grpcsharp_metadata_array_create = PInvokeMethods.grpcsharp_metadata_array_create; + this.grpcsharp_metadata_array_add = PInvokeMethods.grpcsharp_metadata_array_add; + this.grpcsharp_metadata_array_count = PInvokeMethods.grpcsharp_metadata_array_count; + this.grpcsharp_metadata_array_get_key = PInvokeMethods.grpcsharp_metadata_array_get_key; + this.grpcsharp_metadata_array_get_value = PInvokeMethods.grpcsharp_metadata_array_get_value; + this.grpcsharp_metadata_array_get_value_length = PInvokeMethods.grpcsharp_metadata_array_get_value_length; + this.grpcsharp_metadata_array_destroy_full = PInvokeMethods.grpcsharp_metadata_array_destroy_full; + + this.grpcsharp_redirect_log = PInvokeMethods.grpcsharp_redirect_log; + + this.grpcsharp_metadata_credentials_create_from_plugin = PInvokeMethods.grpcsharp_metadata_credentials_create_from_plugin; + this.grpcsharp_metadata_credentials_notify_from_plugin = PInvokeMethods.grpcsharp_metadata_credentials_notify_from_plugin; + + this.grpcsharp_ssl_server_credentials_create = PInvokeMethods.grpcsharp_ssl_server_credentials_create; + this.grpcsharp_server_credentials_release = PInvokeMethods.grpcsharp_server_credentials_release; + + this.grpcsharp_server_create = PInvokeMethods.grpcsharp_server_create; + this.grpcsharp_server_add_insecure_http2_port = PInvokeMethods.grpcsharp_server_add_insecure_http2_port; + this.grpcsharp_server_add_secure_http2_port = PInvokeMethods.grpcsharp_server_add_secure_http2_port; + this.grpcsharp_server_start = PInvokeMethods.grpcsharp_server_start; + this.grpcsharp_server_request_call = PInvokeMethods.grpcsharp_server_request_call; + this.grpcsharp_server_cancel_all_calls = PInvokeMethods.grpcsharp_server_cancel_all_calls; + this.grpcsharp_server_shutdown_and_notify_callback = PInvokeMethods.grpcsharp_server_shutdown_and_notify_callback; + this.grpcsharp_server_destroy = PInvokeMethods.grpcsharp_server_destroy; + + this.gprsharp_now = PInvokeMethods.gprsharp_now; + this.gprsharp_inf_future = PInvokeMethods.gprsharp_inf_future; + this.gprsharp_inf_past = PInvokeMethods.gprsharp_inf_past; + this.gprsharp_convert_clock_type = PInvokeMethods.gprsharp_convert_clock_type; + this.gprsharp_sizeof_timespec = PInvokeMethods.gprsharp_sizeof_timespec; + + this.grpcsharp_test_callback = PInvokeMethods.grpcsharp_test_callback; + this.grpcsharp_test_nop = PInvokeMethods.grpcsharp_test_nop; + } + } + + /// <summary> + /// Gets singleton instance of this class. + /// </summary> + public static NativeMethods Get() + { + return NativeExtension.Get().NativeMethods; + } + + static T GetMethodDelegate<T>(UnmanagedLibrary library) + where T : class + { + var methodName = RemoveStringSuffix(typeof(T).Name, "_delegate"); + return library.GetNativeMethodDelegate<T>(methodName); + } + + static string RemoveStringSuffix(string str, string toRemove) + { + if (!str.EndsWith(toRemove)) + { + return str; + } + return str.Substring(0, str.Length - toRemove.Length); + } + + /// <summary> + /// Delegate types for all published native methods. Declared under inner class to prevent scope pollution. + /// </summary> + public class Delegates + { + public delegate void grpcsharp_init_delegate(); + public delegate void grpcsharp_shutdown_delegate(); + public delegate IntPtr grpcsharp_version_string_delegate(); // returns not-owned const char* + + public delegate BatchContextSafeHandle grpcsharp_batch_context_create_delegate(); + public delegate IntPtr grpcsharp_batch_context_recv_initial_metadata_delegate(BatchContextSafeHandle ctx); + public delegate IntPtr grpcsharp_batch_context_recv_message_length_delegate(BatchContextSafeHandle ctx); + public delegate void grpcsharp_batch_context_recv_message_to_buffer_delegate(BatchContextSafeHandle ctx, byte[] buffer, UIntPtr bufferLen); + public delegate StatusCode grpcsharp_batch_context_recv_status_on_client_status_delegate(BatchContextSafeHandle ctx); + public delegate IntPtr grpcsharp_batch_context_recv_status_on_client_details_delegate(BatchContextSafeHandle ctx); // returns const char* + public delegate IntPtr grpcsharp_batch_context_recv_status_on_client_trailing_metadata_delegate(BatchContextSafeHandle ctx); + public delegate CallSafeHandle grpcsharp_batch_context_server_rpc_new_call_delegate(BatchContextSafeHandle ctx); + public delegate IntPtr grpcsharp_batch_context_server_rpc_new_method_delegate(BatchContextSafeHandle ctx); // returns const char* + public delegate IntPtr grpcsharp_batch_context_server_rpc_new_host_delegate(BatchContextSafeHandle ctx); // returns const char* + public delegate Timespec grpcsharp_batch_context_server_rpc_new_deadline_delegate(BatchContextSafeHandle ctx); + public delegate IntPtr grpcsharp_batch_context_server_rpc_new_request_metadata_delegate(BatchContextSafeHandle ctx); + public delegate int grpcsharp_batch_context_recv_close_on_server_cancelled_delegate(BatchContextSafeHandle ctx); + public delegate void grpcsharp_batch_context_destroy_delegate(IntPtr ctx); + + public delegate CallCredentialsSafeHandle grpcsharp_composite_call_credentials_create_delegate(CallCredentialsSafeHandle creds1, CallCredentialsSafeHandle creds2); + public delegate void grpcsharp_call_credentials_release_delegate(IntPtr credentials); + + public delegate GRPCCallError grpcsharp_call_cancel_delegate(CallSafeHandle call); + public delegate GRPCCallError grpcsharp_call_cancel_with_status_delegate(CallSafeHandle call, StatusCode status, string description); + public delegate GRPCCallError grpcsharp_call_start_unary_delegate(CallSafeHandle call, + BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags); + public delegate GRPCCallError grpcsharp_call_start_client_streaming_delegate(CallSafeHandle call, + BatchContextSafeHandle ctx, MetadataArraySafeHandle metadataArray); + public delegate GRPCCallError grpcsharp_call_start_server_streaming_delegate(CallSafeHandle call, + BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, + MetadataArraySafeHandle metadataArray, WriteFlags writeFlags); + public delegate GRPCCallError grpcsharp_call_start_duplex_streaming_delegate(CallSafeHandle call, + BatchContextSafeHandle ctx, MetadataArraySafeHandle metadataArray); + public delegate GRPCCallError grpcsharp_call_send_message_delegate(CallSafeHandle call, + BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, WriteFlags writeFlags, bool sendEmptyInitialMetadata); + public delegate GRPCCallError grpcsharp_call_send_close_from_client_delegate(CallSafeHandle call, + BatchContextSafeHandle ctx); + public delegate GRPCCallError grpcsharp_call_send_status_from_server_delegate(CallSafeHandle call, + BatchContextSafeHandle ctx, StatusCode statusCode, string statusMessage, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata); + public delegate GRPCCallError grpcsharp_call_recv_message_delegate(CallSafeHandle call, + BatchContextSafeHandle ctx); + public delegate GRPCCallError grpcsharp_call_recv_initial_metadata_delegate(CallSafeHandle call, + BatchContextSafeHandle ctx); + public delegate GRPCCallError grpcsharp_call_start_serverside_delegate(CallSafeHandle call, + BatchContextSafeHandle ctx); + public delegate GRPCCallError grpcsharp_call_send_initial_metadata_delegate(CallSafeHandle call, + BatchContextSafeHandle ctx, MetadataArraySafeHandle metadataArray); + public delegate GRPCCallError grpcsharp_call_set_credentials_delegate(CallSafeHandle call, CallCredentialsSafeHandle credentials); + public delegate CStringSafeHandle grpcsharp_call_get_peer_delegate(CallSafeHandle call); + public delegate void grpcsharp_call_destroy_delegate(IntPtr call); + + public delegate ChannelArgsSafeHandle grpcsharp_channel_args_create_delegate(UIntPtr numArgs); + public delegate void grpcsharp_channel_args_set_string_delegate(ChannelArgsSafeHandle args, UIntPtr index, string key, string value); + public delegate void grpcsharp_channel_args_set_integer_delegate(ChannelArgsSafeHandle args, UIntPtr index, string key, int value); + public delegate void grpcsharp_channel_args_destroy_delegate(IntPtr args); + + public delegate ChannelCredentialsSafeHandle grpcsharp_ssl_credentials_create_delegate(string pemRootCerts, string keyCertPairCertChain, string keyCertPairPrivateKey); + public delegate ChannelCredentialsSafeHandle grpcsharp_composite_channel_credentials_create_delegate(ChannelCredentialsSafeHandle channelCreds, CallCredentialsSafeHandle callCreds); + public delegate void grpcsharp_channel_credentials_release_delegate(IntPtr credentials); + + public delegate ChannelSafeHandle grpcsharp_insecure_channel_create_delegate(string target, ChannelArgsSafeHandle channelArgs); + public delegate ChannelSafeHandle grpcsharp_secure_channel_create_delegate(ChannelCredentialsSafeHandle credentials, string target, ChannelArgsSafeHandle channelArgs); + public delegate CallSafeHandle grpcsharp_channel_create_call_delegate(ChannelSafeHandle channel, CallSafeHandle parentCall, ContextPropagationFlags propagationMask, CompletionQueueSafeHandle cq, string method, string host, Timespec deadline); + public delegate ChannelState grpcsharp_channel_check_connectivity_state_delegate(ChannelSafeHandle channel, int tryToConnect); + public delegate void grpcsharp_channel_watch_connectivity_state_delegate(ChannelSafeHandle channel, ChannelState lastObservedState, + Timespec deadline, CompletionQueueSafeHandle cq, BatchContextSafeHandle ctx); + public delegate CStringSafeHandle grpcsharp_channel_get_target_delegate(ChannelSafeHandle call); + public delegate void grpcsharp_channel_destroy_delegate(IntPtr channel); + + public delegate int grpcsharp_sizeof_grpc_event_delegate(); + + public delegate CompletionQueueSafeHandle grpcsharp_completion_queue_create_delegate(); + public delegate void grpcsharp_completion_queue_shutdown_delegate(CompletionQueueSafeHandle cq); + public delegate CompletionQueueEvent grpcsharp_completion_queue_next_delegate(CompletionQueueSafeHandle cq); + public delegate CompletionQueueEvent grpcsharp_completion_queue_pluck_delegate(CompletionQueueSafeHandle cq, IntPtr tag); + public delegate void grpcsharp_completion_queue_destroy_delegate(IntPtr cq); + + public delegate void gprsharp_free_delegate(IntPtr ptr); + + public delegate MetadataArraySafeHandle grpcsharp_metadata_array_create_delegate(UIntPtr capacity); + public delegate void grpcsharp_metadata_array_add_delegate(MetadataArraySafeHandle array, string key, byte[] value, UIntPtr valueLength); + public delegate UIntPtr grpcsharp_metadata_array_count_delegate(IntPtr metadataArray); + public delegate IntPtr grpcsharp_metadata_array_get_key_delegate(IntPtr metadataArray, UIntPtr index); + public delegate IntPtr grpcsharp_metadata_array_get_value_delegate(IntPtr metadataArray, UIntPtr index); + public delegate UIntPtr grpcsharp_metadata_array_get_value_length_delegate(IntPtr metadataArray, UIntPtr index); + public delegate void grpcsharp_metadata_array_destroy_full_delegate(IntPtr array); + + public delegate void grpcsharp_redirect_log_delegate(GprLogDelegate callback); + + public delegate CallCredentialsSafeHandle grpcsharp_metadata_credentials_create_from_plugin_delegate(NativeMetadataInterceptor interceptor); + public delegate void grpcsharp_metadata_credentials_notify_from_plugin_delegate(IntPtr callbackPtr, IntPtr userData, MetadataArraySafeHandle metadataArray, StatusCode statusCode, string errorDetails); + + public delegate ServerCredentialsSafeHandle grpcsharp_ssl_server_credentials_create_delegate(string pemRootCerts, string[] keyCertPairCertChainArray, string[] keyCertPairPrivateKeyArray, UIntPtr numKeyCertPairs, bool forceClientAuth); + public delegate void grpcsharp_server_credentials_release_delegate(IntPtr credentials); + + public delegate ServerSafeHandle grpcsharp_server_create_delegate(CompletionQueueSafeHandle cq, ChannelArgsSafeHandle args); + public delegate int grpcsharp_server_add_insecure_http2_port_delegate(ServerSafeHandle server, string addr); + public delegate int grpcsharp_server_add_secure_http2_port_delegate(ServerSafeHandle server, string addr, ServerCredentialsSafeHandle creds); + public delegate void grpcsharp_server_start_delegate(ServerSafeHandle server); + public delegate GRPCCallError grpcsharp_server_request_call_delegate(ServerSafeHandle server, CompletionQueueSafeHandle cq, BatchContextSafeHandle ctx); + public delegate void grpcsharp_server_cancel_all_calls_delegate(ServerSafeHandle server); + public delegate void grpcsharp_server_shutdown_and_notify_callback_delegate(ServerSafeHandle server, CompletionQueueSafeHandle cq, BatchContextSafeHandle ctx); + public delegate void grpcsharp_server_destroy_delegate(IntPtr server); + + public delegate Timespec gprsharp_now_delegate(GPRClockType clockType); + public delegate Timespec gprsharp_inf_future_delegate(GPRClockType clockType); + public delegate Timespec gprsharp_inf_past_delegate(GPRClockType clockType); + + public delegate Timespec gprsharp_convert_clock_type_delegate(Timespec t, GPRClockType targetClock); + public delegate int gprsharp_sizeof_timespec_delegate(); + + public delegate GRPCCallError grpcsharp_test_callback_delegate([MarshalAs(UnmanagedType.FunctionPtr)] OpCompletionDelegate callback); + public delegate IntPtr grpcsharp_test_nop_delegate(IntPtr ptr); + } + + /// <summary> + /// Default PInvoke bindings for native methods that are used on Windows. + /// Alternatively, they can also be used as a fallback on Mono + /// (if libgrpc_csharp_ext is installed on your system, or is made accessible through e.g. LD_LIBRARY_PATH environment variable + /// or using Mono's dllMap feature). + /// </summary> + private class PInvokeMethods + { + // Environment + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_init(); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_shutdown(); + + [DllImport("grpc_csharp_ext.dll")] + public static extern IntPtr grpcsharp_version_string(); // returns not-owned const char* + + // BatchContextSafeHandle + + [DllImport("grpc_csharp_ext.dll")] + public static extern BatchContextSafeHandle grpcsharp_batch_context_create(); + + [DllImport("grpc_csharp_ext.dll")] + public static extern IntPtr grpcsharp_batch_context_recv_initial_metadata(BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern IntPtr grpcsharp_batch_context_recv_message_length(BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_batch_context_recv_message_to_buffer(BatchContextSafeHandle ctx, byte[] buffer, UIntPtr bufferLen); + + [DllImport("grpc_csharp_ext.dll")] + public static extern StatusCode grpcsharp_batch_context_recv_status_on_client_status(BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern IntPtr grpcsharp_batch_context_recv_status_on_client_details(BatchContextSafeHandle ctx); // returns const char* + + [DllImport("grpc_csharp_ext.dll")] + public static extern IntPtr grpcsharp_batch_context_recv_status_on_client_trailing_metadata(BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern CallSafeHandle grpcsharp_batch_context_server_rpc_new_call(BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern IntPtr grpcsharp_batch_context_server_rpc_new_method(BatchContextSafeHandle ctx); // returns const char* + + [DllImport("grpc_csharp_ext.dll")] + public static extern IntPtr grpcsharp_batch_context_server_rpc_new_host(BatchContextSafeHandle ctx); // returns const char* + + [DllImport("grpc_csharp_ext.dll")] + public static extern Timespec grpcsharp_batch_context_server_rpc_new_deadline(BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern IntPtr grpcsharp_batch_context_server_rpc_new_request_metadata(BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern int grpcsharp_batch_context_recv_close_on_server_cancelled(BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_batch_context_destroy(IntPtr ctx); + + // CallCredentialsSafeHandle + + [DllImport("grpc_csharp_ext.dll")] + public static extern CallCredentialsSafeHandle grpcsharp_composite_call_credentials_create(CallCredentialsSafeHandle creds1, CallCredentialsSafeHandle creds2); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_call_credentials_release(IntPtr credentials); + + // CallSafeHandle + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_cancel(CallSafeHandle call); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_cancel_with_status(CallSafeHandle call, StatusCode status, string description); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_start_unary(CallSafeHandle call, + BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_start_client_streaming(CallSafeHandle call, + BatchContextSafeHandle ctx, MetadataArraySafeHandle metadataArray); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_start_server_streaming(CallSafeHandle call, + BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, + MetadataArraySafeHandle metadataArray, WriteFlags writeFlags); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_start_duplex_streaming(CallSafeHandle call, + BatchContextSafeHandle ctx, MetadataArraySafeHandle metadataArray); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_send_message(CallSafeHandle call, + BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, WriteFlags writeFlags, bool sendEmptyInitialMetadata); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_send_close_from_client(CallSafeHandle call, + BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_send_status_from_server(CallSafeHandle call, + BatchContextSafeHandle ctx, StatusCode statusCode, string statusMessage, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_recv_message(CallSafeHandle call, + BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_recv_initial_metadata(CallSafeHandle call, + BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_start_serverside(CallSafeHandle call, + BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_send_initial_metadata(CallSafeHandle call, + BatchContextSafeHandle ctx, MetadataArraySafeHandle metadataArray); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_call_set_credentials(CallSafeHandle call, CallCredentialsSafeHandle credentials); + + [DllImport("grpc_csharp_ext.dll")] + public static extern CStringSafeHandle grpcsharp_call_get_peer(CallSafeHandle call); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_call_destroy(IntPtr call); + + // ChannelArgsSafeHandle + + [DllImport("grpc_csharp_ext.dll")] + public static extern ChannelArgsSafeHandle grpcsharp_channel_args_create(UIntPtr numArgs); + + [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] + public static extern void grpcsharp_channel_args_set_string(ChannelArgsSafeHandle args, UIntPtr index, string key, string value); + + [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] + public static extern void grpcsharp_channel_args_set_integer(ChannelArgsSafeHandle args, UIntPtr index, string key, int value); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_channel_args_destroy(IntPtr args); + + // ChannelCredentialsSafeHandle + + [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] + public static extern ChannelCredentialsSafeHandle grpcsharp_ssl_credentials_create(string pemRootCerts, string keyCertPairCertChain, string keyCertPairPrivateKey); + + [DllImport("grpc_csharp_ext.dll")] + public static extern ChannelCredentialsSafeHandle grpcsharp_composite_channel_credentials_create(ChannelCredentialsSafeHandle channelCreds, CallCredentialsSafeHandle callCreds); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_channel_credentials_release(IntPtr credentials); + + // ChannelSafeHandle + + [DllImport("grpc_csharp_ext.dll")] + public static extern ChannelSafeHandle grpcsharp_insecure_channel_create(string target, ChannelArgsSafeHandle channelArgs); + + [DllImport("grpc_csharp_ext.dll")] + public static extern ChannelSafeHandle grpcsharp_secure_channel_create(ChannelCredentialsSafeHandle credentials, string target, ChannelArgsSafeHandle channelArgs); + + [DllImport("grpc_csharp_ext.dll")] + public static extern CallSafeHandle grpcsharp_channel_create_call(ChannelSafeHandle channel, CallSafeHandle parentCall, ContextPropagationFlags propagationMask, CompletionQueueSafeHandle cq, string method, string host, Timespec deadline); + + [DllImport("grpc_csharp_ext.dll")] + public static extern ChannelState grpcsharp_channel_check_connectivity_state(ChannelSafeHandle channel, int tryToConnect); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_channel_watch_connectivity_state(ChannelSafeHandle channel, ChannelState lastObservedState, + Timespec deadline, CompletionQueueSafeHandle cq, BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern CStringSafeHandle grpcsharp_channel_get_target(ChannelSafeHandle call); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_channel_destroy(IntPtr channel); + + // CompletionQueueEvent + + [DllImport("grpc_csharp_ext.dll")] + public static extern int grpcsharp_sizeof_grpc_event(); + + // CompletionQueueSafeHandle + + [DllImport("grpc_csharp_ext.dll")] + public static extern CompletionQueueSafeHandle grpcsharp_completion_queue_create(); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_completion_queue_shutdown(CompletionQueueSafeHandle cq); + + [DllImport("grpc_csharp_ext.dll")] + public static extern CompletionQueueEvent grpcsharp_completion_queue_next(CompletionQueueSafeHandle cq); + + [DllImport("grpc_csharp_ext.dll")] + public static extern CompletionQueueEvent grpcsharp_completion_queue_pluck(CompletionQueueSafeHandle cq, IntPtr tag); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_completion_queue_destroy(IntPtr cq); + + // CStringSafeHandle + + [DllImport("grpc_csharp_ext.dll")] + public static extern void gprsharp_free(IntPtr ptr); + + // MetadataArraySafeHandle + + [DllImport("grpc_csharp_ext.dll")] + public static extern MetadataArraySafeHandle grpcsharp_metadata_array_create(UIntPtr capacity); + + [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] + public static extern void grpcsharp_metadata_array_add(MetadataArraySafeHandle array, string key, byte[] value, UIntPtr valueLength); + + [DllImport("grpc_csharp_ext.dll")] + public static extern UIntPtr grpcsharp_metadata_array_count(IntPtr metadataArray); + + [DllImport("grpc_csharp_ext.dll")] + public static extern IntPtr grpcsharp_metadata_array_get_key(IntPtr metadataArray, UIntPtr index); + + [DllImport("grpc_csharp_ext.dll")] + public static extern IntPtr grpcsharp_metadata_array_get_value(IntPtr metadataArray, UIntPtr index); + + [DllImport("grpc_csharp_ext.dll")] + public static extern UIntPtr grpcsharp_metadata_array_get_value_length(IntPtr metadataArray, UIntPtr index); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_metadata_array_destroy_full(IntPtr array); + + // NativeLogRedirector + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_redirect_log(GprLogDelegate callback); + + // NativeMetadataCredentialsPlugin + + [DllImport("grpc_csharp_ext.dll")] + public static extern CallCredentialsSafeHandle grpcsharp_metadata_credentials_create_from_plugin(NativeMetadataInterceptor interceptor); + + [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] + public static extern void grpcsharp_metadata_credentials_notify_from_plugin(IntPtr callbackPtr, IntPtr userData, MetadataArraySafeHandle metadataArray, StatusCode statusCode, string errorDetails); + + // ServerCredentialsSafeHandle + + [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] + public static extern ServerCredentialsSafeHandle grpcsharp_ssl_server_credentials_create(string pemRootCerts, string[] keyCertPairCertChainArray, string[] keyCertPairPrivateKeyArray, UIntPtr numKeyCertPairs, bool forceClientAuth); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_server_credentials_release(IntPtr credentials); + + // ServerSafeHandle + + [DllImport("grpc_csharp_ext.dll")] + public static extern ServerSafeHandle grpcsharp_server_create(CompletionQueueSafeHandle cq, ChannelArgsSafeHandle args); + + [DllImport("grpc_csharp_ext.dll")] + public static extern int grpcsharp_server_add_insecure_http2_port(ServerSafeHandle server, string addr); + + [DllImport("grpc_csharp_ext.dll")] + public static extern int grpcsharp_server_add_secure_http2_port(ServerSafeHandle server, string addr, ServerCredentialsSafeHandle creds); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_server_start(ServerSafeHandle server); + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_server_request_call(ServerSafeHandle server, CompletionQueueSafeHandle cq, BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_server_cancel_all_calls(ServerSafeHandle server); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_server_shutdown_and_notify_callback(ServerSafeHandle server, CompletionQueueSafeHandle cq, BatchContextSafeHandle ctx); + + [DllImport("grpc_csharp_ext.dll")] + public static extern void grpcsharp_server_destroy(IntPtr server); + + // Timespec + + [DllImport("grpc_csharp_ext.dll")] + public static extern Timespec gprsharp_now(GPRClockType clockType); + + [DllImport("grpc_csharp_ext.dll")] + public static extern Timespec gprsharp_inf_future(GPRClockType clockType); + + [DllImport("grpc_csharp_ext.dll")] + public static extern Timespec gprsharp_inf_past(GPRClockType clockType); + + [DllImport("grpc_csharp_ext.dll")] + public static extern Timespec gprsharp_convert_clock_type(Timespec t, GPRClockType targetClock); + + [DllImport("grpc_csharp_ext.dll")] + public static extern int gprsharp_sizeof_timespec(); + + // Testing + + [DllImport("grpc_csharp_ext.dll")] + public static extern GRPCCallError grpcsharp_test_callback([MarshalAs(UnmanagedType.FunctionPtr)] OpCompletionDelegate callback); + + [DllImport("grpc_csharp_ext.dll")] + public static extern IntPtr grpcsharp_test_nop(IntPtr ptr); + } + } +} diff --git a/src/csharp/Grpc.Core/Internal/PlatformApis.cs b/src/csharp/Grpc.Core/Internal/PlatformApis.cs new file mode 100644 index 0000000000..d71e7eccdd --- /dev/null +++ b/src/csharp/Grpc.Core/Internal/PlatformApis.cs @@ -0,0 +1,110 @@ +#region Copyright notice and license + +// Copyright 2015-2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#endregion + +using System; +using System.Collections.Concurrent; +using System.Diagnostics; +using System.IO; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Threading; + +namespace Grpc.Core.Internal +{ + /// <summary> + /// Utility methods for detecting platform and architecture. + /// </summary> + internal static class PlatformApis + { + static readonly bool isLinux; + static readonly bool isMacOSX; + static readonly bool isWindows; + + static PlatformApis() + { + var platform = Environment.OSVersion.Platform; + + // PlatformID.MacOSX is never returned, commonly used trick is to identify Mac is by using uname. + isMacOSX = (platform == PlatformID.Unix && GetUname() == "Darwin"); + isLinux = (platform == PlatformID.Unix && !isMacOSX); + isWindows = (platform == PlatformID.Win32NT || platform == PlatformID.Win32S || platform == PlatformID.Win32Windows); + } + + public static bool IsLinux + { + get { return isLinux; } + } + + public static bool IsMacOSX + { + get { return isMacOSX; } + } + + public static bool IsWindows + { + get { return isWindows; } + } + + public static bool Is64Bit + { + get { return IntPtr.Size == 8; } + } + + [DllImport("libc")] + static extern int uname(IntPtr buf); + + static string GetUname() + { + var buffer = Marshal.AllocHGlobal(8192); + try + { + if (uname(buffer) == 0) + { + return Marshal.PtrToStringAnsi(buffer); + } + return string.Empty; + } + catch + { + return string.Empty; + } + finally + { + if (buffer != IntPtr.Zero) + { + Marshal.FreeHGlobal(buffer); + } + } + } + } +} diff --git a/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs index 51e352a18b..a1d080c7f1 100644 --- a/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -41,11 +41,7 @@ namespace Grpc.Core.Internal /// </summary> internal class ServerCredentialsSafeHandle : SafeHandleZeroIsInvalid { - [DllImport("grpc_csharp_ext.dll", CharSet = CharSet.Ansi)] - static extern ServerCredentialsSafeHandle grpcsharp_ssl_server_credentials_create(string pemRootCerts, string[] keyCertPairCertChainArray, string[] keyCertPairPrivateKeyArray, UIntPtr numKeyCertPairs, bool forceClientAuth); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_server_credentials_release(IntPtr credentials); + static readonly NativeMethods Native = NativeMethods.Get(); private ServerCredentialsSafeHandle() { @@ -54,15 +50,15 @@ namespace Grpc.Core.Internal public static ServerCredentialsSafeHandle CreateSslCredentials(string pemRootCerts, string[] keyCertPairCertChainArray, string[] keyCertPairPrivateKeyArray, bool forceClientAuth) { Preconditions.CheckArgument(keyCertPairCertChainArray.Length == keyCertPairPrivateKeyArray.Length); - return grpcsharp_ssl_server_credentials_create(pemRootCerts, - keyCertPairCertChainArray, keyCertPairPrivateKeyArray, - new UIntPtr((ulong)keyCertPairCertChainArray.Length), - forceClientAuth); + return Native.grpcsharp_ssl_server_credentials_create(pemRootCerts, + keyCertPairCertChainArray, keyCertPairPrivateKeyArray, + new UIntPtr((ulong)keyCertPairCertChainArray.Length), + forceClientAuth); } protected override bool ReleaseHandle() { - grpcsharp_server_credentials_release(handle); + Native.grpcsharp_server_credentials_release(handle); return true; } } diff --git a/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs index 5ee7ac14e8..a57fb3b789 100644 --- a/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs @@ -1,6 +1,6 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -44,29 +44,7 @@ namespace Grpc.Core.Internal /// </summary> internal sealed class ServerSafeHandle : SafeHandleZeroIsInvalid { - [DllImport("grpc_csharp_ext.dll")] - static extern ServerSafeHandle grpcsharp_server_create(CompletionQueueSafeHandle cq, ChannelArgsSafeHandle args); - - [DllImport("grpc_csharp_ext.dll")] - static extern int grpcsharp_server_add_insecure_http2_port(ServerSafeHandle server, string addr); - - [DllImport("grpc_csharp_ext.dll")] - static extern int grpcsharp_server_add_secure_http2_port(ServerSafeHandle server, string addr, ServerCredentialsSafeHandle creds); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_server_start(ServerSafeHandle server); - - [DllImport("grpc_csharp_ext.dll")] - static extern GRPCCallError grpcsharp_server_request_call(ServerSafeHandle server, CompletionQueueSafeHandle cq, BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_server_cancel_all_calls(ServerSafeHandle server); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_server_shutdown_and_notify_callback(ServerSafeHandle server, CompletionQueueSafeHandle cq, BatchContextSafeHandle ctx); - - [DllImport("grpc_csharp_ext.dll")] - static extern void grpcsharp_server_destroy(IntPtr server); + static readonly NativeMethods Native = NativeMethods.Get(); private ServerSafeHandle() { @@ -77,41 +55,41 @@ namespace Grpc.Core.Internal // Increment reference count for the native gRPC environment to make sure we don't do grpc_shutdown() before destroying the server handle. // Doing so would make object finalizer crash if we end up abandoning the handle. GrpcEnvironment.GrpcNativeInit(); - return grpcsharp_server_create(cq, args); + return Native.grpcsharp_server_create(cq, args); } public int AddInsecurePort(string addr) { - return grpcsharp_server_add_insecure_http2_port(this, addr); + return Native.grpcsharp_server_add_insecure_http2_port(this, addr); } public int AddSecurePort(string addr, ServerCredentialsSafeHandle credentials) { - return grpcsharp_server_add_secure_http2_port(this, addr, credentials); + return Native.grpcsharp_server_add_secure_http2_port(this, addr, credentials); } public void Start() { - grpcsharp_server_start(this); + Native.grpcsharp_server_start(this); } public void ShutdownAndNotify(BatchCompletionDelegate callback, GrpcEnvironment environment) { var ctx = BatchContextSafeHandle.Create(); environment.CompletionRegistry.RegisterBatchCompletion(ctx, callback); - grpcsharp_server_shutdown_and_notify_callback(this, environment.CompletionQueue, ctx); + Native.grpcsharp_server_shutdown_and_notify_callback(this, environment.CompletionQueue, ctx); } public void RequestCall(BatchCompletionDelegate callback, GrpcEnvironment environment) { var ctx = BatchContextSafeHandle.Create(); environment.CompletionRegistry.RegisterBatchCompletion(ctx, callback); - grpcsharp_server_request_call(this, environment.CompletionQueue, ctx).CheckOk(); + Native.grpcsharp_server_request_call(this, environment.CompletionQueue, ctx).CheckOk(); } protected override bool ReleaseHandle() { - grpcsharp_server_destroy(handle); + Native.grpcsharp_server_destroy(handle); GrpcEnvironment.GrpcNativeShutdown(); return true; } @@ -119,7 +97,7 @@ namespace Grpc.Core.Internal // Only to be called after ShutdownAndNotify. public void CancelAllCalls() { - grpcsharp_server_cancel_all_calls(this); + Native.grpcsharp_server_cancel_all_calls(this); } } } diff --git a/src/csharp/Grpc.Core/Internal/Timespec.cs b/src/csharp/Grpc.Core/Internal/Timespec.cs index 3031175c8a..148d877da5 100644 --- a/src/csharp/Grpc.Core/Internal/Timespec.cs +++ b/src/csharp/Grpc.Core/Internal/Timespec.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -46,23 +46,9 @@ namespace Grpc.Core.Internal const long NanosPerTick = 100; const long TicksPerSecond = NanosPerSecond / NanosPerTick; + static readonly NativeMethods Native = NativeMethods.Get(); static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); - [DllImport("grpc_csharp_ext.dll")] - static extern Timespec gprsharp_now(GPRClockType clockType); - - [DllImport("grpc_csharp_ext.dll")] - static extern Timespec gprsharp_inf_future(GPRClockType clockType); - - [DllImport("grpc_csharp_ext.dll")] - static extern Timespec gprsharp_inf_past(GPRClockType clockType); - - [DllImport("grpc_csharp_ext.dll")] - static extern Timespec gprsharp_convert_clock_type(Timespec t, GPRClockType targetClock); - - [DllImport("grpc_csharp_ext.dll")] - static extern int gprsharp_sizeof_timespec(); - public Timespec(long tv_sec, int tv_nsec) : this(tv_sec, tv_nsec, GPRClockType.Realtime) { } @@ -85,7 +71,7 @@ namespace Grpc.Core.Internal { get { - return gprsharp_inf_future(GPRClockType.Realtime); + return Native.gprsharp_inf_future(GPRClockType.Realtime); } } @@ -96,7 +82,7 @@ namespace Grpc.Core.Internal { get { - return gprsharp_inf_past(GPRClockType.Realtime); + return Native.gprsharp_inf_past(GPRClockType.Realtime); } } @@ -107,7 +93,7 @@ namespace Grpc.Core.Internal { get { - return gprsharp_now(GPRClockType.Realtime); + return Native.gprsharp_now(GPRClockType.Realtime); } } @@ -138,7 +124,7 @@ namespace Grpc.Core.Internal /// </summary> public Timespec ToClockType(GPRClockType targetClock) { - return gprsharp_convert_clock_type(this, targetClock); + return Native.gprsharp_convert_clock_type(this, targetClock); } /// <summary> @@ -241,7 +227,7 @@ namespace Grpc.Core.Internal { get { - return gprsharp_now(GPRClockType.Precise); + return Native.gprsharp_now(GPRClockType.Precise); } } @@ -249,7 +235,7 @@ namespace Grpc.Core.Internal { get { - return gprsharp_sizeof_timespec(); + return Native.gprsharp_sizeof_timespec(); } } } diff --git a/src/csharp/Grpc.Core/Internal/UnmanagedLibrary.cs b/src/csharp/Grpc.Core/Internal/UnmanagedLibrary.cs new file mode 100644 index 0000000000..e614cab6ab --- /dev/null +++ b/src/csharp/Grpc.Core/Internal/UnmanagedLibrary.cs @@ -0,0 +1,158 @@ +#region Copyright notice and license + +// Copyright 2015-2016, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#endregion + +using System; +using System.Collections.Concurrent; +using System.Diagnostics; +using System.IO; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Threading; + +using Grpc.Core.Logging; +using Grpc.Core.Utils; + +namespace Grpc.Core.Internal +{ + /// <summary> + /// Represents a dynamically loaded unmanaged library in a (partially) platform independent manner. + /// An important difference in library loading semantics is that on Windows, once we load a dynamic library using LoadLibrary, + /// that library becomes instantly available for <c>DllImport</c> P/Invoke calls referring to the same library name. + /// On Unix systems, dlopen has somewhat different semantics, so we need to use dlsym and <c>Marshal.GetDelegateForFunctionPointer</c> + /// to obtain delegates to native methods. + /// See http://stackoverflow.com/questions/13461989/p-invoke-to-dynamically-loaded-library-on-mono. + /// </summary> + internal class UnmanagedLibrary + { + static readonly ILogger Logger = GrpcEnvironment.Logger.ForType<UnmanagedLibrary>(); + + // flags for dlopen + const int RTLD_LAZY = 1; + const int RTLD_GLOBAL = 8; + + readonly string libraryPath; + readonly IntPtr handle; + + public UnmanagedLibrary(string libraryPath) + { + this.libraryPath = Preconditions.CheckNotNull(libraryPath); + + if (!File.Exists(this.libraryPath)) + { + throw new FileNotFoundException("Error loading native library. File does not exist.", this.libraryPath); + } + + Logger.Debug("Attempting to load native library \"{0}\"", this.libraryPath); + + this.handle = PlatformSpecificLoadLibrary(this.libraryPath); + + if (this.handle == IntPtr.Zero) + { + throw new IOException(string.Format("Error loading native library \"{0}\"", this.libraryPath)); + } + } + + /// <summary> + /// Loads symbol in a platform specific way. + /// </summary> + /// <param name="symbolName"></param> + /// <returns></returns> + public IntPtr LoadSymbol(string symbolName) + { + if (PlatformApis.IsLinux) + { + return Linux.dlsym(this.handle, symbolName); + } + if (PlatformApis.IsMacOSX) + { + return MacOSX.dlsym(this.handle, symbolName); + } + throw new InvalidOperationException("Unsupported platform."); + } + + public T GetNativeMethodDelegate<T>(string methodName) + where T : class + { + var ptr = LoadSymbol(methodName); + if (ptr == IntPtr.Zero) + { + throw new MissingMethodException(string.Format("The native method \"{0}\" does not exist", methodName)); + } + return Marshal.GetDelegateForFunctionPointer(ptr, typeof(T)) as T; + } + + /// <summary> + /// Loads library in a platform specific way. + /// </summary> + private static IntPtr PlatformSpecificLoadLibrary(string libraryPath) + { + if (PlatformApis.IsWindows) + { + return Windows.LoadLibrary(libraryPath); + } + if (PlatformApis.IsLinux) + { + return Linux.dlopen(libraryPath, RTLD_GLOBAL + RTLD_LAZY); + } + if (PlatformApis.IsMacOSX) + { + return MacOSX.dlopen(libraryPath, RTLD_GLOBAL + RTLD_LAZY); + } + throw new InvalidOperationException("Unsupported platform."); + } + + private static class Windows + { + [DllImport("kernel32.dll")] + internal static extern IntPtr LoadLibrary(string filename); + } + + private static class Linux + { + [DllImport("libdl.so")] + internal static extern IntPtr dlopen(string filename, int flags); + + [DllImport("libdl.so")] + internal static extern IntPtr dlsym(IntPtr handle, string symbol); + } + + private static class MacOSX + { + [DllImport("libSystem.dylib")] + internal static extern IntPtr dlopen(string filename, int flags); + + [DllImport("libSystem.dylib")] + internal static extern IntPtr dlsym(IntPtr handle, string symbol); + } + } +} diff --git a/src/csharp/Grpc.Core/NativeDeps.Linux.targets b/src/csharp/Grpc.Core/NativeDeps.Linux.targets new file mode 100644 index 0000000000..a3848c6f2e --- /dev/null +++ b/src/csharp/Grpc.Core/NativeDeps.Linux.targets @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Content Include="..\..\..\libs\$(NativeDependenciesConfigurationUnix)\libgrpc_csharp_ext.so"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + <Link>nativelibs\linux_x64\libgrpc_csharp_ext.so</Link> + </Content> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/src/csharp/Grpc.Core/NativeDeps.Mac.targets b/src/csharp/Grpc.Core/NativeDeps.Mac.targets new file mode 100644 index 0000000000..c3c6264fd3 --- /dev/null +++ b/src/csharp/Grpc.Core/NativeDeps.Mac.targets @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Content Include="..\..\..\libs\$(NativeDependenciesConfigurationUnix)\libgrpc_csharp_ext.dylib"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + <Link>nativelibs\macosx_x86\libgrpc_csharp_ext.dylib</Link> + </Content> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/src/csharp/Grpc.Core/NativeDeps.Windows.targets b/src/csharp/Grpc.Core/NativeDeps.Windows.targets new file mode 100644 index 0000000000..f6a3405e29 --- /dev/null +++ b/src/csharp/Grpc.Core/NativeDeps.Windows.targets @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Content Include="..\..\..\vsprojects\$(NativeDependenciesConfiguration)\grpc_csharp_ext.dll"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + <Link>nativelibs\windows_x86\grpc_csharp_ext.dll</Link> + </Content> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/src/csharp/Grpc.Core/NativeDeps.targets b/src/csharp/Grpc.Core/NativeDeps.targets new file mode 100644 index 0000000000..66c5ec1292 --- /dev/null +++ b/src/csharp/Grpc.Core/NativeDeps.targets @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + + <PropertyGroup Condition=" '$(NativeDependenciesConfiguration)' == '' "> + <NativeDependenciesConfiguration Condition=" '$(Configuration)' == 'Debug' ">Debug</NativeDependenciesConfiguration> + <NativeDependenciesConfiguration Condition=" '$(Configuration)' == 'Release' ">Release</NativeDependenciesConfiguration> + <NativeDependenciesConfiguration Condition=" '$(Configuration)' == 'ReleaseSigned' ">Release</NativeDependenciesConfiguration> + </PropertyGroup> + + <PropertyGroup Condition=" '$(NativeDependenciesConfigurationUnix)' == '' "> + <NativeDependenciesConfigurationUnix Condition=" '$(Configuration)' == 'Debug' ">dbg</NativeDependenciesConfigurationUnix> + <NativeDependenciesConfigurationUnix Condition=" '$(Configuration)' == 'Release' ">opt</NativeDependenciesConfigurationUnix> + <NativeDependenciesConfigurationUnix Condition=" '$(Configuration)' == 'ReleaseSigned' ">opt</NativeDependenciesConfigurationUnix> + </PropertyGroup> + + <!-- Autodetect platform --> + <PropertyGroup Condition=" '$(OS)' != 'Unix' "> + <NativeDepsPlatform>Windows</NativeDepsPlatform> + </PropertyGroup> + <PropertyGroup Condition=" '$(OS)' == 'Unix' And Exists('/Applications') And Exists('/Library') And Exists('/System') "> + <NativeDepsPlatform>Mac</NativeDepsPlatform> + </PropertyGroup> + <PropertyGroup Condition=" '$(OS)' == 'Unix' And '$(NativeDepsPlatform)' == '' "> + <NativeDepsPlatform>Linux</NativeDepsPlatform> + </PropertyGroup> + + <Import Project="NativeDeps.$(NativeDepsPlatform).targets" /> +</Project>
\ No newline at end of file diff --git a/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs b/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs index 29db85d7aa..bde74945fb 100644 --- a/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs +++ b/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs @@ -18,4 +18,4 @@ using System.Runtime.CompilerServices; "71394ee9672dfe5b55ea0f95dfd5a7f77d22c962ccf51320d3")] #else [assembly: InternalsVisibleTo("Grpc.Core.Tests")] -#endif
\ No newline at end of file +#endif diff --git a/src/csharp/Grpc.Core/packages.config b/src/csharp/Grpc.Core/packages.config index 89600744a7..86a48c512e 100644 --- a/src/csharp/Grpc.Core/packages.config +++ b/src/csharp/Grpc.Core/packages.config @@ -1,6 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="grpc.dependencies.openssl.redist" version="1.0.204.1" targetFramework="net45" /> - <package id="grpc.dependencies.zlib.redist" version="1.2.8.10" targetFramework="net45" /> <package id="Ix-Async" version="1.2.3" targetFramework="net45" /> </packages>
\ No newline at end of file diff --git a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs index d90f21c2e1..a8a76c7492 100644 --- a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs +++ b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs @@ -1,5 +1,5 @@ #region Copyright notice and license -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -93,4 +93,4 @@ namespace Grpc.HealthCheck.Tests // TODO(jtattermusch): add test with timeout once timeouts are supported } -}
\ No newline at end of file +} diff --git a/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs b/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs index 41a54a98bc..4d7b33c669 100644 --- a/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs +++ b/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ using System.Runtime.CompilerServices; [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("Google Inc. All rights reserved.")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")]
\ No newline at end of file +[assembly: AssemblyCulture("")] diff --git a/src/csharp/buildall.bat b/src/csharp/buildall.bat index d85896c255..08d4bdb335 100644 --- a/src/csharp/buildall.bat +++ b/src/csharp/buildall.bat @@ -9,7 +9,8 @@ cd /d %~dp0 @call "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat" x86 @rem Build the C# native extension -msbuild ..\..\vsprojects\grpc_csharp_ext.sln /p:PlatformToolset=v120 || goto :error +msbuild ..\..\vsprojects\grpc_csharp_ext.sln /p:Configuration=Debug /p:PlatformToolset=v120 || goto :error +msbuild ..\..\vsprojects\grpc_csharp_ext.sln /p:Configuration=Release /p:PlatformToolset=v120 || goto :error msbuild Grpc.sln /p:Configuration=Debug || goto :error msbuild Grpc.sln /p:Configuration=Release || goto :error diff --git a/src/csharp/generate_proto_csharp.sh b/src/csharp/generate_proto_csharp.sh index 4dbd9c3308..3aeda21ba3 100755 --- a/src/csharp/generate_proto_csharp.sh +++ b/src/csharp/generate_proto_csharp.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -45,4 +45,4 @@ $PROTOC --plugin=$PLUGIN --csharp_out=$HEALTHCHECK_DIR --grpc_out=$HEALTHCHECK_D -I src/proto/grpc/health/v1alpha src/proto/grpc/health/v1alpha/health.proto $PROTOC --plugin=$PLUGIN --csharp_out=$TESTING_DIR --grpc_out=$TESTING_DIR \ - -I . test/proto/{empty,messages,test}.proto test/proto/benchmarks/*.proto + -I . src/proto/grpc/testing/{empty,messages,test}.proto test/proto/benchmarks/*.proto diff --git a/src/node/ext/call.cc b/src/node/ext/call.cc index c6e10bc1ff..da312886ce 100644 --- a/src/node/ext/call.cc +++ b/src/node/ext/call.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -95,10 +95,6 @@ Local<Value> nanErrorWithCode(const char *msg, grpc_call_error code) { return scope.Escape(err); } -bool EndsWith(const char *str, const char *substr) { - return strcmp(str+strlen(str)-strlen(substr), substr) == 0; -} - bool CreateMetadataArray(Local<Object> metadata, grpc_metadata_array *array, shared_ptr<Resources> resources) { HandleScope scope; @@ -126,7 +122,7 @@ bool CreateMetadataArray(Local<Object> metadata, grpc_metadata_array *array, grpc_metadata *current = &array->metadata[array->count]; current->key = **utf8_key; // Only allow binary headers for "-bin" keys - if (EndsWith(current->key, "-bin")) { + if (grpc_is_binary_header(current->key, strlen(current->key))) { if (::node::Buffer::HasInstance(value)) { current->value = ::node::Buffer::Data(value); current->value_length = ::node::Buffer::Length(value); @@ -180,7 +176,7 @@ Local<Value> ParseMetadata(const grpc_metadata_array *metadata_array) { } else { array = Local<Array>::Cast(maybe_array.ToLocalChecked()); } - if (EndsWith(elem->key, "-bin")) { + if (grpc_is_binary_header(elem->key, strlen(elem->key))) { Nan::Set(array, index_map[elem->key], MakeFastBuffer( Nan::CopyBuffer(elem->value, diff --git a/src/node/ext/call_credentials.cc b/src/node/ext/call_credentials.cc index 8cbfb1ebea..91acb86254 100644 --- a/src/node/ext/call_credentials.cc +++ b/src/node/ext/call_credentials.cc @@ -32,6 +32,8 @@ */ #include <node.h> +#include <nan.h> +#include <uv.h> #include "grpc/grpc.h" #include "grpc/grpc_security.h" diff --git a/src/node/ext/node_grpc.cc b/src/node/ext/node_grpc.cc index 5b5f3c1c5b..a2b8e0d22b 100644 --- a/src/node/ext/node_grpc.cc +++ b/src/node/ext/node_grpc.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -44,6 +44,7 @@ #include "completion_queue_async_worker.h" #include "server_credentials.h" +using v8::FunctionTemplate; using v8::Local; using v8::Value; using v8::Object; @@ -230,6 +231,40 @@ void InitWriteFlags(Local<Object> exports) { Nan::Set(write_flags, Nan::New("NO_COMPRESS").ToLocalChecked(), NO_COMPRESS); } +NAN_METHOD(MetadataKeyIsLegal) { + if (!info[0]->IsString()) { + return Nan::ThrowTypeError( + "headerKeyIsLegal's argument must be a string"); + } + Local<String> key = Nan::To<String>(info[0]).ToLocalChecked(); + char *key_str = *Nan::Utf8String(key); + info.GetReturnValue().Set(static_cast<bool>( + grpc_header_key_is_legal(key_str, static_cast<size_t>(key->Length())))); +} + +NAN_METHOD(MetadataNonbinValueIsLegal) { + if (!info[0]->IsString()) { + return Nan::ThrowTypeError( + "metadataNonbinValueIsLegal's argument must be a string"); + } + Local<String> value = Nan::To<String>(info[0]).ToLocalChecked(); + char *value_str = *Nan::Utf8String(value); + info.GetReturnValue().Set(static_cast<bool>( + grpc_header_nonbin_value_is_legal( + value_str, static_cast<size_t>(value->Length())))); +} + +NAN_METHOD(MetadataKeyIsBinary) { + if (!info[0]->IsString()) { + return Nan::ThrowTypeError( + "metadataKeyIsLegal's argument must be a string"); + } + Local<String> key = Nan::To<String>(info[0]).ToLocalChecked(); + char *key_str = *Nan::Utf8String(key); + info.GetReturnValue().Set(static_cast<bool>( + grpc_is_binary_header(key_str, static_cast<size_t>(key->Length())))); +} + void init(Local<Object> exports) { Nan::HandleScope scope; grpc_init(); @@ -247,6 +282,19 @@ void init(Local<Object> exports) { grpc::node::Server::Init(exports); grpc::node::CompletionQueueAsyncWorker::Init(exports); grpc::node::ServerCredentials::Init(exports); + + // Attach a few utility functions directly to the module + Nan::Set(exports, Nan::New("metadataKeyIsLegal").ToLocalChecked(), + Nan::GetFunction( + Nan::New<FunctionTemplate>(MetadataKeyIsLegal)).ToLocalChecked()); + Nan::Set(exports, Nan::New("metadataNonbinValueIsLegal").ToLocalChecked(), + Nan::GetFunction( + Nan::New<FunctionTemplate>(MetadataNonbinValueIsLegal) + ).ToLocalChecked()); + Nan::Set(exports, Nan::New("metadataKeyIsBinary").ToLocalChecked(), + Nan::GetFunction( + Nan::New<FunctionTemplate>(MetadataKeyIsBinary) + ).ToLocalChecked()); } NODE_MODULE(grpc_node, init) diff --git a/src/node/ext/timeval.cc b/src/node/ext/timeval.cc index bf68513c48..64015e8412 100644 --- a/src/node/ext/timeval.cc +++ b/src/node/ext/timeval.cc @@ -46,7 +46,7 @@ gpr_timespec MillisecondsToTimespec(double millis) { } else if (millis == -std::numeric_limits<double>::infinity()) { return gpr_inf_past(GPR_CLOCK_REALTIME); } else { - return gpr_time_from_micros(static_cast<int64_t>(millis * 1000), + return gpr_time_from_micros(static_cast<long>(millis * 1000), GPR_CLOCK_REALTIME); } } diff --git a/src/node/interop/async_delay_queue.js b/src/node/interop/async_delay_queue.js index 2bd3ca4da3..df57209637 100644 --- a/src/node/interop/async_delay_queue.js +++ b/src/node/interop/async_delay_queue.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -36,8 +36,8 @@ var _ = require('lodash'); /** - * This class represents a queue of callbacks that must happen sequentially, each - * with a specific delay after the previous event. + * This class represents a queue of callbacks that must happen sequentially, + * each with a specific delay after the previous event. */ function AsyncDelayQueue() { this.queue = []; diff --git a/src/node/interop/interop_client.js b/src/node/interop/interop_client.js index 53ffa385bd..db383e4d00 100644 --- a/src/node/interop/interop_client.js +++ b/src/node/interop/interop_client.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,7 @@ var path = require('path'); var grpc = require('..'); var testProto = grpc.load({ root: __dirname + '/../../..', - file: 'test/proto/test.proto'}).grpc.testing; + file: 'src/proto/grpc/testing/test.proto'}).grpc.testing; var GoogleAuth = require('google-auth-library'); var assert = require('assert'); diff --git a/src/node/interop/interop_server.js b/src/node/interop/interop_server.js index 9526b5d183..c09481712a 100644 --- a/src/node/interop/interop_server.js +++ b/src/node/interop/interop_server.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,7 +40,7 @@ var AsyncDelayQueue = require('./async_delay_queue'); var grpc = require('..'); var testProto = grpc.load({ root: __dirname + '/../../..', - file: 'test/proto/test.proto'}).grpc.testing; + file: 'src/proto/grpc/testing/test.proto'}).grpc.testing; var ECHO_INITIAL_KEY = 'x-grpc-test-echo-initial'; var ECHO_TRAILING_KEY = 'x-grpc-test-echo-trailing-bin'; diff --git a/src/node/jsdoc_conf.json b/src/node/jsdoc_conf.json index 876a8e19c6..c3a0174f0e 100644 --- a/src/node/jsdoc_conf.json +++ b/src/node/jsdoc_conf.json @@ -3,13 +3,13 @@ "allowUnknownTags": true }, "source": { - "include": [ "index.js", "src" ], - "includePattern": ".+\\.js(doc)?$", + "include": [ "src/node/index.js", "src/node/src" ], + "includePattern": "src/node/.+\\.js(doc)?$", "excludePattern": "(^|\\/|\\\\)_" }, "opts": { "package": "package.json", - "readme": "README.md" + "readme": "src/node/README.md" }, "plugins": [], "templates": { diff --git a/src/node/performance/benchmark_client.js b/src/node/performance/benchmark_client.js index d97bdbbcaf..620aecde97 100644 --- a/src/node/performance/benchmark_client.js +++ b/src/node/performance/benchmark_client.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -48,7 +48,7 @@ var Histogram = require('./histogram'); var grpc = require('../../../'); var serviceProto = grpc.load({ root: __dirname + '/../../..', - file: 'test/proto/benchmarks/services.proto'}).grpc.testing; + file: 'src/proto/grpc/testing/services.proto'}).grpc.testing; /** * Create a buffer filled with size zeroes diff --git a/src/node/performance/benchmark_server.js b/src/node/performance/benchmark_server.js index ac96fc5edb..ba61e52ba1 100644 --- a/src/node/performance/benchmark_server.js +++ b/src/node/performance/benchmark_server.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -44,7 +44,7 @@ var path = require('path'); var grpc = require('../../../'); var serviceProto = grpc.load({ root: __dirname + '/../../..', - file: 'test/proto/benchmarks/services.proto'}).grpc.testing; + file: 'src/proto/grpc/testing/services.proto'}).grpc.testing; /** * Create a buffer filled with size zeroes diff --git a/src/node/performance/worker_server.js b/src/node/performance/worker_server.js index 43b86e5ecf..7c8ab00026 100644 --- a/src/node/performance/worker_server.js +++ b/src/node/performance/worker_server.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,7 @@ var worker_service_impl = require('./worker_service_impl'); var grpc = require('../../../'); var serviceProto = grpc.load({ root: __dirname + '/../../..', - file: 'test/proto/benchmarks/services.proto'}).grpc.testing; + file: 'src/proto/grpc/testing/services.proto'}).grpc.testing; function runServer(port) { var server_creds = grpc.ServerCredentials.createInsecure(); diff --git a/src/node/src/common.js b/src/node/src/common.js index e4fe5a8e03..2e6c01c4d7 100644 --- a/src/node/src/common.js +++ b/src/node/src/common.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -125,7 +125,7 @@ exports.getProtobufServiceAttrs = function getProtobufServiceAttrs(service) { var prefix = '/' + fullyQualifiedName(service) + '/'; return _.object(_.map(service.children, function(method) { return [_.camelCase(method.name), { - path: prefix + _.capitalize(method.name), + path: prefix + method.name, requestStream: method.requestStream, responseStream: method.responseStream, requestSerialize: serializeCls(method.resolvedRequestType.build()), diff --git a/src/node/src/metadata.js b/src/node/src/metadata.js index 0a2f1489b6..fef79f959e 100644 --- a/src/node/src/metadata.js +++ b/src/node/src/metadata.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -49,6 +49,8 @@ var _ = require('lodash'); +var grpc = require('bindings')('grpc_node'); + /** * Class for storing metadata. Keys are normalized to lowercase ASCII. * @constructor @@ -58,15 +60,16 @@ function Metadata() { } function normalizeKey(key) { - if (!(/^[A-Za-z\d_-]+$/.test(key))) { - throw new Error('Metadata keys must be nonempty strings containing only ' + - 'alphanumeric characters and hyphens'); + key = key.toLowerCase(); + if (grpc.metadataKeyIsLegal(key)) { + return key; + } else { + throw new Error('Metadata key contains illegal characters'); } - return key.toLowerCase(); } function validate(key, value) { - if (_.endsWith(key, '-bin')) { + if (grpc.metadataKeyIsBinary(key)) { if (!(value instanceof Buffer)) { throw new Error('keys that end with \'-bin\' must have Buffer values'); } @@ -75,9 +78,8 @@ function validate(key, value) { throw new Error( 'keys that don\'t end with \'-bin\' must have String values'); } - if (!(/^[\x20-\x7E]*$/.test(value))) { - throw new Error('Metadata string values can only contain printable ' + - 'ASCII characters and space'); + if (!grpc.metadataNonbinValueIsLegal(value)) { + throw new Error('Metadata string value contains illegal characters'); } } } diff --git a/src/node/test/echo_service.proto b/src/node/test/echo_service.proto index b2c7e3dc23..11b4f18c35 100644 --- a/src/node/test/echo_service.proto +++ b/src/node/test/echo_service.proto @@ -1,4 +1,4 @@ -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -36,4 +36,4 @@ message EchoMessage { service EchoService { rpc Echo (EchoMessage) returns (EchoMessage); -}
\ No newline at end of file +} diff --git a/src/node/test/test_messages.proto b/src/node/test/test_messages.proto index 685e9482bd..c77a937d3f 100644 --- a/src/node/test/test_messages.proto +++ b/src/node/test/test_messages.proto @@ -1,4 +1,4 @@ -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -35,4 +35,4 @@ message LongValues { sint64 sint_64 = 3; fixed64 fixed_64 = 4; sfixed64 sfixed_64 = 5; -}
\ No newline at end of file +} diff --git a/src/node/test/test_service.proto b/src/node/test/test_service.proto index 564169829c..0ac2ae79a7 100644 --- a/src/node/test/test_service.proto +++ b/src/node/test/test_service.proto @@ -1,4 +1,4 @@ -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -49,4 +49,4 @@ service TestService { rpc BidiStream (stream Request) returns (stream Response) { } -}
\ No newline at end of file +} diff --git a/src/objective-c/GRPCClient/GRPCCall.h b/src/objective-c/GRPCClient/GRPCCall.h index c9fda42855..7a77ae60b6 100644 --- a/src/objective-c/GRPCClient/GRPCCall.h +++ b/src/objective-c/GRPCClient/GRPCCall.h @@ -241,11 +241,11 @@ DEPRECATED_MSG_ATTRIBUTE("Use NSDictionary or NSMutableDictionary instead.") @protocol GRPCRequestHeaders <NSObject> @property(nonatomic, readonly) NSUInteger count; -- (id)objectForKeyedSubscript:(NSString *)key; -- (void)setObject:(id)obj forKeyedSubscript:(NSString *)key; +- (id)objectForKeyedSubscript:(id)key; +- (void)setObject:(id)obj forKeyedSubscript:(id)key; - (void)removeAllObjects; -- (void)removeObjectForKey:(NSString *)key; +- (void)removeObjectForKey:(id)key; @end #pragma clang diagnostic push diff --git a/src/objective-c/examples/SwiftSample/SwiftSample.xcodeproj/project.pbxproj b/src/objective-c/examples/SwiftSample/SwiftSample.xcodeproj/project.pbxproj index cfccdd453f..2f5716082b 100644 --- a/src/objective-c/examples/SwiftSample/SwiftSample.xcodeproj/project.pbxproj +++ b/src/objective-c/examples/SwiftSample/SwiftSample.xcodeproj/project.pbxproj @@ -107,6 +107,7 @@ 633BFFBF1B950B210007E424 /* Frameworks */, 633BFFC01B950B210007E424 /* Resources */, AC2F6F9AB1C090BB0BEE6E4D /* Copy Pods Resources */, + A1738A987353B0BF2C64F0F7 /* Embed Pods Frameworks */, ); buildRules = ( ); @@ -123,6 +124,7 @@ 633BFFBA1B950B210007E424 /* Project object */ = { isa = PBXProject; attributes = { + LastSwiftUpdateCheck = 0710; LastUpgradeCheck = 0640; ORGANIZATIONNAME = gRPC; TargetAttributes = { @@ -177,6 +179,21 @@ shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; + A1738A987353B0BF2C64F0F7 /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; AC2F6F9AB1C090BB0BEE6E4D /* Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -310,7 +327,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Bridging-Header.h"; - USER_HEADER_SEARCH_PATHS = "Pods/**"; + USER_HEADER_SEARCH_PATHS = ""; }; name = Debug; }; @@ -323,7 +340,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Bridging-Header.h"; - USER_HEADER_SEARCH_PATHS = "Pods/**"; + USER_HEADER_SEARCH_PATHS = ""; }; name = Release; }; diff --git a/src/php/ext/grpc/config.m4 b/src/php/ext/grpc/config.m4 index 7928687943..0fb843d51f 100755 --- a/src/php/ext/grpc/config.m4 +++ b/src/php/ext/grpc/config.m4 @@ -1,6 +1,9 @@ PHP_ARG_ENABLE(grpc, whether to enable grpc support, [ --enable-grpc Enable grpc support]) +PHP_ARG_ENABLE(coverage, whether to include code coverage symbols, +[ --enable-coverage Enable coverage support], no, no) + if test "$PHP_GRPC" != "no"; then dnl Write more examples of tests here... @@ -75,3 +78,66 @@ if test "$PHP_GRPC" != "no"; then channel_credentials.c completion_queue.c timeval.c server.c \ server_credentials.c php_grpc.c, $ext_shared, , -Wall -Werror -std=c11) fi + +if test "$PHP_COVERAGE" = "yes"; then + + if test "$GCC" != "yes"; then + AC_MSG_ERROR([GCC is required for --enable-coverage]) + fi + + dnl Check if ccache is being used + case `$php_shtool path $CC` in + *ccache*[)] gcc_ccache=yes;; + *[)] gcc_ccache=no;; + esac + + if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then + AC_MSG_ERROR([ccache must be disabled when --enable-coverage option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.]) + fi + + lcov_version_list="1.5 1.6 1.7 1.9 1.10 1.11" + + AC_CHECK_PROG(LCOV, lcov, lcov) + AC_CHECK_PROG(GENHTML, genhtml, genhtml) + PHP_SUBST(LCOV) + PHP_SUBST(GENHTML) + + if test "$LCOV"; then + AC_CACHE_CHECK([for lcov version], php_cv_lcov_version, [ + php_cv_lcov_version=invalid + lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'` #' + for lcov_check_version in $lcov_version_list; do + if test "$lcov_version" = "$lcov_check_version"; then + php_cv_lcov_version="$lcov_check_version (ok)" + fi + done + ]) + else + lcov_msg="To enable code coverage reporting you must have one of the following LCOV versions installed: $lcov_version_list" + AC_MSG_ERROR([$lcov_msg]) + fi + + case $php_cv_lcov_version in + ""|invalid[)] + lcov_msg="You must have one of the following versions of LCOV: $lcov_version_list (found: $lcov_version)." + AC_MSG_ERROR([$lcov_msg]) + LCOV="exit 0;" + ;; + esac + + if test -z "$GENHTML"; then + AC_MSG_ERROR([Could not find genhtml from the LCOV package]) + fi + + PHP_ADD_MAKEFILE_FRAGMENT + + dnl Remove all optimization flags from CFLAGS + changequote({,}) + CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'` + CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'` + changequote([,]) + + dnl Add the special gcc flags + CFLAGS="$CFLAGS -O0 -ggdb -fprofile-arcs -ftest-coverage" + CXXFLAGS="$CXXFLAGS -ggdb -O0 -fprofile-arcs -ftest-coverage" +fi diff --git a/src/php/ext/grpc/package.xml b/src/php/ext/grpc/package.xml index 9c98f82540..daf2ee5a53 100644 --- a/src/php/ext/grpc/package.xml +++ b/src/php/ext/grpc/package.xml @@ -10,8 +10,8 @@ <email>grpc-packages@google.com</email> <active>yes</active> </lead> - <date>2015-12-16</date> - <time>12:56:11</time> + <date>2016-01-13</date> + <time>16:06:07</time> <version> <release>0.7.0</release> <api>0.7.0</api> @@ -29,6 +29,7 @@ </notes> <contents> <dir baseinstalldir="/" name="/"> + <file baseinstalldir="/" md5sum="f201d644fdbd8228ffd1d4a69cc44f1f" name="tests/grpc-basic.phpt" role="test" /> <file baseinstalldir="/" md5sum="6f19828fb869b7b8a590cbb76b4f996d" name="byte_buffer.c" role="src" /> <file baseinstalldir="/" md5sum="c8de0f819499c48adfc8d7f472c0196b" name="byte_buffer.h" role="src" /> <file baseinstalldir="/" md5sum="ee7eb7757f9e6f0e36f8f616b6bd0af5" name="call.c" role="src" /> @@ -41,9 +42,9 @@ <file baseinstalldir="/" md5sum="a86250e03f610ce6c2c7595a84e08821" name="channel_credentials.h" role="src" /> <file baseinstalldir="/" md5sum="55ab7a42f9dd9bfc7e28a61cfc5fca63" name="completion_queue.c" role="src" /> <file baseinstalldir="/" md5sum="f10b5bb232d74a6878e829e2e76cdaa2" name="completion_queue.h" role="src" /> - <file baseinstalldir="/" md5sum="c7bba7f0f00d1b1483de457d55311382" name="config.m4" role="src" /> + <file baseinstalldir="/" md5sum="cafed254127007ff2271dad7d56a06c8" name="config.m4" role="src" /> <file baseinstalldir="/" md5sum="38a1bc979d810c36ebc2a52d4b7b5319" name="CREDITS" role="doc" /> - <file baseinstalldir="/" md5sum="3f35b472bbdef5a788cd90617d7d0847" name="LICENSE" role="doc" /> + <file baseinstalldir="/" md5sum="8847cf67b1b54c981d47ecbb0d139a0c" name="LICENSE" role="doc" /> <file baseinstalldir="/" md5sum="3131a8af38fe5918e5409016b89d6cdb" name="php_grpc.c" role="src" /> <file baseinstalldir="/" md5sum="673b07859d9f69232f8a754c56780686" name="php_grpc.h" role="src" /> <file baseinstalldir="/" md5sum="7533a6d3ea02c78cad23a9651de0825d" name="README.md" role="doc" /> @@ -142,7 +143,7 @@ Update to wrap gRPC C Core version 0.10.0 <release>beta</release> <api>beta</api> </stability> - <date>2015-12-16</date> + <date>2016-01-13</date> <license>BSD</license> <notes> - Breaking change to Credentials class (removed) #3765 diff --git a/src/php/ext/grpc/tests/grpc-basic.phpt b/src/php/ext/grpc/tests/grpc-basic.phpt new file mode 100644 index 0000000000..523cc4a59f --- /dev/null +++ b/src/php/ext/grpc/tests/grpc-basic.phpt @@ -0,0 +1,10 @@ +--TEST-- +Check for grpc presence +--SKIPIF-- +<?php if (!extension_loaded("grpc")) print "skip"; ?> +--FILE-- +<?php +echo "grpc extension is available"; +?> +--EXPECT-- +grpc extension is available
\ No newline at end of file diff --git a/src/proto/gen_build_yaml.py b/src/proto/gen_build_yaml.py new file mode 100755 index 0000000000..e243d0defc --- /dev/null +++ b/src/proto/gen_build_yaml.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python2.7 +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +"""Generates the appropriate build.json data for all the proto files.""" +import yaml +import collections +import os +import re +import sys + +def update_deps(key, proto_filename, deps, is_trans, visited): + if not proto_filename in visited: + visited.append(proto_filename) + with open(proto_filename) as inp: + for line in inp: + imp = re.search(r'import "([^"]*)"', line) + if not imp: continue + imp_proto = imp.group(1) + if key not in deps: deps[key] = [] + deps[key].append(imp_proto[:-6]) + if is_trans: + update_deps(key, imp_proto, deps, is_trans, visited) + +def main(): + proto_dir = os.path.abspath(os.path.dirname(sys.argv[0])) + os.chdir(os.path.join(proto_dir, '../..')) + + deps = {} + deps_trans = {} + for root, dirs, files in os.walk('src/proto'): + for f in files: + if f[-6:] != '.proto': continue + look_at = os.path.join(root, f) + deps_for = look_at[:-6] + update_deps(deps_for, look_at, deps, False, []) # First level deps + update_deps(deps_for, look_at, deps_trans, True, []) # Transitive deps + + json = { + 'proto_deps': deps, + 'proto_transitive_deps': deps_trans + } + + print yaml.dump(json) + +if __name__ == '__main__': + main() diff --git a/src/proto/grpc/health/v1alpha/health.proto b/src/proto/grpc/health/v1alpha/health.proto index 28786c4427..05f837dd99 100644 --- a/src/proto/grpc/health/v1alpha/health.proto +++ b/src/proto/grpc/health/v1alpha/health.proto @@ -1,4 +1,4 @@ -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -48,4 +48,4 @@ message HealthCheckResponse { service Health { rpc Check(HealthCheckRequest) returns (HealthCheckResponse); -}
\ No newline at end of file +} diff --git a/test/proto/benchmarks/control.proto b/src/proto/grpc/testing/control.proto index 42a5dd0a85..0784ebf91c 100644 --- a/test/proto/benchmarks/control.proto +++ b/src/proto/grpc/testing/control.proto @@ -29,8 +29,8 @@ syntax = "proto3"; -import "test/proto/benchmarks/payloads.proto"; -import "test/proto/benchmarks/stats.proto"; +import "src/proto/grpc/testing/payloads.proto"; +import "src/proto/grpc/testing/stats.proto"; package grpc.testing; @@ -61,9 +61,7 @@ message UniformParams { double interarrival_hi = 2; } -message DeterministicParams { - double offered_load = 1; -} +message DeterministicParams { double offered_load = 1; } message ParetoParams { double interarrival_base = 1; @@ -72,8 +70,7 @@ message ParetoParams { // Once an RPC finishes, immediately start a new one. // No configuration parameters needed. -message ClosedLoopParams { -} +message ClosedLoopParams {} message LoadParams { oneof load { @@ -111,9 +108,7 @@ message ClientConfig { HistogramParams histogram_params = 12; } -message ClientStatus { - ClientStats stats = 1; -} +message ClientStatus { ClientStats stats = 1; } // Request current stats message Mark { diff --git a/test/cpp/util/echo_duplicate.proto b/src/proto/grpc/testing/duplicate/echo_duplicate.proto index 9c1d67825a..9d84de108e 100644 --- a/test/cpp/util/echo_duplicate.proto +++ b/src/proto/grpc/testing/duplicate/echo_duplicate.proto @@ -1,5 +1,5 @@ -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -32,11 +32,10 @@ syntax = "proto3"; -import "test/cpp/util/messages.proto"; +import "src/proto/grpc/testing/echo_messages.proto"; -package grpc.cpp.test.util.duplicate; +package grpc.testing.duplicate; -service TestService { - rpc Echo(grpc.cpp.test.util.EchoRequest) - returns (grpc.cpp.test.util.EchoResponse); +service EchoTestService { + rpc Echo(grpc.testing.EchoRequest) returns (grpc.testing.EchoResponse); } diff --git a/test/cpp/util/echo.proto b/src/proto/grpc/testing/echo.proto index 8ea2f59897..06c3bafbad 100644 --- a/test/cpp/util/echo.proto +++ b/src/proto/grpc/testing/echo.proto @@ -1,5 +1,5 @@ -// Copyright 2015, Google Inc. +// Copyright 2015-2016, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -30,11 +30,11 @@ syntax = "proto3"; -import "test/cpp/util/messages.proto"; +import "src/proto/grpc/testing/echo_messages.proto"; -package grpc.cpp.test.util; +package grpc.testing; -service TestService { +service EchoTestService { rpc Echo(EchoRequest) returns (EchoResponse); rpc RequestStream(stream EchoRequest) returns (EchoResponse); rpc ResponseStream(EchoRequest) returns (stream EchoResponse); diff --git a/test/cpp/util/messages.proto b/src/proto/grpc/testing/echo_messages.proto index a022707be9..f01d645af7 100644 --- a/test/cpp/util/messages.proto +++ b/src/proto/grpc/testing/echo_messages.proto @@ -30,7 +30,7 @@ syntax = "proto3"; -package grpc.cpp.test.util; +package grpc.testing; message RequestParams { bool echo_deadline = 1; @@ -40,7 +40,7 @@ message RequestParams { bool check_auth_context = 5; int32 response_message_length = 6; bool echo_peer = 7; - string expected_client_identity = 8; // will force check_auth_context. + string expected_client_identity = 8; // will force check_auth_context. } message EchoRequest { diff --git a/test/proto/empty.proto b/src/proto/grpc/testing/empty.proto index 6d0eb937d6..6d0eb937d6 100644 --- a/test/proto/empty.proto +++ b/src/proto/grpc/testing/empty.proto diff --git a/test/proto/messages.proto b/src/proto/grpc/testing/messages.proto index 193b6c4171..193b6c4171 100644 --- a/test/proto/messages.proto +++ b/src/proto/grpc/testing/messages.proto diff --git a/test/proto/metrics.proto b/src/proto/grpc/testing/metrics.proto index f5a08e056a..4485d3a53b 100644 --- a/test/proto/metrics.proto +++ b/src/proto/grpc/testing/metrics.proto @@ -43,12 +43,9 @@ message GaugeResponse { } } -message GaugeRequest { - string name = 1; -} +message GaugeRequest { string name = 1; } -message EmptyMessage { -} +message EmptyMessage {} service MetricsService { rpc GetAllGauges(EmptyMessage) returns (stream GaugeResponse); diff --git a/test/proto/benchmarks/payloads.proto b/src/proto/grpc/testing/payloads.proto index 7e5b2c61ff..7e5b2c61ff 100644 --- a/test/proto/benchmarks/payloads.proto +++ b/src/proto/grpc/testing/payloads.proto diff --git a/test/cpp/qps/perf_db.proto b/src/proto/grpc/testing/perf_db.proto index 8a691ddded..0ba8596fe9 100644 --- a/test/cpp/qps/perf_db.proto +++ b/src/proto/grpc/testing/perf_db.proto @@ -29,15 +29,14 @@ syntax = "proto3"; -import "test/proto/benchmarks/control.proto"; +import "src/proto/grpc/testing/control.proto"; package grpc.testing; service PerfDbTransfer { // Sends client info rpc RecordSingleClientData(SingleUserRecordRequest) - returns (SingleUserRecordReply) { - } + returns (SingleUserRecordReply) {} } // Metrics to be stored @@ -67,5 +66,4 @@ message SingleUserRecordRequest { } // Reply to request for storing single user's data -message SingleUserRecordReply { -} +message SingleUserRecordReply {} diff --git a/test/proto/benchmarks/services.proto b/src/proto/grpc/testing/services.proto index ff295ed970..af285ceab8 100644 --- a/test/proto/benchmarks/services.proto +++ b/src/proto/grpc/testing/services.proto @@ -31,8 +31,8 @@ // of unary/streaming requests/responses. syntax = "proto3"; -import "test/proto/messages.proto"; -import "test/proto/benchmarks/control.proto"; +import "src/proto/grpc/testing/messages.proto"; +import "src/proto/grpc/testing/control.proto"; package grpc.testing; diff --git a/test/proto/benchmarks/stats.proto b/src/proto/grpc/testing/stats.proto index 7e02707dbb..f9d116110b 100644 --- a/test/proto/benchmarks/stats.proto +++ b/src/proto/grpc/testing/stats.proto @@ -45,8 +45,8 @@ message ServerStats { // Histogram params based on grpc/support/histogram.c message HistogramParams { - double resolution = 1; // first bucket is [0, 1 + resolution) - double max_possible = 2; // use enough buckets to allow this value + double resolution = 1; // first bucket is [0, 1 + resolution) + double max_possible = 2; // use enough buckets to allow this value } // Histogram data based on grpc/support/histogram.c diff --git a/test/proto/test.proto b/src/proto/grpc/testing/test.proto index d3166a6540..9faba297a3 100644 --- a/test/proto/test.proto +++ b/src/proto/grpc/testing/test.proto @@ -33,8 +33,8 @@ syntax = "proto3"; -import "test/proto/empty.proto"; -import "test/proto/messages.proto"; +import "src/proto/grpc/testing/empty.proto"; +import "src/proto/grpc/testing/messages.proto"; package grpc.testing; @@ -71,12 +71,11 @@ service TestService { returns (stream StreamingOutputCallResponse); } - // A simple service NOT implemented at servers so clients can test for // that case. service UnimplementedService { // A call that no server should implement - rpc UnimplementedCall(grpc.testing.Empty) returns(grpc.testing.Empty); + rpc UnimplementedCall(grpc.testing.Empty) returns (grpc.testing.Empty); } // A service used to control reconnect server. diff --git a/src/python/grpcio/.gitignore b/src/python/grpcio/.gitignore index 95b96f7c1e..1d804e1ffc 100644 --- a/src/python/grpcio/.gitignore +++ b/src/python/grpcio/.gitignore @@ -14,3 +14,4 @@ nosetests.xml doc/ _grpcio_metadata.py htmlcov/ +grpc/_adapter/credentials diff --git a/src/python/grpcio/MANIFEST.in b/src/python/grpcio/MANIFEST.in deleted file mode 100644 index 407eeabc17..0000000000 --- a/src/python/grpcio/MANIFEST.in +++ /dev/null @@ -1,4 +0,0 @@ -graft grpc -graft tests -include commands.py -include requirements.txt diff --git a/src/python/grpcio/commands.py b/src/python/grpcio/commands.py index d9fd023b21..e1a3f4bed3 100644 --- a/src/python/grpcio/commands.py +++ b/src/python/grpcio/commands.py @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -40,6 +40,19 @@ import setuptools from setuptools.command import build_py from setuptools.command import test +# Because we need to support building without Cython but simultaneously need to +# subclass its command class when we need to and because distutils requires a +# special hook to acquire a command class, we attempt to import Cython's +# build_ext, and if that fails we import setuptools'. +try: + # Due to the strange way Cython's Distutils module re-imports build_ext, we + # import the build_ext class directly. + from Cython.Distutils.build_ext import build_ext +except ImportError: + from setuptools.command.build_ext import build_ext + +PYTHON_STEM = os.path.dirname(os.path.abspath(__file__)) + CONF_PY_ADDENDUM = """ extensions.append('sphinx.ext.napoleon') napoleon_google_docstring = True @@ -49,6 +62,10 @@ html_theme = 'sphinx_rtd_theme' """ +class CommandError(Exception): + """Simple exception class for GRPC custom commands.""" + + class SphinxDocumentation(setuptools.Command): """Command to generate documentation via sphinx.""" @@ -68,7 +85,7 @@ class SphinxDocumentation(setuptools.Command): import sphinx.apidoc metadata = self.distribution.metadata src_dir = os.path.join( - os.getcwd(), self.distribution.package_dir[''], 'grpc') + PYTHON_STEM, self.distribution.package_dir[''], 'grpc') sys.path.append(src_dir) sphinx.apidoc.main([ '', '--force', '--full', '-H', metadata.name, '-A', metadata.author, @@ -101,10 +118,15 @@ class BuildProtoModules(setuptools.Command): 'grpc_python_plugin') def run(self): + if not self.protoc_command: + raise CommandError('could not find protoc') + if not self.grpc_python_plugin_command: + raise CommandError('could not find grpc_python_plugin ' + '(protoc plugin for GRPC Python)') include_regex = re.compile(self.include) exclude_regex = re.compile(self.exclude) if self.exclude else None paths = [] - root_directory = os.getcwd() + root_directory = PYTHON_STEM for walk_root, directories, filenames in os.walk(root_directory): for filename in filenames: path = os.path.join(walk_root, filename) @@ -123,7 +145,7 @@ class BuildProtoModules(setuptools.Command): subprocess.check_output(' '.join(command), cwd=root_directory, shell=True, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: - raise Exception('Command:\n{}\nMessage:\n{}\nOutput:\n{}'.format( + raise CommandError('Command:\n{}\nMessage:\n{}\nOutput:\n{}'.format( command, e.message, e.output)) @@ -140,7 +162,7 @@ class BuildProjectMetadata(setuptools.Command): pass def run(self): - with open('grpc/_grpcio_metadata.py', 'w') as module_file: + with open(os.path.join(PYTHON_STEM, 'grpc/_grpcio_metadata.py'), 'w') as module_file: module_file.write('__version__ = """{}"""'.format( self.distribution.get_version())) @@ -149,11 +171,34 @@ class BuildPy(build_py.build_py): """Custom project build command.""" def run(self): - self.run_command('build_proto_modules') + try: + self.run_command('build_proto_modules') + except CommandError as error: + sys.stderr.write('warning: %s\n' % error.message) self.run_command('build_project_metadata') build_py.build_py.run(self) +class BuildExt(build_ext): + """Custom build_ext command to enable compiler-specific flags.""" + + C_OPTIONS = { + 'unix': ('-pthread', '-std=gnu99'), + 'msvc': (), + } + LINK_OPTIONS = {} + + def build_extensions(self): + compiler = self.compiler.compiler_type + if compiler in BuildExt.C_OPTIONS: + for extension in self.extensions: + extension.extra_compile_args += list(BuildExt.C_OPTIONS[compiler]) + if compiler in BuildExt.LINK_OPTIONS: + for extension in self.extensions: + extension.extra_link_args += list(BuildExt.LINK_OPTIONS[compiler]) + build_ext.build_extensions(self) + + class Gather(setuptools.Command): """Command to gather project dependencies.""" diff --git a/src/python/grpcio/grpc/_adapter/_low.py b/src/python/grpcio/grpc/_adapter/_low.py index b13d8dd9dd..a850c57741 100644 --- a/src/python/grpcio/grpc/_adapter/_low.py +++ b/src/python/grpcio/grpc/_adapter/_low.py @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -27,6 +27,7 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +import pkg_resources import threading from grpc import _grpcio_metadata @@ -34,6 +35,7 @@ from grpc._cython import cygrpc from grpc._adapter import _implementations from grpc._adapter import _types +_ROOT_CERTIFICATES_RESOURCE_PATH = 'credentials/roots.pem' _USER_AGENT = 'Python-gRPC-{}'.format(_grpcio_metadata.__version__) ChannelCredentials = cygrpc.ChannelCredentials @@ -54,6 +56,9 @@ def channel_credentials_ssl( pair = None if private_key is not None or certificate_chain is not None: pair = cygrpc.SslPemKeyCertPair(private_key, certificate_chain) + if root_certificates is None: + root_certificates = pkg_resources.resource_string( + __name__, _ROOT_CERTIFICATES_RESOURCE_PATH) return cygrpc.channel_credentials_ssl(root_certificates, pair) diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/call.pxd b/src/python/grpcio/grpc/_cython/_cygrpc/call.pxd.pxi index fe9b81e3d3..6a316746fb 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/call.pxd +++ b/src/python/grpcio/grpc/_cython/_cygrpc/call.pxd.pxi @@ -27,11 +27,9 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -from grpc._cython._cygrpc cimport grpc - cdef class Call: - cdef grpc.grpc_call *c_call + cdef grpc_call *c_call cdef list references diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx b/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi index 1c07f9f4f4..80f4da51e8 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx +++ b/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi @@ -29,10 +29,6 @@ cimport cpython -from grpc._cython._cygrpc cimport credentials -from grpc._cython._cygrpc cimport grpc -from grpc._cython._cygrpc cimport records - cdef class Call: @@ -44,24 +40,24 @@ cdef class Call: def start_batch(self, operations, tag): if not self.is_valid: raise ValueError("invalid call object cannot be used from Python") - cdef records.Operations cy_operations = records.Operations(operations) - cdef records.OperationTag operation_tag = records.OperationTag(tag) + cdef Operations cy_operations = Operations(operations) + cdef OperationTag operation_tag = OperationTag(tag) operation_tag.operation_call = self operation_tag.batch_operations = cy_operations cpython.Py_INCREF(operation_tag) - return grpc.grpc_call_start_batch( + return grpc_call_start_batch( self.c_call, cy_operations.c_ops, cy_operations.c_nops, <cpython.PyObject *>operation_tag, NULL) def cancel( - self, grpc.grpc_status_code error_code=grpc.GRPC_STATUS__DO_NOT_USE, + self, grpc_status_code error_code=GRPC_STATUS__DO_NOT_USE, details=None): if not self.is_valid: raise ValueError("invalid call object cannot be used from Python") - if (details is None) != (error_code == grpc.GRPC_STATUS__DO_NOT_USE): + if (details is None) != (error_code == GRPC_STATUS__DO_NOT_USE): raise ValueError("if error_code is specified, so must details " "(and vice-versa)") - if error_code != grpc.GRPC_STATUS__DO_NOT_USE: + if error_code != GRPC_STATUS__DO_NOT_USE: if isinstance(details, bytes): pass elif isinstance(details, basestring): @@ -69,25 +65,25 @@ cdef class Call: else: raise TypeError("expected details to be str or bytes") self.references.append(details) - return grpc.grpc_call_cancel_with_status( + return grpc_call_cancel_with_status( self.c_call, error_code, details, NULL) else: - return grpc.grpc_call_cancel(self.c_call, NULL) + return grpc_call_cancel(self.c_call, NULL) def set_credentials( - self, credentials.CallCredentials call_credentials not None): - return grpc.grpc_call_set_credentials( + self, CallCredentials call_credentials not None): + return grpc_call_set_credentials( self.c_call, call_credentials.c_credentials) def peer(self): - cdef char *peer = grpc.grpc_call_get_peer(self.c_call) + cdef char *peer = grpc_call_get_peer(self.c_call) result = <bytes>peer - grpc.gpr_free(peer) + gpr_free(peer) return result def __dealloc__(self): if self.c_call != NULL: - grpc.grpc_call_destroy(self.c_call) + grpc_call_destroy(self.c_call) # The object *should* always be valid from Python. Used for debugging. @property diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd b/src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi index 3e341bf222..70da63db97 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd +++ b/src/python/grpcio/grpc/_cython/_cygrpc/channel.pxd.pxi @@ -27,10 +27,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -from grpc._cython._cygrpc cimport grpc - cdef class Channel: - cdef grpc.grpc_channel *c_channel + cdef grpc_channel *c_channel cdef list references diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx b/src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi index a944a83576..ac67f32d92 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx +++ b/src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi @@ -29,18 +29,12 @@ cimport cpython -from grpc._cython._cygrpc cimport call -from grpc._cython._cygrpc cimport completion_queue -from grpc._cython._cygrpc cimport credentials -from grpc._cython._cygrpc cimport grpc -from grpc._cython._cygrpc cimport records - cdef class Channel: - def __cinit__(self, target, records.ChannelArgs arguments=None, - credentials.ChannelCredentials channel_credentials=None): - cdef grpc.grpc_channel_args *c_arguments = NULL + def __cinit__(self, target, ChannelArgs arguments=None, + ChannelCredentials channel_credentials=None): + cdef grpc_channel_args *c_arguments = NULL self.c_channel = NULL self.references = [] if arguments is not None: @@ -52,18 +46,18 @@ cdef class Channel: else: raise TypeError("expected target to be str or bytes") if channel_credentials is None: - self.c_channel = grpc.grpc_insecure_channel_create(target, c_arguments, + self.c_channel = grpc_insecure_channel_create(target, c_arguments, NULL) else: - self.c_channel = grpc.grpc_secure_channel_create( + self.c_channel = grpc_secure_channel_create( channel_credentials.c_credentials, target, c_arguments, NULL) self.references.append(channel_credentials) self.references.append(target) self.references.append(arguments) - def create_call(self, call.Call parent, int flags, - completion_queue.CompletionQueue queue not None, - method, host, records.Timespec deadline not None): + def create_call(self, Call parent, int flags, + CompletionQueue queue not None, + method, host, Timespec deadline not None): if queue.is_shutting_down: raise ValueError("queue must not be shutting down or shutdown") if isinstance(method, bytes): @@ -82,36 +76,36 @@ cdef class Channel: host_c_string = host else: raise TypeError("expected host to be str, bytes, or None") - cdef call.Call operation_call = call.Call() + cdef Call operation_call = Call() operation_call.references = [self, method, host, queue] - cdef grpc.grpc_call *parent_call = NULL + cdef grpc_call *parent_call = NULL if parent is not None: parent_call = parent.c_call - operation_call.c_call = grpc.grpc_channel_create_call( + operation_call.c_call = grpc_channel_create_call( self.c_channel, parent_call, flags, queue.c_completion_queue, method, host_c_string, deadline.c_time, NULL) return operation_call def check_connectivity_state(self, bint try_to_connect): - return grpc.grpc_channel_check_connectivity_state(self.c_channel, + return grpc_channel_check_connectivity_state(self.c_channel, try_to_connect) def watch_connectivity_state( - self, last_observed_state, records.Timespec deadline not None, - completion_queue.CompletionQueue queue not None, tag): - cdef records.OperationTag operation_tag = records.OperationTag(tag) + self, last_observed_state, Timespec deadline not None, + CompletionQueue queue not None, tag): + cdef OperationTag operation_tag = OperationTag(tag) cpython.Py_INCREF(operation_tag) - grpc.grpc_channel_watch_connectivity_state( + grpc_channel_watch_connectivity_state( self.c_channel, last_observed_state, deadline.c_time, queue.c_completion_queue, <cpython.PyObject *>operation_tag) def target(self): - cdef char * target = grpc.grpc_channel_get_target(self.c_channel) + cdef char * target = grpc_channel_get_target(self.c_channel) result = <bytes>target - grpc.gpr_free(target) + gpr_free(target) return result def __dealloc__(self): if self.c_channel != NULL: - grpc.grpc_channel_destroy(self.c_channel) + grpc_channel_destroy(self.c_channel) diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd b/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi index 1ed5d4b229..757f1245e8 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd +++ b/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi @@ -27,15 +27,13 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -from grpc._cython._cygrpc cimport grpc - cdef class CompletionQueue: - cdef grpc.grpc_completion_queue *c_completion_queue + cdef grpc_completion_queue *c_completion_queue cdef object poll_condition cdef bint is_polling cdef bint is_shutting_down cdef bint is_shutdown - cdef _interpret_event(self, grpc.grpc_event event) + cdef _interpret_event(self, grpc_event event) diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx b/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi index 635a38fe28..bbf8413299 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx +++ b/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi @@ -29,10 +29,6 @@ cimport cpython -from grpc._cython._cygrpc cimport call -from grpc._cython._cygrpc cimport grpc -from grpc._cython._cygrpc cimport records - import threading import time @@ -40,29 +36,29 @@ import time cdef class CompletionQueue: def __cinit__(self): - self.c_completion_queue = grpc.grpc_completion_queue_create(NULL) + self.c_completion_queue = grpc_completion_queue_create(NULL) self.is_shutting_down = False self.is_shutdown = False self.poll_condition = threading.Condition() self.is_polling = False - cdef _interpret_event(self, grpc.grpc_event event): - cdef records.OperationTag tag = None + cdef _interpret_event(self, grpc_event event): + cdef OperationTag tag = None cdef object user_tag = None - cdef call.Call operation_call = None - cdef records.CallDetails request_call_details = None - cdef records.Metadata request_metadata = None - cdef records.Operations batch_operations = None - if event.type == grpc.GRPC_QUEUE_TIMEOUT: - return records.Event( + cdef Call operation_call = None + cdef CallDetails request_call_details = None + cdef Metadata request_metadata = None + cdef Operations batch_operations = None + if event.type == GRPC_QUEUE_TIMEOUT: + return Event( event.type, False, None, None, None, None, False, None) - elif event.type == grpc.GRPC_QUEUE_SHUTDOWN: + elif event.type == GRPC_QUEUE_SHUTDOWN: self.is_shutdown = True - return records.Event( + return Event( event.type, True, None, None, None, None, False, None) else: if event.tag != NULL: - tag = <records.OperationTag>event.tag + tag = <OperationTag>event.tag # We receive event tags only after they've been inc-ref'd elsewhere in # the code. cpython.Py_DECREF(tag) @@ -77,19 +73,19 @@ cdef class CompletionQueue: # Stuff in the tag not explicitly handled by us needs to live through # the life of the call operation_call.references.extend(tag.references) - return records.Event( + return Event( event.type, event.success, user_tag, operation_call, request_call_details, request_metadata, tag.is_new_request, batch_operations) - def poll(self, records.Timespec deadline=None): + def poll(self, Timespec deadline=None): # We name this 'poll' to avoid problems with CPython's expectations for # 'special' methods (like next and __next__). - cdef grpc.gpr_timespec c_deadline = grpc.gpr_inf_future( - grpc.GPR_CLOCK_REALTIME) + cdef gpr_timespec c_deadline = gpr_inf_future( + GPR_CLOCK_REALTIME) if deadline is not None: c_deadline = deadline.c_time - cdef grpc.grpc_event event + cdef grpc_event event # Poll within a critical section # TODO(atash) consider making queue polling contention a hard error to @@ -99,21 +95,21 @@ cdef class CompletionQueue: self.poll_condition.wait(float(deadline) - time.time()) self.is_polling = True with nogil: - event = grpc.grpc_completion_queue_next( + event = grpc_completion_queue_next( self.c_completion_queue, c_deadline, NULL) with self.poll_condition: self.is_polling = False self.poll_condition.notify() return self._interpret_event(event) - def pluck(self, records.OperationTag tag, records.Timespec deadline=None): + def pluck(self, OperationTag tag, Timespec deadline=None): # Plucking a 'None' tag is equivalent to passing control to GRPC core until # the deadline. - cdef grpc.gpr_timespec c_deadline = grpc.gpr_inf_future( - grpc.GPR_CLOCK_REALTIME) + cdef gpr_timespec c_deadline = gpr_inf_future( + GPR_CLOCK_REALTIME) if deadline is not None: c_deadline = deadline.c_time - cdef grpc.grpc_event event + cdef grpc_event event # Poll within a critical section # TODO(atash) consider making queue polling contention a hard error to @@ -123,7 +119,7 @@ cdef class CompletionQueue: self.poll_condition.wait(float(deadline) - time.time()) self.is_polling = True with nogil: - event = grpc.grpc_completion_queue_pluck( + event = grpc_completion_queue_pluck( self.c_completion_queue, <cpython.PyObject *>tag, c_deadline, NULL) with self.poll_condition: self.is_polling = False @@ -131,13 +127,13 @@ cdef class CompletionQueue: return self._interpret_event(event) def shutdown(self): - grpc.grpc_completion_queue_shutdown(self.c_completion_queue) + grpc_completion_queue_shutdown(self.c_completion_queue) self.is_shutting_down = True def clear(self): if not self.is_shutting_down: raise ValueError('queue must be shutting down to be cleared') - while self.poll().type != grpc.GRPC_QUEUE_SHUTDOWN: + while self.poll().type != GRPC_QUEUE_SHUTDOWN: pass def __dealloc__(self): @@ -147,4 +143,4 @@ cdef class CompletionQueue: self.shutdown() while not self.is_shutdown: self.poll() - grpc.grpc_completion_queue_destroy(self.c_completion_queue) + grpc_completion_queue_destroy(self.c_completion_queue) diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd b/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi index db9f8ddec9..c793c8f5e5 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd +++ b/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pxd.pxi @@ -29,27 +29,24 @@ cimport cpython -from grpc._cython._cygrpc cimport grpc -from grpc._cython._cygrpc cimport records - cdef class ChannelCredentials: - cdef grpc.grpc_channel_credentials *c_credentials - cdef grpc.grpc_ssl_pem_key_cert_pair c_ssl_pem_key_cert_pair + cdef grpc_channel_credentials *c_credentials + cdef grpc_ssl_pem_key_cert_pair c_ssl_pem_key_cert_pair cdef list references cdef class CallCredentials: - cdef grpc.grpc_call_credentials *c_credentials + cdef grpc_call_credentials *c_credentials cdef list references cdef class ServerCredentials: - cdef grpc.grpc_server_credentials *c_credentials - cdef grpc.grpc_ssl_pem_key_cert_pair *c_ssl_pem_key_cert_pairs + cdef grpc_server_credentials *c_credentials + cdef grpc_ssl_pem_key_cert_pair *c_ssl_pem_key_cert_pairs cdef size_t c_ssl_pem_key_cert_pairs_count cdef list references @@ -59,16 +56,16 @@ cdef class CredentialsMetadataPlugin: cdef object plugin_callback cdef str plugin_name - cdef grpc.grpc_metadata_credentials_plugin make_c_plugin(self) + cdef grpc_metadata_credentials_plugin make_c_plugin(self) cdef class AuthMetadataContext: - cdef grpc.grpc_auth_metadata_context context + cdef grpc_auth_metadata_context context cdef void plugin_get_metadata( - void *state, grpc.grpc_auth_metadata_context context, - grpc.grpc_credentials_plugin_metadata_cb cb, void *user_data) with gil + void *state, grpc_auth_metadata_context context, + grpc_credentials_plugin_metadata_cb cb, void *user_data) with gil cdef void plugin_destroy_c_plugin_state(void *state) diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx b/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi index a968894967..3f439c8900 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx +++ b/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi @@ -29,9 +29,6 @@ cimport cpython -from grpc._cython._cygrpc cimport grpc -from grpc._cython._cygrpc cimport records - cdef class ChannelCredentials: @@ -49,7 +46,7 @@ cdef class ChannelCredentials: def __dealloc__(self): if self.c_credentials != NULL: - grpc.grpc_channel_credentials_release(self.c_credentials) + grpc_channel_credentials_release(self.c_credentials) cdef class CallCredentials: @@ -66,7 +63,7 @@ cdef class CallCredentials: def __dealloc__(self): if self.c_credentials != NULL: - grpc.grpc_call_credentials_release(self.c_credentials) + grpc_call_credentials_release(self.c_credentials) cdef class ServerCredentials: @@ -77,7 +74,7 @@ cdef class ServerCredentials: def __dealloc__(self): if self.c_credentials != NULL: - grpc.grpc_server_credentials_release(self.c_credentials) + grpc_server_credentials_release(self.c_credentials) cdef class CredentialsMetadataPlugin: @@ -86,8 +83,8 @@ cdef class CredentialsMetadataPlugin: """ Args: plugin_callback (callable): Callback accepting a service URL (str/bytes) - and callback object (accepting a records.Metadata, - grpc.grpc_status_code, and a str/bytes error message). This argument + and callback object (accepting a Metadata, + grpc_status_code, and a str/bytes error message). This argument when called should be non-blocking and eventually call the callback object with the appropriate status code/details and metadata (if successful). @@ -99,8 +96,8 @@ cdef class CredentialsMetadataPlugin: self.plugin_name = name @staticmethod - cdef grpc.grpc_metadata_credentials_plugin make_c_plugin(self): - cdef grpc.grpc_metadata_credentials_plugin result + cdef grpc_metadata_credentials_plugin make_c_plugin(self): + cdef grpc_metadata_credentials_plugin result result.get_metadata = plugin_get_metadata result.destroy = plugin_destroy_c_plugin_state result.state = <void *>self @@ -125,10 +122,10 @@ cdef class AuthMetadataContext: cdef void plugin_get_metadata( - void *state, grpc.grpc_auth_metadata_context context, - grpc.grpc_credentials_plugin_metadata_cb cb, void *user_data) with gil: + void *state, grpc_auth_metadata_context context, + grpc_credentials_plugin_metadata_cb cb, void *user_data) with gil: def python_callback( - records.Metadata metadata, grpc.grpc_status_code status, + Metadata metadata, grpc_status_code status, const char *error_details): cb(user_data, metadata.c_metadata_array.metadata, metadata.c_metadata_array.count, status, error_details) @@ -142,11 +139,11 @@ cdef void plugin_destroy_c_plugin_state(void *state): def channel_credentials_google_default(): cdef ChannelCredentials credentials = ChannelCredentials(); - credentials.c_credentials = grpc.grpc_google_default_credentials_create() + credentials.c_credentials = grpc_google_default_credentials_create() return credentials def channel_credentials_ssl(pem_root_certificates, - records.SslPemKeyCertPair ssl_pem_key_cert_pair): + SslPemKeyCertPair ssl_pem_key_cert_pair): if pem_root_certificates is None: pass elif isinstance(pem_root_certificates, bytes): @@ -161,11 +158,11 @@ def channel_credentials_ssl(pem_root_certificates, c_pem_root_certificates = pem_root_certificates credentials.references.append(pem_root_certificates) if ssl_pem_key_cert_pair is not None: - credentials.c_credentials = grpc.grpc_ssl_credentials_create( + credentials.c_credentials = grpc_ssl_credentials_create( c_pem_root_certificates, &ssl_pem_key_cert_pair.c_pair, NULL) credentials.references.append(ssl_pem_key_cert_pair) else: - credentials.c_credentials = grpc.grpc_ssl_credentials_create( + credentials.c_credentials = grpc_ssl_credentials_create( c_pem_root_certificates, NULL, NULL) return credentials @@ -175,7 +172,7 @@ def channel_credentials_composite( if not credentials_1.is_valid or not credentials_2.is_valid: raise ValueError("passed credentials must both be valid") cdef ChannelCredentials credentials = ChannelCredentials() - credentials.c_credentials = grpc.grpc_composite_channel_credentials_create( + credentials.c_credentials = grpc_composite_channel_credentials_create( credentials_1.c_credentials, credentials_2.c_credentials, NULL) credentials.references.append(credentials_1) credentials.references.append(credentials_2) @@ -187,7 +184,7 @@ def call_credentials_composite( if not credentials_1.is_valid or not credentials_2.is_valid: raise ValueError("passed credentials must both be valid") cdef CallCredentials credentials = CallCredentials() - credentials.c_credentials = grpc.grpc_composite_call_credentials_create( + credentials.c_credentials = grpc_composite_call_credentials_create( credentials_1.c_credentials, credentials_2.c_credentials, NULL) credentials.references.append(credentials_1) credentials.references.append(credentials_2) @@ -196,11 +193,11 @@ def call_credentials_composite( def call_credentials_google_compute_engine(): cdef CallCredentials credentials = CallCredentials() credentials.c_credentials = ( - grpc.grpc_google_compute_engine_credentials_create(NULL)) + grpc_google_compute_engine_credentials_create(NULL)) return credentials def call_credentials_service_account_jwt_access( - json_key, records.Timespec token_lifetime not None): + json_key, Timespec token_lifetime not None): if isinstance(json_key, bytes): pass elif isinstance(json_key, basestring): @@ -209,7 +206,7 @@ def call_credentials_service_account_jwt_access( raise TypeError("expected json_key to be str or bytes") cdef CallCredentials credentials = CallCredentials() credentials.c_credentials = ( - grpc.grpc_service_account_jwt_access_credentials_create( + grpc_service_account_jwt_access_credentials_create( json_key, token_lifetime.c_time, NULL)) credentials.references.append(json_key) return credentials @@ -222,7 +219,7 @@ def call_credentials_google_refresh_token(json_refresh_token): else: raise TypeError("expected json_refresh_token to be str or bytes") cdef CallCredentials credentials = CallCredentials() - credentials.c_credentials = grpc.grpc_google_refresh_token_credentials_create( + credentials.c_credentials = grpc_google_refresh_token_credentials_create( json_refresh_token, NULL) credentials.references.append(json_refresh_token) return credentials @@ -241,7 +238,7 @@ def call_credentials_google_iam(authorization_token, authority_selector): else: raise TypeError("expected authority_selector to be str or bytes") cdef CallCredentials credentials = CallCredentials() - credentials.c_credentials = grpc.grpc_google_iam_credentials_create( + credentials.c_credentials = grpc_google_iam_credentials_create( authorization_token, authority_selector, NULL) credentials.references.append(authorization_token) credentials.references.append(authority_selector) @@ -250,7 +247,7 @@ def call_credentials_google_iam(authorization_token, authority_selector): def call_credentials_metadata_plugin(CredentialsMetadataPlugin plugin): cdef CallCredentials credentials = CallCredentials() credentials.c_credentials = ( - grpc.grpc_metadata_credentials_create_from_plugin(plugin.make_c_plugin(), + grpc_metadata_credentials_create_from_plugin(plugin.make_c_plugin(), NULL)) # TODO(atash): the following held reference is *probably* never necessary credentials.references.append(plugin) @@ -270,22 +267,22 @@ def server_credentials_ssl(pem_root_certs, pem_key_cert_pairs, raise TypeError("expected pem_root_certs to be str or bytes") pem_key_cert_pairs = list(pem_key_cert_pairs) for pair in pem_key_cert_pairs: - if not isinstance(pair, records.SslPemKeyCertPair): + if not isinstance(pair, SslPemKeyCertPair): raise TypeError("expected pem_key_cert_pairs to be sequence of " - "records.SslPemKeyCertPair") + "SslPemKeyCertPair") cdef ServerCredentials credentials = ServerCredentials() credentials.references.append(pem_key_cert_pairs) credentials.references.append(pem_root_certs) credentials.c_ssl_pem_key_cert_pairs_count = len(pem_key_cert_pairs) credentials.c_ssl_pem_key_cert_pairs = ( - <grpc.grpc_ssl_pem_key_cert_pair *>grpc.gpr_malloc( - sizeof(grpc.grpc_ssl_pem_key_cert_pair) * + <grpc_ssl_pem_key_cert_pair *>gpr_malloc( + sizeof(grpc_ssl_pem_key_cert_pair) * credentials.c_ssl_pem_key_cert_pairs_count )) for i in range(credentials.c_ssl_pem_key_cert_pairs_count): credentials.c_ssl_pem_key_cert_pairs[i] = ( - (<records.SslPemKeyCertPair>pem_key_cert_pairs[i]).c_pair) - credentials.c_credentials = grpc.grpc_ssl_server_credentials_create( + (<SslPemKeyCertPair>pem_key_cert_pairs[i]).c_pair) + credentials.c_credentials = grpc_ssl_server_credentials_create( c_pem_root_certs, credentials.c_ssl_pem_key_cert_pairs, credentials.c_ssl_pem_key_cert_pairs_count, force_client_auth, NULL) return credentials diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxd b/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi index 9b10d2ae75..9b10d2ae75 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxd +++ b/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/records.pxd b/src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi index 4c844e4cb6..30397818a1 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/records.pxd +++ b/src/python/grpcio/grpc/_cython/_cygrpc/records.pxd.pxi @@ -27,19 +27,15 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -from grpc._cython._cygrpc cimport grpc -from grpc._cython._cygrpc cimport call -from grpc._cython._cygrpc cimport server - cdef class Timespec: - cdef grpc.gpr_timespec c_time + cdef gpr_timespec c_time cdef class CallDetails: - cdef grpc.grpc_call_details c_details + cdef grpc_call_details c_details cdef class OperationTag: @@ -48,8 +44,8 @@ cdef class OperationTag: cdef list references # This allows CompletionQueue to notify the Python Server object that the # underlying GRPC core server has shutdown - cdef server.Server shutting_down_server - cdef call.Call operation_call + cdef Server shutting_down_server + cdef Call operation_call cdef CallDetails request_call_details cdef Metadata request_metadata cdef Operations batch_operations @@ -58,12 +54,12 @@ cdef class OperationTag: cdef class Event: - cdef readonly grpc.grpc_completion_type type + cdef readonly grpc_completion_type type cdef readonly bint success cdef readonly object tag # For operations with calls - cdef readonly call.Call operation_call + cdef readonly Call operation_call # For Server.request_call cdef readonly bint is_new_request @@ -76,45 +72,45 @@ cdef class Event: cdef class ByteBuffer: - cdef grpc.grpc_byte_buffer *c_byte_buffer + cdef grpc_byte_buffer *c_byte_buffer cdef class SslPemKeyCertPair: - cdef grpc.grpc_ssl_pem_key_cert_pair c_pair + cdef grpc_ssl_pem_key_cert_pair c_pair cdef readonly object private_key, certificate_chain cdef class ChannelArg: - cdef grpc.grpc_arg c_arg + cdef grpc_arg c_arg cdef readonly object key, value cdef class ChannelArgs: - cdef grpc.grpc_channel_args c_args + cdef grpc_channel_args c_args cdef list args cdef class Metadatum: - cdef grpc.grpc_metadata c_metadata + cdef grpc_metadata c_metadata cdef object _key, _value cdef class Metadata: - cdef grpc.grpc_metadata_array c_metadata_array + cdef grpc_metadata_array c_metadata_array cdef object metadata cdef class Operation: - cdef grpc.grpc_op c_op + cdef grpc_op c_op cdef ByteBuffer _received_message cdef Metadata _received_metadata - cdef grpc.grpc_status_code _received_status_code + cdef grpc_status_code _received_status_code cdef char *_received_status_details cdef size_t _received_status_details_capacity cdef int _received_cancelled @@ -124,7 +120,7 @@ cdef class Operation: cdef class Operations: - cdef grpc.grpc_op *c_ops + cdef grpc_op *c_ops cdef size_t c_nops cdef list operations diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx b/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi index 79a7f8f563..d7ad9e5215 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx +++ b/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi @@ -27,103 +27,99 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -from grpc._cython._cygrpc cimport grpc -from grpc._cython._cygrpc cimport call -from grpc._cython._cygrpc cimport server - class ConnectivityState: - idle = grpc.GRPC_CHANNEL_IDLE - connecting = grpc.GRPC_CHANNEL_CONNECTING - ready = grpc.GRPC_CHANNEL_READY - transient_failure = grpc.GRPC_CHANNEL_TRANSIENT_FAILURE - fatal_failure = grpc.GRPC_CHANNEL_FATAL_FAILURE + idle = GRPC_CHANNEL_IDLE + connecting = GRPC_CHANNEL_CONNECTING + ready = GRPC_CHANNEL_READY + transient_failure = GRPC_CHANNEL_TRANSIENT_FAILURE + fatal_failure = GRPC_CHANNEL_FATAL_FAILURE class ChannelArgKey: - enable_census = grpc.GRPC_ARG_ENABLE_CENSUS - max_concurrent_streams = grpc.GRPC_ARG_MAX_CONCURRENT_STREAMS - max_message_length = grpc.GRPC_ARG_MAX_MESSAGE_LENGTH - http2_initial_sequence_number = grpc.GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER - default_authority = grpc.GRPC_ARG_DEFAULT_AUTHORITY - primary_user_agent_string = grpc.GRPC_ARG_PRIMARY_USER_AGENT_STRING - secondary_user_agent_string = grpc.GRPC_ARG_SECONDARY_USER_AGENT_STRING - ssl_target_name_override = grpc.GRPC_SSL_TARGET_NAME_OVERRIDE_ARG + enable_census = GRPC_ARG_ENABLE_CENSUS + max_concurrent_streams = GRPC_ARG_MAX_CONCURRENT_STREAMS + max_message_length = GRPC_ARG_MAX_MESSAGE_LENGTH + http2_initial_sequence_number = GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER + default_authority = GRPC_ARG_DEFAULT_AUTHORITY + primary_user_agent_string = GRPC_ARG_PRIMARY_USER_AGENT_STRING + secondary_user_agent_string = GRPC_ARG_SECONDARY_USER_AGENT_STRING + ssl_target_name_override = GRPC_SSL_TARGET_NAME_OVERRIDE_ARG class WriteFlag: - buffer_hint = grpc.GRPC_WRITE_BUFFER_HINT - no_compress = grpc.GRPC_WRITE_NO_COMPRESS + buffer_hint = GRPC_WRITE_BUFFER_HINT + no_compress = GRPC_WRITE_NO_COMPRESS class StatusCode: - ok = grpc.GRPC_STATUS_OK - cancelled = grpc.GRPC_STATUS_CANCELLED - unknown = grpc.GRPC_STATUS_UNKNOWN - invalid_argument = grpc.GRPC_STATUS_INVALID_ARGUMENT - deadline_exceeded = grpc.GRPC_STATUS_DEADLINE_EXCEEDED - not_found = grpc.GRPC_STATUS_NOT_FOUND - already_exists = grpc.GRPC_STATUS_ALREADY_EXISTS - permission_denied = grpc.GRPC_STATUS_PERMISSION_DENIED - unauthenticated = grpc.GRPC_STATUS_UNAUTHENTICATED - resource_exhausted = grpc.GRPC_STATUS_RESOURCE_EXHAUSTED - failed_precondition = grpc.GRPC_STATUS_FAILED_PRECONDITION - aborted = grpc.GRPC_STATUS_ABORTED - out_of_range = grpc.GRPC_STATUS_OUT_OF_RANGE - unimplemented = grpc.GRPC_STATUS_UNIMPLEMENTED - internal = grpc.GRPC_STATUS_INTERNAL - unavailable = grpc.GRPC_STATUS_UNAVAILABLE - data_loss = grpc.GRPC_STATUS_DATA_LOSS + ok = GRPC_STATUS_OK + cancelled = GRPC_STATUS_CANCELLED + unknown = GRPC_STATUS_UNKNOWN + invalid_argument = GRPC_STATUS_INVALID_ARGUMENT + deadline_exceeded = GRPC_STATUS_DEADLINE_EXCEEDED + not_found = GRPC_STATUS_NOT_FOUND + already_exists = GRPC_STATUS_ALREADY_EXISTS + permission_denied = GRPC_STATUS_PERMISSION_DENIED + unauthenticated = GRPC_STATUS_UNAUTHENTICATED + resource_exhausted = GRPC_STATUS_RESOURCE_EXHAUSTED + failed_precondition = GRPC_STATUS_FAILED_PRECONDITION + aborted = GRPC_STATUS_ABORTED + out_of_range = GRPC_STATUS_OUT_OF_RANGE + unimplemented = GRPC_STATUS_UNIMPLEMENTED + internal = GRPC_STATUS_INTERNAL + unavailable = GRPC_STATUS_UNAVAILABLE + data_loss = GRPC_STATUS_DATA_LOSS class CallError: - ok = grpc.GRPC_CALL_OK - error = grpc.GRPC_CALL_ERROR - not_on_server = grpc.GRPC_CALL_ERROR_NOT_ON_SERVER - not_on_client = grpc.GRPC_CALL_ERROR_NOT_ON_CLIENT - already_accepted = grpc.GRPC_CALL_ERROR_ALREADY_ACCEPTED - already_invoked = grpc.GRPC_CALL_ERROR_ALREADY_INVOKED - not_invoked = grpc.GRPC_CALL_ERROR_NOT_INVOKED - already_finished = grpc.GRPC_CALL_ERROR_ALREADY_FINISHED - too_many_operations = grpc.GRPC_CALL_ERROR_TOO_MANY_OPERATIONS - invalid_flags = grpc.GRPC_CALL_ERROR_INVALID_FLAGS - invalid_metadata = grpc.GRPC_CALL_ERROR_INVALID_METADATA + ok = GRPC_CALL_OK + error = GRPC_CALL_ERROR + not_on_server = GRPC_CALL_ERROR_NOT_ON_SERVER + not_on_client = GRPC_CALL_ERROR_NOT_ON_CLIENT + already_accepted = GRPC_CALL_ERROR_ALREADY_ACCEPTED + already_invoked = GRPC_CALL_ERROR_ALREADY_INVOKED + not_invoked = GRPC_CALL_ERROR_NOT_INVOKED + already_finished = GRPC_CALL_ERROR_ALREADY_FINISHED + too_many_operations = GRPC_CALL_ERROR_TOO_MANY_OPERATIONS + invalid_flags = GRPC_CALL_ERROR_INVALID_FLAGS + invalid_metadata = GRPC_CALL_ERROR_INVALID_METADATA class CompletionType: - queue_shutdown = grpc.GRPC_QUEUE_SHUTDOWN - queue_timeout = grpc.GRPC_QUEUE_TIMEOUT - operation_complete = grpc.GRPC_OP_COMPLETE + queue_shutdown = GRPC_QUEUE_SHUTDOWN + queue_timeout = GRPC_QUEUE_TIMEOUT + operation_complete = GRPC_OP_COMPLETE class OperationType: - send_initial_metadata = grpc.GRPC_OP_SEND_INITIAL_METADATA - send_message = grpc.GRPC_OP_SEND_MESSAGE - send_close_from_client = grpc.GRPC_OP_SEND_CLOSE_FROM_CLIENT - send_status_from_server = grpc.GRPC_OP_SEND_STATUS_FROM_SERVER - receive_initial_metadata = grpc.GRPC_OP_RECV_INITIAL_METADATA - receive_message = grpc.GRPC_OP_RECV_MESSAGE - receive_status_on_client = grpc.GRPC_OP_RECV_STATUS_ON_CLIENT - receive_close_on_server = grpc.GRPC_OP_RECV_CLOSE_ON_SERVER + send_initial_metadata = GRPC_OP_SEND_INITIAL_METADATA + send_message = GRPC_OP_SEND_MESSAGE + send_close_from_client = GRPC_OP_SEND_CLOSE_FROM_CLIENT + send_status_from_server = GRPC_OP_SEND_STATUS_FROM_SERVER + receive_initial_metadata = GRPC_OP_RECV_INITIAL_METADATA + receive_message = GRPC_OP_RECV_MESSAGE + receive_status_on_client = GRPC_OP_RECV_STATUS_ON_CLIENT + receive_close_on_server = GRPC_OP_RECV_CLOSE_ON_SERVER cdef class Timespec: def __cinit__(self, time): if time is None: - self.c_time = grpc.gpr_now(grpc.GPR_CLOCK_REALTIME) + self.c_time = gpr_now(GPR_CLOCK_REALTIME) return if isinstance(time, int): time = float(time) if isinstance(time, float): if time == float("+inf"): - self.c_time = grpc.gpr_inf_future(grpc.GPR_CLOCK_REALTIME) + self.c_time = gpr_inf_future(GPR_CLOCK_REALTIME) elif time == float("-inf"): - self.c_time = grpc.gpr_inf_past(grpc.GPR_CLOCK_REALTIME) + self.c_time = gpr_inf_past(GPR_CLOCK_REALTIME) else: self.c_time.seconds = time self.c_time.nanoseconds = (time - float(self.c_time.seconds)) * 1e9 - self.c_time.clock_type = grpc.GPR_CLOCK_REALTIME + self.c_time.clock_type = GPR_CLOCK_REALTIME elif isinstance(time, Timespec): self.c_time = (<Timespec>time).c_time else: @@ -135,19 +131,19 @@ cdef class Timespec: # TODO(atash) ensure that everywhere a Timespec is created that it's # converted to GPR_CLOCK_REALTIME then and not every time someone wants to # read values off in Python. - cdef grpc.gpr_timespec real_time = ( - grpc.gpr_convert_clock_type(self.c_time, grpc.GPR_CLOCK_REALTIME)) + cdef gpr_timespec real_time = ( + gpr_convert_clock_type(self.c_time, GPR_CLOCK_REALTIME)) return real_time.seconds @property def nanoseconds(self): - cdef grpc.gpr_timespec real_time = ( - grpc.gpr_convert_clock_type(self.c_time, grpc.GPR_CLOCK_REALTIME)) + cdef gpr_timespec real_time = ( + gpr_convert_clock_type(self.c_time, GPR_CLOCK_REALTIME)) return real_time.nanoseconds def __float__(self): - cdef grpc.gpr_timespec real_time = ( - grpc.gpr_convert_clock_type(self.c_time, grpc.GPR_CLOCK_REALTIME)) + cdef gpr_timespec real_time = ( + gpr_convert_clock_type(self.c_time, GPR_CLOCK_REALTIME)) return <double>real_time.seconds + <double>real_time.nanoseconds / 1e9 infinite_future = Timespec(float("+inf")) @@ -157,10 +153,10 @@ cdef class Timespec: cdef class CallDetails: def __cinit__(self): - grpc.grpc_call_details_init(&self.c_details) + grpc_call_details_init(&self.c_details) def __dealloc__(self): - grpc.grpc_call_details_destroy(&self.c_details) + grpc_call_details_destroy(&self.c_details) @property def method(self): @@ -192,8 +188,8 @@ cdef class OperationTag: cdef class Event: - def __cinit__(self, grpc.grpc_completion_type type, bint success, - object tag, call.Call operation_call, + def __cinit__(self, grpc_completion_type type, bint success, + object tag, Call operation_call, CallDetails request_call_details, Metadata request_metadata, bint is_new_request, @@ -228,31 +224,31 @@ cdef class ByteBuffer: "ByteBuffer, not {}".format(type(data))) cdef char *c_data = data - data_slice = grpc.gpr_slice_from_copied_buffer(c_data, len(data)) - self.c_byte_buffer = grpc.grpc_raw_byte_buffer_create( + data_slice = gpr_slice_from_copied_buffer(c_data, len(data)) + self.c_byte_buffer = grpc_raw_byte_buffer_create( &data_slice, 1) - grpc.gpr_slice_unref(data_slice) + gpr_slice_unref(data_slice) def bytes(self): - cdef grpc.grpc_byte_buffer_reader reader - cdef grpc.gpr_slice data_slice + cdef grpc_byte_buffer_reader reader + cdef gpr_slice data_slice cdef size_t data_slice_length cdef void *data_slice_pointer if self.c_byte_buffer != NULL: - grpc.grpc_byte_buffer_reader_init(&reader, self.c_byte_buffer) + grpc_byte_buffer_reader_init(&reader, self.c_byte_buffer) result = b"" - while grpc.grpc_byte_buffer_reader_next(&reader, &data_slice): - data_slice_pointer = grpc.gpr_slice_start_ptr(data_slice) - data_slice_length = grpc.gpr_slice_length(data_slice) + while grpc_byte_buffer_reader_next(&reader, &data_slice): + data_slice_pointer = gpr_slice_start_ptr(data_slice) + data_slice_length = gpr_slice_length(data_slice) result += (<char *>data_slice_pointer)[:data_slice_length] - grpc.grpc_byte_buffer_reader_destroy(&reader) + grpc_byte_buffer_reader_destroy(&reader) return result else: return None def __len__(self): if self.c_byte_buffer != NULL: - return grpc.grpc_byte_buffer_length(self.c_byte_buffer) + return grpc_byte_buffer_length(self.c_byte_buffer) else: return 0 @@ -261,7 +257,7 @@ cdef class ByteBuffer: def __dealloc__(self): if self.c_byte_buffer != NULL: - grpc.grpc_byte_buffer_destroy(self.c_byte_buffer) + grpc_byte_buffer_destroy(self.c_byte_buffer) cdef class SslPemKeyCertPair: @@ -295,15 +291,15 @@ cdef class ChannelArg: raise TypeError("expected key to be of type str or bytes") if isinstance(value, bytes): self.value = value - self.c_arg.type = grpc.GRPC_ARG_STRING + self.c_arg.type = GRPC_ARG_STRING self.c_arg.value.string = self.value elif isinstance(value, basestring): self.value = value.encode() - self.c_arg.type = grpc.GRPC_ARG_STRING + self.c_arg.type = GRPC_ARG_STRING self.c_arg.value.string = self.value elif isinstance(value, int): self.value = int(value) - self.c_arg.type = grpc.GRPC_ARG_INTEGER + self.c_arg.type = GRPC_ARG_INTEGER self.c_arg.value.integer = self.value else: raise TypeError("expected value to be of type str or bytes or int") @@ -318,14 +314,14 @@ cdef class ChannelArgs: if not isinstance(arg, ChannelArg): raise TypeError("expected list of ChannelArg") self.c_args.arguments_length = len(self.args) - self.c_args.arguments = <grpc.grpc_arg *>grpc.gpr_malloc( - self.c_args.arguments_length*sizeof(grpc.grpc_arg) + self.c_args.arguments = <grpc_arg *>gpr_malloc( + self.c_args.arguments_length*sizeof(grpc_arg) ) for i in range(self.c_args.arguments_length): self.c_args.arguments[i] = (<ChannelArg>self.args[i]).c_arg def __dealloc__(self): - grpc.gpr_free(self.c_args.arguments) + gpr_free(self.c_args.arguments) def __len__(self): # self.args is never stale; it's only updated from this file @@ -406,11 +402,11 @@ cdef class Metadata: for metadatum in metadata: if not isinstance(metadatum, Metadatum): raise TypeError("expected list of Metadatum") - grpc.grpc_metadata_array_init(&self.c_metadata_array) + grpc_metadata_array_init(&self.c_metadata_array) self.c_metadata_array.count = len(self.metadata) self.c_metadata_array.capacity = len(self.metadata) - self.c_metadata_array.metadata = <grpc.grpc_metadata *>grpc.gpr_malloc( - self.c_metadata_array.count*sizeof(grpc.grpc_metadata) + self.c_metadata_array.metadata = <grpc_metadata *>gpr_malloc( + self.c_metadata_array.count*sizeof(grpc_metadata) ) for i in range(self.c_metadata_array.count): self.c_metadata_array.metadata[i] = ( @@ -420,7 +416,7 @@ cdef class Metadata: # this frees the allocated memory for the grpc_metadata_array (although # it'd be nice if that were documented somewhere...) TODO(atash): document # this in the C core - grpc.grpc_metadata_array_destroy(&self.c_metadata_array) + grpc_metadata_array_destroy(&self.c_metadata_array) def __len__(self): return self.c_metadata_array.count @@ -449,49 +445,49 @@ cdef class Operation: @property def has_status(self): - return self.c_op.type == grpc.GRPC_OP_RECV_STATUS_ON_CLIENT + return self.c_op.type == GRPC_OP_RECV_STATUS_ON_CLIENT @property def received_message(self): - if self.c_op.type != grpc.GRPC_OP_RECV_MESSAGE: + if self.c_op.type != GRPC_OP_RECV_MESSAGE: raise TypeError("self must be an operation receiving a message") return self._received_message @property def received_message_or_none(self): - if self.c_op.type != grpc.GRPC_OP_RECV_MESSAGE: + if self.c_op.type != GRPC_OP_RECV_MESSAGE: return None return self._received_message @property def received_metadata(self): - if (self.c_op.type != grpc.GRPC_OP_RECV_INITIAL_METADATA and - self.c_op.type != grpc.GRPC_OP_RECV_STATUS_ON_CLIENT): + if (self.c_op.type != GRPC_OP_RECV_INITIAL_METADATA and + self.c_op.type != GRPC_OP_RECV_STATUS_ON_CLIENT): raise TypeError("self must be an operation receiving metadata") return self._received_metadata @property def received_metadata_or_none(self): - if (self.c_op.type != grpc.GRPC_OP_RECV_INITIAL_METADATA and - self.c_op.type != grpc.GRPC_OP_RECV_STATUS_ON_CLIENT): + if (self.c_op.type != GRPC_OP_RECV_INITIAL_METADATA and + self.c_op.type != GRPC_OP_RECV_STATUS_ON_CLIENT): return None return self._received_metadata @property def received_status_code(self): - if self.c_op.type != grpc.GRPC_OP_RECV_STATUS_ON_CLIENT: + if self.c_op.type != GRPC_OP_RECV_STATUS_ON_CLIENT: raise TypeError("self must be an operation receiving a status code") return self._received_status_code @property def received_status_code_or_none(self): - if self.c_op.type != grpc.GRPC_OP_RECV_STATUS_ON_CLIENT: + if self.c_op.type != GRPC_OP_RECV_STATUS_ON_CLIENT: return None return self._received_status_code @property def received_status_details(self): - if self.c_op.type != grpc.GRPC_OP_RECV_STATUS_ON_CLIENT: + if self.c_op.type != GRPC_OP_RECV_STATUS_ON_CLIENT: raise TypeError("self must be an operation receiving status details") if self._received_status_details: return self._received_status_details @@ -500,7 +496,7 @@ cdef class Operation: @property def received_status_details_or_none(self): - if self.c_op.type != grpc.GRPC_OP_RECV_STATUS_ON_CLIENT: + if self.c_op.type != GRPC_OP_RECV_STATUS_ON_CLIENT: return None if self._received_status_details: return self._received_status_details @@ -509,14 +505,14 @@ cdef class Operation: @property def received_cancelled(self): - if self.c_op.type != grpc.GRPC_OP_RECV_CLOSE_ON_SERVER: + if self.c_op.type != GRPC_OP_RECV_CLOSE_ON_SERVER: raise TypeError("self must be an operation receiving cancellation " "information") return False if self._received_cancelled == 0 else True @property def received_cancelled_or_none(self): - if self.c_op.type != grpc.GRPC_OP_RECV_CLOSE_ON_SERVER: + if self.c_op.type != GRPC_OP_RECV_CLOSE_ON_SERVER: return None return False if self._received_cancelled == 0 else True @@ -524,12 +520,12 @@ cdef class Operation: # We *almost* don't need to do anything; most of the objects are handled by # Python. The remaining one(s) are primitive fields filled in by GRPC core. # This means that we need to clean up after receive_status_on_client. - if self.c_op.type == grpc.GRPC_OP_RECV_STATUS_ON_CLIENT: - grpc.gpr_free(self._received_status_details) + if self.c_op.type == GRPC_OP_RECV_STATUS_ON_CLIENT: + gpr_free(self._received_status_details) def operation_send_initial_metadata(Metadata metadata): cdef Operation op = Operation() - op.c_op.type = grpc.GRPC_OP_SEND_INITIAL_METADATA + op.c_op.type = GRPC_OP_SEND_INITIAL_METADATA op.c_op.data.send_initial_metadata.count = metadata.c_metadata_array.count op.c_op.data.send_initial_metadata.metadata = ( metadata.c_metadata_array.metadata) @@ -539,7 +535,7 @@ def operation_send_initial_metadata(Metadata metadata): def operation_send_message(data): cdef Operation op = Operation() - op.c_op.type = grpc.GRPC_OP_SEND_MESSAGE + op.c_op.type = GRPC_OP_SEND_MESSAGE byte_buffer = ByteBuffer(data) op.c_op.data.send_message = byte_buffer.c_byte_buffer op.references.append(byte_buffer) @@ -548,12 +544,12 @@ def operation_send_message(data): def operation_send_close_from_client(): cdef Operation op = Operation() - op.c_op.type = grpc.GRPC_OP_SEND_CLOSE_FROM_CLIENT + op.c_op.type = GRPC_OP_SEND_CLOSE_FROM_CLIENT op.is_valid = True return op def operation_send_status_from_server( - Metadata metadata, grpc.grpc_status_code code, details): + Metadata metadata, grpc_status_code code, details): if isinstance(details, bytes): pass elif isinstance(details, basestring): @@ -561,7 +557,7 @@ def operation_send_status_from_server( else: raise TypeError("expected a str or bytes object for details") cdef Operation op = Operation() - op.c_op.type = grpc.GRPC_OP_SEND_STATUS_FROM_SERVER + op.c_op.type = GRPC_OP_SEND_STATUS_FROM_SERVER op.c_op.data.send_status_from_server.trailing_metadata_count = ( metadata.c_metadata_array.count) op.c_op.data.send_status_from_server.trailing_metadata = ( @@ -575,7 +571,7 @@ def operation_send_status_from_server( def operation_receive_initial_metadata(): cdef Operation op = Operation() - op.c_op.type = grpc.GRPC_OP_RECV_INITIAL_METADATA + op.c_op.type = GRPC_OP_RECV_INITIAL_METADATA op._received_metadata = Metadata([]) op.c_op.data.receive_initial_metadata = ( &op._received_metadata.c_metadata_array) @@ -584,7 +580,7 @@ def operation_receive_initial_metadata(): def operation_receive_message(): cdef Operation op = Operation() - op.c_op.type = grpc.GRPC_OP_RECV_MESSAGE + op.c_op.type = GRPC_OP_RECV_MESSAGE op._received_message = ByteBuffer(None) # n.b. the c_op.data.receive_message field needs to be deleted by us, # anyway, so we just let that be handled by the ByteBuffer() we allocated @@ -595,7 +591,7 @@ def operation_receive_message(): def operation_receive_status_on_client(): cdef Operation op = Operation() - op.c_op.type = grpc.GRPC_OP_RECV_STATUS_ON_CLIENT + op.c_op.type = GRPC_OP_RECV_STATUS_ON_CLIENT op._received_metadata = Metadata([]) op.c_op.data.receive_status_on_client.trailing_metadata = ( &op._received_metadata.c_metadata_array) @@ -610,7 +606,7 @@ def operation_receive_status_on_client(): def operation_receive_close_on_server(): cdef Operation op = Operation() - op.c_op.type = grpc.GRPC_OP_RECV_CLOSE_ON_SERVER + op.c_op.type = GRPC_OP_RECV_CLOSE_ON_SERVER op.c_op.data.receive_close_on_server.cancelled = &op._received_cancelled op.is_valid = True return op @@ -647,8 +643,8 @@ cdef class Operations: if not isinstance(operation, Operation): raise TypeError("expected operations to be iterable of Operation") self.c_nops = len(self.operations) - self.c_ops = <grpc.grpc_op *>grpc.gpr_malloc( - sizeof(grpc.grpc_op)*self.c_nops) + self.c_ops = <grpc_op *>gpr_malloc( + sizeof(grpc_op)*self.c_nops) for i in range(self.c_nops): self.c_ops[i] = (<Operation>(self.operations[i])).c_op @@ -660,7 +656,7 @@ cdef class Operations: return self.operations[i] def __dealloc__(self): - grpc.gpr_free(self.c_ops) + gpr_free(self.c_ops) def __iter__(self): return _OperationsIterator(self) diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/server.pxd b/src/python/grpcio/grpc/_cython/_cygrpc/server.pxd.pxi index 0257542a03..9db49e4d30 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/server.pxd +++ b/src/python/grpcio/grpc/_cython/_cygrpc/server.pxd.pxi @@ -27,18 +27,15 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -from grpc._cython._cygrpc cimport grpc -from grpc._cython._cygrpc cimport completion_queue - cdef class Server: - cdef grpc.grpc_server *c_server + cdef grpc_server *c_server cdef bint is_started # start has been called cdef bint is_shutting_down # shutdown has been called cdef bint is_shutdown # notification of complete shutdown received # used at dealloc when user forgets to shutdown - cdef completion_queue.CompletionQueue backup_shutdown_queue + cdef CompletionQueue backup_shutdown_queue cdef list references cdef list registered_completion_queues diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx b/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi index b0bafbc1f4..8b65935c3b 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx +++ b/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi @@ -29,45 +29,39 @@ cimport cpython -from grpc._cython._cygrpc cimport call -from grpc._cython._cygrpc cimport completion_queue -from grpc._cython._cygrpc cimport credentials -from grpc._cython._cygrpc cimport grpc -from grpc._cython._cygrpc cimport records - import time cdef class Server: - def __cinit__(self, records.ChannelArgs arguments=None): - cdef grpc.grpc_channel_args *c_arguments = NULL + def __cinit__(self, ChannelArgs arguments=None): + cdef grpc_channel_args *c_arguments = NULL self.references = [] self.registered_completion_queues = [] if arguments is not None: c_arguments = &arguments.c_args self.references.append(arguments) - self.c_server = grpc.grpc_server_create(c_arguments, NULL) + self.c_server = grpc_server_create(c_arguments, NULL) self.is_started = False self.is_shutting_down = False self.is_shutdown = False def request_call( - self, completion_queue.CompletionQueue call_queue not None, - completion_queue.CompletionQueue server_queue not None, tag): + self, CompletionQueue call_queue not None, + CompletionQueue server_queue not None, tag): if not self.is_started or self.is_shutting_down: raise ValueError("server must be started and not shutting down") if server_queue not in self.registered_completion_queues: raise ValueError("server_queue must be a registered completion queue") - cdef records.OperationTag operation_tag = records.OperationTag(tag) - operation_tag.operation_call = call.Call() - operation_tag.request_call_details = records.CallDetails() - operation_tag.request_metadata = records.Metadata([]) + cdef OperationTag operation_tag = OperationTag(tag) + operation_tag.operation_call = Call() + operation_tag.request_call_details = CallDetails() + operation_tag.request_metadata = Metadata([]) operation_tag.references.extend([self, call_queue, server_queue]) operation_tag.is_new_request = True - operation_tag.batch_operations = records.Operations([]) + operation_tag.batch_operations = Operations([]) cpython.Py_INCREF(operation_tag) - return grpc.grpc_server_request_call( + return grpc_server_request_call( self.c_server, &operation_tag.operation_call.c_call, &operation_tag.request_call_details.c_details, &operation_tag.request_metadata.c_metadata_array, @@ -75,25 +69,25 @@ cdef class Server: <cpython.PyObject *>operation_tag) def register_completion_queue( - self, completion_queue.CompletionQueue queue not None): + self, CompletionQueue queue not None): if self.is_started: raise ValueError("cannot register completion queues after start") - grpc.grpc_server_register_completion_queue( + grpc_server_register_completion_queue( self.c_server, queue.c_completion_queue, NULL) self.registered_completion_queues.append(queue) def start(self): if self.is_started: raise ValueError("the server has already started") - self.backup_shutdown_queue = completion_queue.CompletionQueue() + self.backup_shutdown_queue = CompletionQueue() self.register_completion_queue(self.backup_shutdown_queue) self.is_started = True - grpc.grpc_server_start(self.c_server) + grpc_server_start(self.c_server) # Ensure the core has gotten a chance to do the start-up work - self.backup_shutdown_queue.pluck(None, records.Timespec(None)) + self.backup_shutdown_queue.pluck(None, Timespec(None)) def add_http2_port(self, address, - credentials.ServerCredentials server_credentials=None): + ServerCredentials server_credentials=None): if isinstance(address, bytes): pass elif isinstance(address, basestring): @@ -103,13 +97,13 @@ cdef class Server: self.references.append(address) if server_credentials is not None: self.references.append(server_credentials) - return grpc.grpc_server_add_secure_http2_port( + return grpc_server_add_secure_http2_port( self.c_server, address, server_credentials.c_credentials) else: - return grpc.grpc_server_add_insecure_http2_port(self.c_server, address) + return grpc_server_add_insecure_http2_port(self.c_server, address) - def shutdown(self, completion_queue.CompletionQueue queue not None, tag): - cdef records.OperationTag operation_tag + def shutdown(self, CompletionQueue queue not None, tag): + cdef OperationTag operation_tag if queue.is_shutting_down: raise ValueError("queue must be live") elif not self.is_started: @@ -120,11 +114,11 @@ cdef class Server: raise ValueError("expected registered completion queue") else: self.is_shutting_down = True - operation_tag = records.OperationTag(tag) + operation_tag = OperationTag(tag) operation_tag.shutting_down_server = self operation_tag.references.extend([self, queue]) cpython.Py_INCREF(operation_tag) - grpc.grpc_server_shutdown_and_notify( + grpc_server_shutdown_and_notify( self.c_server, queue.c_completion_queue, <cpython.PyObject *>operation_tag) @@ -138,7 +132,7 @@ cdef class Server: elif self.is_shutdown: return else: - grpc.grpc_server_cancel_all_calls(self.c_server) + grpc_server_cancel_all_calls(self.c_server) def __dealloc__(self): if self.c_server != NULL: @@ -157,5 +151,5 @@ cdef class Server: # much but repeatedly release the GIL and wait while not self.is_shutdown: time.sleep(0) - grpc.grpc_server_destroy(self.c_server) + grpc_server_destroy(self.c_server) diff --git a/src/python/grpcio/grpc/_cython/cygrpc.pxd b/src/python/grpcio/grpc/_cython/cygrpc.pxd new file mode 100644 index 0000000000..f22346c4f3 --- /dev/null +++ b/src/python/grpcio/grpc/_cython/cygrpc.pxd @@ -0,0 +1,37 @@ +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +include "grpc/_cython/_cygrpc/grpc.pxi" + +include "grpc/_cython/_cygrpc/call.pxd.pxi" +include "grpc/_cython/_cygrpc/channel.pxd.pxi" +include "grpc/_cython/_cygrpc/credentials.pxd.pxi" +include "grpc/_cython/_cygrpc/completion_queue.pxd.pxi" +include "grpc/_cython/_cygrpc/records.pxd.pxi" +include "grpc/_cython/_cygrpc/server.pxd.pxi" diff --git a/src/python/grpcio/grpc/_cython/cygrpc.pyx b/src/python/grpcio/grpc/_cython/cygrpc.pyx index 16ec12dac0..297c8001c5 100644 --- a/src/python/grpcio/grpc/_cython/cygrpc.pyx +++ b/src/python/grpcio/grpc/_cython/cygrpc.pyx @@ -29,78 +29,14 @@ cimport cpython -from grpc._cython._cygrpc cimport grpc -from grpc._cython._cygrpc cimport call -from grpc._cython._cygrpc cimport channel -from grpc._cython._cygrpc cimport credentials -from grpc._cython._cygrpc cimport completion_queue -from grpc._cython._cygrpc cimport records -from grpc._cython._cygrpc cimport server - -from grpc._cython._cygrpc import call -from grpc._cython._cygrpc import channel -from grpc._cython._cygrpc import credentials -from grpc._cython._cygrpc import completion_queue -from grpc._cython._cygrpc import records -from grpc._cython._cygrpc import server - -ConnectivityState = records.ConnectivityState -ChannelArgKey = records.ChannelArgKey -WriteFlag = records.WriteFlag -StatusCode = records.StatusCode -CallError = records.CallError -CompletionType = records.CompletionType -OperationType = records.OperationType -Timespec = records.Timespec -CallDetails = records.CallDetails -Event = records.Event -ByteBuffer = records.ByteBuffer -SslPemKeyCertPair = records.SslPemKeyCertPair -ChannelArg = records.ChannelArg -ChannelArgs = records.ChannelArgs -Metadatum = records.Metadatum -Metadata = records.Metadata -Operation = records.Operation - -operation_send_initial_metadata = records.operation_send_initial_metadata -operation_send_message = records.operation_send_message -operation_send_close_from_client = records.operation_send_close_from_client -operation_send_status_from_server = records.operation_send_status_from_server -operation_receive_initial_metadata = records.operation_receive_initial_metadata -operation_receive_message = records.operation_receive_message -operation_receive_status_on_client = records.operation_receive_status_on_client -operation_receive_close_on_server = records.operation_receive_close_on_server - -Operations = records.Operations - -CallCredentials = credentials.CallCredentials -ChannelCredentials = credentials.ChannelCredentials -ServerCredentials = credentials.ServerCredentials -CredentialsMetadataPlugin = credentials.CredentialsMetadataPlugin -AuthMetadataContext = credentials.AuthMetadataContext - -channel_credentials_google_default = ( - credentials.channel_credentials_google_default) -channel_credentials_ssl = credentials.channel_credentials_ssl -channel_credentials_composite = ( - credentials.channel_credentials_composite) -call_credentials_composite = ( - credentials.call_credentials_composite) -call_credentials_google_compute_engine = ( - credentials.call_credentials_google_compute_engine) -call_credentials_jwt_access = ( - credentials.call_credentials_service_account_jwt_access) -call_credentials_refresh_token = ( - credentials.call_credentials_google_refresh_token) -call_credentials_google_iam = credentials.call_credentials_google_iam -call_credentials_metadata_plugin = credentials.call_credentials_metadata_plugin -server_credentials_ssl = credentials.server_credentials_ssl - -CompletionQueue = completion_queue.CompletionQueue -Channel = channel.Channel -Server = server.Server -Call = call.Call - +# TODO(atash): figure out why the coverage tool gets confused about the Cython +# coverage plugin when the following files don't have a '.pxi' suffix. +include "grpc/_cython/_cygrpc/call.pyx.pxi" +include "grpc/_cython/_cygrpc/channel.pyx.pxi" +include "grpc/_cython/_cygrpc/credentials.pyx.pxi" +include "grpc/_cython/_cygrpc/completion_queue.pyx.pxi" +include "grpc/_cython/_cygrpc/records.pyx.pxi" +include "grpc/_cython/_cygrpc/server.pyx.pxi" # # Global state @@ -109,10 +45,10 @@ Call = call.Call cdef class _ModuleState: def __cinit__(self): - grpc.grpc_init() + grpc_init() def __dealloc__(self): - grpc.grpc_shutdown() + grpc_shutdown() _module_state = _ModuleState() diff --git a/src/python/grpcio/grpc/framework/interfaces/face/face.py b/src/python/grpcio/grpc/framework/interfaces/face/face.py index 59da83dc9c..404c3a7937 100644 --- a/src/python/grpcio/grpc/framework/interfaces/face/face.py +++ b/src/python/grpcio/grpc/framework/interfaces/face/face.py @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py new file mode 100644 index 0000000000..952898d74a --- /dev/null +++ b/src/python/grpcio/grpc_core_dependencies.py @@ -0,0 +1,519 @@ +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_core_dependencies.py.template`!!! + +CORE_SOURCE_FILES = [ + 'src/core/profiling/basic_timers.c', + 'src/core/profiling/stap_timers.c', + 'src/core/support/alloc.c', + 'src/core/support/avl.c', + 'src/core/support/cmdline.c', + 'src/core/support/cpu_iphone.c', + 'src/core/support/cpu_linux.c', + 'src/core/support/cpu_posix.c', + 'src/core/support/cpu_windows.c', + 'src/core/support/env_linux.c', + 'src/core/support/env_posix.c', + 'src/core/support/env_win32.c', + 'src/core/support/file.c', + 'src/core/support/file_posix.c', + 'src/core/support/file_win32.c', + 'src/core/support/histogram.c', + 'src/core/support/host_port.c', + 'src/core/support/log.c', + 'src/core/support/log_android.c', + 'src/core/support/log_linux.c', + 'src/core/support/log_posix.c', + 'src/core/support/log_win32.c', + 'src/core/support/murmur_hash.c', + 'src/core/support/slice.c', + 'src/core/support/slice_buffer.c', + 'src/core/support/stack_lockfree.c', + 'src/core/support/string.c', + 'src/core/support/string_posix.c', + 'src/core/support/string_win32.c', + 'src/core/support/subprocess_posix.c', + 'src/core/support/sync.c', + 'src/core/support/sync_posix.c', + 'src/core/support/sync_win32.c', + 'src/core/support/thd.c', + 'src/core/support/thd_posix.c', + 'src/core/support/thd_win32.c', + 'src/core/support/time.c', + 'src/core/support/time_posix.c', + 'src/core/support/time_precise.c', + 'src/core/support/time_win32.c', + 'src/core/support/tls_pthread.c', + 'src/core/httpcli/httpcli_security_connector.c', + 'src/core/security/base64.c', + 'src/core/security/client_auth_filter.c', + 'src/core/security/credentials.c', + 'src/core/security/credentials_metadata.c', + 'src/core/security/credentials_posix.c', + 'src/core/security/credentials_win32.c', + 'src/core/security/google_default_credentials.c', + 'src/core/security/handshake.c', + 'src/core/security/json_token.c', + 'src/core/security/jwt_verifier.c', + 'src/core/security/secure_endpoint.c', + 'src/core/security/security_connector.c', + 'src/core/security/security_context.c', + 'src/core/security/server_auth_filter.c', + 'src/core/security/server_secure_chttp2.c', + 'src/core/surface/init_secure.c', + 'src/core/surface/secure_channel_create.c', + 'src/core/tsi/fake_transport_security.c', + 'src/core/tsi/ssl_transport_security.c', + 'src/core/tsi/transport_security.c', + 'src/core/census/grpc_context.c', + 'src/core/census/grpc_filter.c', + 'src/core/channel/channel_args.c', + 'src/core/channel/channel_stack.c', + 'src/core/channel/client_channel.c', + 'src/core/channel/client_uchannel.c', + 'src/core/channel/compress_filter.c', + 'src/core/channel/connected_channel.c', + 'src/core/channel/http_client_filter.c', + 'src/core/channel/http_server_filter.c', + 'src/core/channel/subchannel_call_holder.c', + 'src/core/client_config/client_config.c', + 'src/core/client_config/connector.c', + 'src/core/client_config/default_initial_connect_string.c', + 'src/core/client_config/initial_connect_string.c', + 'src/core/client_config/lb_policies/pick_first.c', + 'src/core/client_config/lb_policies/round_robin.c', + 'src/core/client_config/lb_policy.c', + 'src/core/client_config/lb_policy_factory.c', + 'src/core/client_config/lb_policy_registry.c', + 'src/core/client_config/resolver.c', + 'src/core/client_config/resolver_factory.c', + 'src/core/client_config/resolver_registry.c', + 'src/core/client_config/resolvers/dns_resolver.c', + 'src/core/client_config/resolvers/sockaddr_resolver.c', + 'src/core/client_config/subchannel.c', + 'src/core/client_config/subchannel_factory.c', + 'src/core/client_config/uri_parser.c', + 'src/core/compression/algorithm.c', + 'src/core/compression/message_compress.c', + 'src/core/debug/trace.c', + 'src/core/httpcli/format_request.c', + 'src/core/httpcli/httpcli.c', + 'src/core/httpcli/parser.c', + 'src/core/iomgr/closure.c', + 'src/core/iomgr/endpoint.c', + 'src/core/iomgr/endpoint_pair_posix.c', + 'src/core/iomgr/endpoint_pair_windows.c', + 'src/core/iomgr/exec_ctx.c', + 'src/core/iomgr/executor.c', + 'src/core/iomgr/fd_posix.c', + 'src/core/iomgr/iocp_windows.c', + 'src/core/iomgr/iomgr.c', + 'src/core/iomgr/iomgr_posix.c', + 'src/core/iomgr/iomgr_windows.c', + 'src/core/iomgr/pollset_multipoller_with_epoll.c', + 'src/core/iomgr/pollset_multipoller_with_poll_posix.c', + 'src/core/iomgr/pollset_posix.c', + 'src/core/iomgr/pollset_set_posix.c', + 'src/core/iomgr/pollset_set_windows.c', + 'src/core/iomgr/pollset_windows.c', + 'src/core/iomgr/resolve_address_posix.c', + 'src/core/iomgr/resolve_address_windows.c', + 'src/core/iomgr/sockaddr_utils.c', + 'src/core/iomgr/socket_utils_common_posix.c', + 'src/core/iomgr/socket_utils_linux.c', + 'src/core/iomgr/socket_utils_posix.c', + 'src/core/iomgr/socket_windows.c', + 'src/core/iomgr/tcp_client_posix.c', + 'src/core/iomgr/tcp_client_windows.c', + 'src/core/iomgr/tcp_posix.c', + 'src/core/iomgr/tcp_server_posix.c', + 'src/core/iomgr/tcp_server_windows.c', + 'src/core/iomgr/tcp_windows.c', + 'src/core/iomgr/time_averaged_stats.c', + 'src/core/iomgr/timer.c', + 'src/core/iomgr/timer_heap.c', + 'src/core/iomgr/udp_server.c', + 'src/core/iomgr/wakeup_fd_eventfd.c', + 'src/core/iomgr/wakeup_fd_nospecial.c', + 'src/core/iomgr/wakeup_fd_pipe.c', + 'src/core/iomgr/wakeup_fd_posix.c', + 'src/core/iomgr/workqueue_posix.c', + 'src/core/iomgr/workqueue_windows.c', + 'src/core/json/json.c', + 'src/core/json/json_reader.c', + 'src/core/json/json_string.c', + 'src/core/json/json_writer.c', + 'src/core/surface/api_trace.c', + 'src/core/surface/byte_buffer.c', + 'src/core/surface/byte_buffer_reader.c', + 'src/core/surface/call.c', + 'src/core/surface/call_details.c', + 'src/core/surface/call_log_batch.c', + 'src/core/surface/channel.c', + 'src/core/surface/channel_connectivity.c', + 'src/core/surface/channel_create.c', + 'src/core/surface/channel_ping.c', + 'src/core/surface/completion_queue.c', + 'src/core/surface/event_string.c', + 'src/core/surface/init.c', + 'src/core/surface/lame_client.c', + 'src/core/surface/metadata_array.c', + 'src/core/surface/server.c', + 'src/core/surface/server_chttp2.c', + 'src/core/surface/server_create.c', + 'src/core/surface/validate_metadata.c', + 'src/core/surface/version.c', + 'src/core/transport/byte_stream.c', + 'src/core/transport/chttp2/alpn.c', + 'src/core/transport/chttp2/bin_encoder.c', + 'src/core/transport/chttp2/frame_data.c', + 'src/core/transport/chttp2/frame_goaway.c', + 'src/core/transport/chttp2/frame_ping.c', + 'src/core/transport/chttp2/frame_rst_stream.c', + 'src/core/transport/chttp2/frame_settings.c', + 'src/core/transport/chttp2/frame_window_update.c', + 'src/core/transport/chttp2/hpack_encoder.c', + 'src/core/transport/chttp2/hpack_parser.c', + 'src/core/transport/chttp2/hpack_table.c', + 'src/core/transport/chttp2/huffsyms.c', + 'src/core/transport/chttp2/incoming_metadata.c', + 'src/core/transport/chttp2/parsing.c', + 'src/core/transport/chttp2/status_conversion.c', + 'src/core/transport/chttp2/stream_lists.c', + 'src/core/transport/chttp2/stream_map.c', + 'src/core/transport/chttp2/timeout_encoding.c', + 'src/core/transport/chttp2/varint.c', + 'src/core/transport/chttp2/writing.c', + 'src/core/transport/chttp2_transport.c', + 'src/core/transport/connectivity_state.c', + 'src/core/transport/metadata.c', + 'src/core/transport/metadata_batch.c', + 'src/core/transport/static_metadata.c', + 'src/core/transport/transport.c', + 'src/core/transport/transport_op_string.c', + 'src/core/census/context.c', + 'src/core/census/initialize.c', + 'src/core/census/operation.c', + 'src/core/census/tracing.c', + 'src/boringssl/err_data.c', + 'third_party/boringssl/crypto/aes/aes.c', + 'third_party/boringssl/crypto/aes/mode_wrappers.c', + 'third_party/boringssl/crypto/asn1/a_bitstr.c', + 'third_party/boringssl/crypto/asn1/a_bool.c', + 'third_party/boringssl/crypto/asn1/a_bytes.c', + 'third_party/boringssl/crypto/asn1/a_d2i_fp.c', + 'third_party/boringssl/crypto/asn1/a_dup.c', + 'third_party/boringssl/crypto/asn1/a_enum.c', + 'third_party/boringssl/crypto/asn1/a_gentm.c', + 'third_party/boringssl/crypto/asn1/a_i2d_fp.c', + 'third_party/boringssl/crypto/asn1/a_int.c', + 'third_party/boringssl/crypto/asn1/a_mbstr.c', + 'third_party/boringssl/crypto/asn1/a_object.c', + 'third_party/boringssl/crypto/asn1/a_octet.c', + 'third_party/boringssl/crypto/asn1/a_print.c', + 'third_party/boringssl/crypto/asn1/a_strnid.c', + 'third_party/boringssl/crypto/asn1/a_time.c', + 'third_party/boringssl/crypto/asn1/a_type.c', + 'third_party/boringssl/crypto/asn1/a_utctm.c', + 'third_party/boringssl/crypto/asn1/a_utf8.c', + 'third_party/boringssl/crypto/asn1/asn1_lib.c', + 'third_party/boringssl/crypto/asn1/asn1_par.c', + 'third_party/boringssl/crypto/asn1/asn_pack.c', + 'third_party/boringssl/crypto/asn1/bio_asn1.c', + 'third_party/boringssl/crypto/asn1/bio_ndef.c', + 'third_party/boringssl/crypto/asn1/f_enum.c', + 'third_party/boringssl/crypto/asn1/f_int.c', + 'third_party/boringssl/crypto/asn1/f_string.c', + 'third_party/boringssl/crypto/asn1/t_bitst.c', + 'third_party/boringssl/crypto/asn1/t_pkey.c', + 'third_party/boringssl/crypto/asn1/tasn_dec.c', + 'third_party/boringssl/crypto/asn1/tasn_enc.c', + 'third_party/boringssl/crypto/asn1/tasn_fre.c', + 'third_party/boringssl/crypto/asn1/tasn_new.c', + 'third_party/boringssl/crypto/asn1/tasn_prn.c', + 'third_party/boringssl/crypto/asn1/tasn_typ.c', + 'third_party/boringssl/crypto/asn1/tasn_utl.c', + 'third_party/boringssl/crypto/asn1/x_bignum.c', + 'third_party/boringssl/crypto/asn1/x_long.c', + 'third_party/boringssl/crypto/base64/base64.c', + 'third_party/boringssl/crypto/bio/bio.c', + 'third_party/boringssl/crypto/bio/bio_mem.c', + 'third_party/boringssl/crypto/bio/buffer.c', + 'third_party/boringssl/crypto/bio/connect.c', + 'third_party/boringssl/crypto/bio/fd.c', + 'third_party/boringssl/crypto/bio/file.c', + 'third_party/boringssl/crypto/bio/hexdump.c', + 'third_party/boringssl/crypto/bio/pair.c', + 'third_party/boringssl/crypto/bio/printf.c', + 'third_party/boringssl/crypto/bio/socket.c', + 'third_party/boringssl/crypto/bio/socket_helper.c', + 'third_party/boringssl/crypto/bn/add.c', + 'third_party/boringssl/crypto/bn/asm/x86_64-gcc.c', + 'third_party/boringssl/crypto/bn/bn.c', + 'third_party/boringssl/crypto/bn/bn_asn1.c', + 'third_party/boringssl/crypto/bn/cmp.c', + 'third_party/boringssl/crypto/bn/convert.c', + 'third_party/boringssl/crypto/bn/ctx.c', + 'third_party/boringssl/crypto/bn/div.c', + 'third_party/boringssl/crypto/bn/exponentiation.c', + 'third_party/boringssl/crypto/bn/gcd.c', + 'third_party/boringssl/crypto/bn/generic.c', + 'third_party/boringssl/crypto/bn/kronecker.c', + 'third_party/boringssl/crypto/bn/montgomery.c', + 'third_party/boringssl/crypto/bn/mul.c', + 'third_party/boringssl/crypto/bn/prime.c', + 'third_party/boringssl/crypto/bn/random.c', + 'third_party/boringssl/crypto/bn/rsaz_exp.c', + '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/ber.c', + 'third_party/boringssl/crypto/bytestring/cbb.c', + 'third_party/boringssl/crypto/bytestring/cbs.c', + 'third_party/boringssl/crypto/chacha/chacha_generic.c', + 'third_party/boringssl/crypto/chacha/chacha_vec.c', + 'third_party/boringssl/crypto/cipher/aead.c', + 'third_party/boringssl/crypto/cipher/cipher.c', + 'third_party/boringssl/crypto/cipher/derive_key.c', + 'third_party/boringssl/crypto/cipher/e_aes.c', + 'third_party/boringssl/crypto/cipher/e_chacha20poly1305.c', + 'third_party/boringssl/crypto/cipher/e_des.c', + 'third_party/boringssl/crypto/cipher/e_null.c', + 'third_party/boringssl/crypto/cipher/e_rc2.c', + 'third_party/boringssl/crypto/cipher/e_rc4.c', + 'third_party/boringssl/crypto/cipher/e_ssl3.c', + 'third_party/boringssl/crypto/cipher/e_tls.c', + 'third_party/boringssl/crypto/cipher/tls_cbc.c', + 'third_party/boringssl/crypto/cmac/cmac.c', + 'third_party/boringssl/crypto/conf/conf.c', + 'third_party/boringssl/crypto/cpu-arm.c', + 'third_party/boringssl/crypto/cpu-intel.c', + 'third_party/boringssl/crypto/crypto.c', + 'third_party/boringssl/crypto/curve25519/curve25519.c', + 'third_party/boringssl/crypto/des/des.c', + 'third_party/boringssl/crypto/dh/check.c', + 'third_party/boringssl/crypto/dh/dh.c', + 'third_party/boringssl/crypto/dh/dh_asn1.c', + 'third_party/boringssl/crypto/dh/params.c', + 'third_party/boringssl/crypto/digest/digest.c', + 'third_party/boringssl/crypto/digest/digests.c', + 'third_party/boringssl/crypto/directory_posix.c', + 'third_party/boringssl/crypto/directory_win.c', + 'third_party/boringssl/crypto/dsa/dsa.c', + 'third_party/boringssl/crypto/dsa/dsa_asn1.c', + 'third_party/boringssl/crypto/ec/ec.c', + 'third_party/boringssl/crypto/ec/ec_asn1.c', + 'third_party/boringssl/crypto/ec/ec_key.c', + 'third_party/boringssl/crypto/ec/ec_montgomery.c', + 'third_party/boringssl/crypto/ec/oct.c', + 'third_party/boringssl/crypto/ec/p224-64.c', + 'third_party/boringssl/crypto/ec/p256-64.c', + 'third_party/boringssl/crypto/ec/p256-x86_64.c', + 'third_party/boringssl/crypto/ec/simple.c', + 'third_party/boringssl/crypto/ec/util-64.c', + 'third_party/boringssl/crypto/ec/wnaf.c', + 'third_party/boringssl/crypto/ecdh/ecdh.c', + 'third_party/boringssl/crypto/ecdsa/ecdsa.c', + 'third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c', + 'third_party/boringssl/crypto/engine/engine.c', + 'third_party/boringssl/crypto/err/err.c', + 'third_party/boringssl/crypto/evp/algorithm.c', + 'third_party/boringssl/crypto/evp/digestsign.c', + 'third_party/boringssl/crypto/evp/evp.c', + 'third_party/boringssl/crypto/evp/evp_asn1.c', + 'third_party/boringssl/crypto/evp/evp_ctx.c', + 'third_party/boringssl/crypto/evp/p_dsa_asn1.c', + 'third_party/boringssl/crypto/evp/p_ec.c', + 'third_party/boringssl/crypto/evp/p_ec_asn1.c', + 'third_party/boringssl/crypto/evp/p_rsa.c', + 'third_party/boringssl/crypto/evp/p_rsa_asn1.c', + 'third_party/boringssl/crypto/evp/pbkdf.c', + 'third_party/boringssl/crypto/evp/sign.c', + 'third_party/boringssl/crypto/ex_data.c', + 'third_party/boringssl/crypto/hkdf/hkdf.c', + 'third_party/boringssl/crypto/hmac/hmac.c', + 'third_party/boringssl/crypto/lhash/lhash.c', + 'third_party/boringssl/crypto/md4/md4.c', + 'third_party/boringssl/crypto/md5/md5.c', + 'third_party/boringssl/crypto/mem.c', + 'third_party/boringssl/crypto/modes/cbc.c', + 'third_party/boringssl/crypto/modes/cfb.c', + 'third_party/boringssl/crypto/modes/ctr.c', + 'third_party/boringssl/crypto/modes/gcm.c', + 'third_party/boringssl/crypto/modes/ofb.c', + 'third_party/boringssl/crypto/obj/obj.c', + 'third_party/boringssl/crypto/obj/obj_xref.c', + 'third_party/boringssl/crypto/pem/pem_all.c', + 'third_party/boringssl/crypto/pem/pem_info.c', + 'third_party/boringssl/crypto/pem/pem_lib.c', + 'third_party/boringssl/crypto/pem/pem_oth.c', + 'third_party/boringssl/crypto/pem/pem_pk8.c', + 'third_party/boringssl/crypto/pem/pem_pkey.c', + 'third_party/boringssl/crypto/pem/pem_x509.c', + 'third_party/boringssl/crypto/pem/pem_xaux.c', + 'third_party/boringssl/crypto/pkcs8/p5_pbe.c', + 'third_party/boringssl/crypto/pkcs8/p5_pbev2.c', + 'third_party/boringssl/crypto/pkcs8/p8_pkey.c', + 'third_party/boringssl/crypto/pkcs8/pkcs8.c', + 'third_party/boringssl/crypto/poly1305/poly1305.c', + 'third_party/boringssl/crypto/poly1305/poly1305_arm.c', + 'third_party/boringssl/crypto/poly1305/poly1305_vec.c', + 'third_party/boringssl/crypto/rand/rand.c', + 'third_party/boringssl/crypto/rand/urandom.c', + 'third_party/boringssl/crypto/rand/windows.c', + 'third_party/boringssl/crypto/rc4/rc4.c', + 'third_party/boringssl/crypto/refcount_c11.c', + 'third_party/boringssl/crypto/refcount_lock.c', + 'third_party/boringssl/crypto/rsa/blinding.c', + 'third_party/boringssl/crypto/rsa/padding.c', + 'third_party/boringssl/crypto/rsa/rsa.c', + 'third_party/boringssl/crypto/rsa/rsa_asn1.c', + 'third_party/boringssl/crypto/rsa/rsa_impl.c', + 'third_party/boringssl/crypto/sha/sha1.c', + 'third_party/boringssl/crypto/sha/sha256.c', + 'third_party/boringssl/crypto/sha/sha512.c', + 'third_party/boringssl/crypto/stack/stack.c', + 'third_party/boringssl/crypto/thread.c', + 'third_party/boringssl/crypto/thread_none.c', + 'third_party/boringssl/crypto/thread_pthread.c', + 'third_party/boringssl/crypto/thread_win.c', + 'third_party/boringssl/crypto/time_support.c', + 'third_party/boringssl/crypto/x509/a_digest.c', + 'third_party/boringssl/crypto/x509/a_sign.c', + 'third_party/boringssl/crypto/x509/a_strex.c', + 'third_party/boringssl/crypto/x509/a_verify.c', + 'third_party/boringssl/crypto/x509/asn1_gen.c', + 'third_party/boringssl/crypto/x509/by_dir.c', + 'third_party/boringssl/crypto/x509/by_file.c', + 'third_party/boringssl/crypto/x509/i2d_pr.c', + 'third_party/boringssl/crypto/x509/pkcs7.c', + 'third_party/boringssl/crypto/x509/t_crl.c', + 'third_party/boringssl/crypto/x509/t_req.c', + 'third_party/boringssl/crypto/x509/t_x509.c', + 'third_party/boringssl/crypto/x509/t_x509a.c', + 'third_party/boringssl/crypto/x509/x509.c', + 'third_party/boringssl/crypto/x509/x509_att.c', + 'third_party/boringssl/crypto/x509/x509_cmp.c', + 'third_party/boringssl/crypto/x509/x509_d2.c', + 'third_party/boringssl/crypto/x509/x509_def.c', + 'third_party/boringssl/crypto/x509/x509_ext.c', + 'third_party/boringssl/crypto/x509/x509_lu.c', + 'third_party/boringssl/crypto/x509/x509_obj.c', + 'third_party/boringssl/crypto/x509/x509_r2x.c', + 'third_party/boringssl/crypto/x509/x509_req.c', + 'third_party/boringssl/crypto/x509/x509_set.c', + 'third_party/boringssl/crypto/x509/x509_trs.c', + 'third_party/boringssl/crypto/x509/x509_txt.c', + 'third_party/boringssl/crypto/x509/x509_v3.c', + 'third_party/boringssl/crypto/x509/x509_vfy.c', + 'third_party/boringssl/crypto/x509/x509_vpm.c', + 'third_party/boringssl/crypto/x509/x509cset.c', + 'third_party/boringssl/crypto/x509/x509name.c', + 'third_party/boringssl/crypto/x509/x509rset.c', + 'third_party/boringssl/crypto/x509/x509spki.c', + 'third_party/boringssl/crypto/x509/x509type.c', + 'third_party/boringssl/crypto/x509/x_algor.c', + 'third_party/boringssl/crypto/x509/x_all.c', + 'third_party/boringssl/crypto/x509/x_attrib.c', + 'third_party/boringssl/crypto/x509/x_crl.c', + 'third_party/boringssl/crypto/x509/x_exten.c', + 'third_party/boringssl/crypto/x509/x_info.c', + 'third_party/boringssl/crypto/x509/x_name.c', + 'third_party/boringssl/crypto/x509/x_pkey.c', + 'third_party/boringssl/crypto/x509/x_pubkey.c', + 'third_party/boringssl/crypto/x509/x_req.c', + 'third_party/boringssl/crypto/x509/x_sig.c', + 'third_party/boringssl/crypto/x509/x_spki.c', + 'third_party/boringssl/crypto/x509/x_val.c', + 'third_party/boringssl/crypto/x509/x_x509.c', + 'third_party/boringssl/crypto/x509/x_x509a.c', + 'third_party/boringssl/crypto/x509v3/pcy_cache.c', + 'third_party/boringssl/crypto/x509v3/pcy_data.c', + 'third_party/boringssl/crypto/x509v3/pcy_lib.c', + 'third_party/boringssl/crypto/x509v3/pcy_map.c', + 'third_party/boringssl/crypto/x509v3/pcy_node.c', + 'third_party/boringssl/crypto/x509v3/pcy_tree.c', + 'third_party/boringssl/crypto/x509v3/v3_akey.c', + 'third_party/boringssl/crypto/x509v3/v3_akeya.c', + 'third_party/boringssl/crypto/x509v3/v3_alt.c', + 'third_party/boringssl/crypto/x509v3/v3_bcons.c', + 'third_party/boringssl/crypto/x509v3/v3_bitst.c', + 'third_party/boringssl/crypto/x509v3/v3_conf.c', + 'third_party/boringssl/crypto/x509v3/v3_cpols.c', + 'third_party/boringssl/crypto/x509v3/v3_crld.c', + 'third_party/boringssl/crypto/x509v3/v3_enum.c', + 'third_party/boringssl/crypto/x509v3/v3_extku.c', + 'third_party/boringssl/crypto/x509v3/v3_genn.c', + 'third_party/boringssl/crypto/x509v3/v3_ia5.c', + 'third_party/boringssl/crypto/x509v3/v3_info.c', + 'third_party/boringssl/crypto/x509v3/v3_int.c', + 'third_party/boringssl/crypto/x509v3/v3_lib.c', + 'third_party/boringssl/crypto/x509v3/v3_ncons.c', + 'third_party/boringssl/crypto/x509v3/v3_pci.c', + 'third_party/boringssl/crypto/x509v3/v3_pcia.c', + 'third_party/boringssl/crypto/x509v3/v3_pcons.c', + 'third_party/boringssl/crypto/x509v3/v3_pku.c', + 'third_party/boringssl/crypto/x509v3/v3_pmaps.c', + 'third_party/boringssl/crypto/x509v3/v3_prn.c', + 'third_party/boringssl/crypto/x509v3/v3_purp.c', + 'third_party/boringssl/crypto/x509v3/v3_skey.c', + 'third_party/boringssl/crypto/x509v3/v3_sxnet.c', + 'third_party/boringssl/crypto/x509v3/v3_utl.c', + 'third_party/boringssl/ssl/custom_extensions.c', + 'third_party/boringssl/ssl/d1_both.c', + 'third_party/boringssl/ssl/d1_clnt.c', + 'third_party/boringssl/ssl/d1_lib.c', + 'third_party/boringssl/ssl/d1_meth.c', + 'third_party/boringssl/ssl/d1_pkt.c', + 'third_party/boringssl/ssl/d1_srtp.c', + 'third_party/boringssl/ssl/d1_srvr.c', + 'third_party/boringssl/ssl/dtls_record.c', + 'third_party/boringssl/ssl/pqueue/pqueue.c', + 'third_party/boringssl/ssl/s3_both.c', + 'third_party/boringssl/ssl/s3_clnt.c', + 'third_party/boringssl/ssl/s3_enc.c', + 'third_party/boringssl/ssl/s3_lib.c', + 'third_party/boringssl/ssl/s3_meth.c', + 'third_party/boringssl/ssl/s3_pkt.c', + 'third_party/boringssl/ssl/s3_srvr.c', + 'third_party/boringssl/ssl/ssl_aead_ctx.c', + 'third_party/boringssl/ssl/ssl_asn1.c', + 'third_party/boringssl/ssl/ssl_buffer.c', + 'third_party/boringssl/ssl/ssl_cert.c', + 'third_party/boringssl/ssl/ssl_cipher.c', + 'third_party/boringssl/ssl/ssl_file.c', + 'third_party/boringssl/ssl/ssl_lib.c', + 'third_party/boringssl/ssl/ssl_rsa.c', + 'third_party/boringssl/ssl/ssl_session.c', + 'third_party/boringssl/ssl/ssl_stat.c', + 'third_party/boringssl/ssl/t1_enc.c', + 'third_party/boringssl/ssl/t1_lib.c', + 'third_party/boringssl/ssl/tls_record.c', +] diff --git a/src/python/grpcio/tests/unit/_cython/_channel_test.py b/src/python/grpcio/tests/unit/_cython/_channel_test.py new file mode 100644 index 0000000000..b414f8e6f6 --- /dev/null +++ b/src/python/grpcio/tests/unit/_cython/_channel_test.py @@ -0,0 +1,83 @@ +# 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. + +import time +import threading +import unittest + +from grpc._cython import cygrpc + +# TODO(nathaniel): This should be at least one hundred. Why not one thousand? +_PARALLELISM = 4 + + +def _channel_and_completion_queue(): + channel = cygrpc.Channel('localhost:54321', cygrpc.ChannelArgs(())) + completion_queue = cygrpc.CompletionQueue() + return channel, completion_queue + + +def _connectivity_loop(channel, completion_queue): + for _ in range(100): + connectivity = channel.check_connectivity_state(True) + channel.watch_connectivity_state( + connectivity, cygrpc.Timespec(time.time() + 0.2), completion_queue, + None) + completion_queue.poll(deadline=cygrpc.Timespec(float('+inf'))) + + +def _create_loop_destroy(): + channel, completion_queue = _channel_and_completion_queue() + _connectivity_loop(channel, completion_queue) + completion_queue.shutdown() + + +def _in_parallel(behavior, arguments): + threads = tuple( + threading.Thread(target=behavior, args=arguments) + for _ in range(_PARALLELISM)) + for thread in threads: + thread.start() + for thread in threads: + thread.join() + + +class ChannelTest(unittest.TestCase): + + def test_single_channel_lonely_connectivity(self): + channel, completion_queue = _channel_and_completion_queue() + _in_parallel(_connectivity_loop, (channel, completion_queue,)) + completion_queue.shutdown() + + def test_multiple_channels_lonely_connectivity(self): + _in_parallel(_create_loop_destroy, ()) + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/src/python/grpcio/tests/unit/_cython/test_utilities.py b/src/python/grpcio/tests/unit/_cython/test_utilities.py index 21ea3075b4..6a09739643 100644 --- a/src/python/grpcio/tests/unit/_cython/test_utilities.py +++ b/src/python/grpcio/tests/unit/_cython/test_utilities.py @@ -29,7 +29,7 @@ import threading -from grpc._cython._cygrpc import completion_queue +from grpc._cython import cygrpc class CompletionQueuePollFuture: diff --git a/src/python/grpcio/tox.ini b/src/python/grpcio/tox.ini deleted file mode 100644 index bfb1ca0cfa..0000000000 --- a/src/python/grpcio/tox.ini +++ /dev/null @@ -1,19 +0,0 @@ -# Tox (http://tox.testrun.org/) is a tool for running tests -# in multiple virtualenvs. This configuration file will run the -# test suite on all supported python versions. To use it, "pip install tox" -# and then run "tox" from this directory. - -[tox] -skipsdist = true -envlist = py27 - -[testenv] -commands = - {envpython} setup.py build_py - {envpython} setup.py test - coverage combine - coverage html --include='grpc/*' --omit='grpc/framework/alpha/*','grpc/early_adopter/*','grpc/framework/base/*','grpc/framework/face/*','grpc/_adapter/fore.py','grpc/_adapter/rear.py' - coverage report --include='grpc/*' --omit='grpc/framework/alpha/*','grpc/early_adopter/*','grpc/framework/base/*','grpc/framework/face/*','grpc/_adapter/fore.py','grpc/_adapter/rear.py' -deps = - -rrequirements.txt -passenv = * diff --git a/src/ruby/.rspec b/src/ruby/.rspec deleted file mode 100755 index efeee2c1d2..0000000000 --- a/src/ruby/.rspec +++ /dev/null @@ -1,6 +0,0 @@ --I. --Ipb ---backtrace ---require spec_helper ---format documentation ---color diff --git a/src/ruby/ext/grpc/extconf.rb b/src/ruby/ext/grpc/extconf.rb index db9385e961..018353ce5d 100644 --- a/src/ruby/ext/grpc/extconf.rb +++ b/src/ruby/ext/grpc/extconf.rb @@ -54,53 +54,30 @@ LIB_DIRS = [ LIBDIR ] -def check_grpc_root - grpc_root = ENV['GRPC_ROOT'] - if grpc_root.nil? - r = File.expand_path(File.join(File.dirname(__FILE__), '../../../..')) - grpc_root = r if File.exist?(File.join(r, 'include/grpc/grpc.h')) - end - grpc_root -end +fail 'libdl not found' unless have_library('dl', 'dlopen') +fail 'zlib not found' unless have_library('z', 'inflate') + +grpc_root = File.expand_path(File.join(File.dirname(__FILE__), '../../../..')) -grpc_pkg_config = system('pkg-config --exists grpc') +grpc_config = ENV['GRPC_CONFIG'] || 'opt' -if grpc_pkg_config - $CFLAGS << ' ' + `pkg-config --static --cflags grpc`.strip + ' ' - $LDFLAGS << ' ' + `pkg-config --static --libs grpc`.strip + ' ' +if ENV.key?('GRPC_LIB_DIR') + grpc_lib_dir = File.join(grpc_root, ENV['GRPC_LIB_DIR']) else - dir_config('grpc', HEADER_DIRS, LIB_DIRS) - fail 'libdl not found' unless have_library('dl', 'dlopen') - fail 'zlib not found' unless have_library('z', 'inflate') - begin - fail 'Fail' unless have_library('gpr', 'gpr_now') - fail 'Fail' unless have_library('grpc', 'grpc_channel_destroy') - rescue - # Check to see if GRPC_ROOT is defined or available - grpc_root = check_grpc_root - - # Stop if there is still no grpc_root - exit 1 if grpc_root.nil? - - grpc_config = ENV['GRPC_CONFIG'] || 'opt' - if ENV.key?('GRPC_LIB_DIR') - grpc_lib_dir = File.join(grpc_root, ENV['GRPC_LIB_DIR']) - else - grpc_lib_dir = File.join(File.join(grpc_root, 'libs'), grpc_config) - end - unless File.exist?(File.join(grpc_lib_dir, 'libgrpc.a')) - print "Building internal gRPC\n" - system("make -C #{grpc_root} static_c CONFIG=#{grpc_config}") - end - $CFLAGS << ' -I' + File.join(grpc_root, 'include') - $LDFLAGS << ' -L' + grpc_lib_dir - if grpc_config == 'gcov' - $CFLAGS << ' -O0 -fprofile-arcs -ftest-coverage' - $LDFLAGS << ' -fprofile-arcs -ftest-coverage -rdynamic' - end - raise 'gpr not found' unless have_library('gpr', 'gpr_now') - raise 'grpc not found' unless have_library('grpc', 'grpc_channel_destroy') - end + grpc_lib_dir = File.join(File.join(grpc_root, 'libs'), grpc_config) +end + +unless File.exist?(File.join(grpc_lib_dir, 'libgrpc.a')) + print "Building internal gRPC\n" + system("make -C #{grpc_root} static_c CONFIG=#{grpc_config}") +end + +$CFLAGS << ' -I' + File.join(grpc_root, 'include') +$LDFLAGS << ' ' + File.join(grpc_lib_dir, 'libgrpc.a') +$LDFLAGS << ' ' + File.join(grpc_lib_dir, 'libgpr.a') +if grpc_config == 'gcov' + $CFLAGS << ' -O0 -fprofile-arcs -ftest-coverage' + $LDFLAGS << ' -fprofile-arcs -ftest-coverage -rdynamic' end $CFLAGS << ' -std=c99 ' @@ -109,4 +86,7 @@ $CFLAGS << ' -Wextra ' $CFLAGS << ' -pedantic ' $CFLAGS << ' -Werror ' +$LDFLAGS << ' -lssl ' +$LDFLAGS << ' -lcrypto ' + create_makefile('grpc/grpc') diff --git a/src/ruby/ext/grpc/rb_call.c b/src/ruby/ext/grpc/rb_call.c index 1647d9b484..43adafb73f 100644 --- a/src/ruby/ext/grpc/rb_call.c +++ b/src/ruby/ext/grpc/rb_call.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -310,33 +310,61 @@ static int grpc_rb_md_ary_fill_hash_cb(VALUE key, VALUE val, VALUE md_ary_obj) { grpc_metadata_array *md_ary = NULL; long array_length; long i; + char *key_str; + size_t key_len; + char *value_str; + size_t value_len; + + if (TYPE(key) == T_SYMBOL) { + key_str = (char *)rb_id2name(SYM2ID(key)); + key_len = strlen(key_str); + } else { /* StringValueCStr does all other type exclusions for us */ + key_str = StringValueCStr(key); + key_len = RSTRING_LEN(key); + } + + if (!grpc_header_key_is_legal(key_str, key_len)) { + rb_raise(rb_eArgError, + "'%s' is an invalid header key, must match [a-z0-9-_.]+", + key_str); + return ST_STOP; + } /* Construct a metadata object from key and value and add it */ TypedData_Get_Struct(md_ary_obj, grpc_metadata_array, &grpc_rb_md_ary_data_type, md_ary); if (TYPE(val) == T_ARRAY) { - /* If the value is an array, add capacity for each value in the array */ array_length = RARRAY_LEN(val); + /* If the value is an array, add capacity for each value in the array */ for (i = 0; i < array_length; i++) { - if (TYPE(key) == T_SYMBOL) { - md_ary->metadata[md_ary->count].key = (char *)rb_id2name(SYM2ID(key)); - } else { /* StringValueCStr does all other type exclusions for us */ - md_ary->metadata[md_ary->count].key = StringValueCStr(key); + value_str = RSTRING_PTR(rb_ary_entry(val, i)); + value_len = RSTRING_LEN(rb_ary_entry(val, i)); + if (!grpc_is_binary_header(key_str, key_len) && + !grpc_header_nonbin_value_is_legal(value_str, value_len)) { + // The value has invalid characters + rb_raise(rb_eArgError, + "Header value '%s' has invalid characters", value_str); + return ST_STOP; } - md_ary->metadata[md_ary->count].value = RSTRING_PTR(rb_ary_entry(val, i)); - md_ary->metadata[md_ary->count].value_length = - RSTRING_LEN(rb_ary_entry(val, i)); + md_ary->metadata[md_ary->count].key = key_str; + md_ary->metadata[md_ary->count].value = value_str; + md_ary->metadata[md_ary->count].value_length = value_len; md_ary->count += 1; } } else { - if (TYPE(key) == T_SYMBOL) { - md_ary->metadata[md_ary->count].key = (char *)rb_id2name(SYM2ID(key)); - } else { /* StringValueCStr does all other type exclusions for us */ - md_ary->metadata[md_ary->count].key = StringValueCStr(key); + value_str = RSTRING_PTR(val); + value_len = RSTRING_LEN(val); + if (!grpc_is_binary_header(key_str, key_len) && + !grpc_header_nonbin_value_is_legal(value_str, value_len)) { + // The value has invalid characters + rb_raise(rb_eArgError, + "Header value '%s' has invalid characters", value_str); + return ST_STOP; } - md_ary->metadata[md_ary->count].value = RSTRING_PTR(val); - md_ary->metadata[md_ary->count].value_length = RSTRING_LEN(val); + md_ary->metadata[md_ary->count].key = key_str; + md_ary->metadata[md_ary->count].value = value_str; + md_ary->metadata[md_ary->count].value_length = value_len; md_ary->count += 1; } diff --git a/src/ruby/ext/grpc/rb_call_credentials.c b/src/ruby/ext/grpc/rb_call_credentials.c index acc5472799..4d719d7541 100644 --- a/src/ruby/ext/grpc/rb_call_credentials.c +++ b/src/ruby/ext/grpc/rb_call_credentials.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,8 +38,10 @@ #include <grpc/grpc.h> #include <grpc/grpc_security.h> +#include <grpc/support/alloc.h> #include "rb_call.h" +#include "rb_event_thread.h" #include "rb_grpc.h" /* grpc_rb_cCallCredentials is the ruby class that proxies @@ -87,7 +89,7 @@ static VALUE grpc_rb_call_credentials_callback_rescue(VALUE args, return result; } -static void *grpc_rb_call_credentials_callback_with_gil(void *param) { +static void grpc_rb_call_credentials_callback_with_gil(void *param) { callback_params *const params = (callback_params *)param; VALUE auth_uri = rb_str_new_cstr(params->context.service_url); /* Pass the arguments to the proc in a hash, which currently only has they key @@ -113,21 +115,20 @@ static void *grpc_rb_call_credentials_callback_with_gil(void *param) { params->callback(params->user_data, md_ary.metadata, md_ary.count, status, error_details); grpc_metadata_array_destroy(&md_ary); - - return NULL; + gpr_free(params); } static void grpc_rb_call_credentials_plugin_get_metadata( void *state, grpc_auth_metadata_context context, grpc_credentials_plugin_metadata_cb cb, void *user_data) { - callback_params params; - params.get_metadata = (VALUE)state; - params.context = context; - params.user_data = user_data; - params.callback = cb; - - rb_thread_call_with_gvl(grpc_rb_call_credentials_callback_with_gil, - (void*)(¶ms)); + callback_params *params = gpr_malloc(sizeof(callback_params)); + params->get_metadata = (VALUE)state; + params->context = context; + params->user_data = user_data; + params->callback = cb; + + grpc_rb_event_queue_enqueue(grpc_rb_call_credentials_callback_with_gil, + (void*)(params)); } static void grpc_rb_call_credentials_plugin_destroy(void *state) { @@ -300,6 +301,8 @@ void Init_grpc_call_credentials() { grpc_rb_call_credentials_compose, -1); id_callback = rb_intern("__callback"); + + grpc_rb_event_queue_thread_start(); } /* Gets the wrapped grpc_call_credentials from the ruby wrapper */ diff --git a/src/ruby/ext/grpc/rb_channel.c b/src/ruby/ext/grpc/rb_channel.c index d5d82421f5..2fb8a5cdf0 100644 --- a/src/ruby/ext/grpc/rb_channel.c +++ b/src/ruby/ext/grpc/rb_channel.c @@ -59,6 +59,9 @@ static ID id_target; * GCed before the channel */ static ID id_cqueue; +/* id_insecure_channel is used to indicate that a channel is insecure */ +static VALUE id_insecure_channel; + /* grpc_rb_cChannel is the ruby class that proxies grpc_channel. */ static VALUE grpc_rb_cChannel = Qnil; @@ -126,7 +129,8 @@ static VALUE grpc_rb_channel_alloc(VALUE cls) { /* call-seq: - insecure_channel = Channel:new("myhost:8080", {'arg1': 'value1'}) + insecure_channel = Channel:new("myhost:8080", {'arg1': 'value1'}, + :this_channel_is_insecure) creds = ... secure_channel = Channel:new("myhost:443", {'arg1': 'value1'}, creds) @@ -142,13 +146,18 @@ static VALUE grpc_rb_channel_init(int argc, VALUE *argv, VALUE self) { grpc_channel_args args; MEMZERO(&args, grpc_channel_args, 1); - /* "21" == 2 mandatory args, 1 (credentials) is optional */ - rb_scan_args(argc, argv, "21", &target, &channel_args, &credentials); + /* "3" == 3 mandatory args */ + rb_scan_args(argc, argv, "3", &target, &channel_args, &credentials); TypedData_Get_Struct(self, grpc_rb_channel, &grpc_channel_data_type, wrapper); target_chars = StringValueCStr(target); grpc_rb_hash_convert_to_channel_args(channel_args, &args); - if (credentials == Qnil) { + if (TYPE(credentials) == T_SYMBOL) { + if (id_insecure_channel != SYM2ID(credentials)) { + rb_raise(rb_eTypeError, + "bad creds symbol, want :this_channel_is_insecure"); + return Qnil; + } ch = grpc_insecure_channel_create(target_chars, &args, NULL); } else { creds = grpc_rb_get_wrapped_channel_credentials(credentials); @@ -408,6 +417,7 @@ void Init_grpc_channel() { ID2SYM(rb_intern(GRPC_ARG_MAX_CONCURRENT_STREAMS))); rb_define_const(grpc_rb_cChannel, "MAX_MESSAGE_LENGTH", ID2SYM(rb_intern(GRPC_ARG_MAX_MESSAGE_LENGTH))); + id_insecure_channel = rb_intern("this_channel_is_insecure"); Init_grpc_propagate_masks(); Init_grpc_connectivity_states(); } diff --git a/src/ruby/ext/grpc/rb_event_thread.c b/src/ruby/ext/grpc/rb_event_thread.c new file mode 100644 index 0000000000..95af091317 --- /dev/null +++ b/src/ruby/ext/grpc/rb_event_thread.c @@ -0,0 +1,153 @@ +/* + * + * 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 "rb_event_thread.h" + +#include <stdbool.h> + +#include <ruby/ruby.h> +#include <ruby/thread.h> +#include <grpc/support/alloc.h> +#include <grpc/support/sync.h> +#include <grpc/support/time.h> +#include <grpc/support/log.h> + +typedef struct grpc_rb_event { + // callback will be called with argument while holding the GVL + void (*callback)(void*); + void *argument; + + struct grpc_rb_event *next; +} grpc_rb_event; + +typedef struct grpc_rb_event_queue { + grpc_rb_event *head; + grpc_rb_event *tail; + + gpr_mu mu; + gpr_cv cv; + + // Indicates that the thread should stop waiting + bool abort; +} grpc_rb_event_queue; + +static grpc_rb_event_queue event_queue; + +void grpc_rb_event_queue_enqueue(void (*callback)(void*), + void *argument) { + grpc_rb_event *event = gpr_malloc(sizeof(grpc_rb_event)); + event->callback = callback; + event->argument = argument; + event->next = NULL; + gpr_mu_lock(&event_queue.mu); + if (event_queue.tail == NULL) { + event_queue.head = event_queue.tail = event; + } else { + event_queue.tail->next = event; + event_queue.tail = event; + } + gpr_cv_signal(&event_queue.cv); + gpr_mu_unlock(&event_queue.mu); +} + +static grpc_rb_event *grpc_rb_event_queue_dequeue() { + grpc_rb_event *event; + if (event_queue.head == NULL) { + event = NULL; + } else { + event = event_queue.head; + if (event_queue.head->next == NULL) { + event_queue.head = event_queue.tail = NULL; + } else { + event_queue.head = event_queue.head->next; + } + } + return event; +} + +static void grpc_rb_event_queue_destroy() { + gpr_mu_destroy(&event_queue.mu); + gpr_cv_destroy(&event_queue.cv); +} + +static void *grpc_rb_wait_for_event_no_gil(void *param) { + grpc_rb_event *event = NULL; + gpr_mu_lock(&event_queue.mu); + while ((event = grpc_rb_event_queue_dequeue()) == NULL) { + gpr_cv_wait(&event_queue.cv, + &event_queue.mu, + gpr_inf_future(GPR_CLOCK_REALTIME)); + if (event_queue.abort) { + gpr_mu_unlock(&event_queue.mu); + return NULL; + } + } + gpr_mu_unlock(&event_queue.mu); + return event; +} + +static void grpc_rb_event_unblocking_func(void *arg) { + gpr_mu_lock(&event_queue.mu); + event_queue.abort = true; + gpr_cv_signal(&event_queue.cv); + gpr_mu_unlock(&event_queue.mu); +} + +/* This is the implementation of the thread that handles auth metadata plugin + * events */ +static VALUE grpc_rb_event_thread(VALUE arg) { + grpc_rb_event *event; + while(true) { + event = (grpc_rb_event*)rb_thread_call_without_gvl( + grpc_rb_wait_for_event_no_gil, NULL, + grpc_rb_event_unblocking_func, NULL); + if (event == NULL) { + // Indicates that the thread needs to shut down + break; + } else { + event->callback(event->argument); + gpr_free(event); + } + } + grpc_rb_event_queue_destroy(); + return Qnil; +} + +void grpc_rb_event_queue_thread_start() { + event_queue.head = event_queue.tail = NULL; + event_queue.abort = false; + gpr_mu_init(&event_queue.mu); + gpr_cv_init(&event_queue.cv); + + rb_thread_create(grpc_rb_event_thread, NULL); +} diff --git a/src/ruby/ext/grpc/rb_event_thread.h b/src/ruby/ext/grpc/rb_event_thread.h new file mode 100644 index 0000000000..46638bfcf5 --- /dev/null +++ b/src/ruby/ext/grpc/rb_event_thread.h @@ -0,0 +1,37 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +void grpc_rb_event_queue_thread_start(); + +void grpc_rb_event_queue_enqueue(void (*callback)(void*), + void *argument); diff --git a/src/ruby/grpc.gemspec b/src/ruby/grpc.gemspec deleted file mode 100755 index 363abe9a46..0000000000 --- a/src/ruby/grpc.gemspec +++ /dev/null @@ -1,45 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 -$LOAD_PATH.push File.expand_path('../lib', __FILE__) -require 'grpc/version' - -Gem::Specification.new do |s| - s.name = 'grpc' - s.version = GRPC::VERSION - s.authors = ['gRPC Authors'] - s.email = 'temiola@google.com' - s.homepage = 'https://github.com/google/grpc/tree/master/src/ruby' - s.summary = 'GRPC system in Ruby' - s.description = 'Send RPCs from Ruby using GRPC' - s.license = 'BSD-3-Clause' - - s.required_ruby_version = '>= 2.0.0' - s.requirements << 'libgrpc ~> 0.11.0 needs to be installed' - - s.files = %w( Rakefile ) - s.files += Dir.glob('bin/**/*') - s.files += Dir.glob('ext/**/*') - s.files += Dir.glob('lib/**/*') - s.files += Dir.glob('pb/**/*') - s.test_files = Dir.glob('spec/**/*') - %w(math noproto).each do |b| - s.executables += ["#{b}_client.rb", "#{b}_server.rb"] - end - s.executables += %w(grpc_ruby_interop_client grpc_ruby_interop_server) - s.require_paths = %w( bin lib pb ) - s.platform = Gem::Platform::RUBY - - s.add_dependency 'google-protobuf', '~> 3.0.0alpha.1.1' - s.add_dependency 'googleauth', '~> 0.4' - - s.add_development_dependency 'bundler', '~> 1.9' - s.add_development_dependency 'logging', '~> 2.0' - s.add_development_dependency 'simplecov', '~> 0.9' - s.add_development_dependency 'rake', '~> 10.4' - s.add_development_dependency 'rake-compiler', '~> 0.9' - s.add_development_dependency 'rspec', '~> 3.2' - s.add_development_dependency 'rubocop', '~> 0.30.0' - s.add_development_dependency 'signet', '~>0.6.0' - - s.extensions = %w(ext/grpc/extconf.rb) -end diff --git a/src/ruby/lib/grpc.rb b/src/ruby/lib/grpc.rb index 80b5743e91..1671ba3550 100644 --- a/src/ruby/lib/grpc.rb +++ b/src/ruby/lib/grpc.rb @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -27,6 +27,11 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +ssl_roots_path = File.expand_path('../../../../etc/roots.pem', __FILE__) +unless ENV['GRPC_DEFAULT_SSL_ROOTS_FILE_PATH'] + ENV['GRPC_DEFAULT_SSL_ROOTS_FILE_PATH'] = ssl_roots_path +end + require 'grpc/errors' require 'grpc/grpc' require 'grpc/logconfig' diff --git a/src/ruby/lib/grpc/generic/client_stub.rb b/src/ruby/lib/grpc/generic/client_stub.rb index 13100a614c..4da9ff086a 100644 --- a/src/ruby/lib/grpc/generic/client_stub.rb +++ b/src/ruby/lib/grpc/generic/client_stub.rb @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -50,9 +50,8 @@ module GRPC return alt_chan end kw['grpc.primary_user_agent'] = "grpc-ruby/#{VERSION}" - return Core::Channel.new(host, kw) if creds.nil? - unless creds.is_a?(Core::ChannelCredentials) - fail(TypeError, '!ChannelCredentials') + unless creds.is_a?(Core::ChannelCredentials) || creds.is_a?(Symbol) + fail(TypeError, '!ChannelCredentials or Symbol') end Core::Channel.new(host, kw, creds) end @@ -68,7 +67,8 @@ module GRPC # Minimally, a stub is created with the just the host of the gRPC service # it wishes to access, e.g., # - # my_stub = ClientStub.new(example.host.com:50505) + # my_stub = ClientStub.new(example.host.com:50505, + # :this_channel_is_insecure) # # Any arbitrary keyword arguments are treated as channel arguments used to # configure the RPC connection to the host. @@ -86,14 +86,14 @@ module GRPC # # @param host [String] the host the stub connects to # @param q [Core::CompletionQueue] used to wait for events + # @param creds [Core::ChannelCredentials|Symbol] the channel credentials, or + # :this_channel_is_insecure # @param channel_override [Core::Channel] a pre-created channel # @param timeout [Number] the default timeout to use in requests - # @param creds [Core::ChannelCredentials] the channel credentials # @param kw [KeywordArgs]the channel arguments - def initialize(host, q, + def initialize(host, q, creds, channel_override: nil, timeout: nil, - creds: nil, propagate_mask: nil, **kw) fail(TypeError, '!CompletionQueue') unless q.is_a?(Core::CompletionQueue) @@ -464,7 +464,7 @@ module GRPC method, nil, # host use nil, deadline) - call.set_credentials credentials unless credentials.nil? + call.set_credentials! credentials unless credentials.nil? ActiveCall.new(call, @queue, marshal, unmarshal, deadline, started: false) end end diff --git a/src/ruby/lib/grpc/generic/service.rb b/src/ruby/lib/grpc/generic/service.rb index 80ff669cca..410e1add7d 100644 --- a/src/ruby/lib/grpc/generic/service.rb +++ b/src/ruby/lib/grpc/generic/service.rb @@ -160,10 +160,12 @@ module GRPC route_prefix = service_name Class.new(ClientStub) do # @param host [String] the host the stub connects to + # @param creds [Core::ChannelCredentials|Symbol] The channel + # credentials to use, or :this_channel_is_insecure otherwise # @param kw [KeywordArgs] the channel arguments, plus any optional # args for configuring the client's channel - def initialize(host, **kw) - super(host, Core::CompletionQueue.new, **kw) + def initialize(host, creds, **kw) + super(host, Core::CompletionQueue.new, creds, **kw) end # Used define_method to add a method for each rpc_desc. Each method diff --git a/src/ruby/lib/grpc/version.rb b/src/ruby/lib/grpc/version.rb index 9acf7a055a..956e0222df 100644 --- a/src/ruby/lib/grpc/version.rb +++ b/src/ruby/lib/grpc/version.rb @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -29,5 +29,5 @@ # GRPC contains the General RPC module. module GRPC - VERSION = '0.11.1' + VERSION = '0.12.0' end diff --git a/src/ruby/pb/test/client.rb b/src/ruby/pb/test/client.rb index 6cc616e5cb..684ee80771 100755 --- a/src/ruby/pb/test/client.rb +++ b/src/ruby/pb/test/client.rb @@ -1,6 +1,6 @@ #!/usr/bin/env ruby -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -56,8 +56,6 @@ require 'test/proto/empty' require 'test/proto/messages' require 'test/proto/test_services' -require 'signet/ssl_config' - AUTH_ENV = Google::Auth::CredentialsLoader::ENV_VAR # RubyLogger defines a logger for gRPC based on the standard ruby logger. @@ -114,8 +112,8 @@ end def create_stub(opts) address = "#{opts.host}:#{opts.port}" if opts.secure + creds = ssl_creds(opts.use_test_ca) stub_opts = { - :creds => ssl_creds(opts.use_test_ca), GRPC::Core::Channel::SSL_TARGET => opts.host_override } @@ -125,7 +123,7 @@ def create_stub(opts) unless opts.oauth_scope.nil? auth_creds = Google::Auth.get_application_default(opts.oauth_scope) call_creds = GRPC::Core::CallCredentials.new(auth_creds.updater_proc) - stub_opts[:creds] = stub_opts[:creds].compose call_creds + creds = creds.compose call_creds end end @@ -135,20 +133,20 @@ def create_stub(opts) # use a metadata update proc that just adds the auth token. call_creds = GRPC::Core::CallCredentials.new(proc { |md| md.merge(kw) }) - stub_opts[:creds] = stub_opts[:creds].compose call_creds + creds = creds.compose call_creds end if opts.test_case == 'jwt_token_creds' # don't use a scope auth_creds = Google::Auth.get_application_default call_creds = GRPC::Core::CallCredentials.new(auth_creds.updater_proc) - stub_opts[:creds] = stub_opts[:creds].compose call_creds + creds = creds.compose call_creds end GRPC.logger.info("... connecting securely to #{address}") - Grpc::Testing::TestService::Stub.new(address, **stub_opts) + Grpc::Testing::TestService::Stub.new(address, creds, **stub_opts) else GRPC.logger.info("... connecting insecurely to #{address}") - Grpc::Testing::TestService::Stub.new(address) + Grpc::Testing::TestService::Stub.new(address, :this_channel_is_insecure) end end @@ -266,16 +264,15 @@ class NamedTests def per_rpc_creds auth_creds = Google::Auth.get_application_default(@args.oauth_scope) - kw = auth_creds.updater_proc.call({}) + update_metadata = proc do |md| + kw = auth_creds.updater_proc.call({}) + end - # TODO(jtattermusch): downcase the metadata keys here to make sure - # they are not rejected by C core. This is a hotfix that should - # be addressed by introducing auto-downcasing logic. - kw = Hash[ kw.each_pair.map { |k, v| [k.downcase, v] }] + call_creds = GRPC::Core::CallCredentials.new(update_metadata) resp = perform_large_unary(fill_username: true, fill_oauth_scope: true, - **kw) + credentials: call_creds) json_key = File.read(ENV[AUTH_ENV]) wanted_email = MultiJson.load(json_key)['client_email'] assert("#{__callee__}: bad username") { wanted_email == resp.username } diff --git a/src/ruby/spec/call_spec.rb b/src/ruby/spec/call_spec.rb index 6629570fba..ae3ce0748a 100644 --- a/src/ruby/spec/call_spec.rb +++ b/src/ruby/spec/call_spec.rb @@ -101,7 +101,7 @@ describe GRPC::Core::Call do let(:fake_host) { 'localhost:10101' } before(:each) do - @ch = GRPC::Core::Channel.new(fake_host, nil) + @ch = GRPC::Core::Channel.new(fake_host, nil, :this_channel_is_insecure) end describe '#status' do diff --git a/src/ruby/spec/channel_spec.rb b/src/ruby/spec/channel_spec.rb index b4d2b94a81..355f95c9d7 100644 --- a/src/ruby/spec/channel_spec.rb +++ b/src/ruby/spec/channel_spec.rb @@ -45,7 +45,10 @@ describe GRPC::Core::Channel do shared_examples '#new' do it 'take a host name without channel args' do - expect { GRPC::Core::Channel.new('dummy_host', nil) }.not_to raise_error + blk = proc do + GRPC::Core::Channel.new('dummy_host', nil, :this_channel_is_insecure) + end + expect(&blk).not_to raise_error end it 'does not take a hash with bad keys as channel args' do @@ -106,13 +109,15 @@ describe GRPC::Core::Channel do it_behaves_like '#new' def construct_with_args(a) - proc { GRPC::Core::Channel.new('dummy_host', a) } + proc do + GRPC::Core::Channel.new('dummy_host', a, :this_channel_is_insecure) + end end end describe '#create_call' do it 'creates a call OK' do - ch = GRPC::Core::Channel.new(fake_host, nil) + ch = GRPC::Core::Channel.new(fake_host, nil, :this_channel_is_insecure) deadline = Time.now + 5 @@ -123,7 +128,7 @@ describe GRPC::Core::Channel do end it 'raises an error if called on a closed channel' do - ch = GRPC::Core::Channel.new(fake_host, nil) + ch = GRPC::Core::Channel.new(fake_host, nil, :this_channel_is_insecure) ch.close deadline = Time.now + 5 @@ -136,13 +141,13 @@ describe GRPC::Core::Channel do describe '#destroy' do it 'destroys a channel ok' do - ch = GRPC::Core::Channel.new(fake_host, nil) + ch = GRPC::Core::Channel.new(fake_host, nil, :this_channel_is_insecure) blk = proc { ch.destroy } expect(&blk).to_not raise_error end it 'can be called more than once without error' do - ch = GRPC::Core::Channel.new(fake_host, nil) + ch = GRPC::Core::Channel.new(fake_host, nil, :this_channel_is_insecure) blk = proc { ch.destroy } blk.call expect(&blk).to_not raise_error @@ -157,13 +162,13 @@ describe GRPC::Core::Channel do describe '#close' do it 'closes a channel ok' do - ch = GRPC::Core::Channel.new(fake_host, nil) + ch = GRPC::Core::Channel.new(fake_host, nil, :this_channel_is_insecure) blk = proc { ch.close } expect(&blk).to_not raise_error end it 'can be called more than once without error' do - ch = GRPC::Core::Channel.new(fake_host, nil) + ch = GRPC::Core::Channel.new(fake_host, nil, :this_channel_is_insecure) blk = proc { ch.close } blk.call expect(&blk).to_not raise_error diff --git a/src/ruby/spec/client_server_spec.rb b/src/ruby/spec/client_server_spec.rb index 7cce2076c9..594fda1cd3 100644 --- a/src/ruby/spec/client_server_spec.rb +++ b/src/ruby/spec/client_server_spec.rb @@ -397,7 +397,7 @@ describe 'the http client/server' do @server = GRPC::Core::Server.new(@server_queue, nil) server_port = @server.add_http2_port(server_host, :this_port_is_insecure) @server.start - @ch = Channel.new("0.0.0.0:#{server_port}", nil) + @ch = Channel.new("0.0.0.0:#{server_port}", nil, :this_channel_is_insecure) end after(:example) do diff --git a/src/ruby/spec/generic/active_call_spec.rb b/src/ruby/spec/generic/active_call_spec.rb index b05e3284fe..c0181e21fb 100644 --- a/src/ruby/spec/generic/active_call_spec.rb +++ b/src/ruby/spec/generic/active_call_spec.rb @@ -48,7 +48,8 @@ describe GRPC::ActiveCall do @server = GRPC::Core::Server.new(@server_queue, nil) server_port = @server.add_http2_port(host, :this_port_is_insecure) @server.start - @ch = GRPC::Core::Channel.new("0.0.0.0:#{server_port}", nil) + @ch = GRPC::Core::Channel.new("0.0.0.0:#{server_port}", nil, + :this_channel_is_insecure) end after(:each) do diff --git a/src/ruby/spec/generic/client_stub_spec.rb b/src/ruby/spec/generic/client_stub_spec.rb index 40550230dd..5e13c25fcf 100644 --- a/src/ruby/spec/generic/client_stub_spec.rb +++ b/src/ruby/spec/generic/client_stub_spec.rb @@ -70,7 +70,7 @@ describe 'ClientStub' do it 'can be created from a host and args' do opts = { a_channel_arg: 'an_arg' } blk = proc do - GRPC::ClientStub.new(fake_host, @cq, **opts) + GRPC::ClientStub.new(fake_host, @cq, :this_channel_is_insecure, **opts) end expect(&blk).not_to raise_error end @@ -78,7 +78,7 @@ describe 'ClientStub' do it 'can be created with a default deadline' do opts = { a_channel_arg: 'an_arg', deadline: 5 } blk = proc do - GRPC::ClientStub.new(fake_host, @cq, **opts) + GRPC::ClientStub.new(fake_host, @cq, :this_channel_is_insecure, **opts) end expect(&blk).not_to raise_error end @@ -86,7 +86,7 @@ describe 'ClientStub' do it 'can be created with an channel override' do opts = { a_channel_arg: 'an_arg', channel_override: @ch } blk = proc do - GRPC::ClientStub.new(fake_host, @cq, **opts) + GRPC::ClientStub.new(fake_host, @cq, :this_channel_is_insecure, **opts) end expect(&blk).not_to raise_error end @@ -94,15 +94,15 @@ describe 'ClientStub' do it 'cannot be created with a bad channel override' do blk = proc do opts = { a_channel_arg: 'an_arg', channel_override: Object.new } - GRPC::ClientStub.new(fake_host, @cq, **opts) + GRPC::ClientStub.new(fake_host, @cq, :this_channel_is_insecure, **opts) end expect(&blk).to raise_error end it 'cannot be created with bad credentials' do blk = proc do - opts = { a_channel_arg: 'an_arg', creds: Object.new } - GRPC::ClientStub.new(fake_host, @cq, **opts) + opts = { a_channel_arg: 'an_arg' } + GRPC::ClientStub.new(fake_host, @cq, Object.new, **opts) end expect(&blk).to raise_error end @@ -112,10 +112,10 @@ describe 'ClientStub' do blk = proc do opts = { GRPC::Core::Channel::SSL_TARGET => 'foo.test.google.fr', - a_channel_arg: 'an_arg', - creds: GRPC::Core::ChannelCredentials.new(certs[0], nil, nil) + a_channel_arg: 'an_arg' } - GRPC::ClientStub.new(fake_host, @cq, **opts) + creds = GRPC::Core::ChannelCredentials.new(certs[0], nil, nil) + GRPC::ClientStub.new(fake_host, @cq, creds, **opts) end expect(&blk).to_not raise_error end @@ -130,7 +130,8 @@ describe 'ClientStub' do it 'should send a request to/receive a reply from a server' do server_port = create_test_server th = run_request_response(@sent_msg, @resp, @pass) - stub = GRPC::ClientStub.new("localhost:#{server_port}", @cq) + stub = GRPC::ClientStub.new("localhost:#{server_port}", @cq, + :this_channel_is_insecure) expect(get_response(stub)).to eq(@resp) th.join end @@ -140,7 +141,7 @@ describe 'ClientStub' do host = "localhost:#{server_port}" th = run_request_response(@sent_msg, @resp, @pass, k1: 'v1', k2: 'v2') - stub = GRPC::ClientStub.new(host, @cq) + stub = GRPC::ClientStub.new(host, @cq, :this_channel_is_insecure) expect(get_response(stub)).to eq(@resp) th.join end @@ -149,8 +150,10 @@ describe 'ClientStub' do server_port = create_test_server alt_host = "localhost:#{server_port}" th = run_request_response(@sent_msg, @resp, @pass) - ch = GRPC::Core::Channel.new(alt_host, nil) - stub = GRPC::ClientStub.new('ignored-host', @cq, channel_override: ch) + ch = GRPC::Core::Channel.new(alt_host, nil, :this_channel_is_insecure) + stub = GRPC::ClientStub.new('ignored-host', @cq, + :this_channel_is_insecure, + channel_override: ch) expect(get_response(stub)).to eq(@resp) th.join end @@ -159,7 +162,7 @@ describe 'ClientStub' do server_port = create_test_server host = "localhost:#{server_port}" th = run_request_response(@sent_msg, @resp, @fail) - stub = GRPC::ClientStub.new(host, @cq) + stub = GRPC::ClientStub.new(host, @cq, :this_channel_is_insecure) blk = proc { get_response(stub) } expect(&blk).to raise_error(GRPC::BadStatus) th.join @@ -198,7 +201,7 @@ describe 'ClientStub' do server_port = create_test_server host = "localhost:#{server_port}" th = run_client_streamer(@sent_msgs, @resp, @pass) - stub = GRPC::ClientStub.new(host, @cq) + stub = GRPC::ClientStub.new(host, @cq, :this_channel_is_insecure) expect(get_response(stub)).to eq(@resp) th.join end @@ -208,7 +211,7 @@ describe 'ClientStub' do host = "localhost:#{server_port}" th = run_client_streamer(@sent_msgs, @resp, @pass, k1: 'v1', k2: 'v2') - stub = GRPC::ClientStub.new(host, @cq) + stub = GRPC::ClientStub.new(host, @cq, :this_channel_is_insecure) expect(get_response(stub)).to eq(@resp) th.join end @@ -217,7 +220,7 @@ describe 'ClientStub' do server_port = create_test_server host = "localhost:#{server_port}" th = run_client_streamer(@sent_msgs, @resp, @fail) - stub = GRPC::ClientStub.new(host, @cq) + stub = GRPC::ClientStub.new(host, @cq, :this_channel_is_insecure) blk = proc { get_response(stub) } expect(&blk).to raise_error(GRPC::BadStatus) th.join @@ -256,7 +259,7 @@ describe 'ClientStub' do server_port = create_test_server host = "localhost:#{server_port}" th = run_server_streamer(@sent_msg, @replys, @pass) - stub = GRPC::ClientStub.new(host, @cq) + stub = GRPC::ClientStub.new(host, @cq, :this_channel_is_insecure) expect(get_responses(stub).collect { |r| r }).to eq(@replys) th.join end @@ -265,7 +268,7 @@ describe 'ClientStub' do server_port = create_test_server host = "localhost:#{server_port}" th = run_server_streamer(@sent_msg, @replys, @fail) - stub = GRPC::ClientStub.new(host, @cq) + stub = GRPC::ClientStub.new(host, @cq, :this_channel_is_insecure) e = get_responses(stub) expect { e.collect { |r| r } }.to raise_error(GRPC::BadStatus) th.join @@ -276,7 +279,7 @@ describe 'ClientStub' do host = "localhost:#{server_port}" th = run_server_streamer(@sent_msg, @replys, @fail, k1: 'v1', k2: 'v2') - stub = GRPC::ClientStub.new(host, @cq) + stub = GRPC::ClientStub.new(host, @cq, :this_channel_is_insecure) e = get_responses(stub) expect { e.collect { |r| r } }.to raise_error(GRPC::BadStatus) th.join @@ -320,7 +323,7 @@ describe 'ClientStub' do it 'supports sending all the requests first', bidi: true do th = run_bidi_streamer_handle_inputs_first(@sent_msgs, @replys, @pass) - stub = GRPC::ClientStub.new(@host, @cq) + stub = GRPC::ClientStub.new(@host, @cq, :this_channel_is_insecure) e = get_responses(stub) expect(e.collect { |r| r }).to eq(@replys) th.join @@ -328,7 +331,7 @@ describe 'ClientStub' do it 'supports client-initiated ping pong', bidi: true do th = run_bidi_streamer_echo_ping_pong(@sent_msgs, @pass, true) - stub = GRPC::ClientStub.new(@host, @cq) + stub = GRPC::ClientStub.new(@host, @cq, :this_channel_is_insecure) e = get_responses(stub) expect(e.collect { |r| r }).to eq(@sent_msgs) th.join @@ -336,7 +339,7 @@ describe 'ClientStub' do it 'supports a server-initiated ping pong', bidi: true do th = run_bidi_streamer_echo_ping_pong(@sent_msgs, @pass, false) - stub = GRPC::ClientStub.new(@host, @cq) + stub = GRPC::ClientStub.new(@host, @cq, :this_channel_is_insecure) e = get_responses(stub) expect(e.collect { |r| r }).to eq(@sent_msgs) th.join @@ -376,7 +379,7 @@ describe 'ClientStub' do it 'should fail with DeadlineExceeded', bidi: true do @server.start - stub = GRPC::ClientStub.new(@host, @cq) + stub = GRPC::ClientStub.new(@host, @cq, :this_channel_is_insecure) blk = proc do e = stub.bidi_streamer(@method, @sent_msgs, noop, noop, timeout: 0.001) diff --git a/src/ruby/spec/generic/rpc_server_spec.rb b/src/ruby/spec/generic/rpc_server_spec.rb index d95a021311..be6331d68b 100644 --- a/src/ruby/spec/generic/rpc_server_spec.rb +++ b/src/ruby/spec/generic/rpc_server_spec.rb @@ -141,7 +141,7 @@ describe GRPC::RpcServer do @server = GRPC::Core::Server.new(@server_queue, nil) server_port = @server.add_http2_port(server_host, :this_port_is_insecure) @host = "localhost:#{server_port}" - @ch = GRPC::Core::Channel.new(@host, nil) + @ch = GRPC::Core::Channel.new(@host, nil, :this_channel_is_insecure) end describe '#new' do @@ -355,7 +355,8 @@ describe GRPC::RpcServer do req = EchoMsg.new blk = proc do cq = GRPC::Core::CompletionQueue.new - stub = GRPC::ClientStub.new(@host, cq, **client_opts) + stub = GRPC::ClientStub.new(@host, cq, :this_channel_is_insecure, + **client_opts) stub.request_response('/unknown', req, marshal, unmarshal) end expect(&blk).to raise_error GRPC::BadStatus @@ -369,7 +370,7 @@ describe GRPC::RpcServer do @srv.wait_till_running req = EchoMsg.new n = 5 # arbitrary - stub = EchoStub.new(@host, **client_opts) + stub = EchoStub.new(@host, :this_channel_is_insecure, **client_opts) n.times { expect(stub.an_rpc(req)).to be_a(EchoMsg) } @srv.stop t.join @@ -381,7 +382,7 @@ describe GRPC::RpcServer do t = Thread.new { @srv.run } @srv.wait_till_running req = EchoMsg.new - stub = EchoStub.new(@host, **client_opts) + stub = EchoStub.new(@host, :this_channel_is_insecure, **client_opts) expect(stub.an_rpc(req, k1: 'v1', k2: 'v2')).to be_a(EchoMsg) wanted_md = [{ 'k1' => 'v1', 'k2' => 'v2' }] check_md(wanted_md, service.received_md) @@ -395,7 +396,7 @@ describe GRPC::RpcServer do t = Thread.new { @srv.run } @srv.wait_till_running req = EchoMsg.new - stub = SlowStub.new(@host, **client_opts) + stub = SlowStub.new(@host, :this_channel_is_insecure, **client_opts) timeout = service.delay + 1.0 # wait for long enough resp = stub.an_rpc(req, timeout: timeout, k1: 'v1', k2: 'v2') expect(resp).to be_a(EchoMsg) @@ -411,7 +412,7 @@ describe GRPC::RpcServer do t = Thread.new { @srv.run } @srv.wait_till_running req = EchoMsg.new - stub = SlowStub.new(@host, **client_opts) + stub = SlowStub.new(@host, :this_channel_is_insecure, **client_opts) op = stub.an_rpc(req, k1: 'v1', k2: 'v2', return_op: true) Thread.new do # cancel the call sleep 0.1 @@ -431,7 +432,7 @@ describe GRPC::RpcServer do threads = [t] n.times do threads << Thread.new do - stub = EchoStub.new(@host, **client_opts) + stub = EchoStub.new(@host, :this_channel_is_insecure, **client_opts) q << stub.an_rpc(req) end end @@ -459,7 +460,7 @@ describe GRPC::RpcServer do one_failed_as_unavailable = false n.times do threads << Thread.new do - stub = SlowStub.new(@host, **client_opts) + stub = SlowStub.new(@host, :this_channel_is_insecure, **client_opts) begin stub.an_rpc(req) rescue GRPC::BadStatus => e @@ -499,7 +500,7 @@ describe GRPC::RpcServer do t = Thread.new { @srv.run } @srv.wait_till_running req = EchoMsg.new - stub = EchoStub.new(@host, **client_opts) + stub = EchoStub.new(@host, :this_channel_is_insecure, **client_opts) op = stub.an_rpc(req, k1: 'v1', k2: 'v2', return_op: true) expect(op.metadata).to be nil expect(op.execute).to be_a(EchoMsg) @@ -537,7 +538,7 @@ describe GRPC::RpcServer do t = Thread.new { @srv.run } @srv.wait_till_running req = EchoMsg.new - stub = FailingStub.new(@host, **client_opts) + stub = FailingStub.new(@host, :this_channel_is_insecure, **client_opts) blk = proc { stub.an_rpc(req) } # confirm it raise the expected error @@ -562,7 +563,7 @@ describe GRPC::RpcServer do t = Thread.new { @srv.run } @srv.wait_till_running req = EchoMsg.new - stub = EchoStub.new(@host, **client_opts) + stub = EchoStub.new(@host, :this_channel_is_insecure, **client_opts) op = stub.an_rpc(req, k1: 'v1', k2: 'v2', return_op: true) expect(op.metadata).to be nil expect(op.execute).to be_a(EchoMsg) diff --git a/src/ruby/spec/generic/service_spec.rb b/src/ruby/spec/generic/service_spec.rb index 6cfc34db84..5e7b6c7aba 100644 --- a/src/ruby/spec/generic/service_spec.rb +++ b/src/ruby/spec/generic/service_spec.rb @@ -241,7 +241,7 @@ describe GenericService do end describe 'the generated instances' do - it 'can be instanciated with just a hostname' do + it 'can be instanciated with just a hostname and credentials' do s = Class.new do include GenericService rpc :AnRpc, GoodMsg, GoodMsg @@ -250,7 +250,10 @@ describe GenericService do rpc :ABidiStreamer, stream(GoodMsg), stream(GoodMsg) end client_class = s.rpc_stub_class - expect { client_class.new('fakehostname') }.not_to raise_error + blk = proc do + client_class.new('fakehostname', :this_channel_is_insecure) + end + expect(&blk).not_to raise_error end it 'has the methods defined in the service' do @@ -262,7 +265,7 @@ describe GenericService do rpc :ABidiStreamer, stream(GoodMsg), stream(GoodMsg) end client_class = s.rpc_stub_class - o = client_class.new('fakehostname') + o = client_class.new('fakehostname', :this_channel_is_insecure) expect(o.methods).to include(:an_rpc) expect(o.methods).to include(:a_bidi_streamer) expect(o.methods).to include(:a_client_streamer) diff --git a/src/ruby/spec/pb/health/checker_spec.rb b/src/ruby/spec/pb/health/checker_spec.rb index 322566b784..c1decd822a 100644 --- a/src/ruby/spec/pb/health/checker_spec.rb +++ b/src/ruby/spec/pb/health/checker_spec.rb @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -47,13 +47,12 @@ describe 'Health protobuf code generation' do end it 'should have the same content as created by code generation' do - root_dir = File.dirname( - File.dirname(File.dirname(File.dirname(__FILE__)))) - pb_dir = File.join(root_dir, 'pb') + root_dir = File.join(File.dirname(__FILE__), '..', '..', '..', '..') + pb_dir = File.join(root_dir, 'proto') # Get the current content - service_path = File.join(pb_dir, 'grpc', 'health', 'v1alpha', - 'health_services.rb') + service_path = File.join(root_dir, 'ruby', 'pb', 'grpc', + 'health', 'v1alpha', 'health_services.rb') want = nil File.open(service_path) { |f| want = f.read } @@ -188,7 +187,7 @@ describe Grpc::Health::Checker do @server = GRPC::Core::Server.new(@server_queue, nil) server_port = @server.add_http2_port(server_host, :this_port_is_insecure) @host = "localhost:#{server_port}" - @ch = GRPC::Core::Channel.new(@host, nil) + @ch = GRPC::Core::Channel.new(@host, nil, :this_channel_is_insecure) @client_opts = { channel_override: @ch } server_opts = { server_override: @server, @@ -208,7 +207,7 @@ describe Grpc::Health::Checker do t = Thread.new { @srv.run } @srv.wait_till_running - stub = CheckerStub.new(@host, **@client_opts) + stub = CheckerStub.new(@host, :this_channel_is_insecure, **@client_opts) got = stub.check(HCReq.new) want = HCResp.new(status: ServingStatus::NOT_SERVING) expect(got).to eq(want) @@ -221,7 +220,7 @@ describe Grpc::Health::Checker do t = Thread.new { @srv.run } @srv.wait_till_running blk = proc do - stub = CheckerStub.new(@host, **@client_opts) + stub = CheckerStub.new(@host, :this_channel_is_insecure, **@client_opts) stub.check(HCReq.new(host: 'unknown', service: 'unknown')) end expected_msg = /#{StatusCodes::NOT_FOUND}/ diff --git a/templates/Makefile.template b/templates/Makefile.template index a09dd794ad..4353a0de3a 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -7,7 +7,7 @@ # This file can be regenerated from the template by running # tools/buildgen/generate_projects.sh - # Copyright 2015, Google Inc. + # Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -52,6 +52,9 @@ %> + comma := , + + # Basic platform detection HOST_SYSTEM = $(shell uname | cut -f 1 -d_) ifeq ($(SYSTEM),) @@ -163,9 +166,9 @@ CXX_tsan = clang++ LD_tsan = clang LDXX_tsan = clang++ - CFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE - CXXFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE - LDFLAGS_tsan = -fsanitize=thread -pie + CFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE -pie + CXXFLAGS_tsan = -O0 -fsanitize=thread -fno-omit-frame-pointer -Wno-unused-command-line-argument -fPIE -pie + LDFLAGS_tsan = -fsanitize=thread -fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,) DEFINES_tsan = NDEBUG GRPC_TEST_SLOWDOWN_BUILD_FACTOR=10 VALID_CONFIG_asan = 1 @@ -185,9 +188,9 @@ CXX_msan = clang++-libc++ LD_msan = clang LDXX_msan = clang++-libc++ - CFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE - CXXFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE - LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -pie + CFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie + CXXFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie + LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,) DEFINES_msan = NDEBUG GRPC_TEST_SLOWDOWN_BUILD_FACTOR=4 VALID_CONFIG_ubsan = 1 @@ -1253,12 +1256,12 @@ $(GENDIR)/${p}.pb.cc: protoc_dep_error $(GENDIR)/${p}.grpc.pb.cc: protoc_dep_error else - $(GENDIR)/${p}.pb.cc: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(GENDIR)/${p}.pb.cc: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pb.cc' % q for q in proto_deps.get(p, []))} $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< - $(GENDIR)/${p}.grpc.pb.cc: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(GENDIR)/${p}.grpc.pb.cc: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pb.cc $(GENDIR)/%s.grpc.pb.cc' % (q,q) for q in proto_deps.get(p, []))} $(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 $< @@ -1645,11 +1648,18 @@ if lib.language == 'c++': lib_deps += ' $(PROTOBUF_DEP)' mingw_lib_deps += ' $(PROTOBUF_DEP)' - for dep in lib.get('deps', []): - libs = libs + ' -l' + dep - lib_deps = lib_deps + ' $(LIBDIR)/$(CONFIG)/lib' + dep + '.$(SHARED_EXT)' - mingw_libs = mingw_libs + ' -l' + dep + '-imp' - mingw_lib_deps = mingw_lib_deps + ' $(LIBDIR)/$(CONFIG)/' + dep + '.$(SHARED_EXT)' + if lib.get('deps_linkage', None) == 'static': + for dep in lib.get('deps', []): + lib_archive = '$(LIBDIR)/$(CONFIG)/lib' + dep + '.a' + common = common + ' ' + lib_archive + lib_deps = lib_deps + ' ' + lib_archive + mingw_lib_deps = mingw_lib_deps + ' ' + lib_archive + else: + for dep in lib.get('deps', []): + libs = libs + ' -l' + dep + lib_deps = lib_deps + ' $(LIBDIR)/$(CONFIG)/lib' + dep + '.$(SHARED_EXT)' + mingw_libs = mingw_libs + ' -l' + dep + '-imp' + mingw_lib_deps = mingw_lib_deps + ' $(LIBDIR)/$(CONFIG)/' + dep + '.$(SHARED_EXT)' security = lib.get('secure', 'check') if security == True: diff --git a/templates/grpc.gemspec.template b/templates/grpc.gemspec.template new file mode 100644 index 0000000000..fdf87ee13f --- /dev/null +++ b/templates/grpc.gemspec.template @@ -0,0 +1,58 @@ +%YAML 1.2 +--- | + # -*- ruby -*- + # encoding: utf-8 + $LOAD_PATH.push File.expand_path('../src/ruby/lib', __FILE__) + require 'grpc/version' + + Gem::Specification.new do |s| + s.name = 'grpc' + s.version = GRPC::VERSION + s.authors = ['gRPC Authors'] + s.email = 'temiola@google.com' + s.homepage = 'https://github.com/google/grpc/tree/master/src/ruby' + s.summary = 'GRPC system in Ruby' + s.description = 'Send RPCs from Ruby using GRPC' + s.license = 'BSD-3-Clause' + + s.required_ruby_version = '>= 2.0.0' + s.requirements << 'libgrpc ~> 0.11.0 needs to be installed' + + s.files = %w( Rakefile Makefile ) + s.files += %w( etc/roots.pem ) + s.files += Dir.glob('src/ruby/bin/**/*') + s.files += Dir.glob('src/ruby/ext/**/*') + s.files += Dir.glob('src/ruby/lib/**/*') + s.files += Dir.glob('src/ruby/pb/**/*') + s.files += Dir.glob('include/grpc/**/*') + s.test_files = Dir.glob('src/ruby/spec/**/*') + s.bindir = 'src/ruby/bin' + ${'%'}w(math noproto).each do |b| + s.executables += ["#{b}_client.rb", "#{b}_server.rb"] + end + s.executables += %w(grpc_ruby_interop_client grpc_ruby_interop_server) + s.require_paths = %w( src/ruby/bin src/ruby/lib src/ruby/pb ) + s.platform = Gem::Platform::RUBY + + s.add_dependency 'google-protobuf', '~> 3.0.0alpha.1.1' + s.add_dependency 'googleauth', '~> 0.5.1' + + s.add_development_dependency 'bundler', '~> 1.9' + s.add_development_dependency 'logging', '~> 2.0' + s.add_development_dependency 'simplecov', '~> 0.9' + s.add_development_dependency 'rake', '~> 10.4' + s.add_development_dependency 'rake-compiler', '~> 0.9' + s.add_development_dependency 'rspec', '~> 3.2' + s.add_development_dependency 'rubocop', '~> 0.30.0' + s.add_development_dependency 'signet', '~>0.7.0' + + s.extensions = %w(src/ruby/ext/grpc/extconf.rb) + + % for lib in libs: + % if lib.name in ('gpr', 'grpc'): + % for file in lib.public_headers + lib.headers + lib.src: + s.files += %w( ${file} ) + % endfor + % endif + % endfor + end diff --git a/templates/package.json.template b/templates/package.json.template new file mode 100644 index 0000000000..ec6827ef76 --- /dev/null +++ b/templates/package.json.template @@ -0,0 +1,74 @@ +%YAML 1.2 +--- | + { + "name": "grpc", + "version": "0.12.0", + "author": "Google Inc.", + "description": "gRPC Library for Node", + "homepage": "http://www.grpc.io/", + "repository": { + "type": "git", + "url": "https://github.com/grpc/grpc.git" + }, + "bugs": "https://github.com/grpc/grpc/issues", + "contributors": [ + { + "name": "Michael Lumish", + "email": "mlumish@google.com" + } + ], + "directories": { + "lib": "src/node/src" + }, + "scripts": { + "lint": "node ./node_modules/jshint/bin/jshint src/node/src src/node/test src/node/interop src/node/index.js", + "test": "./node_modules/.bin/mocha src/node/test && npm run-script lint", + "gen_docs": "./node_modules/.bin/jsdoc -c src/node/jsdoc_conf.json", + "coverage": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha src/node/test" + }, + "dependencies": { + "bindings": "^1.2.0", + "lodash": "^3.9.3", + "nan": "^2.0.0", + "protobufjs": "^4.0.0" + }, + "devDependencies": { + "async": "^1.5.0", + "google-auth-library": "^0.9.2", + "istanbul": "^0.3.21", + "jsdoc": "^3.3.2", + "jshint": "^2.5.0", + "minimist": "^1.1.0", + "mocha": "^2.3.4", + "mocha-jenkins-reporter": "^0.1.9", + "mustache": "^2.0.0", + "poisson-process": "^0.2.1" + }, + "engines": { + "node": ">=0.10.13" + }, + "files": [ + "LICENSE", + "src/node/README.md", + "src/node/health_check", + "src/proto", + "etc", + % for module in node_modules: + % for file in module.headers + module.src + module.js: + "${file}", + % endfor + % for dep in module.transitive_deps: + % for lib in libs: + % if lib.name == dep: + % for file in lib.get('public_headers', []) + lib.headers + lib.src: + "${file}", + % endfor + % endif + % endfor + % endfor + % endfor + "binding.gyp" + ], + "main": "src/node/index.js", + "license": "BSD-3-Clause" + } diff --git a/templates/src/python/grpcio/grpc_core_dependencies.py.template b/templates/src/python/grpcio/grpc_core_dependencies.py.template new file mode 100644 index 0000000000..2fc7a03f18 --- /dev/null +++ b/templates/src/python/grpcio/grpc_core_dependencies.py.template @@ -0,0 +1,42 @@ +%YAML 1.2 +--- | + # Copyright 2015-2016, Google Inc. + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are + # met: + # + # * Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # * Redistributions in binary form must reproduce the above + # copyright notice, this list of conditions and the following disclaimer + # in the documentation and/or other materials provided with the + # distribution. + # * Neither the name of Google Inc. nor the names of its + # contributors may be used to endorse or promote products derived from + # this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_core_dependencies.py.template`!!! + + CORE_SOURCE_FILES = [ + % for lib in libs: + % if lib.name in python_dependencies.transitive_deps: + % for src in lib.src: + '${src}', + % endfor + % endif + % endfor + ] diff --git a/templates/test/core/end2end/end2end_defs.include b/templates/test/core/end2end/end2end_defs.include index 1b13bba94c..929827e145 100644 --- a/templates/test/core/end2end/end2end_defs.include +++ b/templates/test/core/end2end/end2end_defs.include @@ -61,7 +61,7 @@ void grpc_end2end_tests(int argc, char **argv, continue; } % endfor - gpr_log(GPR_DEBUG, "not a test: '%%s'", argv[i]); + gpr_log(GPR_DEBUG, "not a test: '%s'", argv[i]); abort(); } }</%def>
\ No newline at end of file diff --git a/templates/tools/run_tests/tests.json.template b/templates/tools/run_tests/tests.json.template index 3a3ac1e0f3..9a84783467 100644 --- a/templates/tools/run_tests/tests.json.template +++ b/templates/tools/run_tests/tests.json.template @@ -10,7 +10,8 @@ "ci_platforms": tgt.ci_platforms, "exclude_configs": tgt.get("exclude_configs", []), "args": [], - "flaky": tgt.flaky} + "flaky": tgt.flaky, + "cpu_cost": tgt.get("cpu_cost", 1.0)} for tgt in targets if tgt.get('run', True) and tgt.build == 'test'] + tests, diff --git a/test/core/bad_client/gen_build_yaml.py b/test/core/bad_client/gen_build_yaml.py index a86a50065d..c538bffd71 100755 --- a/test/core/bad_client/gen_build_yaml.py +++ b/test/core/bad_client/gen_build_yaml.py @@ -1,5 +1,5 @@ #!/usr/bin/env python2.7 -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -35,15 +35,15 @@ import collections import yaml -TestOptions = collections.namedtuple('TestOptions', 'flaky') -default_test_options = TestOptions(False) +TestOptions = collections.namedtuple('TestOptions', 'flaky cpu_cost') +default_test_options = TestOptions(False, 1.0) # maps test names to options BAD_CLIENT_TESTS = { 'badreq': default_test_options, - 'connection_prefix': default_test_options, - 'headers': default_test_options, - 'initial_settings_frame': default_test_options, + 'connection_prefix': default_test_options._replace(cpu_cost=0.2), + 'headers': default_test_options._replace(cpu_cost=0.2), + 'initial_settings_frame': default_test_options._replace(cpu_cost=0.2), 'server_registered_method': default_test_options, 'simple_request': default_test_options, 'window_overflow': default_test_options, @@ -75,6 +75,7 @@ def main(): 'targets': [ { 'name': '%s_bad_client_test' % t, + 'cpu_cost': BAD_CLIENT_TESTS[t].cpu_cost, 'build': 'test', 'language': 'c', 'secure': 'no', diff --git a/test/core/bad_ssl/gen_build_yaml.py b/test/core/bad_ssl/gen_build_yaml.py index 15189d8b79..cc097a8fdf 100755 --- a/test/core/bad_ssl/gen_build_yaml.py +++ b/test/core/bad_ssl/gen_build_yaml.py @@ -1,5 +1,5 @@ #!/usr/bin/env python2.7 -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -35,13 +35,13 @@ import collections import yaml -TestOptions = collections.namedtuple('TestOptions', 'flaky') -default_test_options = TestOptions(False) +TestOptions = collections.namedtuple('TestOptions', 'flaky cpu_cost') +default_test_options = TestOptions(False, 1.0) # maps test names to options BAD_CLIENT_TESTS = { - 'cert': default_test_options, - 'alpn': default_test_options, + 'cert': default_test_options._replace(cpu_cost=0.1), + 'alpn': default_test_options._replace(cpu_cost=0.1), } def main(): @@ -84,6 +84,7 @@ def main(): for t in sorted(BAD_CLIENT_TESTS.keys())] + [ { 'name': 'bad_ssl_%s_test' % t, + 'cpu_cost': BAD_CLIENT_TESTS[t].cpu_cost, 'build': 'test', 'language': 'c', 'src': ['test/core/bad_ssl/bad_ssl_test.c'], diff --git a/test/core/end2end/end2end_nosec_tests.c b/test/core/end2end/end2end_nosec_tests.c index d9df5fd7f0..9ff46d62e4 100644 --- a/test/core/end2end/end2end_nosec_tests.c +++ b/test/core/end2end/end2end_nosec_tests.c @@ -258,7 +258,7 @@ void grpc_end2end_tests(int argc, char **argv, trailing_metadata(config); continue; } - gpr_log(GPR_DEBUG, "not a test: '%%s'", argv[i]); + gpr_log(GPR_DEBUG, "not a test: '%s'", argv[i]); abort(); } } diff --git a/test/core/end2end/end2end_tests.c b/test/core/end2end/end2end_tests.c index 7b1471eb89..397ff446a9 100644 --- a/test/core/end2end/end2end_tests.c +++ b/test/core/end2end/end2end_tests.c @@ -264,7 +264,7 @@ void grpc_end2end_tests(int argc, char **argv, trailing_metadata(config); continue; } - gpr_log(GPR_DEBUG, "not a test: '%%s'", argv[i]); + gpr_log(GPR_DEBUG, "not a test: '%s'", argv[i]); abort(); } } diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py index 6a4038da73..f24dbe72cf 100755 --- a/test/core/end2end/gen_build_yaml.py +++ b/test/core/end2end/gen_build_yaml.py @@ -1,5 +1,5 @@ #!/usr/bin/env python2.7 -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -77,40 +77,42 @@ END2END_FIXTURES = { } TestOptions = collections.namedtuple( - 'TestOptions', 'needs_fullstack needs_dns proxyable secure traceable') -default_test_options = TestOptions(False, False, True, False, True) + 'TestOptions', 'needs_fullstack needs_dns proxyable secure traceable cpu_cost') +default_test_options = TestOptions(False, False, True, False, True, 1.0) connectivity_test_options = default_test_options._replace(needs_fullstack=True) +LOWCPU = 0.1 + # maps test names to options END2END_TESTS = { 'bad_hostname': default_test_options, 'binary_metadata': default_test_options, 'call_creds': default_test_options._replace(secure=True), - 'cancel_after_accept': default_test_options, - 'cancel_after_client_done': default_test_options, - 'cancel_after_invoke': default_test_options, - 'cancel_before_invoke': default_test_options, - 'cancel_in_a_vacuum': default_test_options, - 'cancel_with_status': default_test_options, - 'channel_connectivity': connectivity_test_options._replace(proxyable=False), + 'cancel_after_accept': default_test_options._replace(cpu_cost=LOWCPU), + 'cancel_after_client_done': default_test_options._replace(cpu_cost=LOWCPU), + 'cancel_after_invoke': default_test_options._replace(cpu_cost=LOWCPU), + 'cancel_before_invoke': default_test_options._replace(cpu_cost=LOWCPU), + 'cancel_in_a_vacuum': default_test_options._replace(cpu_cost=LOWCPU), + 'cancel_with_status': default_test_options._replace(cpu_cost=LOWCPU), + 'channel_connectivity': connectivity_test_options._replace(proxyable=False, cpu_cost=LOWCPU), 'channel_ping': connectivity_test_options._replace(proxyable=False), - 'compressed_payload': default_test_options._replace(proxyable=False), + 'compressed_payload': default_test_options._replace(proxyable=False, cpu_cost=LOWCPU), 'default_host': default_test_options._replace(needs_fullstack=True, needs_dns=True), 'disappearing_server': connectivity_test_options, 'empty_batch': default_test_options, - 'graceful_server_shutdown': default_test_options, + 'graceful_server_shutdown': default_test_options._replace(cpu_cost=LOWCPU), 'hpack_size': default_test_options._replace(proxyable=False, traceable=False), 'high_initial_seqno': default_test_options, 'invoke_large_request': default_test_options, 'large_metadata': default_test_options, 'max_concurrent_streams': default_test_options._replace(proxyable=False), - 'max_message_length': default_test_options, + 'max_message_length': default_test_options._replace(cpu_cost=LOWCPU), 'metadata': default_test_options, 'negative_deadline': default_test_options, 'no_op': default_test_options, - 'payload': default_test_options, + 'payload': default_test_options._replace(cpu_cost=LOWCPU), 'ping_pong_streaming': default_test_options, 'registered_call': default_test_options, 'request_with_flags': default_test_options._replace(proxyable=False), @@ -118,7 +120,7 @@ END2END_TESTS = { 'server_finishes_request': default_test_options, 'shutdown_finishes_calls': default_test_options, 'shutdown_finishes_tags': default_test_options, - 'simple_delayed_request': connectivity_test_options, + 'simple_delayed_request': connectivity_test_options._replace(cpu_cost=LOWCPU), 'simple_request': default_test_options, 'trailing_metadata': default_test_options, } @@ -252,12 +254,13 @@ def main(): END2END_FIXTURES[f].platforms, 'mac')), 'flaky': False, 'language': 'c', + 'cpu_cost': END2END_TESTS[t].cpu_cost, } for f in sorted(END2END_FIXTURES.keys()) for t in sorted(END2END_TESTS.keys()) if compatible(f, t) ] + [ { - 'name': '%s_test' % f, + 'name': '%s_nosec_test' % f, 'args': [t], 'exclude_configs': [], 'platforms': END2END_FIXTURES[f].platforms, @@ -266,6 +269,7 @@ def main(): END2END_FIXTURES[f].platforms, 'mac')), 'flaky': False, 'language': 'c', + 'cpu_cost': END2END_TESTS[t].cpu_cost, } for f in sorted(END2END_FIXTURES.keys()) if not END2END_FIXTURES[f].secure diff --git a/test/core/fling/client.c b/test/core/fling/client.c index 99b30d6c4a..95e2ea1f10 100644 --- a/test/core/fling/client.c +++ b/test/core/fling/client.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -201,13 +201,16 @@ int main(int argc, char **argv) { sc.init(); - for (i = 0; i < 1000; i++) { + gpr_timespec end_warmup = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3); + gpr_timespec end_profiling = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(30); + + while (gpr_time_cmp(gpr_now(end_warmup.clock_type), end_warmup) < 0) { sc.do_one_step(); } gpr_log(GPR_INFO, "start profiling"); grpc_profiler_start("client.prof"); - for (i = 0; i < 100000; i++) { + while (gpr_time_cmp(gpr_now(end_profiling.clock_type), end_profiling) < 0) { start = now(); sc.do_one_step(); stop = now(); diff --git a/test/core/iomgr/tcp_posix_test.c b/test/core/iomgr/tcp_posix_test.c index b59ba1014b..e0136b3cd7 100644 --- a/test/core/iomgr/tcp_posix_test.c +++ b/test/core/iomgr/tcp_posix_test.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/test/core/security/jwt_verifier_test.c b/test/core/security/jwt_verifier_test.c index 9f37e0374c..f396398cef 100644 --- a/test/core/security/jwt_verifier_test.c +++ b/test/core/security/jwt_verifier_test.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/test/core/support/avl_test.c b/test/core/support/avl_test.c index 6530fe4269..d8d8b36806 100644 --- a/test/core/support/avl_test.c +++ b/test/core/support/avl_test.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -3611,32 +3611,33 @@ static void test_badcase3(void) { gpr_avl_unref(avl); } -static void test_stress(void) { +static void test_stress(int amount_of_stress) { int added[1024]; int i, j; int deletions = 0; gpr_avl avl; - gpr_log(GPR_DEBUG, "test_stress"); + unsigned seed = (unsigned)time(NULL); + + gpr_log(GPR_DEBUG, "test_stress amount=%d seed=%u", amount_of_stress, seed); srand((unsigned)time(NULL)); avl = gpr_avl_create(&int_int_vtable); memset(added, 0, sizeof(added)); - for (i = 1; deletions < 1000; i++) { + for (i = 1; deletions < amount_of_stress; i++) { int idx = rand() % (int)GPR_ARRAY_SIZE(added); GPR_ASSERT(i); if (rand() < RAND_MAX / 2) { added[idx] = i; - fprintf(stderr, "avl = gpr_avl_add(avl, box(%d), box(%d)); /* d=%d */\n", - idx, i, deletions); + printf("avl = gpr_avl_add(avl, box(%d), box(%d)); /* d=%d */\n", idx, i, + deletions); avl = gpr_avl_add(avl, box(idx), box(i)); } else { deletions += (added[idx] != 0); added[idx] = 0; - fprintf(stderr, "avl = remove_int(avl, %d); /* d=%d */\n", idx, - deletions); + printf("avl = remove_int(avl, %d); /* d=%d */\n", idx, deletions); avl = remove_int(avl, idx); } for (j = 0; j < (int)GPR_ARRAY_SIZE(added); j++) { @@ -3665,7 +3666,7 @@ int main(int argc, char *argv[]) { test_badcase1(); test_badcase2(); test_badcase3(); - test_stress(); + test_stress(10); return 0; } diff --git a/test/core/support/cpu_test.c b/test/core/support/cpu_test.c index a5c52442ad..da16f13fd8 100644 --- a/test/core/support/cpu_test.c +++ b/test/core/support/cpu_test.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/test/core/transport/chttp2/bin_encoder_test.c b/test/core/transport/chttp2/bin_encoder_test.c index 1ffd8ed3cb..d1838075be 100644 --- a/test/core/transport/chttp2/bin_encoder_test.c +++ b/test/core/transport/chttp2/bin_encoder_test.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,6 +35,10 @@ #include <string.h> +/* This is here for grpc_is_binary_header + * TODO(murgatroid99): Remove this + */ +#include <grpc/grpc.h> #include "src/core/support/string.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> diff --git a/test/cpp/end2end/async_end2end_test.cc b/test/cpp/end2end/async_end2end_test.cc index af0b7fdb57..cfda571326 100644 --- a/test/cpp/end2end/async_end2end_test.cc +++ b/test/cpp/end2end/async_end2end_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,29 +33,29 @@ #include <memory> -#include <grpc/grpc.h> -#include <grpc/support/thd.h> -#include <grpc/support/time.h> #include <grpc++/channel.h> #include <grpc++/client_context.h> #include <grpc++/create_channel.h> #include <grpc++/server.h> #include <grpc++/server_builder.h> #include <grpc++/server_context.h> +#include <grpc/grpc.h> +#include <grpc/support/thd.h> +#include <grpc/support/time.h> #include <gtest/gtest.h> +#include "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" -#include "test/cpp/util/echo_duplicate.grpc.pb.h" -#include "test/cpp/util/echo.grpc.pb.h" #include "test/cpp/util/string_ref_helper.h" #ifdef GPR_POSIX_SOCKET #include "src/core/iomgr/pollset_posix.h" #endif -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; using std::chrono::system_clock; namespace grpc { @@ -186,7 +186,7 @@ class AsyncEnd2endTest : public ::testing::TestWithParam<bool> { build_bad.AddListeningPort(server_address_.str(), grpc::InsecureServerCredentials()); build_bad.RegisterAsyncService(&service_); - grpc::cpp::test::util::TestService::Service sync_service; + grpc::testing::EchoTestService::Service sync_service; build_bad.RegisterService(&sync_service); GPR_ASSERT(build_bad.BuildAndStart() == nullptr); @@ -211,7 +211,7 @@ class AsyncEnd2endTest : public ::testing::TestWithParam<bool> { void ResetStub() { std::shared_ptr<Channel> channel = CreateChannel(server_address_.str(), InsecureChannelCredentials()); - stub_ = grpc::cpp::test::util::TestService::NewStub(channel); + stub_ = grpc::testing::EchoTestService::NewStub(channel); } void SendRpc(int num_rpcs) { @@ -249,9 +249,9 @@ class AsyncEnd2endTest : public ::testing::TestWithParam<bool> { } std::unique_ptr<ServerCompletionQueue> cq_; - std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_; + std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_; std::unique_ptr<Server> server_; - grpc::cpp::test::util::TestService::AsyncService service_; + grpc::testing::EchoTestService::AsyncService service_; std::ostringstream server_address_; }; @@ -761,8 +761,8 @@ TEST_P(AsyncEnd2endTest, ServerCheckDone) { TEST_P(AsyncEnd2endTest, UnimplementedRpc) { std::shared_ptr<Channel> channel = CreateChannel(server_address_.str(), InsecureChannelCredentials()); - std::unique_ptr<grpc::cpp::test::util::UnimplementedService::Stub> stub; - stub = grpc::cpp::test::util::UnimplementedService::NewStub(channel); + std::unique_ptr<grpc::testing::UnimplementedService::Stub> stub; + stub = grpc::testing::UnimplementedService::NewStub(channel); EchoRequest send_request; EchoResponse recv_response; Status recv_status; diff --git a/test/cpp/end2end/client_crash_test.cc b/test/cpp/end2end/client_crash_test.cc index 116785bbf2..5ca5cd7e99 100644 --- a/test/cpp/end2end/client_crash_test.cc +++ b/test/cpp/end2end/client_crash_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,25 +31,25 @@ * */ -#include <grpc/grpc.h> -#include <grpc/support/thd.h> -#include <grpc/support/time.h> #include <grpc++/channel.h> #include <grpc++/client_context.h> #include <grpc++/create_channel.h> #include <grpc++/server.h> #include <grpc++/server_builder.h> #include <grpc++/server_context.h> +#include <grpc/grpc.h> +#include <grpc/support/thd.h> +#include <grpc/support/time.h> #include <gtest/gtest.h> +#include "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" -#include "test/cpp/util/echo_duplicate.grpc.pb.h" -#include "test/cpp/util/echo.grpc.pb.h" #include "test/cpp/util/subprocess.h" -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; using std::chrono::system_clock; static std::string g_root; @@ -63,8 +63,7 @@ class CrashTest : public ::testing::Test { protected: CrashTest() {} - std::unique_ptr<grpc::cpp::test::util::TestService::Stub> - CreateServerAndStub() { + std::unique_ptr<grpc::testing::EchoTestService::Stub> CreateServerAndStub() { auto port = grpc_pick_unused_port_or_die(); std::ostringstream addr_stream; addr_stream << "localhost:" << port; @@ -73,7 +72,7 @@ class CrashTest : public ::testing::Test { g_root + "/client_crash_test_server", "--address=" + addr, })); GPR_ASSERT(server_); - return grpc::cpp::test::util::TestService::NewStub( + return grpc::testing::EchoTestService::NewStub( CreateChannel(addr, InsecureChannelCredentials())); } diff --git a/test/cpp/end2end/client_crash_test_server.cc b/test/cpp/end2end/client_crash_test_server.cc index 7ffeecca70..1ec641cb5a 100644 --- a/test/cpp/end2end/client_crash_test_server.cc +++ b/test/cpp/end2end/client_crash_test_server.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,20 +31,20 @@ * */ +#include <gflags/gflags.h> #include <iostream> #include <memory> #include <string> -#include <gflags/gflags.h> #include <grpc++/server.h> #include <grpc++/server_builder.h> #include <grpc++/server_context.h> -#include "test/cpp/util/echo.grpc.pb.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" DEFINE_string(address, "", "Address to bind to"); -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; // In some distros, gflags is in the namespace google, and in some others, // in gflags. This hack is enabling us to find both. @@ -57,7 +57,7 @@ namespace grpc { namespace testing { class ServiceImpl GRPC_FINAL - : public ::grpc::cpp::test::util::TestService::Service { + : public ::grpc::testing::EchoTestService::Service { Status BidiStream(ServerContext* context, ServerReaderWriter<EchoResponse, EchoRequest>* stream) GRPC_OVERRIDE { diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc index bbeac7a30b..f8027bcf0b 100644 --- a/test/cpp/end2end/end2end_test.cc +++ b/test/cpp/end2end/end2end_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,9 +34,6 @@ #include <mutex> #include <thread> -#include <grpc/grpc.h> -#include <grpc/support/thd.h> -#include <grpc/support/time.h> #include <grpc++/channel.h> #include <grpc++/client_context.h> #include <grpc++/create_channel.h> @@ -46,18 +43,21 @@ #include <grpc++/server.h> #include <grpc++/server_builder.h> #include <grpc++/server_context.h> +#include <grpc/grpc.h> +#include <grpc/support/thd.h> +#include <grpc/support/time.h> #include <gtest/gtest.h> #include "src/core/security/credentials.h" +#include "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" #include "test/core/end2end/data/ssl_test_data.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" -#include "test/cpp/util/echo_duplicate.grpc.pb.h" -#include "test/cpp/util/echo.grpc.pb.h" #include "test/cpp/util/string_ref_helper.h" -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; using std::chrono::system_clock; namespace grpc { @@ -196,10 +196,10 @@ class TestAuthMetadataProcessor : public AuthMetadataProcessor { const char TestAuthMetadataProcessor::kGoodGuy[] = "Dr Jekyll"; const char TestAuthMetadataProcessor::kIdentityPropName[] = "novel identity"; -class Proxy : public ::grpc::cpp::test::util::TestService::Service { +class Proxy : public ::grpc::testing::EchoTestService::Service { public: Proxy(std::shared_ptr<Channel> channel) - : stub_(grpc::cpp::test::util::TestService::NewStub(channel)) {} + : stub_(grpc::testing::EchoTestService::NewStub(channel)) {} Status Echo(ServerContext* server_context, const EchoRequest* request, EchoResponse* response) GRPC_OVERRIDE { @@ -209,10 +209,10 @@ class Proxy : public ::grpc::cpp::test::util::TestService::Service { } private: - std::unique_ptr< ::grpc::cpp::test::util::TestService::Stub> stub_; + std::unique_ptr< ::grpc::testing::EchoTestService::Stub> stub_; }; -class TestServiceImpl : public ::grpc::cpp::test::util::TestService::Service { +class TestServiceImpl : public ::grpc::testing::EchoTestService::Service { public: TestServiceImpl() : signal_client_(false), host_() {} explicit TestServiceImpl(const grpc::string& host) @@ -344,7 +344,7 @@ class TestServiceImpl : public ::grpc::cpp::test::util::TestService::Service { }; class TestServiceImplDupPkg - : public ::grpc::cpp::test::util::duplicate::TestService::Service { + : public ::grpc::testing::duplicate::EchoTestService::Service { public: Status Echo(ServerContext* context, const EchoRequest* request, EchoResponse* response) GRPC_OVERRIDE { @@ -435,12 +435,12 @@ class End2endTest : public ::testing::TestWithParam<TestScenario> { channel_ = CreateChannel(proxyaddr.str(), InsecureChannelCredentials()); } - stub_ = grpc::cpp::test::util::TestService::NewStub(channel_); + stub_ = grpc::testing::EchoTestService::NewStub(channel_); } bool is_server_started_; std::shared_ptr<Channel> channel_; - std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_; + std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_; std::unique_ptr<Server> server_; std::unique_ptr<Server> proxy_server_; std::unique_ptr<Proxy> proxy_service_; @@ -451,8 +451,7 @@ class End2endTest : public ::testing::TestWithParam<TestScenario> { TestServiceImplDupPkg dup_pkg_service_; }; -static void SendRpc(grpc::cpp::test::util::TestService::Stub* stub, - int num_rpcs) { +static void SendRpc(grpc::testing::EchoTestService::Stub* stub, int num_rpcs) { EchoRequest request; EchoResponse response; request.set_message("Hello hello hello hello"); @@ -562,9 +561,8 @@ TEST_P(End2endTest, DiffPackageServices) { EXPECT_EQ(response.message(), request.message()); EXPECT_TRUE(s.ok()); - std::unique_ptr<grpc::cpp::test::util::duplicate::TestService::Stub> - dup_pkg_stub( - grpc::cpp::test::util::duplicate::TestService::NewStub(channel_)); + std::unique_ptr<grpc::testing::duplicate::EchoTestService::Stub> dup_pkg_stub( + grpc::testing::duplicate::EchoTestService::NewStub(channel_)); ClientContext context2; s = dup_pkg_stub->Echo(&context2, request, &response); EXPECT_EQ("no package", response.message()); @@ -783,8 +781,8 @@ TEST_P(End2endTest, ChannelStateTimeout) { // Talking to a non-existing service. TEST_P(End2endTest, NonExistingService) { ResetChannel(); - std::unique_ptr<grpc::cpp::test::util::UnimplementedService::Stub> stub; - stub = grpc::cpp::test::util::UnimplementedService::NewStub(channel_); + std::unique_ptr<grpc::testing::UnimplementedService::Stub> stub; + stub = grpc::testing::UnimplementedService::NewStub(channel_); EchoRequest request; EchoResponse response; diff --git a/test/cpp/end2end/generic_end2end_test.cc b/test/cpp/end2end/generic_end2end_test.cc index 350e67b523..c5d9de3f29 100644 --- a/test/cpp/end2end/generic_end2end_test.cc +++ b/test/cpp/end2end/generic_end2end_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,27 +33,27 @@ #include <memory> -#include <grpc/grpc.h> -#include <grpc/support/thd.h> -#include <grpc/support/time.h> -#include <grpc++/impl/proto_utils.h> #include <grpc++/channel.h> #include <grpc++/client_context.h> #include <grpc++/create_channel.h> #include <grpc++/generic/async_generic_service.h> #include <grpc++/generic/generic_stub.h> +#include <grpc++/impl/proto_utils.h> #include <grpc++/server.h> #include <grpc++/server_builder.h> #include <grpc++/server_context.h> #include <grpc++/support/slice.h> +#include <grpc/grpc.h> +#include <grpc/support/thd.h> +#include <grpc/support/time.h> #include <gtest/gtest.h> +#include "src/proto/grpc/testing/echo.grpc.pb.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" -#include "test/cpp/util/echo.grpc.pb.h" -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; using std::chrono::system_clock; namespace grpc { @@ -134,7 +134,7 @@ class GenericEnd2endTest : public ::testing::Test { void client_fail(int i) { verify_ok(&cli_cq_, i, false); } void SendRpc(int num_rpcs) { - const grpc::string kMethodName("/grpc.cpp.test.util.TestService/Echo"); + const grpc::string kMethodName("/grpc.cpp.test.util.EchoTestService/Echo"); for (int i = 0; i < num_rpcs; i++) { EchoRequest send_request; EchoRequest recv_request; @@ -193,7 +193,7 @@ class GenericEnd2endTest : public ::testing::Test { CompletionQueue cli_cq_; std::unique_ptr<ServerCompletionQueue> srv_cq_; - std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_; + std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_; std::unique_ptr<grpc::GenericStub> generic_stub_; std::unique_ptr<Server> server_; AsyncGenericService generic_service_; @@ -215,7 +215,8 @@ TEST_F(GenericEnd2endTest, SequentialRpcs) { TEST_F(GenericEnd2endTest, SimpleBidiStreaming) { ResetStub(); - const grpc::string kMethodName("/grpc.cpp.test.util.TestService/BidiStream"); + const grpc::string kMethodName( + "/grpc.cpp.test.util.EchoTestService/BidiStream"); EchoRequest send_request; EchoRequest recv_request; EchoResponse send_response; diff --git a/test/cpp/end2end/mock_test.cc b/test/cpp/end2end/mock_test.cc index bd34cfba67..1d29096b86 100644 --- a/test/cpp/end2end/mock_test.cc +++ b/test/cpp/end2end/mock_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,25 +33,25 @@ #include <thread> -#include <grpc/grpc.h> -#include <grpc/support/thd.h> -#include <grpc/support/time.h> #include <grpc++/channel.h> #include <grpc++/client_context.h> #include <grpc++/create_channel.h> #include <grpc++/server.h> #include <grpc++/server_builder.h> #include <grpc++/server_context.h> +#include <grpc/grpc.h> +#include <grpc/support/thd.h> +#include <grpc/support/time.h> #include <gtest/gtest.h> +#include "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" -#include "test/cpp/util/echo_duplicate.grpc.pb.h" -#include "test/cpp/util/echo.grpc.pb.h" -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; -using grpc::cpp::test::util::TestService; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; +using grpc::testing::EchoTestService; using std::chrono::system_clock; namespace grpc { @@ -98,7 +98,7 @@ class MockClientReaderWriter<EchoRequest, EchoResponse> GRPC_FINAL }; // Mocked stub. -class MockStub : public TestService::StubInterface { +class MockStub : public EchoTestService::StubInterface { public: MockStub() {} ~MockStub() {} @@ -154,7 +154,7 @@ class MockStub : public TestService::StubInterface { class FakeClient { public: - explicit FakeClient(TestService::StubInterface* stub) : stub_(stub) {} + explicit FakeClient(EchoTestService::StubInterface* stub) : stub_(stub) {} void DoEcho() { ClientContext context; @@ -197,13 +197,13 @@ class FakeClient { EXPECT_TRUE(s.ok()); } - void ResetStub(TestService::StubInterface* stub) { stub_ = stub; } + void ResetStub(EchoTestService::StubInterface* stub) { stub_ = stub; } private: - TestService::StubInterface* stub_; + EchoTestService::StubInterface* stub_; }; -class TestServiceImpl : public TestService::Service { +class TestServiceImpl : public EchoTestService::Service { public: Status Echo(ServerContext* context, const EchoRequest* request, EchoResponse* response) GRPC_OVERRIDE { @@ -245,10 +245,10 @@ class MockTest : public ::testing::Test { void ResetStub() { std::shared_ptr<Channel> channel = CreateChannel(server_address_.str(), InsecureChannelCredentials()); - stub_ = grpc::cpp::test::util::TestService::NewStub(channel); + stub_ = grpc::testing::EchoTestService::NewStub(channel); } - std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_; + std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_; std::unique_ptr<Server> server_; std::ostringstream server_address_; TestServiceImpl service_; diff --git a/test/cpp/end2end/server_crash_test.cc b/test/cpp/end2end/server_crash_test.cc index 4b6793abe6..9bf9423666 100644 --- a/test/cpp/end2end/server_crash_test.cc +++ b/test/cpp/end2end/server_crash_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,25 +31,25 @@ * */ -#include <grpc/grpc.h> -#include <grpc/support/thd.h> -#include <grpc/support/time.h> #include <grpc++/channel.h> #include <grpc++/client_context.h> #include <grpc++/create_channel.h> #include <grpc++/server.h> #include <grpc++/server_builder.h> #include <grpc++/server_context.h> +#include <grpc/grpc.h> +#include <grpc/support/thd.h> +#include <grpc/support/time.h> #include <gtest/gtest.h> +#include "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" -#include "test/cpp/util/echo.grpc.pb.h" -#include "test/cpp/util/echo_duplicate.grpc.pb.h" #include "test/cpp/util/subprocess.h" -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; using std::chrono::system_clock; static std::string g_root; @@ -60,7 +60,7 @@ namespace testing { namespace { class ServiceImpl GRPC_FINAL - : public ::grpc::cpp::test::util::TestService::Service { + : public ::grpc::testing::EchoTestService::Service { public: ServiceImpl() : bidi_stream_count_(0), response_stream_count_(0) {} diff --git a/test/cpp/end2end/server_crash_test_client.cc b/test/cpp/end2end/server_crash_test_client.cc index 2baefcbf42..b0e6ac6f56 100644 --- a/test/cpp/end2end/server_crash_test_client.cc +++ b/test/cpp/end2end/server_crash_test_client.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,22 +31,22 @@ * */ +#include <gflags/gflags.h> #include <iostream> #include <memory> #include <sstream> #include <string> -#include <gflags/gflags.h> #include <grpc++/channel.h> #include <grpc++/client_context.h> #include <grpc++/create_channel.h> -#include "test/cpp/util/echo.grpc.pb.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" DEFINE_string(address, "", "Address to connect to"); DEFINE_string(mode, "", "Test mode to use"); -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; // In some distros, gflags is in the namespace google, and in some others, // in gflags. This hack is enabling us to find both. @@ -57,7 +57,7 @@ using namespace gflags; int main(int argc, char** argv) { ParseCommandLineFlags(&argc, &argv, true); - auto stub = grpc::cpp::test::util::TestService::NewStub( + auto stub = grpc::testing::EchoTestService::NewStub( grpc::CreateChannel(FLAGS_address, grpc::InsecureChannelCredentials())); EchoRequest request; diff --git a/test/cpp/end2end/shutdown_test.cc b/test/cpp/end2end/shutdown_test.cc index b1b18b2a7f..dbbda3ac51 100644 --- a/test/cpp/end2end/shutdown_test.cc +++ b/test/cpp/end2end/shutdown_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,28 +33,28 @@ #include <thread> -#include <grpc/grpc.h> -#include <grpc/support/sync.h> #include <grpc++/channel.h> #include <grpc++/client_context.h> #include <grpc++/create_channel.h> #include <grpc++/server.h> #include <grpc++/server_builder.h> #include <grpc++/server_context.h> +#include <grpc/grpc.h> +#include <grpc/support/sync.h> #include <gtest/gtest.h> #include "src/core/support/env.h" -#include "test/core/util/test_config.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" #include "test/core/util/port.h" -#include "test/cpp/util/echo.grpc.pb.h" +#include "test/core/util/test_config.h" -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; namespace grpc { namespace testing { -class TestServiceImpl : public ::grpc::cpp::test::util::TestService::Service { +class TestServiceImpl : public ::grpc::testing::EchoTestService::Service { public: explicit TestServiceImpl(gpr_event* ev) : ev_(ev) {} @@ -94,7 +94,7 @@ class ShutdownTest : public ::testing::Test { void ResetStub() { string target = "dns:localhost:" + to_string(port_); channel_ = CreateChannel(target, InsecureChannelCredentials()); - stub_ = grpc::cpp::test::util::TestService::NewStub(channel_); + stub_ = grpc::testing::EchoTestService::NewStub(channel_); } string to_string(const int number) { @@ -115,7 +115,7 @@ class ShutdownTest : public ::testing::Test { protected: std::shared_ptr<Channel> channel_; - std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_; + std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_; std::unique_ptr<Server> server_; bool shutdown_; int port_; diff --git a/test/cpp/end2end/streaming_throughput_test.cc b/test/cpp/end2end/streaming_throughput_test.cc index b7e103a1ae..4777b88747 100644 --- a/test/cpp/end2end/streaming_throughput_test.cc +++ b/test/cpp/end2end/streaming_throughput_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,9 +31,9 @@ * */ +#include <time.h> #include <mutex> #include <thread> -#include <time.h> #include <grpc++/channel.h> #include <grpc++/client_context.h> @@ -49,13 +49,13 @@ #include <grpc/support/time.h> #include <gtest/gtest.h> +#include "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" -#include "test/cpp/util/echo_duplicate.grpc.pb.h" -#include "test/cpp/util/echo.grpc.pb.h" -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; using std::chrono::system_clock; const char* kLargeString = @@ -99,7 +99,7 @@ const char* kLargeString = namespace grpc { namespace testing { -class TestServiceImpl : public ::grpc::cpp::test::util::TestService::Service { +class TestServiceImpl : public ::grpc::testing::EchoTestService::Service { public: static void BidiStream_Sender( ServerReaderWriter<EchoResponse, EchoRequest>* stream, @@ -161,10 +161,10 @@ class End2endTest : public ::testing::Test { void ResetStub() { std::shared_ptr<Channel> channel = CreateChannel(server_address_.str(), InsecureChannelCredentials()); - stub_ = grpc::cpp::test::util::TestService::NewStub(channel); + stub_ = grpc::testing::EchoTestService::NewStub(channel); } - std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_; + std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_; std::unique_ptr<Server> server_; std::ostringstream server_address_; TestServiceImpl service_; diff --git a/test/cpp/end2end/thread_stress_test.cc b/test/cpp/end2end/thread_stress_test.cc index fb82b96135..4e8860e843 100644 --- a/test/cpp/end2end/thread_stress_test.cc +++ b/test/cpp/end2end/thread_stress_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,24 +34,24 @@ #include <mutex> #include <thread> -#include <grpc/grpc.h> -#include <grpc/support/thd.h> -#include <grpc/support/time.h> #include <grpc++/channel.h> #include <grpc++/client_context.h> #include <grpc++/create_channel.h> #include <grpc++/server.h> #include <grpc++/server_builder.h> #include <grpc++/server_context.h> +#include <grpc/grpc.h> +#include <grpc/support/thd.h> +#include <grpc/support/time.h> #include <gtest/gtest.h> +#include "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" -#include "test/cpp/util/echo_duplicate.grpc.pb.h" -#include "test/cpp/util/echo.grpc.pb.h" -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; using std::chrono::system_clock; namespace grpc { @@ -74,7 +74,7 @@ void MaybeEchoDeadline(ServerContext* context, const EchoRequest* request, } // namespace -class TestServiceImpl : public ::grpc::cpp::test::util::TestService::Service { +class TestServiceImpl : public ::grpc::testing::EchoTestService::Service { public: TestServiceImpl() : signal_client_(false) {} @@ -159,7 +159,7 @@ class TestServiceImpl : public ::grpc::cpp::test::util::TestService::Service { }; class TestServiceImplDupPkg - : public ::grpc::cpp::test::util::duplicate::TestService::Service { + : public ::grpc::testing::duplicate::EchoTestService::Service { public: Status Echo(ServerContext* context, const EchoRequest* request, EchoResponse* response) GRPC_OVERRIDE { @@ -191,10 +191,10 @@ class End2endTest : public ::testing::Test { void ResetStub() { std::shared_ptr<Channel> channel = CreateChannel(server_address_.str(), InsecureChannelCredentials()); - stub_ = grpc::cpp::test::util::TestService::NewStub(channel); + stub_ = grpc::testing::EchoTestService::NewStub(channel); } - std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_; + std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_; std::unique_ptr<Server> server_; std::ostringstream server_address_; const int kMaxMessageSize_; @@ -202,8 +202,7 @@ class End2endTest : public ::testing::Test { TestServiceImplDupPkg dup_pkg_service_; }; -static void SendRpc(grpc::cpp::test::util::TestService::Stub* stub, - int num_rpcs) { +static void SendRpc(grpc::testing::EchoTestService::Stub* stub, int num_rpcs) { EchoRequest request; EchoResponse response; request.set_message("Hello"); diff --git a/test/cpp/end2end/zookeeper_test.cc b/test/cpp/end2end/zookeeper_test.cc index 41482717d2..bbf1b0edc1 100644 --- a/test/cpp/end2end/zookeeper_test.cc +++ b/test/cpp/end2end/zookeeper_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,24 +37,24 @@ #include <grpc++/server.h> #include <grpc++/server_builder.h> #include <grpc++/server_context.h> -#include <gtest/gtest.h> #include <grpc/grpc.h> #include <grpc/grpc_zookeeper.h> +#include <gtest/gtest.h> #include <zookeeper/zookeeper.h> -#include "test/core/util/test_config.h" -#include "test/core/util/port.h" -#include "test/cpp/util/echo.grpc.pb.h" #include "src/core/support/env.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" +#include "test/core/util/port.h" +#include "test/core/util/test_config.h" -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; namespace grpc { namespace testing { class ZookeeperTestServiceImpl - : public ::grpc::cpp::test::util::TestService::Service { + : public ::grpc::testing::EchoTestService::Service { public: Status Echo(ServerContext* context, const EchoRequest* request, EchoResponse* response) GRPC_OVERRIDE { @@ -158,7 +158,7 @@ class ZookeeperTest : public ::testing::Test { void ResetStub() { string target = "zookeeper://" + zookeeper_address_ + "/test"; channel_ = CreateChannel(target, InsecureChannelCredentials()); - stub_ = grpc::cpp::test::util::TestService::NewStub(channel_); + stub_ = grpc::testing::EchoTestService::NewStub(channel_); } string to_string(const int number) { @@ -168,7 +168,7 @@ class ZookeeperTest : public ::testing::Test { } std::shared_ptr<Channel> channel_; - std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_; + std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_; std::unique_ptr<Server> server1_; std::unique_ptr<Server> server2_; ZookeeperTestServiceImpl service_; diff --git a/test/cpp/interop/interop_client.cc b/test/cpp/interop/interop_client.cc index a758e73def..b06310781a 100644 --- a/test/cpp/interop/interop_client.cc +++ b/test/cpp/interop/interop_client.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -47,10 +47,10 @@ #include <grpc/support/useful.h> #include "src/core/transport/byte_stream.h" +#include "src/proto/grpc/testing/empty.grpc.pb.h" +#include "src/proto/grpc/testing/test.grpc.pb.h" +#include "src/proto/grpc/testing/messages.grpc.pb.h" #include "test/cpp/interop/client_helper.h" -#include "test/proto/empty.grpc.pb.h" -#include "test/proto/messages.grpc.pb.h" -#include "test/proto/test.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/interop/interop_client.h b/test/cpp/interop/interop_client.h index 97a6fd77cf..3ecd380398 100644 --- a/test/cpp/interop/interop_client.h +++ b/test/cpp/interop/interop_client.h @@ -38,8 +38,8 @@ #include <grpc/grpc.h> #include <grpc++/channel.h> -#include "test/proto/messages.grpc.pb.h" -#include "test/proto/test.grpc.pb.h" +#include "src/proto/grpc/testing/messages.grpc.pb.h" +#include "src/proto/grpc/testing/test.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/interop/metrics_client.cc b/test/cpp/interop/metrics_client.cc index 2865c855a2..0c140ffd85 100644 --- a/test/cpp/interop/metrics_client.cc +++ b/test/cpp/interop/metrics_client.cc @@ -39,8 +39,8 @@ #include "test/cpp/util/metrics_server.h" #include "test/cpp/util/test_config.h" -#include "test/proto/metrics.grpc.pb.h" -#include "test/proto/metrics.pb.h" +#include "src/proto/grpc/testing/metrics.grpc.pb.h" +#include "src/proto/grpc/testing/metrics.pb.h" DEFINE_string(metrics_server_address, "", "The metrics server addresses in the fomrat <hostname>:<port>"); diff --git a/test/cpp/interop/reconnect_interop_client.cc b/test/cpp/interop/reconnect_interop_client.cc index d332dcad84..1f6b352db1 100644 --- a/test/cpp/interop/reconnect_interop_client.cc +++ b/test/cpp/interop/reconnect_interop_client.cc @@ -41,9 +41,9 @@ #include <grpc++/client_context.h> #include "test/cpp/util/create_test_channel.h" #include "test/cpp/util/test_config.h" -#include "test/proto/test.grpc.pb.h" -#include "test/proto/empty.grpc.pb.h" -#include "test/proto/messages.grpc.pb.h" +#include "src/proto/grpc/testing/test.grpc.pb.h" +#include "src/proto/grpc/testing/empty.grpc.pb.h" +#include "src/proto/grpc/testing/messages.grpc.pb.h" DEFINE_int32(server_control_port, 0, "Server port for control rpcs."); DEFINE_int32(server_retry_port, 0, "Server port for testing reconnection."); diff --git a/test/cpp/interop/reconnect_interop_server.cc b/test/cpp/interop/reconnect_interop_server.cc index d08385a74c..3602b8c2b0 100644 --- a/test/cpp/interop/reconnect_interop_server.cc +++ b/test/cpp/interop/reconnect_interop_server.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -48,9 +48,9 @@ #include "test/core/util/reconnect_server.h" #include "test/cpp/util/test_config.h" -#include "test/proto/test.grpc.pb.h" -#include "test/proto/empty.grpc.pb.h" -#include "test/proto/messages.grpc.pb.h" +#include "src/proto/grpc/testing/test.grpc.pb.h" +#include "src/proto/grpc/testing/empty.grpc.pb.h" +#include "src/proto/grpc/testing/messages.grpc.pb.h" DEFINE_int32(control_port, 0, "Server port for controlling the server."); DEFINE_int32(retry_port, 0, diff --git a/test/cpp/interop/server.cc b/test/cpp/interop/server.cc index c0e1ec943d..cdca060c23 100644 --- a/test/cpp/interop/server.cc +++ b/test/cpp/interop/server.cc @@ -50,9 +50,9 @@ #include "test/cpp/interop/server_helper.h" #include "test/cpp/util/test_config.h" -#include "test/proto/test.grpc.pb.h" -#include "test/proto/empty.grpc.pb.h" -#include "test/proto/messages.grpc.pb.h" +#include "src/proto/grpc/testing/test.grpc.pb.h" +#include "src/proto/grpc/testing/empty.grpc.pb.h" +#include "src/proto/grpc/testing/messages.grpc.pb.h" DEFINE_bool(use_tls, false, "Whether to use tls."); DEFINE_int32(port, 0, "Server port."); diff --git a/test/cpp/interop/stress_interop_client.cc b/test/cpp/interop/stress_interop_client.cc index 04671fb935..b581e9b33c 100644 --- a/test/cpp/interop/stress_interop_client.cc +++ b/test/cpp/interop/stress_interop_client.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/test/cpp/interop/stress_test.cc b/test/cpp/interop/stress_test.cc index 22ef5a5491..702354dc87 100644 --- a/test/cpp/interop/stress_test.cc +++ b/test/cpp/interop/stress_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -47,8 +47,8 @@ #include "test/cpp/interop/stress_interop_client.h" #include "test/cpp/util/metrics_server.h" #include "test/cpp/util/test_config.h" -#include "test/proto/metrics.grpc.pb.h" -#include "test/proto/metrics.pb.h" +#include "src/proto/grpc/testing/metrics.grpc.pb.h" +#include "src/proto/grpc/testing/metrics.pb.h" extern "C" { extern void gpr_default_log(gpr_log_func_args* args); diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h index b24a90adac..97487fd0b2 100644 --- a/test/cpp/qps/client.h +++ b/test/cpp/qps/client.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,12 +37,15 @@ #include <condition_variable> #include <mutex> +#include <grpc++/support/byte_buffer.h> +#include <grpc++/support/slice.h> + #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/interarrival.h" #include "test/cpp/qps/timer.h" #include "test/cpp/util/create_test_channel.h" -#include "test/proto/benchmarks/payloads.grpc.pb.h" -#include "test/proto/benchmarks/services.grpc.pb.h" +#include "src/proto/grpc/testing/payloads.grpc.pb.h" +#include "src/proto/grpc/testing/services.grpc.pb.h" namespace grpc { @@ -66,37 +69,64 @@ namespace testing { typedef std::chrono::high_resolution_clock grpc_time_source; typedef std::chrono::time_point<grpc_time_source> grpc_time; -class Client { +template <class RequestType> +class ClientRequestCreator { public: - explicit Client(const ClientConfig& config) - : channels_(config.client_channels()), - timer_(new Timer), - interarrival_timer_() { - for (int i = 0; i < config.client_channels(); i++) { - channels_[i].init(config.server_targets(i % config.server_targets_size()), - config); - } - if (config.payload_config().has_bytebuf_params()) { - GPR_ASSERT(false); // not yet implemented - } else if (config.payload_config().has_simple_params()) { - request_.set_response_type(grpc::testing::PayloadType::COMPRESSABLE); - request_.set_response_size( - config.payload_config().simple_params().resp_size()); - request_.mutable_payload()->set_type( + ClientRequestCreator(RequestType* req, const PayloadConfig&) { + // this template must be specialized + // fail with an assertion rather than a compile-time + // check since these only happen at the beginning anyway + GPR_ASSERT(false); + } +}; + +template <> +class ClientRequestCreator<SimpleRequest> { + public: + ClientRequestCreator(SimpleRequest* req, + const PayloadConfig& payload_config) { + if (payload_config.has_bytebuf_params()) { + GPR_ASSERT(false); // not appropriate for this specialization + } else if (payload_config.has_simple_params()) { + req->set_response_type(grpc::testing::PayloadType::COMPRESSABLE); + req->set_response_size(payload_config.simple_params().resp_size()); + req->mutable_payload()->set_type( grpc::testing::PayloadType::COMPRESSABLE); - int size = config.payload_config().simple_params().req_size(); + int size = payload_config.simple_params().req_size(); std::unique_ptr<char[]> body(new char[size]); - request_.mutable_payload()->set_body(body.get(), size); - } else if (config.payload_config().has_complex_params()) { - GPR_ASSERT(false); // not yet implemented + req->mutable_payload()->set_body(body.get(), size); + } else if (payload_config.has_complex_params()) { + GPR_ASSERT(false); // not appropriate for this specialization } else { // default should be simple proto without payloads - request_.set_response_type(grpc::testing::PayloadType::COMPRESSABLE); - request_.set_response_size(0); - request_.mutable_payload()->set_type( + req->set_response_type(grpc::testing::PayloadType::COMPRESSABLE); + req->set_response_size(0); + req->mutable_payload()->set_type( grpc::testing::PayloadType::COMPRESSABLE); } } +}; + +template <> +class ClientRequestCreator<ByteBuffer> { + public: + ClientRequestCreator(ByteBuffer* req, const PayloadConfig& payload_config) { + if (payload_config.has_bytebuf_params()) { + std::unique_ptr<char[]> buf( + new char[payload_config.bytebuf_params().req_size()]); + gpr_slice s = gpr_slice_from_copied_buffer( + buf.get(), payload_config.bytebuf_params().req_size()); + Slice slice(s, Slice::STEAL_REF); + *req = ByteBuffer(&slice, 1); + } else { + GPR_ASSERT(false); // not appropriate for this specialization + } + } +}; + +class Client { + public: + Client() : timer_(new Timer), interarrival_timer_() {} virtual ~Client() {} ClientStats Mark(bool reset) { @@ -134,37 +164,8 @@ class Client { } protected: - SimpleRequest request_; bool closed_loop_; - class ClientChannelInfo { - public: - ClientChannelInfo() {} - ClientChannelInfo(const ClientChannelInfo& i) { - // The copy constructor is to satisfy old compilers - // that need it for using std::vector . It is only ever - // used for empty entries - GPR_ASSERT(!i.channel_ && !i.stub_); - } - void init(const grpc::string& target, const ClientConfig& config) { - // We have to use a 2-phase init like this with a default - // constructor followed by an initializer function to make - // old compilers happy with using this in std::vector - channel_ = CreateTestChannel( - target, config.security_params().server_host_override(), - config.has_security_params(), - !config.security_params().use_test_ca()); - stub_ = BenchmarkService::NewStub(channel_); - } - Channel* get_channel() { return channel_.get(); } - BenchmarkService::Stub* get_stub() { return stub_.get(); } - - private: - std::shared_ptr<Channel> channel_; - std::unique_ptr<BenchmarkService::Stub> stub_; - }; - std::vector<ClientChannelInfo> channels_; - void StartThreads(size_t num_threads) { for (size_t i = 0; i < num_threads; i++) { threads_.emplace_back(new Thread(this, i)); @@ -295,8 +296,6 @@ class Client { } } - BenchmarkService::Stub* stub_; - ClientConfig config_; std::mutex mu_; std::condition_variable cv_; bool done_; @@ -314,11 +313,66 @@ class Client { std::vector<grpc_time> next_time_; }; +template <class StubType, class RequestType> +class ClientImpl : public Client { + public: + ClientImpl(const ClientConfig& config, + std::function<std::unique_ptr<StubType>(std::shared_ptr<Channel>)> + create_stub) + : channels_(config.client_channels()), create_stub_(create_stub) { + for (int i = 0; i < config.client_channels(); i++) { + channels_[i].init(config.server_targets(i % config.server_targets_size()), + config, create_stub_); + } + + ClientRequestCreator<RequestType> create_req(&request_, + config.payload_config()); + } + virtual ~ClientImpl() {} + + protected: + RequestType request_; + + class ClientChannelInfo { + public: + ClientChannelInfo() {} + ClientChannelInfo(const ClientChannelInfo& i) { + // The copy constructor is to satisfy old compilers + // that need it for using std::vector . It is only ever + // used for empty entries + GPR_ASSERT(!i.channel_ && !i.stub_); + } + void init(const grpc::string& target, const ClientConfig& config, + std::function<std::unique_ptr<StubType>(std::shared_ptr<Channel>)> + create_stub) { + // We have to use a 2-phase init like this with a default + // constructor followed by an initializer function to make + // old compilers happy with using this in std::vector + channel_ = CreateTestChannel( + target, config.security_params().server_host_override(), + config.has_security_params(), + !config.security_params().use_test_ca()); + stub_ = create_stub(channel_); + } + Channel* get_channel() { return channel_.get(); } + StubType* get_stub() { return stub_.get(); } + + private: + std::shared_ptr<Channel> channel_; + std::unique_ptr<StubType> stub_; + }; + std::vector<ClientChannelInfo> channels_; + std::function<std::unique_ptr<StubType>(const std::shared_ptr<Channel>&)> + create_stub_; +}; + std::unique_ptr<Client> CreateSynchronousUnaryClient(const ClientConfig& args); std::unique_ptr<Client> CreateSynchronousStreamingClient( const ClientConfig& args); std::unique_ptr<Client> CreateAsyncUnaryClient(const ClientConfig& args); std::unique_ptr<Client> CreateAsyncStreamingClient(const ClientConfig& args); +std::unique_ptr<Client> CreateGenericAsyncStreamingClient( + const ClientConfig& args); } // namespace testing } // namespace grpc diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc index 9594179822..f270cd0987 100644 --- a/test/cpp/qps/client_async.cc +++ b/test/cpp/qps/client_async.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,21 +37,22 @@ #include <list> #include <memory> #include <mutex> +#include <sstream> #include <string> #include <thread> #include <vector> -#include <sstream> +#include <gflags/gflags.h> +#include <grpc++/client_context.h> +#include <grpc++/generic/generic_stub.h> #include <grpc/grpc.h> #include <grpc/support/histogram.h> #include <grpc/support/log.h> -#include <gflags/gflags.h> -#include <grpc++/client_context.h> -#include "test/cpp/qps/timer.h" #include "test/cpp/qps/client.h" +#include "test/cpp/qps/timer.h" #include "test/cpp/util/create_test_channel.h" -#include "test/proto/benchmarks/services.grpc.pb.h" +#include "src/proto/grpc/testing/services.grpc.pb.h" namespace grpc { namespace testing { @@ -147,13 +148,22 @@ class ClientRpcContextUnaryImpl : public ClientRpcContext { typedef std::forward_list<ClientRpcContext*> context_list; -class AsyncClient : public Client { +template <class StubType, class RequestType> +class AsyncClient : public ClientImpl<StubType, RequestType> { + // Specify which protected members we are using since there is no + // member name resolution until the template types are fully resolved public: - explicit AsyncClient( - const ClientConfig& config, - std::function<ClientRpcContext*(int, BenchmarkService::Stub*, - const SimpleRequest&)> setup_ctx) - : Client(config), + using Client::SetupLoadTest; + using Client::NextIssueTime; + using Client::closed_loop_; + using ClientImpl<StubType, RequestType>::channels_; + using ClientImpl<StubType, RequestType>::request_; + AsyncClient(const ClientConfig& config, + std::function<ClientRpcContext*(int, StubType*, + const RequestType&)> setup_ctx, + std::function<std::unique_ptr<StubType>(std::shared_ptr<Channel>)> + create_stub) + : ClientImpl<StubType, RequestType>(config, create_stub), channel_lock_(new std::mutex[config.client_channels()]), contexts_(config.client_channels()), max_outstanding_per_channel_(config.outstanding_rpcs_per_channel()), @@ -343,10 +353,16 @@ class AsyncClient : public Client { int pref_channel_inc_; }; -class AsyncUnaryClient GRPC_FINAL : public AsyncClient { +static std::unique_ptr<BenchmarkService::Stub> BenchmarkStubCreator( + std::shared_ptr<Channel> ch) { + return BenchmarkService::NewStub(ch); +} + +class AsyncUnaryClient GRPC_FINAL + : public AsyncClient<BenchmarkService::Stub, SimpleRequest> { public: explicit AsyncUnaryClient(const ClientConfig& config) - : AsyncClient(config, SetupCtx) { + : AsyncClient(config, SetupCtx, BenchmarkStubCreator) { StartThreads(config.async_client_threads()); } ~AsyncUnaryClient() GRPC_OVERRIDE { EndThreads(); } @@ -437,10 +453,11 @@ class ClientRpcContextStreamingImpl : public ClientRpcContext { stream_; }; -class AsyncStreamingClient GRPC_FINAL : public AsyncClient { +class AsyncStreamingClient GRPC_FINAL + : public AsyncClient<BenchmarkService::Stub, SimpleRequest> { public: explicit AsyncStreamingClient(const ClientConfig& config) - : AsyncClient(config, SetupCtx) { + : AsyncClient(config, SetupCtx, BenchmarkStubCreator) { // async streaming currently only supports closed loop GPR_ASSERT(closed_loop_); @@ -467,12 +484,119 @@ class AsyncStreamingClient GRPC_FINAL : public AsyncClient { } }; +class ClientRpcContextGenericStreamingImpl : public ClientRpcContext { + public: + ClientRpcContextGenericStreamingImpl( + int channel_id, grpc::GenericStub* stub, const ByteBuffer& req, + std::function<std::unique_ptr<grpc::GenericClientAsyncReaderWriter>( + grpc::GenericStub*, grpc::ClientContext*, + const grpc::string& method_name, CompletionQueue*, void*)> start_req, + std::function<void(grpc::Status, ByteBuffer*)> on_done) + : ClientRpcContext(channel_id), + context_(), + stub_(stub), + req_(req), + response_(), + next_state_(&ClientRpcContextGenericStreamingImpl::ReqSent), + callback_(on_done), + start_req_(start_req), + start_(Timer::Now()) {} + ~ClientRpcContextGenericStreamingImpl() GRPC_OVERRIDE {} + bool RunNextState(bool ok, Histogram* hist) GRPC_OVERRIDE { + return (this->*next_state_)(ok, hist); + } + ClientRpcContext* StartNewClone() GRPC_OVERRIDE { + return new ClientRpcContextGenericStreamingImpl(channel_id_, stub_, req_, + start_req_, callback_); + } + void Start(CompletionQueue* cq) GRPC_OVERRIDE { + const grpc::string kMethodName( + "/grpc.testing.BenchmarkService/StreamingCall"); + stream_ = start_req_(stub_, &context_, kMethodName, cq, + ClientRpcContext::tag(this)); + } + + private: + bool ReqSent(bool ok, Histogram*) { return StartWrite(ok); } + bool StartWrite(bool ok) { + if (!ok) { + return (false); + } + start_ = Timer::Now(); + next_state_ = &ClientRpcContextGenericStreamingImpl::WriteDone; + stream_->Write(req_, ClientRpcContext::tag(this)); + return true; + } + bool WriteDone(bool ok, Histogram*) { + if (!ok) { + return (false); + } + next_state_ = &ClientRpcContextGenericStreamingImpl::ReadDone; + stream_->Read(&response_, ClientRpcContext::tag(this)); + return true; + } + bool ReadDone(bool ok, Histogram* hist) { + hist->Add((Timer::Now() - start_) * 1e9); + return StartWrite(ok); + } + grpc::ClientContext context_; + grpc::GenericStub* stub_; + ByteBuffer req_; + ByteBuffer response_; + bool (ClientRpcContextGenericStreamingImpl::*next_state_)(bool, Histogram*); + std::function<void(grpc::Status, ByteBuffer*)> callback_; + std::function<std::unique_ptr<grpc::GenericClientAsyncReaderWriter>( + grpc::GenericStub*, grpc::ClientContext*, const grpc::string&, + CompletionQueue*, void*)> start_req_; + grpc::Status status_; + double start_; + std::unique_ptr<grpc::GenericClientAsyncReaderWriter> stream_; +}; + +static std::unique_ptr<grpc::GenericStub> GenericStubCreator( + std::shared_ptr<Channel> ch) { + return std::unique_ptr<grpc::GenericStub>(new grpc::GenericStub(ch)); +} + +class GenericAsyncStreamingClient GRPC_FINAL + : public AsyncClient<grpc::GenericStub, ByteBuffer> { + public: + explicit GenericAsyncStreamingClient(const ClientConfig& config) + : AsyncClient(config, SetupCtx, GenericStubCreator) { + // async streaming currently only supports closed loop + GPR_ASSERT(closed_loop_); + + StartThreads(config.async_client_threads()); + } + + ~GenericAsyncStreamingClient() GRPC_OVERRIDE { EndThreads(); } + + private: + static void CheckDone(grpc::Status s, ByteBuffer* response) {} + static std::unique_ptr<grpc::GenericClientAsyncReaderWriter> StartReq( + grpc::GenericStub* stub, grpc::ClientContext* ctx, + const grpc::string& method_name, CompletionQueue* cq, void* tag) { + auto stream = stub->Call(ctx, method_name, cq, tag); + return stream; + }; + static ClientRpcContext* SetupCtx(int channel_id, grpc::GenericStub* stub, + const ByteBuffer& req) { + return new ClientRpcContextGenericStreamingImpl( + channel_id, stub, req, GenericAsyncStreamingClient::StartReq, + GenericAsyncStreamingClient::CheckDone); + } +}; + std::unique_ptr<Client> CreateAsyncUnaryClient(const ClientConfig& args) { return std::unique_ptr<Client>(new AsyncUnaryClient(args)); } std::unique_ptr<Client> CreateAsyncStreamingClient(const ClientConfig& args) { return std::unique_ptr<Client>(new AsyncStreamingClient(args)); } +std::unique_ptr<Client> CreateGenericAsyncStreamingClient( + const ClientConfig& args) { + return std::unique_ptr<Client>(new GenericAsyncStreamingClient(args)); +} } // namespace testing } // namespace grpc diff --git a/test/cpp/qps/client_sync.cc b/test/cpp/qps/client_sync.cc index 10d680860a..92fbf240ce 100644 --- a/test/cpp/qps/client_sync.cc +++ b/test/cpp/qps/client_sync.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,38 +35,44 @@ #include <chrono> #include <memory> #include <mutex> +#include <sstream> #include <string> #include <thread> #include <vector> -#include <sstream> #include <gflags/gflags.h> +#include <grpc++/client_context.h> +#include <grpc++/server.h> +#include <grpc++/server_builder.h> #include <grpc/grpc.h> #include <grpc/support/alloc.h> #include <grpc/support/histogram.h> #include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc++/client_context.h> -#include <grpc++/server.h> -#include <grpc++/server_builder.h> #include <gtest/gtest.h> -#include "test/cpp/util/create_test_channel.h" +#include "src/core/profiling/timers.h" +#include "src/proto/grpc/testing/services.grpc.pb.h" #include "test/cpp/qps/client.h" #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/interarrival.h" #include "test/cpp/qps/timer.h" -#include "test/proto/benchmarks/services.grpc.pb.h" - -#include "src/core/profiling/timers.h" namespace grpc { namespace testing { -class SynchronousClient : public Client { +static std::unique_ptr<BenchmarkService::Stub> BenchmarkStubCreator( + std::shared_ptr<Channel> ch) { + return BenchmarkService::NewStub(ch); +} + +class SynchronousClient + : public ClientImpl<BenchmarkService::Stub, SimpleRequest> { public: - SynchronousClient(const ClientConfig& config) : Client(config) { + SynchronousClient(const ClientConfig& config) + : ClientImpl<BenchmarkService::Stub, SimpleRequest>( + config, BenchmarkStubCreator) { num_threads_ = config.outstanding_rpcs_per_channel() * config.client_channels(); responses_.resize(num_threads_); diff --git a/test/cpp/qps/driver.cc b/test/cpp/qps/driver.cc index 20dc65046b..acb265b308 100644 --- a/test/cpp/qps/driver.cc +++ b/test/cpp/qps/driver.cc @@ -48,7 +48,7 @@ #include "test/cpp/qps/driver.h" #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/qps_worker.h" -#include "test/proto/benchmarks/services.grpc.pb.h" +#include "src/proto/grpc/testing/services.grpc.pb.h" using std::list; using std::thread; diff --git a/test/cpp/qps/driver.h b/test/cpp/qps/driver.h index 50bf17ceab..2a7cf805e5 100644 --- a/test/cpp/qps/driver.h +++ b/test/cpp/qps/driver.h @@ -37,7 +37,7 @@ #include <memory> #include "test/cpp/qps/histogram.h" -#include "test/proto/benchmarks/control.grpc.pb.h" +#include "src/proto/grpc/testing/control.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/generic_async_streaming_ping_pong_test.cc b/test/cpp/qps/generic_async_streaming_ping_pong_test.cc new file mode 100644 index 0000000000..2b2e1c820f --- /dev/null +++ b/test/cpp/qps/generic_async_streaming_ping_pong_test.cc @@ -0,0 +1,82 @@ +/* + * + * Copyright 2015-2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include <set> + +#include <grpc/support/log.h> + +#include "test/cpp/qps/driver.h" +#include "test/cpp/qps/report.h" +#include "test/cpp/util/benchmark_config.h" + +namespace grpc { +namespace testing { + +static const int WARMUP = 5; +static const int BENCHMARK = 10; + +static void RunGenericAsyncStreamingPingPong() { + gpr_log(GPR_INFO, "Running Generic Async Streaming Ping Pong"); + + ClientConfig client_config; + client_config.set_client_type(ASYNC_CLIENT); + client_config.set_outstanding_rpcs_per_channel(1); + client_config.set_client_channels(1); + client_config.set_async_client_threads(1); + client_config.set_rpc_type(STREAMING); + client_config.mutable_load_params()->mutable_closed_loop(); + auto bbuf = client_config.mutable_payload_config()->mutable_bytebuf_params(); + bbuf->set_resp_size(0); + bbuf->set_req_size(0); + + ServerConfig server_config; + server_config.set_server_type(ASYNC_SERVER); + server_config.set_host("localhost"); + server_config.set_async_server_threads(1); + + const auto result = + RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); + + GetReporter()->ReportQPS(*result); + GetReporter()->ReportLatency(*result); +} + +} // namespace testing +} // namespace grpc + +int main(int argc, char** argv) { + grpc::testing::InitBenchmark(&argc, &argv, true); + + grpc::testing::RunGenericAsyncStreamingPingPong(); + return 0; +} diff --git a/test/cpp/qps/histogram.h b/test/cpp/qps/histogram.h index 4161eac826..acb415f0a1 100644 --- a/test/cpp/qps/histogram.h +++ b/test/cpp/qps/histogram.h @@ -35,7 +35,7 @@ #define TEST_QPS_HISTOGRAM_H #include <grpc/support/histogram.h> -#include "test/proto/benchmarks/stats.grpc.pb.h" +#include "src/proto/grpc/testing/stats.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/perf_db_client.h b/test/cpp/qps/perf_db_client.h index 72ebe79c3c..ece020aa9b 100644 --- a/test/cpp/qps/perf_db_client.h +++ b/test/cpp/qps/perf_db_client.h @@ -42,7 +42,7 @@ #include <grpc++/client_context.h> #include <grpc++/create_channel.h> #include <grpc++/security/credentials.h> -#include "test/cpp/qps/perf_db.grpc.pb.h" +#include "src/proto/grpc/testing/perf_db.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc index c7096391e6..9816a09592 100644 --- a/test/cpp/qps/qps_driver.cc +++ b/test/cpp/qps/qps_driver.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -62,6 +62,8 @@ DEFINE_int32(client_channels, 1, "Number of client channels"); DEFINE_int32(simple_req_size, -1, "Simple proto request payload size"); DEFINE_int32(simple_resp_size, -1, "Simple proto response payload size"); +DEFINE_int32(bbuf_req_size, -1, "Byte-buffer request payload size"); +DEFINE_int32(bbuf_resp_size, -1, "Byte-buffer response payload size"); DEFINE_string(client_type, "SYNC_CLIENT", "Client type"); DEFINE_int32(async_client_threads, 1, "Async client threads"); @@ -109,6 +111,13 @@ static void QpsDriver() { if (FLAGS_simple_req_size >= 0) { params->set_req_size(FLAGS_simple_req_size); } + } else if (FLAGS_bbuf_resp_size >= 0) { + auto params = + client_config.mutable_payload_config()->mutable_bytebuf_params(); + params->set_resp_size(FLAGS_bbuf_resp_size); + if (FLAGS_bbuf_req_size >= 0) { + params->set_req_size(FLAGS_bbuf_req_size); + } } else { // set a reasonable default: proto but no payload client_config.mutable_payload_config()->mutable_simple_params(); @@ -156,6 +165,13 @@ static void QpsDriver() { server_config.mutable_security_params()->CopyFrom(security); } + // Make sure that if we are performing a generic (bytebuf) test + // that we are also using async streaming + GPR_ASSERT(!client_config.payload_config().has_bytebuf_params() || + (client_config.client_type() == ASYNC_CLIENT && + client_config.rpc_type() == STREAMING && + server_config.server_type() == ASYNC_SERVER)); + const auto result = RunScenario( client_config, FLAGS_num_clients, server_config, FLAGS_num_servers, FLAGS_warmup_seconds, FLAGS_benchmark_seconds, FLAGS_local_workers); diff --git a/test/cpp/qps/qps_worker.cc b/test/cpp/qps/qps_worker.cc index dc59eab7ef..c0276d05b3 100644 --- a/test/cpp/qps/qps_worker.cc +++ b/test/cpp/qps/qps_worker.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -36,26 +36,26 @@ #include <cassert> #include <memory> #include <mutex> +#include <sstream> #include <string> #include <thread> #include <vector> -#include <sstream> +#include <grpc++/client_context.h> +#include <grpc++/security/server_credentials.h> +#include <grpc++/server.h> +#include <grpc++/server_builder.h> #include <grpc/grpc.h> #include <grpc/support/alloc.h> #include <grpc/support/histogram.h> -#include <grpc/support/log.h> #include <grpc/support/host_port.h> -#include <grpc++/client_context.h> -#include <grpc++/server.h> -#include <grpc++/server_builder.h> -#include <grpc++/security/server_credentials.h> +#include <grpc/support/log.h> +#include "src/proto/grpc/testing/services.pb.h" #include "test/core/util/grpc_profiler.h" #include "test/cpp/qps/client.h" #include "test/cpp/qps/server.h" #include "test/cpp/util/create_test_channel.h" -#include "test/proto/benchmarks/services.pb.h" namespace grpc { namespace testing { @@ -69,7 +69,9 @@ static std::unique_ptr<Client> CreateClient(const ClientConfig& config) { case ClientType::ASYNC_CLIENT: return (config.rpc_type() == RpcType::UNARY) ? CreateAsyncUnaryClient(config) - : CreateAsyncStreamingClient(config); + : (config.payload_config().has_bytebuf_params() + ? CreateGenericAsyncStreamingClient(config) + : CreateAsyncStreamingClient(config)); default: abort(); } @@ -95,7 +97,8 @@ static std::unique_ptr<Server> CreateServer(const ServerConfig& config) { class WorkerServiceImpl GRPC_FINAL : public WorkerService::Service { public: - explicit WorkerServiceImpl() : acquired_(false) {} + explicit WorkerServiceImpl(int server_port) + : acquired_(false), server_port_(server_port) {} Status RunClient(ServerContext* ctx, ServerReaderWriter<ClientStatus, ClientArgs>* stream) @@ -194,6 +197,9 @@ class WorkerServiceImpl GRPC_FINAL : public WorkerService::Service { if (!args.has_setup()) { return Status(StatusCode::INVALID_ARGUMENT, ""); } + if (server_port_ != 0) { + args.mutable_setup()->set_port(server_port_); + } auto server = CreateServer(args.setup()); if (!server) { return Status(StatusCode::INVALID_ARGUMENT, ""); @@ -217,10 +223,11 @@ class WorkerServiceImpl GRPC_FINAL : public WorkerService::Service { std::mutex mu_; bool acquired_; + int server_port_; }; -QpsWorker::QpsWorker(int driver_port) { - impl_.reset(new WorkerServiceImpl()); +QpsWorker::QpsWorker(int driver_port, int server_port) { + impl_.reset(new WorkerServiceImpl(server_port)); char* server_address = NULL; gpr_join_host_port(&server_address, "::", driver_port); diff --git a/test/cpp/qps/qps_worker.h b/test/cpp/qps/qps_worker.h index 0db88ad3d1..27de69fa65 100644 --- a/test/cpp/qps/qps_worker.h +++ b/test/cpp/qps/qps_worker.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -46,7 +46,7 @@ class WorkerServiceImpl; class QpsWorker { public: - explicit QpsWorker(int driver_port); + explicit QpsWorker(int driver_port, int server_port = 0); ~QpsWorker(); private: diff --git a/test/cpp/qps/server.h b/test/cpp/qps/server.h index 6e81edc8ff..32a3e85026 100644 --- a/test/cpp/qps/server.h +++ b/test/cpp/qps/server.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,8 +40,8 @@ #include "test/core/end2end/data/ssl_test_data.h" #include "test/core/util/port.h" #include "test/cpp/qps/timer.h" -#include "test/proto/messages.grpc.pb.h" -#include "test/proto/benchmarks/control.grpc.pb.h" +#include "src/proto/grpc/testing/messages.grpc.pb.h" +#include "src/proto/grpc/testing/control.grpc.pb.h" namespace grpc { namespace testing { @@ -75,12 +75,11 @@ class Server { } static bool SetPayload(PayloadType type, int size, Payload* payload) { - PayloadType response_type = type; // TODO(yangg): Support UNCOMPRESSABLE payload. if (type != PayloadType::COMPRESSABLE) { return false; } - payload->set_type(response_type); + payload->set_type(type); std::unique_ptr<char[]> body(new char[size]()); payload->set_body(body.get(), size); return true; diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc index c151918ce4..d530dac86b 100644 --- a/test/cpp/qps/server_async.cc +++ b/test/cpp/qps/server_async.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,26 +38,42 @@ #include <thread> #include <gflags/gflags.h> +#include <grpc++/generic/async_generic_service.h> +#include <grpc++/security/server_credentials.h> +#include <grpc++/server.h> +#include <grpc++/server_builder.h> +#include <grpc++/server_context.h> +#include <grpc++/support/config.h> #include <grpc/grpc.h> #include <grpc/support/alloc.h> #include <grpc/support/host_port.h> #include <grpc/support/log.h> -#include <grpc++/support/config.h> -#include <grpc++/server.h> -#include <grpc++/server_builder.h> -#include <grpc++/server_context.h> -#include <grpc++/security/server_credentials.h> #include <gtest/gtest.h> #include "test/cpp/qps/server.h" -#include "test/proto/benchmarks/services.grpc.pb.h" +#include "src/proto/grpc/testing/services.grpc.pb.h" namespace grpc { namespace testing { +template <class RequestType, class ResponseType, class ServiceType, + class ServerContextType> class AsyncQpsServerTest : public Server { public: - explicit AsyncQpsServerTest(const ServerConfig &config) : Server(config) { + AsyncQpsServerTest( + const ServerConfig &config, + std::function<void(ServerBuilder *, ServiceType *)> register_service, + std::function<void(ServiceType *, ServerContextType *, RequestType *, + ServerAsyncResponseWriter<ResponseType> *, + CompletionQueue *, ServerCompletionQueue *, void *)> + request_unary_function, + std::function<void(ServiceType *, ServerContextType *, + ServerAsyncReaderWriter<ResponseType, RequestType> *, + CompletionQueue *, ServerCompletionQueue *, void *)> + request_streaming_function, + std::function<grpc::Status(const PayloadConfig &, const RequestType *, + ResponseType *)> process_rpc) + : Server(config) { char *server_address = NULL; gpr_join_host_port(&server_address, config.host().c_str(), port()); @@ -67,7 +83,8 @@ class AsyncQpsServerTest : public Server { Server::CreateServerCredentials(config)); gpr_free(server_address); - builder.RegisterAsyncService(&async_service_); + register_service(&builder, &async_service_); + for (int i = 0; i < config.async_server_threads(); i++) { srv_cqs_.emplace_back(builder.AddCompletionQueue()); } @@ -75,22 +92,29 @@ class AsyncQpsServerTest : public Server { server_ = builder.BuildAndStart(); using namespace std::placeholders; + + auto process_rpc_bound = + std::bind(process_rpc, config.payload_config(), _1, _2); + for (int i = 0; i < 10000 / config.async_server_threads(); i++) { for (int j = 0; j < config.async_server_threads(); j++) { - auto request_unary = std::bind( - &BenchmarkService::AsyncService::RequestUnaryCall, &async_service_, - _1, _2, _3, srv_cqs_[j].get(), srv_cqs_[j].get(), _4); - auto request_streaming = std::bind( - &BenchmarkService::AsyncService::RequestStreamingCall, - &async_service_, _1, _2, srv_cqs_[j].get(), srv_cqs_[j].get(), _3); - contexts_.push_front( - new ServerRpcContextUnaryImpl<SimpleRequest, SimpleResponse>( - request_unary, ProcessRPC)); - contexts_.push_front( - new ServerRpcContextStreamingImpl<SimpleRequest, SimpleResponse>( - request_streaming, ProcessRPC)); + if (request_unary_function) { + auto request_unary = + std::bind(request_unary_function, &async_service_, _1, _2, _3, + srv_cqs_[j].get(), srv_cqs_[j].get(), _4); + contexts_.push_front( + new ServerRpcContextUnaryImpl(request_unary, process_rpc_bound)); + } + if (request_streaming_function) { + auto request_streaming = + std::bind(request_streaming_function, &async_service_, _1, _2, + srv_cqs_[j].get(), srv_cqs_[j].get(), _3); + contexts_.push_front(new ServerRpcContextStreamingImpl( + request_streaming, process_rpc_bound)); + } } } + for (int i = 0; i < config.async_server_threads(); i++) { shutdown_state_.emplace_back(new PerThreadShutdownState()); } @@ -155,16 +179,15 @@ class AsyncQpsServerTest : public Server { return reinterpret_cast<ServerRpcContext *>(tag); } - template <class RequestType, class ResponseType> class ServerRpcContextUnaryImpl GRPC_FINAL : public ServerRpcContext { public: ServerRpcContextUnaryImpl( - std::function<void(ServerContext *, RequestType *, + std::function<void(ServerContextType *, RequestType *, grpc::ServerAsyncResponseWriter<ResponseType> *, void *)> request_method, std::function<grpc::Status(const RequestType *, ResponseType *)> invoke_method) - : srv_ctx_(new ServerContext), + : srv_ctx_(new ServerContextType), next_state_(&ServerRpcContextUnaryImpl::invoker), request_method_(request_method), invoke_method_(invoke_method), @@ -177,7 +200,7 @@ class AsyncQpsServerTest : public Server { return (this->*next_state_)(ok); } void Reset() GRPC_OVERRIDE { - srv_ctx_.reset(new ServerContext); + srv_ctx_.reset(new ServerContextType); req_ = RequestType(); response_writer_ = grpc::ServerAsyncResponseWriter<ResponseType>(srv_ctx_.get()); @@ -205,10 +228,10 @@ class AsyncQpsServerTest : public Server { response_writer_.Finish(response, status, AsyncQpsServerTest::tag(this)); return true; } - std::unique_ptr<ServerContext> srv_ctx_; + std::unique_ptr<ServerContextType> srv_ctx_; RequestType req_; bool (ServerRpcContextUnaryImpl::*next_state_)(bool); - std::function<void(ServerContext *, RequestType *, + std::function<void(ServerContextType *, RequestType *, grpc::ServerAsyncResponseWriter<ResponseType> *, void *)> request_method_; std::function<grpc::Status(const RequestType *, ResponseType *)> @@ -216,16 +239,16 @@ class AsyncQpsServerTest : public Server { grpc::ServerAsyncResponseWriter<ResponseType> response_writer_; }; - template <class RequestType, class ResponseType> class ServerRpcContextStreamingImpl GRPC_FINAL : public ServerRpcContext { public: ServerRpcContextStreamingImpl( - std::function<void(ServerContext *, grpc::ServerAsyncReaderWriter< - ResponseType, RequestType> *, - void *)> request_method, + std::function<void( + ServerContextType *, + grpc::ServerAsyncReaderWriter<ResponseType, RequestType> *, void *)> + request_method, std::function<grpc::Status(const RequestType *, ResponseType *)> invoke_method) - : srv_ctx_(new ServerContext), + : srv_ctx_(new ServerContextType), next_state_(&ServerRpcContextStreamingImpl::request_done), request_method_(request_method), invoke_method_(invoke_method), @@ -237,7 +260,7 @@ class AsyncQpsServerTest : public Server { return (this->*next_state_)(ok); } void Reset() GRPC_OVERRIDE { - srv_ctx_.reset(new ServerContext); + srv_ctx_.reset(new ServerContextType); req_ = RequestType(); stream_ = grpc::ServerAsyncReaderWriter<ResponseType, RequestType>( srv_ctx_.get()); @@ -286,11 +309,11 @@ class AsyncQpsServerTest : public Server { } bool finish_done(bool ok) { return false; /* reset the context */ } - std::unique_ptr<ServerContext> srv_ctx_; + std::unique_ptr<ServerContextType> srv_ctx_; RequestType req_; bool (ServerRpcContextStreamingImpl::*next_state_)(bool); std::function<void( - ServerContext *, + ServerContextType *, grpc::ServerAsyncReaderWriter<ResponseType, RequestType> *, void *)> request_method_; std::function<grpc::Status(const RequestType *, ResponseType *)> @@ -298,20 +321,10 @@ class AsyncQpsServerTest : public Server { grpc::ServerAsyncReaderWriter<ResponseType, RequestType> stream_; }; - static Status ProcessRPC(const SimpleRequest *request, - SimpleResponse *response) { - if (request->response_size() > 0) { - if (!SetPayload(request->response_type(), request->response_size(), - response->mutable_payload())) { - return Status(grpc::StatusCode::INTERNAL, "Error creating payload."); - } - } - return Status::OK; - } std::vector<std::thread> threads_; std::unique_ptr<grpc::Server> server_; std::vector<std::unique_ptr<grpc::ServerCompletionQueue>> srv_cqs_; - BenchmarkService::AsyncService async_service_; + ServiceType async_service_; std::forward_list<ServerRpcContext *> contexts_; class PerThreadShutdownState { @@ -335,8 +348,52 @@ class AsyncQpsServerTest : public Server { std::vector<std::unique_ptr<PerThreadShutdownState>> shutdown_state_; }; +static void RegisterBenchmarkService(ServerBuilder *builder, + BenchmarkService::AsyncService *service) { + builder->RegisterAsyncService(service); +} +static void RegisterGenericService(ServerBuilder *builder, + grpc::AsyncGenericService *service) { + builder->RegisterAsyncGenericService(service); +} + +static Status ProcessSimpleRPC(const PayloadConfig &, + const SimpleRequest *request, + SimpleResponse *response) { + if (request->response_size() > 0) { + if (!Server::SetPayload(request->response_type(), request->response_size(), + response->mutable_payload())) { + return Status(grpc::StatusCode::INTERNAL, "Error creating payload."); + } + } + return Status::OK; +} + +static Status ProcessGenericRPC(const PayloadConfig &payload_config, + const ByteBuffer *request, + ByteBuffer *response) { + int resp_size = payload_config.bytebuf_params().resp_size(); + std::unique_ptr<char> buf(new char[resp_size]); + gpr_slice s = gpr_slice_from_copied_buffer(buf.get(), resp_size); + Slice slice(s, Slice::STEAL_REF); + *response = ByteBuffer(&slice, 1); + return Status::OK; +} + std::unique_ptr<Server> CreateAsyncServer(const ServerConfig &config) { - return std::unique_ptr<Server>(new AsyncQpsServerTest(config)); + return std::unique_ptr<Server>(new AsyncQpsServerTest< + SimpleRequest, SimpleResponse, BenchmarkService::AsyncService, + grpc::ServerContext>( + config, RegisterBenchmarkService, + &BenchmarkService::AsyncService::RequestUnaryCall, + &BenchmarkService::AsyncService::RequestStreamingCall, ProcessSimpleRPC)); +} +std::unique_ptr<Server> CreateAsyncGenericServer(const ServerConfig &config) { + return std::unique_ptr<Server>( + new AsyncQpsServerTest<ByteBuffer, ByteBuffer, grpc::AsyncGenericService, + grpc::GenericServerContext>( + config, RegisterGenericService, nullptr, + &grpc::AsyncGenericService::RequestCall, ProcessGenericRPC)); } } // namespace testing diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc index 3a15bec888..97a1ff5255 100644 --- a/test/cpp/qps/server_sync.cc +++ b/test/cpp/qps/server_sync.cc @@ -45,7 +45,7 @@ #include "test/cpp/qps/server.h" #include "test/cpp/qps/timer.h" -#include "test/proto/benchmarks/services.grpc.pb.h" +#include "src/proto/grpc/testing/services.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/worker.cc b/test/cpp/qps/worker.cc index 430ffb7cdc..a1e73e9abe 100644 --- a/test/cpp/qps/worker.cc +++ b/test/cpp/qps/worker.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -44,6 +44,7 @@ #include "test/cpp/util/test_config.h" DEFINE_int32(driver_port, 0, "Port for communication with driver"); +DEFINE_int32(server_port, 0, "Port for operation as a server"); static bool got_sigint = false; @@ -53,7 +54,7 @@ namespace grpc { namespace testing { static void RunServer() { - QpsWorker worker(FLAGS_driver_port); + QpsWorker worker(FLAGS_driver_port, FLAGS_server_port); while (!got_sigint) { gpr_sleep_until(gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), diff --git a/test/cpp/util/cli_call.cc b/test/cpp/util/cli_call.cc index 0de388d3ca..5e29e7a1d3 100644 --- a/test/cpp/util/cli_call.cc +++ b/test/cpp/util/cli_call.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,13 +35,13 @@ #include <iostream> -#include <grpc/grpc.h> -#include <grpc/support/log.h> -#include <grpc/support/slice.h> -#include <grpc++/support/byte_buffer.h> #include <grpc++/channel.h> #include <grpc++/client_context.h> #include <grpc++/generic/generic_stub.h> +#include <grpc++/support/byte_buffer.h> +#include <grpc/grpc.h> +#include <grpc/support/log.h> +#include <grpc/support/slice.h> namespace grpc { namespace testing { diff --git a/test/cpp/util/cli_call_test.cc b/test/cpp/util/cli_call_test.cc index 32cd8e4103..5fdf519320 100644 --- a/test/cpp/util/cli_call_test.cc +++ b/test/cpp/util/cli_call_test.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -44,16 +44,16 @@ #include "test/core/util/port.h" #include "test/core/util/test_config.h" -#include "test/cpp/util/echo.grpc.pb.h" +#include "src/proto/grpc/testing/echo.grpc.pb.h" #include "test/cpp/util/string_ref_helper.h" -using grpc::cpp::test::util::EchoRequest; -using grpc::cpp::test::util::EchoResponse; +using grpc::testing::EchoRequest; +using grpc::testing::EchoResponse; namespace grpc { namespace testing { -class TestServiceImpl : public ::grpc::cpp::test::util::TestService::Service { +class TestServiceImpl : public ::grpc::testing::EchoTestService::Service { public: Status Echo(ServerContext* context, const EchoRequest* request, EchoResponse* response) GRPC_OVERRIDE { @@ -91,11 +91,11 @@ class CliCallTest : public ::testing::Test { void ResetStub() { channel_ = CreateChannel(server_address_.str(), InsecureChannelCredentials()); - stub_ = grpc::cpp::test::util::TestService::NewStub(channel_); + stub_ = grpc::testing::EchoTestService::NewStub(channel_); } std::shared_ptr<Channel> channel_; - std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_; + std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_; std::unique_ptr<Server> server_; std::ostringstream server_address_; TestServiceImpl service_; @@ -115,7 +115,7 @@ TEST_F(CliCallTest, SimpleRpc) { EXPECT_EQ(response.message(), request.message()); EXPECT_TRUE(s.ok()); - const grpc::string kMethod("/grpc.cpp.test.util.TestService/Echo"); + const grpc::string kMethod("/grpc.testing.EchoTestService/Echo"); grpc::string request_bin, response_bin, expected_response_bin; EXPECT_TRUE(request.SerializeToString(&request_bin)); EXPECT_TRUE(response.SerializeToString(&expected_response_bin)); diff --git a/test/cpp/util/grpc_cli.cc b/test/cpp/util/grpc_cli.cc index 3f40b242fc..f9b9f0c40a 100644 --- a/test/cpp/util/grpc_cli.cc +++ b/test/cpp/util/grpc_cli.cc @@ -41,8 +41,9 @@ body: "hello world" } b. under grpc/ run - protoc --proto_path=test/proto/ \ - --encode=grpc.testing.SimpleRequest test/proto/messages.proto \ + protoc --proto_path=src/proto/grpc/testing/ \ + --encode=grpc.testing.SimpleRequest + src/proto/grpc/testing/messages.proto \ < input.txt > input.bin 2. Start a server make interop_server && bins/opt/interop_server --port=50051 @@ -51,8 +52,8 @@ /grpc.testing.TestService/UnaryCall --enable_ssl=false \ --input_binary_file=input.bin --output_binary_file=output.bin 4. Decode response - protoc --proto_path=test/proto/ \ - --decode=grpc.testing.SimpleResponse test/proto/messages.proto \ + protoc --proto_path=src/proto/grpc/testing/ \ + --decode=grpc.testing.SimpleResponse src/proto/grpc/testing/messages.proto \ < output.bin > output.txt 5. Now the text form of response should be in output.txt Optionally, metadata can be passed to server via flag --metadata, e.g. diff --git a/test/cpp/util/metrics_server.cc b/test/cpp/util/metrics_server.cc index 426295f9b4..40028d3957 100644 --- a/test/cpp/util/metrics_server.cc +++ b/test/cpp/util/metrics_server.cc @@ -35,8 +35,8 @@ #include <grpc++/server_builder.h> -#include "test/proto/metrics.grpc.pb.h" -#include "test/proto/metrics.pb.h" +#include "src/proto/grpc/testing/metrics.grpc.pb.h" +#include "src/proto/grpc/testing/metrics.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/util/metrics_server.h b/test/cpp/util/metrics_server.h index edde37dc4c..ce05e0be64 100644 --- a/test/cpp/util/metrics_server.h +++ b/test/cpp/util/metrics_server.h @@ -36,11 +36,12 @@ #include <map> #include <mutex> -#include "test/proto/metrics.grpc.pb.h" -#include "test/proto/metrics.pb.h" +#include "src/proto/grpc/testing/metrics.grpc.pb.h" +#include "src/proto/grpc/testing/metrics.pb.h" /* - * This implements a Metrics server defined in test/proto/metrics.proto. Any + * This implements a Metrics server defined in + * src/proto/grpc/testing/metrics.proto. Any * test service can use this to export Metrics (TODO (sreek): Only Gauges for * now). * diff --git a/test/cpp/util/subprocess.cc b/test/cpp/util/subprocess.cc index d758f629ac..33f3820a2b 100644 --- a/test/cpp/util/subprocess.cc +++ b/test/cpp/util/subprocess.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -56,4 +56,4 @@ int SubProcess::Join() { return gpr_subprocess_join(subprocess_); } void SubProcess::Interrupt() { gpr_subprocess_interrupt(subprocess_); } -} // namespace grpc
\ No newline at end of file +} // namespace grpc diff --git a/tools/buildgen/build-cleaner.py b/tools/buildgen/build-cleaner.py index 8288a8998d..37fedec6ad 100755 --- a/tools/buildgen/build-cleaner.py +++ b/tools/buildgen/build-cleaner.py @@ -1,5 +1,5 @@ #!/usr/bin/env python2.7 -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -37,10 +37,11 @@ import yaml TEST = (os.environ.get('TEST', 'false') == 'true') -_TOP_LEVEL_KEYS = ['settings', 'filegroups', 'libs', 'targets', 'vspackages'] +_TOP_LEVEL_KEYS = ['settings', 'proto_deps', 'filegroups', 'libs', 'targets', 'vspackages'] _VERSION_KEYS = ['major', 'minor', 'micro', 'build'] _ELEM_KEYS = [ 'name', + 'cpu_cost', 'flaky', 'build', 'run', diff --git a/tools/buildgen/generate_build_additions.sh b/tools/buildgen/generate_build_additions.sh index f304af0ef6..a2cd8249ef 100644 --- a/tools/buildgen/generate_build_additions.sh +++ b/tools/buildgen/generate_build_additions.sh @@ -28,7 +28,7 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -gen_build_yaml_dirs="src/boringssl test/core/end2end test/core/bad_client test/core/bad_ssl" +gen_build_yaml_dirs="src/boringssl test/core/end2end test/core/bad_client test/core/bad_ssl src/proto" gen_build_files="" for gen_build_yaml in $gen_build_yaml_dirs do diff --git a/tools/buildgen/generate_projects.py b/tools/buildgen/generate_projects.py index 34437b9c8d..083a97874d 100755 --- a/tools/buildgen/generate_projects.py +++ b/tools/buildgen/generate_projects.py @@ -1,6 +1,6 @@ #!/usr/bin/env python2.7 -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -85,7 +85,7 @@ for template in templates: os.close(tf[0]) cmd.append(test[out]) cmd.append(root + '/' + f) - jobs.append(jobset.JobSpec(cmd, shortname=out)) + jobs.append(jobset.JobSpec(cmd, shortname=out, timeout_seconds=None)) jobset.run(jobs, maxjobs=multiprocessing.cpu_count()) diff --git a/tools/buildgen/plugins/transitive_dependencies.py b/tools/buildgen/plugins/transitive_dependencies.py index c2d3da3a3b..01e7f61ea9 100644 --- a/tools/buildgen/plugins/transitive_dependencies.py +++ b/tools/buildgen/plugins/transitive_dependencies.py @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -36,10 +36,13 @@ of the list of dependencies. """ def get_lib(libs, name): - return next(lib for lib in libs if lib['name']==name) + try: + return next(lib for lib in libs if lib['name']==name) + except StopIteration: + return None def transitive_deps(lib, libs): - if 'deps' in lib: + if lib is not None and 'deps' in lib: # Recursively call transitive_deps on each dependency, and take the union return set.union(set(lib['deps']), *[set(transitive_deps(get_lib(libs, dep), libs)) @@ -58,6 +61,10 @@ def mako_plugin(dictionary): node_modules = dictionary.get('node_modules') targets = dictionary.get('targets') - for target_list in (libs, node_modules, targets): + for target_list in (libs, targets, node_modules): for target in target_list: target['transitive_deps'] = transitive_deps(target, libs) + + python_dependencies = dictionary.get('python_dependencies') + python_dependencies['transitive_deps'] = ( + transitive_deps(python_dependencies, libs)) diff --git a/tools/distrib/check_copyright.py b/tools/distrib/check_copyright.py index f54e5fad80..0c0669083a 100755 --- a/tools/distrib/check_copyright.py +++ b/tools/distrib/check_copyright.py @@ -54,6 +54,9 @@ argp.add_argument('-a', '--ancient', default=0, action='store_const', const=1) +argp.add_argument('-f', '--fix', + default=False, + action='store_true'); args = argp.parse_args() # open the license text @@ -90,7 +93,7 @@ KNOWN_BAD = set([ ]) -RE_YEAR = r'Copyright (?:[0-9]+\-)?([0-9]+), Google Inc\.' +RE_YEAR = r'Copyright (?P<first_year>[0-9]+\-)?(?P<last_year>[0-9]+), Google Inc\.' RE_LICENSE = dict( (k, r'\n'.join( LICENSE_PREFIX[k] + @@ -101,8 +104,11 @@ RE_LICENSE = dict( def load(name): with open(name) as f: - return '\n'.join(line.rstrip() for line in f.read().splitlines()) + return f.read() +def save(name, text): + with open(name, 'w') as f: + f.write(text) assert(re.search(RE_LICENSE['LICENSE'], load('LICENSE'))) assert(re.search(RE_LICENSE['Makefile'], load('Makefile'))) @@ -117,6 +123,7 @@ def log(cond, why, filename): # scan files, validate the text +ok = True for filename in subprocess.check_output('git ls-tree -r --name-only -r HEAD', shell=True).splitlines(): if filename in KNOWN_BAD: continue @@ -130,17 +137,27 @@ for filename in subprocess.check_output('git ls-tree -r --name-only -r HEAD', log(args.skips, 'skip', filename) continue text = load(filename) - ok = True m = re.search(re_license, text) if m: + gdict = m.groupdict() last_modified = int(subprocess.check_output('git log -1 --format="%ad" --date=short -- ' + filename, shell=True)[0:4]) - latest_claimed = int(m.group(1)) + latest_claimed = int(gdict['last_year']) if last_modified > latest_claimed: print '%s modified %d but copyright only extends to %d' % (filename, last_modified, latest_claimed) ok = False + if args.fix: + span_start, span_end = m.span(2) + if not gdict['first_year']: + # prepend the old year to the current one. + text = '{}-{}{}'.format(text[:span_end], last_modified, text[span_end:]) + else: # already a year range + # simply update the last year + text = '{}{}{}'.format(text[:span_start], last_modified, text[span_end:]) + save(filename, text) + print 'Fixed!' + ok = True elif 'DO NOT EDIT' not in text and 'AssemblyInfo.cs' not in filename and filename != 'src/boringssl/err_data.c': log(1, 'copyright missing', filename) ok = False sys.exit(0 if ok else 1) - diff --git a/tools/distrib/check_trailing_newlines.sh b/tools/distrib/check_trailing_newlines.sh new file mode 100755 index 0000000000..0be21f0cff --- /dev/null +++ b/tools/distrib/check_trailing_newlines.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# 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. + +# change to root directory +cd $(dirname $0)/../.. + +function find_without_newline() { + find . -type f -not -path './third_party/*' -and \( \ + -name '*.c' \ + -or -name '*.cc' \ + -or -name '*.proto' \ + -or -name '*.rb' \ + -or -name '*.py' \ + -or -name '*.cs' \ + -or -name '*.sh' \) -print0 \ + | while IFS= read -r -d '' f; do + if [[ ! -z $f ]]; then + if [[ $(tail -c 1 "$f") != $NEWLINE ]]; then + echo "Error: file '$f' is missing a trailing newline character." + if $2; then # fix + sed -i -e '$a\' $f + echo 'Fixed!' + fi + fi + fi + done +} + +if [[ $# == 1 && $1 == '--fix' ]]; then + ERRORS=$(find_without_newline true) +else + ERRORS=$(find_without_newline false) +fi + +if [[ "$ERRORS" != '' ]]; then + echo "$ERRORS" + if ! $FIX; then + exit 1 + fi +fi diff --git a/tools/distrib/clang_format_code.sh b/tools/distrib/clang_format_code.sh index 612074acdf..6bfa278cae 100755 --- a/tools/distrib/clang_format_code.sh +++ b/tools/distrib/clang_format_code.sh @@ -38,4 +38,3 @@ docker build -t grpc_clang_format tools/dockerfile/grpc_clang_format # run clang-format against the checked out codebase docker run -e TEST=$TEST --rm=true -v ${HOST_GIT_ROOT:-`pwd`}:/local-code -t grpc_clang_format /clang_format_all_the_things.sh - diff --git a/tools/distrib/python/submit.py b/tools/distrib/python/submit.py index dffbefd5fe..9b012be672 100755 --- a/tools/distrib/python/submit.py +++ b/tools/distrib/python/submit.py @@ -1,5 +1,5 @@ #!/usr/bin/env python2.7 -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -55,11 +55,19 @@ parser.add_argument( help='Password to authenticate with the repository. Not needed if you have ' 'configured your .pypirc to include your password.' ) +parser.add_argument( + '--bdist', '-b', action='store_true', + help='Generate a binary distribution (wheel) for the current OS.' +) +parser.add_argument( + '--dist-args', type=str, + help='Additional arguments to pass to the *dist setup.py command.' +) args = parser.parse_args() # Move to the root directory of Python GRPC. pkgdir = os.path.join(os.path.dirname(os.path.abspath(__file__)), - '../../../src/python/grpcio') + '../../../') # Remove previous distributions; they somehow confuse twine. try: shutil.rmtree(os.path.join(pkgdir, 'dist/')) @@ -73,7 +81,12 @@ cmd = ['python', 'setup.py', 'build_ext', '--inplace'] subprocess.call(cmd, cwd=pkgdir, env=build_env) # Make the push. -cmd = ['python', 'setup.py', 'sdist'] +if args.bdist: + cmd = ['python', 'setup.py', 'bdist_wheel'] +else: + cmd = ['python', 'setup.py', 'sdist'] +if args.dist_args: + cmd += args.dist_args.split() subprocess.call(cmd, cwd=pkgdir) cmd = ['twine', 'upload', '-r', args.repository] diff --git a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh index ededc6e809..87445c71ce 100755 --- a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh +++ b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh @@ -65,4 +65,3 @@ else false fi fi - diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index aef5bec86b..2280fde425 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -1014,6 +1014,7 @@ src/core/surface/metadata_array.c \ src/core/surface/server.c \ src/core/surface/server_chttp2.c \ src/core/surface/server_create.c \ +src/core/surface/validate_metadata.c \ src/core/surface/version.c \ src/core/transport/byte_stream.c \ src/core/transport/chttp2/alpn.c \ diff --git a/tools/jenkins/build_and_run_docker.sh b/tools/jenkins/build_and_run_docker.sh new file mode 100755 index 0000000000..c48f58e0d0 --- /dev/null +++ b/tools/jenkins/build_and_run_docker.sh @@ -0,0 +1,79 @@ +#!/bin/bash +# 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. +# +# Builds docker image and runs a command under it. +# You should never need to call this script on your own. + +set -ex + +cd $(dirname $0)/../.. +git_root=$(pwd) +cd - + +# Create a local branch so the child Docker script won't complain +git branch -f jenkins-docker + +# Inputs +# DOCKERFILE_DIR - Directory in which Dockerfile file is located. +# DOCKER_RUN_SCRIPT - Script to run under docker (relative to grpc repo root) +# $@ - Extra args to pass to docker run + +# Use image name based on Dockerfile location checksum +DOCKER_IMAGE_NAME=$(basename $DOCKERFILE_DIR)_$(sha1sum $DOCKERFILE_DIR/Dockerfile | cut -f1 -d\ ) + +# Make sure docker image has been built. Should be instantaneous if so. +docker build -t $DOCKER_IMAGE_NAME $DOCKERFILE_DIR + +# Choose random name for docker container +CONTAINER_NAME="build_and_run_docker_$(uuidgen)" + +# Run command inside docker +docker run \ + "$@" \ + -e THIS_IS_REALLY_NEEDED='see https://github.com/docker/docker/issues/14203 for why docker is awful' \ + -v "$git_root:/var/local/jenkins/grpc:ro" \ + -w /var/local/git/grpc \ + --name=$CONTAINER_NAME \ + $DOCKER_IMAGE_NAME \ + bash -l "/var/local/jenkins/grpc/$DOCKER_RUN_SCRIPT" || FAILED="true" + +# Copy output artifacts +if [ "$OUTPUT_DIR" != "" ] +then + docker cp "$CONTAINER_NAME:/var/local/git/grpc/$OUTPUT_DIR" "$git_root" || FAILED="true" +fi + +# remove the container, possibly killing it first +docker rm -f $CONTAINER_NAME || true + +if [ "$FAILED" != "" ] +then + exit 1 +fi diff --git a/tools/jenkins/build_artifacts.sh b/tools/jenkins/build_artifacts.sh new file mode 100755 index 0000000000..d5912010e3 --- /dev/null +++ b/tools/jenkins/build_artifacts.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +# 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. +# +# This script is invoked by Jenkins and triggers build of artifacts. +# +# To prevent cygwin bash complaining about empty lines ending with \r +# we set the igncr option. The option doesn't exist on Linux, so we fallback +# to just 'set -ex' there. +# NOTE: No empty lines should appear in this file before igncr is set! +set -ex -o igncr || set -ex + +python tools/run_tests/build_artifacts.py $@ diff --git a/tools/jenkins/build_interop_stress_image.sh b/tools/jenkins/build_interop_stress_image.sh new file mode 100755 index 0000000000..395eaa32d9 --- /dev/null +++ b/tools/jenkins/build_interop_stress_image.sh @@ -0,0 +1,86 @@ +#!/bin/bash +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# This script is invoked by run_interop_tests.py to build the docker image +# for interop testing. You should never need to call this script on your own. + +set -x + +# Params: +# INTEROP_IMAGE - name of tag of the final interop image +# BASE_NAME - base name used to locate the base Dockerfile and build script +# TTY_FLAG - optional -t flag to make docker allocate tty +# BUILD_INTEROP_DOCKER_EXTRA_ARGS - optional args to be passed to the +# docker run command + +cd `dirname $0`/../.. +GRPC_ROOT=`pwd` +MOUNT_ARGS="-v $GRPC_ROOT:/var/local/jenkins/grpc:ro" + +mkdir -p /tmp/ccache + +# Mount service account dir if available. +# If service_directory does not contain the service account JSON file, +# some of the tests will fail. +if [ -e $HOME/service_account ] +then + MOUNT_ARGS+=" -v $HOME/service_account:/var/local/jenkins/service_account:ro" +fi + +# Use image name based on Dockerfile checksum +BASE_IMAGE=${BASE_NAME}_base:`sha1sum tools/jenkins/$BASE_NAME/Dockerfile | cut -f1 -d\ ` + +# Make sure base docker image has been built. Should be instantaneous if so. +docker build -t $BASE_IMAGE --force-rm=true tools/jenkins/$BASE_NAME || exit $? + +# Create a local branch so the child Docker script won't complain +git branch -f jenkins-docker + +CONTAINER_NAME="build_${BASE_NAME}_$(uuidgen)" + +# Prepare image for interop tests, commit it on success. +(docker run \ + -e CCACHE_DIR=/tmp/ccache \ + -e THIS_IS_REALLY_NEEDED='see https://github.com/docker/docker/issues/14203 for why docker is awful' \ + -i $TTY_FLAG \ + $MOUNT_ARGS \ + $BUILD_INTEROP_DOCKER_EXTRA_ARGS \ + -v /tmp/ccache:/tmp/ccache \ + --name=$CONTAINER_NAME \ + $BASE_IMAGE \ + bash -l /var/local/jenkins/grpc/tools/jenkins/$BASE_NAME/build_interop_stress.sh \ + && docker commit $CONTAINER_NAME $INTEROP_IMAGE \ + && echo "Successfully built image $INTEROP_IMAGE") +EXITCODE=$? + +# remove intermediate container, possibly killing it first +docker rm -f $CONTAINER_NAME + +exit $EXITCODE diff --git a/tools/jenkins/docker_run.sh b/tools/jenkins/docker_run.sh new file mode 100755 index 0000000000..1905926cdc --- /dev/null +++ b/tools/jenkins/docker_run.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# 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. +# +# This script is invoked by build_docker_* inside a docker +# container. You should never need to call this script on your own. + +set -e + +mkdir -p /var/local/git +git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc + +cd /var/local/git/grpc + +$RUN_COMMAND diff --git a/tools/jenkins/grpc_artifact_linux_x64/Dockerfile b/tools/jenkins/grpc_artifact_linux_x64/Dockerfile new file mode 100644 index 0000000000..de40247a73 --- /dev/null +++ b/tools/jenkins/grpc_artifact_linux_x64/Dockerfile @@ -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. + +# Docker file for building gRPC artifacts. + +FROM debian:jessie + +# Install Git and basic packages. +RUN apt-get update && apt-get install -y \ + autoconf \ + autotools-dev \ + build-essential \ + bzip2 \ + curl \ + gcc \ + gcc-multilib \ + git \ + golang \ + libc6 \ + libc6-dbg \ + libc6-dev \ + libgtest-dev \ + libtool \ + make \ + perl \ + strace \ + python-dev \ + python-setuptools \ + python-yaml \ + telnet \ + unzip \ + wget \ + zip && apt-get clean + +RUN mkdir /var/local/jenkins + +# Define the default command. +CMD ["bash"] diff --git a/tools/jenkins/grpc_artifact_linux_x86/Dockerfile b/tools/jenkins/grpc_artifact_linux_x86/Dockerfile new file mode 100644 index 0000000000..774b4523a1 --- /dev/null +++ b/tools/jenkins/grpc_artifact_linux_x86/Dockerfile @@ -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. + +# Docker file for building gRPC artifacts. + +FROM 32bit/debian:jessie + +# Install Git and basic packages. +RUN apt-get update && apt-get install -y \ + autoconf \ + autotools-dev \ + build-essential \ + bzip2 \ + curl \ + gcc \ + gcc-multilib \ + git \ + golang \ + libc6 \ + libc6-dbg \ + libc6-dev \ + libgtest-dev \ + libtool \ + make \ + perl \ + strace \ + python-dev \ + python-setuptools \ + python-yaml \ + telnet \ + unzip \ + wget \ + zip && apt-get clean + +RUN mkdir /var/local/jenkins + +# Define the default command. +CMD ["bash"] diff --git a/tools/jenkins/grpc_interop_csharp/build_interop.sh b/tools/jenkins/grpc_interop_csharp/build_interop.sh index 8fde687900..e87fe2f692 100755 --- a/tools/jenkins/grpc_interop_csharp/build_interop.sh +++ b/tools/jenkins/grpc_interop_csharp/build_interop.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -42,6 +42,6 @@ cd /var/local/git/grpc make install-certs # build C# interop client & server -make install_grpc_csharp_ext +make CONFIG=dbg grpc_csharp_ext (cd src/csharp && mono /var/local/NuGet.exe restore Grpc.sln) (cd src/csharp && xbuild Grpc.sln) diff --git a/tools/jenkins/grpc_interop_python/Dockerfile b/tools/jenkins/grpc_interop_python/Dockerfile index 6034cbf955..047604b1b7 100644 --- a/tools/jenkins/grpc_interop_python/Dockerfile +++ b/tools/jenkins/grpc_interop_python/Dockerfile @@ -48,6 +48,7 @@ RUN apt-get update && apt-get install -y \ libc6-dbg \ libc6-dev \ libgtest-dev \ + libssl-dev \ libtool \ make \ strace \ diff --git a/tools/jenkins/grpc_interop_python/build_interop.sh b/tools/jenkins/grpc_interop_python/build_interop.sh index 8f5bfd11e2..39c93677d8 100755 --- a/tools/jenkins/grpc_interop_python/build_interop.sh +++ b/tools/jenkins/grpc_interop_python/build_interop.sh @@ -43,5 +43,5 @@ make install-certs make # build Python interop client and server -CONFIG=opt ./tools/run_tests/build_python.sh 2.7 +CONFIG=opt ./tools/run_tests/build_python.sh diff --git a/tools/jenkins/grpc_interop_stress_cxx/Dockerfile b/tools/jenkins/grpc_interop_stress_cxx/Dockerfile new file mode 100644 index 0000000000..58a8c32e34 --- /dev/null +++ b/tools/jenkins/grpc_interop_stress_cxx/Dockerfile @@ -0,0 +1,75 @@ +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# A work-in-progress Dockerfile that allows running gRPC test suites +# inside a docker container. + +FROM debian:jessie + +# Install Git. +RUN apt-get update && apt-get install -y \ + autoconf \ + autotools-dev \ + build-essential \ + bzip2 \ + ccache \ + curl \ + gcc \ + gcc-multilib \ + git \ + gyp \ + libc6 \ + libc6-dbg \ + libc6-dev \ + libgtest-dev \ + libtool \ + make \ + strace \ + python-dev \ + python-setuptools \ + python-yaml \ + telnet \ + unzip \ + wget \ + zip && apt-get clean + +# Prepare ccache +RUN ln -s /usr/bin/ccache /usr/local/bin/gcc +RUN ln -s /usr/bin/ccache /usr/local/bin/g++ +RUN ln -s /usr/bin/ccache /usr/local/bin/cc +RUN ln -s /usr/bin/ccache /usr/local/bin/c++ +RUN ln -s /usr/bin/ccache /usr/local/bin/clang +RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ + +################## +# C++ dependencies +RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang + +# Define the default command. +CMD ["bash"] diff --git a/tools/jenkins/grpc_interop_stress_cxx/build_interop_stress.sh b/tools/jenkins/grpc_interop_stress_cxx/build_interop_stress.sh new file mode 100755 index 0000000000..6ed3ccb3fa --- /dev/null +++ b/tools/jenkins/grpc_interop_stress_cxx/build_interop_stress.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# Builds C++ interop server and client in a base image. +set -e + +mkdir -p /var/local/git +git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc + +# copy service account keys if available +cp -r /var/local/jenkins/service_account $HOME || true + +cd /var/local/git/grpc + +make install-certs + +# build C++ interop stress client, interop client and server +make stress_test interop_client interop_server diff --git a/tools/jenkins/grpc_jenkins_slave/Dockerfile b/tools/jenkins/grpc_jenkins_slave/Dockerfile index f3bf6bc4f0..48541b00ad 100644 --- a/tools/jenkins/grpc_jenkins_slave/Dockerfile +++ b/tools/jenkins/grpc_jenkins_slave/Dockerfile @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -38,6 +38,7 @@ RUN apt-get update && apt-get install -y \ autotools-dev \ build-essential \ bzip2 \ + ccache \ curl \ gcc \ gcc-multilib \ @@ -61,6 +62,14 @@ RUN apt-get update && apt-get install -y \ wget \ zip && apt-get clean +# Prepare ccache +RUN ln -s /usr/bin/ccache /usr/local/bin/gcc +RUN ln -s /usr/bin/ccache /usr/local/bin/g++ +RUN ln -s /usr/bin/ccache /usr/local/bin/cc +RUN ln -s /usr/bin/ccache /usr/local/bin/c++ +RUN ln -s /usr/bin/ccache /usr/local/bin/clang +RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ + ################## # C++ dependencies RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang diff --git a/tools/jenkins/grpc_jenkins_slave_32bits/Dockerfile b/tools/jenkins/grpc_jenkins_slave_32bits/Dockerfile index 1a86c5a5d7..2323f23387 100644 --- a/tools/jenkins/grpc_jenkins_slave_32bits/Dockerfile +++ b/tools/jenkins/grpc_jenkins_slave_32bits/Dockerfile @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -38,6 +38,7 @@ RUN apt-get update && apt-get install -y \ autotools-dev \ build-essential \ bzip2 \ + ccache \ curl \ gcc \ gcc-multilib \ @@ -61,6 +62,14 @@ RUN apt-get update && apt-get install -y \ wget \ zip && apt-get clean +# Prepare ccache +RUN ln -s /usr/bin/ccache /usr/local/bin/gcc +RUN ln -s /usr/bin/ccache /usr/local/bin/g++ +RUN ln -s /usr/bin/ccache /usr/local/bin/cc +RUN ln -s /usr/bin/ccache /usr/local/bin/c++ +RUN ln -s /usr/bin/ccache /usr/local/bin/clang +RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ + ################## # C++ dependencies RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang diff --git a/tools/jenkins/run_interop_stress.sh b/tools/jenkins/run_interop_stress.sh new file mode 100755 index 0000000000..8166f34e05 --- /dev/null +++ b/tools/jenkins/run_interop_stress.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# This script is invoked by Jenkins and runs interop test suite. +set -ex + +# Enter the gRPC repo root +cd $(dirname $0)/../.. + +tools/run_tests/run_stress_tests.py -l all -s all -j 12 $@ || true diff --git a/tools/jenkins/run_jenkins.sh b/tools/jenkins/run_jenkins.sh index 9b6ba71948..84b4ea51ed 100755 --- a/tools/jenkins/run_jenkins.sh +++ b/tools/jenkins/run_jenkins.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -92,4 +92,3 @@ if [ "$TESTS_FAILED" != "" ] then exit 1 fi - diff --git a/tools/run_tests/build_artifact_csharp.sh b/tools/run_tests/build_artifact_csharp.sh new file mode 100755 index 0000000000..7438713f5c --- /dev/null +++ b/tools/run_tests/build_artifact_csharp.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# 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. + +set -ex + +cd $(dirname $0)/../.. + +make grpc_csharp_ext + +mkdir -p artifacts +cp libs/opt/libgrpc_csharp_ext.so artifacts || cp libs/opt/libgrpc_csharp_ext.dylib artifacts diff --git a/tools/run_tests/build_artifacts.py b/tools/run_tests/build_artifacts.py new file mode 100755 index 0000000000..0d7e3bd56b --- /dev/null +++ b/tools/run_tests/build_artifacts.py @@ -0,0 +1,236 @@ +#!/usr/bin/env python +# 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. + +"""Builds gRPC distribution artifacts.""" + +import argparse +import atexit +import dockerjob +import itertools +import jobset +import json +import multiprocessing +import os +import re +import subprocess +import sys +import time +import uuid + +# Docker doesn't clean up after itself, so we do it on exit. +atexit.register(lambda: subprocess.call(['stty', 'echo'])) + +ROOT = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '../..')) +os.chdir(ROOT) + + +def create_docker_jobspec(name, dockerfile_dir, shell_command, environ={}, + flake_retries=0, timeout_retries=0): + """Creates jobspec for a task running under docker.""" + environ = environ.copy() + environ['RUN_COMMAND'] = shell_command + + #docker_args = ['-v', '%s/artifacts:/var/local/jenkins/grpc/artifacts' % ROOT] + docker_args=[] + for k,v in environ.iteritems(): + docker_args += ['-e', '%s=%s' % (k, v)] + docker_env = {'DOCKERFILE_DIR': dockerfile_dir, + 'DOCKER_RUN_SCRIPT': 'tools/jenkins/docker_run.sh', + 'OUTPUT_DIR': 'artifacts'} + jobspec = jobset.JobSpec( + cmdline=['tools/jenkins/build_and_run_docker.sh'] + docker_args, + environ=docker_env, + shortname='build_artifact.%s' % (name), + timeout_seconds=30*60, + flake_retries=flake_retries, + timeout_retries=timeout_retries) + return jobspec + + +def create_jobspec(name, cmdline, environ=None, shell=False, + flake_retries=0, timeout_retries=0): + """Creates jobspec.""" + jobspec = jobset.JobSpec( + cmdline=cmdline, + environ=environ, + shortname='build_artifact.%s' % (name), + timeout_seconds=5*60, + flake_retries=flake_retries, + timeout_retries=timeout_retries, + shell=shell) + return jobspec + + +def macos_arch_env(arch): + """Returns environ specifying -arch arguments for make.""" + if arch == 'x86': + arch_arg = '-arch i386' + elif arch == 'x64': + arch_arg = '-arch x86_64' + else: + raise Exception('Unsupported arch') + return {'CFLAGS': arch_arg, 'LDFLAGS': arch_arg} + + +class CSharpExtArtifact: + """Builds C# native extension library""" + + def __init__(self, platform, arch): + self.name = 'csharp_ext_%s_%s' % (platform, arch) + self.platform = platform + self.arch = arch + self.labels = ['csharp', platform, arch] + + def pre_build_jobspecs(self): + if self.platform == 'windows': + return [create_jobspec('prebuild_%s' % self.name, + ['tools\\run_tests\\pre_build_c.bat'], + shell=True, + flake_retries=5, + timeout_retries=2)] + else: + return [] + + def build_jobspec(self): + if self.platform == 'windows': + msbuild_platform = 'Win32' if self.arch == 'x86' else self.arch + return create_jobspec(self.name, + ['vsprojects\\build_vs2013.bat', + 'vsprojects\\grpc_csharp_ext.sln', + '/p:Configuration=Release', + '/p:PlatformToolset=v120', + '/p:Platform=%s' % msbuild_platform], + shell=True) + if self.platform == 'linux': + environ = {'CONFIG': 'opt'} + return create_docker_jobspec(self.name, + 'tools/jenkins/grpc_artifact_linux_%s' % self.arch, + 'tools/run_tests/build_artifact_csharp.sh') + else: + environ = {'CONFIG': 'opt'} + if self.platform == 'macos': + environ.update(macos_arch_env(self.arch)) + return create_jobspec(self.name, + ['tools/run_tests/build_artifact_csharp.sh'], + environ=environ) + + def __str__(self): + return self.name + + +_ARTIFACTS = [ + CSharpExtArtifact('linux', 'x86'), + CSharpExtArtifact('linux', 'x64'), + CSharpExtArtifact('macos', 'x86'), + CSharpExtArtifact('macos', 'x64'), + CSharpExtArtifact('windows', 'x86'), + CSharpExtArtifact('windows', 'x64') +] + + +def _create_build_map(): + """Maps artifact names and labels to list of artifacts to be built.""" + artifact_build_map = dict([(artifact.name, [artifact]) + for artifact in _ARTIFACTS]) + if len(_ARTIFACTS) > len(artifact_build_map.keys()): + raise Exception('Artifact names need to be unique') + + label_build_map = {} + label_build_map['all'] = [a for a in _ARTIFACTS] # to build all artifacts + for artifact in _ARTIFACTS: + for label in artifact.labels: + if label in label_build_map: + label_build_map[label].append(artifact) + else: + label_build_map[label] = [artifact] + + if set(artifact_build_map.keys()).intersection(label_build_map.keys()): + raise Exception('Artifact names need to be distinct from label names') + return dict( artifact_build_map.items() + label_build_map.items()) + + +_BUILD_MAP = _create_build_map() + +argp = argparse.ArgumentParser(description='Builds distribution artifacts.') +argp.add_argument('-b', '--build', + choices=sorted(_BUILD_MAP.keys()), + nargs='+', + default=['all'], + help='Artifact name or artifact label to build.') +argp.add_argument('-f', '--filter', + choices=sorted(_BUILD_MAP.keys()), + nargs='+', + default=[], + help='Filter artifacts to build with AND semantics.') +argp.add_argument('-j', '--jobs', default=multiprocessing.cpu_count(), type=int) +argp.add_argument('-t', '--travis', + default=False, + action='store_const', + const=True) + +args = argp.parse_args() + +# Figure out which artifacts to build +artifacts = [] +for label in args.build: + artifacts += _BUILD_MAP[label] + +# Among target selected by -b, filter out those that don't match the filter +artifacts = [a for a in artifacts if all(f in a.labels for f in args.filter)] +artifacts = sorted(set(artifacts)) + +# Execute pre-build phase +prebuild_jobs = [] +for artifact in artifacts: + prebuild_jobs += artifact.pre_build_jobspecs() +if prebuild_jobs: + num_failures, _ = jobset.run( + prebuild_jobs, newline_on_success=True, maxjobs=args.jobs) + if num_failures != 0: + jobset.message('FAILED', 'Pre-build phase failed.', do_newline=True) + sys.exit(1) + +build_jobs = [] +for artifact in artifacts: + build_jobs.append(artifact.build_jobspec()) +if not build_jobs: + print 'Nothing to build.' + sys.exit(1) + +jobset.message('START', 'Building artifacts.', do_newline=True) +num_failures, _ = jobset.run( + build_jobs, newline_on_success=True, maxjobs=args.jobs) +if num_failures == 0: + jobset.message('SUCCESS', 'All artifacts built successfully.', + do_newline=True) +else: + jobset.message('FAILED', 'Failed to build artifacts.', + do_newline=True) + sys.exit(1) diff --git a/tools/run_tests/build_csharp.sh b/tools/run_tests/build_csharp.sh index 55643ff924..aadd11e205 100755 --- a/tools/run_tests/build_csharp.sh +++ b/tools/run_tests/build_csharp.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -32,4 +32,5 @@ set -ex cd $(dirname $0)/../../src/csharp -xbuild /p:Configuration=$MSBUILD_CONFIG Grpc.sln +# overriding NativeDependenciesConfigurationUnix is needed to make gcov code coverage work. +xbuild /p:Configuration=$MSBUILD_CONFIG /p:NativeDependenciesConfigurationUnix=$CONFIG Grpc.sln diff --git a/tools/run_tests/build_php.sh b/tools/run_tests/build_php.sh index 1d81779b6a..0f9cfe5e3a 100755 --- a/tools/run_tests/build_php.sh +++ b/tools/run_tests/build_php.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -44,5 +44,9 @@ cd src/php cd ext/grpc phpize -./configure --enable-grpc=$root +if [ "$CONFIG" != "gcov" ] ; then + ./configure --enable-grpc=$root +else + ./configure --enable-grpc=$root --enable-coverage +fi make diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh index 57080ce934..e0fcbb602d 100755 --- a/tools/run_tests/build_python.sh +++ b/tools/run_tests/build_python.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -34,16 +34,14 @@ set -ex cd $(dirname $0)/../.. ROOT=`pwd` -GRPCIO=$ROOT/src/python/grpcio export LD_LIBRARY_PATH=$ROOT/libs/$CONFIG export DYLD_LIBRARY_PATH=$ROOT/libs/$CONFIG export PATH=$ROOT/bins/$CONFIG:$ROOT/bins/$CONFIG/protobuf:$PATH -export CFLAGS="-I$ROOT/include -std=c89" +export CFLAGS="-I$ROOT/include -std=gnu99" export LDFLAGS="-L$ROOT/libs/$CONFIG" export GRPC_PYTHON_BUILD_WITH_CYTHON=1 export GRPC_PYTHON_ENABLE_CYTHON_TRACING=1 -cd $GRPCIO tox --notest -$GRPCIO/.tox/py27/bin/python $GRPCIO/setup.py build +$ROOT/.tox/py27/bin/python $ROOT/setup.py build diff --git a/tools/run_tests/build_ruby.sh b/tools/run_tests/build_ruby.sh index 6d23c316c5..8acb40dc62 100755 --- a/tools/run_tests/build_ruby.sh +++ b/tools/run_tests/build_ruby.sh @@ -34,7 +34,7 @@ set -ex export GRPC_CONFIG=${CONFIG:-opt} # change to grpc's ruby directory -cd $(dirname $0)/../../src/ruby +cd $(dirname $0)/../.. rm -rf ./tmp rake compile:grpc diff --git a/tools/run_tests/check_sources_and_headers.py b/tools/run_tests/check_sources_and_headers.py index cee32888dc..50574f44b0 100755 --- a/tools/run_tests/check_sources_and_headers.py +++ b/tools/run_tests/check_sources_and_headers.py @@ -1,5 +1,5 @@ #!/usr/bin/env python2.7 -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -80,4 +80,4 @@ for target in js: target['name'], fn, m.group(1))) errors += 1 -assert errors == 0
\ No newline at end of file +assert errors == 0 diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py index 0b01bc4bec..beeb99c0ae 100755 --- a/tools/run_tests/jobset.py +++ b/tools/run_tests/jobset.py @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -33,6 +33,7 @@ import hashlib import multiprocessing import os import platform +import re import signal import subprocess import sys @@ -40,6 +41,10 @@ import tempfile import time +# cpu cost measurement +measure_cpu_costs = False + + _DEFAULT_MAX_JOBS = 16 * multiprocessing.cpu_count() _MAX_RESULT_SIZE = 8192 @@ -146,7 +151,7 @@ class JobSpec(object): def __init__(self, cmdline, shortname=None, environ=None, hash_targets=None, cwd=None, shell=False, timeout_seconds=5*60, flake_retries=0, - timeout_retries=0, kill_handler=None): + timeout_retries=0, kill_handler=None, cpu_cost=1.0): """ Arguments: cmdline: a list of arguments to pass as the command line @@ -154,6 +159,7 @@ class JobSpec(object): hash_targets: which files to include in the hash representing the jobs version (or empty, indicating the job should not be hashed) kill_handler: a handler that will be called whenever job.kill() is invoked + cpu_cost: number of cores per second this job needs """ if environ is None: environ = {} @@ -169,6 +175,7 @@ class JobSpec(object): self.flake_retries = flake_retries self.timeout_retries = timeout_retries self.kill_handler = kill_handler + self.cpu_cost = cpu_cost def identity(self): return '%r %r %r' % (self.cmdline, self.environ, self.hash_targets) @@ -218,7 +225,10 @@ class Job(object): env.update(self._spec.environ) env.update(self._add_env) self._start = time.time() - try_start = lambda: subprocess.Popen(args=self._spec.cmdline, + cmdline = self._spec.cmdline + if measure_cpu_costs: + cmdline = ['time', '--portability'] + cmdline + try_start = lambda: subprocess.Popen(args=cmdline, stderr=subprocess.STDOUT, stdout=self._tempfile, cwd=self._spec.cwd, @@ -267,13 +277,24 @@ class Job(object): self.result.returncode = self._process.returncode else: self._state = _SUCCESS - message('PASSED', '%s [time=%.1fsec; retries=%d;%d]' % ( - self._spec.shortname, elapsed, self._retries, self._timeout_retries), + measurement = '' + if measure_cpu_costs: + m = re.search(r'real ([0-9.]+)\nuser ([0-9.]+)\nsys ([0-9.]+)', stdout()) + real = float(m.group(1)) + user = float(m.group(2)) + sys = float(m.group(3)) + if real > 0.5: + cores = (user + sys) / real + measurement = '; cpu_cost=%.01f; estimated=%.01f' % (cores, self._spec.cpu_cost) + message('PASSED', '%s [time=%.1fsec; retries=%d:%d%s]' % ( + self._spec.shortname, elapsed, self._retries, self._timeout_retries, measurement), do_newline=self._newline_on_success or self._travis) self.result.state = 'PASSED' if self._bin_hash: update_cache.finished(self._spec.identity(), self._bin_hash) - elif self._state == _RUNNING and time.time() - self._start > self._spec.timeout_seconds: + elif (self._state == _RUNNING and + self._spec.timeout_seconds is not None and + time.time() - self._start > self._spec.timeout_seconds): if self._timeout_retries < self._spec.timeout_retries: message('TIMEOUT_FLAKE', '%s [pid=%d]' % (self._spec.shortname, self._process.pid), stdout(), do_newline=True) self._timeout_retries += 1 @@ -327,10 +348,19 @@ class Jobset(object): def get_num_failures(self): return self._failures + def cpu_cost(self): + c = 0 + for job in self._running: + c += job._spec.cpu_cost + return c + def start(self, spec): """Start a job. Return True on success, False on failure.""" - while len(self._running) >= self._maxjobs: + while True: if self.cancelled(): return False + current_cpu_cost = self.cpu_cost() + if current_cpu_cost == 0: break + if current_cpu_cost + spec.cpu_cost < self._maxjobs: break self.reap() if self.cancelled(): return False if spec.hash_targets: @@ -450,4 +480,3 @@ def run(cmdlines, js.set_remaining(remaining) js.finish() return js.get_num_failures(), js.resultset - diff --git a/tools/run_tests/post_tests_php.sh b/tools/run_tests/post_tests_php.sh new file mode 100755 index 0000000000..01a44d03dc --- /dev/null +++ b/tools/run_tests/post_tests_php.sh @@ -0,0 +1,46 @@ +#!/bin/bash +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set -ex + +if [ "$CONFIG" != "gcov" ] ; then exit ; fi + +root=$(readlink -f $(dirname $0)/../..) +out=$root/reports/php_ext_coverage +tmp1=$(mktemp) +tmp2=$(mktemp) +cd $root +lcov --capture --directory . --output-file $tmp1 +lcov --extract $tmp1 "$root/src/php/ext/grpc/*" --output-file $tmp2 +genhtml $tmp2 --output-directory $out +rm $tmp2 +rm $tmp1 + +cp -rv $root/src/php/coverage $root/reports/php diff --git a/tools/run_tests/run_csharp.sh b/tools/run_tests/run_csharp.sh index 744df07e1c..10f1c28521 100755 --- a/tools/run_tests/run_csharp.sh +++ b/tools/run_tests/run_csharp.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -36,9 +36,6 @@ NUNIT_CONSOLE="mono packages/NUnit.Runners.2.6.4/tools/nunit-console.exe" # change to gRPC repo root cd $(dirname $0)/../.. -# path needs to be absolute -export LD_LIBRARY_PATH=$(pwd)/libs/$CONFIG - (cd src/csharp; $NUNIT_CONSOLE $@) if [ "$CONFIG" = "gcov" ] diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py index e69e9877c5..10566d6bc8 100755 --- a/tools/run_tests/run_interop_tests.py +++ b/tools/run_tests/run_interop_tests.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -298,11 +298,8 @@ class PythonLanguage: def client_cmd(self, args): return [ - 'src/python/grpcio/.tox/py27/bin/python', - 'src/python/grpcio/setup.py', - 'run_interop', - '--client', - '--args=\'{}\''.format(' '.join(args)) + 'tox -einterop_client --', + ' '.join(args) ] def cloud_to_prod_env(self): @@ -310,11 +307,8 @@ class PythonLanguage: def server_cmd(self, args): return [ - 'src/python/grpcio/.tox/py27/bin/python', - 'src/python/grpcio/setup.py', - 'run_interop', - '--server', - '--args=\'{}\''.format(' '.join(args) + ' --use_tls=true') + 'tox -einterop_server --', + ' '.join(args) + ' --use_tls=true' ] def global_env(self): @@ -555,7 +549,7 @@ def aggregate_http2_results(stdout): match = re.search(r'\{"cases[^\]]*\]\}', stdout) if not match: return None - + results = json.loads(match.group(0)) skipped = 0 passed = 0 @@ -748,7 +742,7 @@ try: for test_case in _HTTP2_TEST_CASES: if server_name == "go": # TODO(carl-mastrangelo): Reenable after https://github.com/grpc/grpc-go/issues/434 - continue + continue test_job = cloud_to_cloud_jobspec(http2Interop, test_case, server_name, @@ -777,7 +771,7 @@ try: job[0].http2results = aggregate_http2_results(job[0].message) report_utils.render_interop_html_report( - set([str(l) for l in languages]), servers, _TEST_CASES, _AUTH_TEST_CASES, + set([str(l) for l in languages]), servers, _TEST_CASES, _AUTH_TEST_CASES, _HTTP2_TEST_CASES, resultset, num_failures, args.cloud_to_prod_auth or args.cloud_to_prod, args.http2_interop) diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index 042b40485d..ffe9c12af1 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -34,7 +34,6 @@ set -ex cd $(dirname $0)/../.. ROOT=`pwd` -GRPCIO=$ROOT/src/python/grpcio export LD_LIBRARY_PATH=$ROOT/libs/$CONFIG export DYLD_LIBRARY_PATH=$ROOT/libs/$CONFIG export PATH=$ROOT/bins/$CONFIG:$ROOT/bins/$CONFIG/protobuf:$PATH @@ -43,9 +42,8 @@ export LDFLAGS="-L$ROOT/libs/$CONFIG" export GRPC_PYTHON_BUILD_WITH_CYTHON=1 export GRPC_PYTHON_ENABLE_CYTHON_TRACING=1 -cd $GRPCIO tox mkdir -p $ROOT/reports rm -rf $ROOT/reports/python-coverage -(mv -T $GRPCIO/htmlcov $ROOT/reports/python-coverage) || true +(mv -T $ROOT/htmlcov $ROOT/reports/python-coverage) || true diff --git a/tools/run_tests/run_ruby.sh b/tools/run_tests/run_ruby.sh index b82ce52af3..73a84ac361 100755 --- a/tools/run_tests/run_ruby.sh +++ b/tools/run_tests/run_ruby.sh @@ -31,6 +31,6 @@ set -ex # change to grpc repo root -cd $(dirname $0)/../../src/ruby +cd $(dirname $0)/../.. rake diff --git a/tools/run_tests/run_sanity.sh b/tools/run_tests/run_sanity.sh index 690332daae..467f06edd7 100755 --- a/tools/run_tests/run_sanity.sh +++ b/tools/run_tests/run_sanity.sh @@ -60,4 +60,4 @@ fi ./tools/buildgen/generate_projects.sh ./tools/distrib/check_copyright.py ./tools/distrib/clang_format_code.sh - +./tools/distrib/check_trailing_newlines.sh diff --git a/tools/run_tests/run_stress_tests.py b/tools/run_tests/run_stress_tests.py new file mode 100755 index 0000000000..193ff2e53a --- /dev/null +++ b/tools/run_tests/run_stress_tests.py @@ -0,0 +1,328 @@ +#!/usr/bin/env python +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +"""Run stress test in C++""" + +import argparse +import atexit +import dockerjob +import itertools +import jobset +import json +import multiprocessing +import os +import re +import subprocess +import sys +import tempfile +import time +import uuid + +# Docker doesn't clean up after itself, so we do it on exit. +atexit.register(lambda: subprocess.call(['stty', 'echo'])) + +ROOT = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '../..')) +os.chdir(ROOT) + +_DEFAULT_SERVER_PORT = 8080 +_DEFAULT_METRICS_PORT = 8081 +_DEFAULT_TEST_CASES = 'empty_unary:20,large_unary:20,client_streaming:20,server_streaming:20,empty_stream:20' +_DEFAULT_NUM_CHANNELS_PER_SERVER = 5 +_DEFAULT_NUM_STUBS_PER_CHANNEL = 10 + +# 15 mins default +_DEFAULT_TEST_DURATION_SECS = 900 + +class CXXLanguage: + + def __init__(self): + self.client_cwd = None + self.server_cwd = None + self.safename = 'cxx' + + def client_cmd(self, args): + return ['bins/opt/stress_test'] + args + + def server_cmd(self, args): + return ['bins/opt/interop_server'] + args + + def global_env(self): + return {} + + def __str__(self): + return 'c++' + + +_LANGUAGES = {'c++': CXXLanguage(),} + +# languages supported as cloud_to_cloud servers +_SERVERS = ['c++'] + +DOCKER_WORKDIR_ROOT = '/var/local/git/grpc' + + +def docker_run_cmdline(cmdline, image, docker_args=[], cwd=None, environ=None): + """Wraps given cmdline array to create 'docker run' cmdline from it.""" + docker_cmdline = ['docker', 'run', '-i', '--rm=true'] + + # turn environ into -e docker args + if environ: + for k, v in environ.iteritems(): + docker_cmdline += ['-e', '%s=%s' % (k, v)] + + # set working directory + workdir = DOCKER_WORKDIR_ROOT + if cwd: + workdir = os.path.join(workdir, cwd) + docker_cmdline += ['-w', workdir] + + docker_cmdline += docker_args + [image] + cmdline + return docker_cmdline + + +def bash_login_cmdline(cmdline): + """Creates bash -l -c cmdline from args list.""" + # Use login shell: + # * rvm and nvm require it + # * makes error messages clearer if executables are missing + return ['bash', '-l', '-c', ' '.join(cmdline)] + + +def _job_kill_handler(job): + if job._spec.container_name: + dockerjob.docker_kill(job._spec.container_name) + # When the job times out and we decide to kill it, + # we need to wait a before restarting the job + # to prevent "container name already in use" error. + # TODO(jtattermusch): figure out a cleaner way to to this. + time.sleep(2) + + +def cloud_to_cloud_jobspec(language, + test_cases, + server_addresses, + test_duration_secs, + num_channels_per_server, + num_stubs_per_channel, + metrics_port, + docker_image=None): + """Creates jobspec for cloud-to-cloud interop test""" + cmdline = bash_login_cmdline(language.client_cmd([ + '--test_cases=%s' % test_cases, '--server_addresses=%s' % + server_addresses, '--test_duration_secs=%s' % test_duration_secs, + '--num_stubs_per_channel=%s' % num_stubs_per_channel, + '--num_channels_per_server=%s' % num_channels_per_server, + '--metrics_port=%s' % metrics_port + ])) + print cmdline + cwd = language.client_cwd + environ = language.global_env() + if docker_image: + container_name = dockerjob.random_name('interop_client_%s' % + language.safename) + cmdline = docker_run_cmdline( + cmdline, + image=docker_image, + environ=environ, + cwd=cwd, + docker_args=['--net=host', '--name', container_name]) + cwd = None + + test_job = jobset.JobSpec(cmdline=cmdline, + cwd=cwd, + environ=environ, + shortname='cloud_to_cloud:%s:%s_server:stress_test' % ( + language, server_name), + timeout_seconds=test_duration_secs * 2, + flake_retries=0, + timeout_retries=0, + kill_handler=_job_kill_handler) + test_job.container_name = container_name + return test_job + + +def server_jobspec(language, docker_image, test_duration_secs): + """Create jobspec for running a server""" + container_name = dockerjob.random_name('interop_server_%s' % + language.safename) + cmdline = bash_login_cmdline(language.server_cmd(['--port=%s' % + _DEFAULT_SERVER_PORT])) + environ = language.global_env() + docker_cmdline = docker_run_cmdline( + cmdline, + image=docker_image, + cwd=language.server_cwd, + environ=environ, + docker_args=['-p', str(_DEFAULT_SERVER_PORT), '--name', container_name]) + + server_job = jobset.JobSpec(cmdline=docker_cmdline, + environ=environ, + shortname='interop_server_%s' % language, + timeout_seconds=test_duration_secs * 3) + server_job.container_name = container_name + return server_job + + +def build_interop_stress_image_jobspec(language, tag=None): + """Creates jobspec for building stress test docker image for a language""" + if not tag: + tag = 'grpc_interop_stress_%s:%s' % (language.safename, uuid.uuid4()) + env = {'INTEROP_IMAGE': tag, + 'BASE_NAME': 'grpc_interop_stress_%s' % language.safename} + build_job = jobset.JobSpec(cmdline=['tools/jenkins/build_interop_stress_image.sh'], + environ=env, + shortname='build_docker_%s' % (language), + timeout_seconds=30 * 60) + build_job.tag = tag + return build_job + +argp = argparse.ArgumentParser(description='Run stress tests.') +argp.add_argument('-l', + '--language', + choices=['all'] + sorted(_LANGUAGES), + nargs='+', + default=['all'], + help='Clients to run.') +argp.add_argument('-j', '--jobs', default=multiprocessing.cpu_count(), type=int) +argp.add_argument( + '-s', + '--server', + choices=['all'] + sorted(_SERVERS), + action='append', + help='Run cloud_to_cloud servers in a separate docker ' + 'image.', + default=[]) +argp.add_argument( + '--override_server', + action='append', + type=lambda kv: kv.split('='), + help= + 'Use servername=HOST:PORT to explicitly specify a server. E.g. ' + 'csharp=localhost:50000', + default=[]) +argp.add_argument('--test_duration_secs', + help='The duration of the test in seconds', + default=_DEFAULT_TEST_DURATION_SECS) + +args = argp.parse_args() + +servers = set( + s + for s in itertools.chain.from_iterable(_SERVERS if x == 'all' else [x] + for x in args.server)) + +languages = set(_LANGUAGES[l] + for l in itertools.chain.from_iterable(_LANGUAGES.iterkeys( + ) if x == 'all' else [x] for x in args.language)) + +docker_images = {} +# languages for which to build docker images +languages_to_build = set( + _LANGUAGES[k] + for k in set([str(l) for l in languages] + [s for s in servers])) +build_jobs = [] +for l in languages_to_build: + job = build_interop_stress_image_jobspec(l) + docker_images[str(l)] = job.tag + build_jobs.append(job) + +if build_jobs: + jobset.message('START', 'Building interop docker images.', do_newline=True) + num_failures, _ = jobset.run(build_jobs, + newline_on_success=True, + maxjobs=args.jobs) + if num_failures == 0: + jobset.message('SUCCESS', + 'All docker images built successfully.', + do_newline=True) + else: + jobset.message('FAILED', + 'Failed to build interop docker images.', + do_newline=True) + for image in docker_images.itervalues(): + dockerjob.remove_image(image, skip_nonexistent=True) + sys.exit(1) + +# Start interop servers. +server_jobs = {} +server_addresses = {} +try: + for s in servers: + lang = str(s) + spec = server_jobspec(_LANGUAGES[lang], docker_images.get(lang), args.test_duration_secs) + job = dockerjob.DockerJob(spec) + server_jobs[lang] = job + server_addresses[lang] = ('localhost', + job.mapped_port(_DEFAULT_SERVER_PORT)) + + jobs = [] + + for server in args.override_server: + server_name = server[0] + (server_host, server_port) = server[1].split(':') + server_addresses[server_name] = (server_host, server_port) + + for server_name, server_address in server_addresses.iteritems(): + (server_host, server_port) = server_address + for language in languages: + test_job = cloud_to_cloud_jobspec( + language, + _DEFAULT_TEST_CASES, + ('%s:%s' % (server_host, server_port)), + args.test_duration_secs, + _DEFAULT_NUM_CHANNELS_PER_SERVER, + _DEFAULT_NUM_STUBS_PER_CHANNEL, + _DEFAULT_METRICS_PORT, + docker_image=docker_images.get(str(language))) + jobs.append(test_job) + + if not jobs: + print 'No jobs to run.' + for image in docker_images.itervalues(): + dockerjob.remove_image(image, skip_nonexistent=True) + sys.exit(1) + + num_failures, resultset = jobset.run(jobs, + newline_on_success=True, + maxjobs=args.jobs) + if num_failures: + jobset.message('FAILED', 'Some tests failed', do_newline=True) + else: + jobset.message('SUCCESS', 'All tests passed', do_newline=True) + +finally: + # Check if servers are still running. + for server, job in server_jobs.iteritems(): + if not job.is_running(): + print 'Server "%s" has exited prematurely.' % server + + dockerjob.finish_jobs([j for j in server_jobs.itervalues()]) + + for image in docker_images.itervalues(): + print 'Removing docker image %s' % image + dockerjob.remove_image(image) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 206848bf40..e86467e3f2 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -78,7 +78,7 @@ class SimpleConfig(object): self.timeout_multiplier = timeout_multiplier def job_spec(self, cmdline, hash_targets, timeout_seconds=5*60, - shortname=None, environ={}): + shortname=None, environ={}, cpu_cost=1.0): """Construct a jobset.JobSpec for a test under this config Args: @@ -96,6 +96,7 @@ class SimpleConfig(object): return jobset.JobSpec(cmdline=cmdline, shortname=shortname, environ=actual_environ, + cpu_cost=cpu_cost, timeout_seconds=self.timeout_multiplier * timeout_seconds, hash_targets=hash_targets if self.allow_hashing else None, @@ -114,7 +115,7 @@ class ValgrindConfig(object): self.args = args self.allow_hashing = False - def job_spec(self, cmdline, hash_targets, timeout_seconds=None, + def job_spec(self, cmdline, hash_targets, cpu_cost=1.0, timeout_seconds=None, shortname=None, environ=None): if shortname is None: shortname = 'valgrind %s' % cmdline[0] @@ -122,6 +123,7 @@ class ValgrindConfig(object): self.args + cmdline, shortname=shortname, hash_targets=None, + cpu_cost=cpu_cost, flake_retries=5 if args.allow_flakes else 0, timeout_retries=3 if args.allow_flakes else 0) @@ -160,6 +162,7 @@ class CLanguage(object): cmdline = [binary] + target['args'] out.append(config.job_spec(cmdline, [binary], shortname=' '.join(cmdline), + cpu_cost=target['cpu_cost'], environ={'GRPC_DEFAULT_SSL_ROOTS_FILE_PATH': os.path.abspath(os.path.dirname( sys.argv[0]) + '/../../src/core/tsi/test_creds/ca.pem')})) @@ -248,7 +251,7 @@ class PhpLanguage(object): return [['tools/run_tests/build_php.sh']] def post_tests_steps(self): - return [] + return [['tools/run_tests/post_tests_php.sh']] def makefile_name(self): return 'Makefile' @@ -603,7 +606,7 @@ argp.add_argument('-n', '--runs_per_test', default=1, type=runs_per_test_type, help='A positive integer or "inf". If "inf", all tests will run in an ' 'infinite loop. Especially useful in combination with "-f"') argp.add_argument('-r', '--regex', default='.*', type=str) -argp.add_argument('-j', '--jobs', default=2 * multiprocessing.cpu_count(), type=int) +argp.add_argument('-j', '--jobs', default=multiprocessing.cpu_count(), type=int) argp.add_argument('-s', '--slowdown', default=1.0, type=float) argp.add_argument('-f', '--forever', default=False, @@ -650,6 +653,8 @@ argp.add_argument('--build_only', action='store_const', const=True, help='Perform all the build steps but dont run any tests.') +argp.add_argument('--measure_cpu_costs', default=False, action='store_const', const=True, + help='Measure the cpu costs of tests') argp.add_argument('--update_submodules', default=[], nargs='*', help='Update some submodules before building. If any are updated, also run generate_projects. ' + 'Submodules are specified as SUBMODULE_NAME:BRANCH; if BRANCH is omitted, master is assumed.') @@ -658,6 +663,8 @@ argp.add_argument('-x', '--xml_report', default=None, type=str, help='Generates a JUnit-compatible XML report') args = argp.parse_args() +jobset.measure_cpu_costs = args.measure_cpu_costs + if args.use_docker: if not args.travis: print 'Seen --use_docker flag, will run tests under docker.' @@ -767,7 +774,7 @@ if platform_string() == 'windows': _windows_toolset_option(args.compiler), _windows_arch_option(args.arch)] + extra_args, - shell=True, timeout_seconds=90*60) + shell=True, timeout_seconds=None) for target in targets] else: def make_jobspec(cfg, targets, makefile='Makefile'): @@ -775,10 +782,11 @@ else: return [jobset.JobSpec([os.getenv('MAKE', 'make'), '-f', makefile, '-j', '%d' % (multiprocessing.cpu_count() + 1), - 'EXTRA_DEFINES=GRPC_TEST_SLOWDOWN_MACHINE_FACTOR=%f' % - args.slowdown, - 'CONFIG=%s' % cfg] + targets, - timeout_seconds=30*60)] + 'EXTRA_DEFINES=GRPC_TEST_SLOWDOWN_MACHINE_FACTOR=%f' % args.slowdown, + 'CONFIG=%s' % cfg] + + ([] if not args.travis else ['JENKINS_BUILD=1']) + + targets, + timeout_seconds=None)] else: return [] make_targets = {} @@ -803,7 +811,7 @@ if make_targets: make_commands = itertools.chain.from_iterable(make_jobspec(cfg, list(targets), makefile) for cfg in build_configs for (makefile, targets) in make_targets.iteritems()) build_steps.extend(set(make_commands)) build_steps.extend(set( - jobset.JobSpec(cmdline, environ=build_step_environ(cfg), timeout_seconds=10*60) + jobset.JobSpec(cmdline, environ=build_step_environ(cfg), timeout_seconds=None) for cfg in build_configs for l in languages for cmdline in l.build_steps())) diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 3af1bbaccc..3e42c59ed3 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -1504,6 +1504,23 @@ "grpc", "grpc++", "grpc++_test_util", + "grpc_test_util", + "qps" + ], + "headers": [], + "language": "c++", + "name": "generic_async_streaming_ping_pong_test", + "src": [ + "test/cpp/qps/generic_async_streaming_ping_pong_test.cc" + ] + }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], "headers": [], @@ -1641,9 +1658,9 @@ "grpc++_test_config" ], "headers": [ - "test/cpp/util/metrics_server.h", - "test/proto/metrics.grpc.pb.h", - "test/proto/metrics.pb.h" + "src/proto/grpc/testing/metrics.grpc.pb.h", + "src/proto/grpc/testing/metrics.pb.h", + "test/cpp/util/metrics_server.h" ], "language": "c++", "name": "metrics_client", @@ -1773,12 +1790,12 @@ "grpc_test_util" ], "headers": [ - "test/proto/empty.grpc.pb.h", - "test/proto/empty.pb.h", - "test/proto/messages.grpc.pb.h", - "test/proto/messages.pb.h", - "test/proto/test.grpc.pb.h", - "test/proto/test.pb.h" + "src/proto/grpc/testing/empty.grpc.pb.h", + "src/proto/grpc/testing/empty.pb.h", + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "src/proto/grpc/testing/test.grpc.pb.h", + "src/proto/grpc/testing/test.pb.h" ], "language": "c++", "name": "reconnect_interop_client", @@ -1799,12 +1816,12 @@ "test_tcp_server" ], "headers": [ - "test/proto/empty.grpc.pb.h", - "test/proto/empty.pb.h", - "test/proto/messages.grpc.pb.h", - "test/proto/messages.pb.h", - "test/proto/test.grpc.pb.h", - "test/proto/test.pb.h" + "src/proto/grpc/testing/empty.grpc.pb.h", + "src/proto/grpc/testing/empty.pb.h", + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "src/proto/grpc/testing/test.grpc.pb.h", + "src/proto/grpc/testing/test.pb.h" ], "language": "c++", "name": "reconnect_interop_server", @@ -1935,18 +1952,18 @@ "grpc_test_util" ], "headers": [ + "src/proto/grpc/testing/empty.grpc.pb.h", + "src/proto/grpc/testing/empty.pb.h", + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "src/proto/grpc/testing/metrics.grpc.pb.h", + "src/proto/grpc/testing/metrics.pb.h", + "src/proto/grpc/testing/test.grpc.pb.h", + "src/proto/grpc/testing/test.pb.h", "test/cpp/interop/client_helper.h", "test/cpp/interop/interop_client.h", "test/cpp/interop/stress_interop_client.h", - "test/cpp/util/metrics_server.h", - "test/proto/empty.grpc.pb.h", - "test/proto/empty.pb.h", - "test/proto/messages.grpc.pb.h", - "test/proto/messages.pb.h", - "test/proto/metrics.grpc.pb.h", - "test/proto/metrics.pb.h", - "test/proto/test.grpc.pb.h", - "test/proto/test.pb.h" + "test/cpp/util/metrics_server.h" ], "language": "c++", "name": "stress_test", @@ -2021,7 +2038,10 @@ "grpc_test_util", "grpc_zookeeper" ], - "headers": [], + "headers": [ + "src/proto/grpc/testing/echo.grpc.pb.h", + "src/proto/grpc/testing/echo.pb.h" + ], "language": "c++", "name": "zookeeper_test", "src": [ @@ -3209,6 +3229,7 @@ "src/core/surface/server_chttp2.c", "src/core/surface/server_create.c", "src/core/surface/surface_trace.h", + "src/core/surface/validate_metadata.c", "src/core/surface/version.c", "src/core/transport/byte_stream.c", "src/core/transport/byte_stream.h", @@ -3680,6 +3701,7 @@ "src/core/surface/server_chttp2.c", "src/core/surface/server_create.c", "src/core/surface/surface_trace.h", + "src/core/surface/validate_metadata.c", "src/core/surface/version.c", "src/core/transport/byte_stream.c", "src/core/transport/byte_stream.h", @@ -3953,14 +3975,14 @@ "grpc_test_util" ], "headers": [ + "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h", + "src/proto/grpc/testing/duplicate/echo_duplicate.pb.h", + "src/proto/grpc/testing/echo.grpc.pb.h", + "src/proto/grpc/testing/echo.pb.h", + "src/proto/grpc/testing/echo_messages.grpc.pb.h", + "src/proto/grpc/testing/echo_messages.pb.h", "test/cpp/util/cli_call.h", "test/cpp/util/create_test_channel.h", - "test/cpp/util/echo.grpc.pb.h", - "test/cpp/util/echo.pb.h", - "test/cpp/util/echo_duplicate.grpc.pb.h", - "test/cpp/util/echo_duplicate.pb.h", - "test/cpp/util/messages.grpc.pb.h", - "test/cpp/util/messages.pb.h", "test/cpp/util/string_ref_helper.h", "test/cpp/util/subprocess.h" ], @@ -4163,9 +4185,9 @@ "grpc_test_util" ], "headers": [ - "test/cpp/interop/client_helper.h", - "test/proto/messages.grpc.pb.h", - "test/proto/messages.pb.h" + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "test/cpp/interop/client_helper.h" ], "language": "c++", "name": "interop_client_helper", @@ -4186,13 +4208,13 @@ "interop_client_helper" ], "headers": [ - "test/cpp/interop/interop_client.h", - "test/proto/empty.grpc.pb.h", - "test/proto/empty.pb.h", - "test/proto/messages.grpc.pb.h", - "test/proto/messages.pb.h", - "test/proto/test.grpc.pb.h", - "test/proto/test.pb.h" + "src/proto/grpc/testing/empty.grpc.pb.h", + "src/proto/grpc/testing/empty.pb.h", + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "src/proto/grpc/testing/test.grpc.pb.h", + "src/proto/grpc/testing/test.pb.h", + "test/cpp/interop/interop_client.h" ], "language": "c++", "name": "interop_client_main", @@ -4231,12 +4253,12 @@ "interop_server_helper" ], "headers": [ - "test/proto/empty.grpc.pb.h", - "test/proto/empty.pb.h", - "test/proto/messages.grpc.pb.h", - "test/proto/messages.pb.h", - "test/proto/test.grpc.pb.h", - "test/proto/test.pb.h" + "src/proto/grpc/testing/empty.grpc.pb.h", + "src/proto/grpc/testing/empty.pb.h", + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "src/proto/grpc/testing/test.grpc.pb.h", + "src/proto/grpc/testing/test.pb.h" ], "language": "c++", "name": "interop_server_main", @@ -4251,29 +4273,29 @@ "grpc_test_util" ], "headers": [ + "src/proto/grpc/testing/control.grpc.pb.h", + "src/proto/grpc/testing/control.pb.h", + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "src/proto/grpc/testing/payloads.grpc.pb.h", + "src/proto/grpc/testing/payloads.pb.h", + "src/proto/grpc/testing/perf_db.grpc.pb.h", + "src/proto/grpc/testing/perf_db.pb.h", + "src/proto/grpc/testing/services.grpc.pb.h", + "src/proto/grpc/testing/services.pb.h", + "src/proto/grpc/testing/stats.grpc.pb.h", + "src/proto/grpc/testing/stats.pb.h", "test/cpp/qps/client.h", "test/cpp/qps/driver.h", "test/cpp/qps/histogram.h", "test/cpp/qps/interarrival.h", - "test/cpp/qps/perf_db.grpc.pb.h", - "test/cpp/qps/perf_db.pb.h", "test/cpp/qps/perf_db_client.h", "test/cpp/qps/qps_worker.h", "test/cpp/qps/report.h", "test/cpp/qps/server.h", "test/cpp/qps/stats.h", "test/cpp/qps/timer.h", - "test/cpp/util/benchmark_config.h", - "test/proto/benchmarks/control.grpc.pb.h", - "test/proto/benchmarks/control.pb.h", - "test/proto/benchmarks/payloads.grpc.pb.h", - "test/proto/benchmarks/payloads.pb.h", - "test/proto/benchmarks/services.grpc.pb.h", - "test/proto/benchmarks/services.pb.h", - "test/proto/benchmarks/stats.grpc.pb.h", - "test/proto/benchmarks/stats.pb.h", - "test/proto/messages.grpc.pb.h", - "test/proto/messages.pb.h" + "test/cpp/util/benchmark_config.h" ], "language": "c++", "name": "qps", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index d4839e235f..e3dd29e7e7 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -9,6 +9,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -28,6 +29,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -47,6 +49,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -66,6 +69,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -85,6 +89,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -104,6 +109,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -123,6 +129,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -142,6 +149,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -161,6 +169,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -180,6 +189,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -199,6 +209,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -217,6 +228,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -235,6 +247,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -253,6 +266,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -270,6 +284,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -287,6 +302,7 @@ "mac", "posix" ], + "cpu_cost": 2, "exclude_configs": [], "flaky": false, "language": "c", @@ -304,6 +320,7 @@ "mac", "posix" ], + "cpu_cost": 2, "exclude_configs": [], "flaky": false, "language": "c", @@ -322,6 +339,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -341,6 +359,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -360,6 +379,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -379,6 +399,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -398,6 +419,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -417,6 +439,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -436,6 +459,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -455,6 +479,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -474,6 +499,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -493,6 +519,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -512,6 +539,7 @@ "posix", "windows" ], + "cpu_cost": 10, "exclude_configs": [], "flaky": false, "language": "c", @@ -531,6 +559,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -550,6 +579,7 @@ "posix", "windows" ], + "cpu_cost": 10, "exclude_configs": [], "flaky": false, "language": "c", @@ -569,6 +599,7 @@ "posix", "windows" ], + "cpu_cost": 10, "exclude_configs": [], "flaky": false, "language": "c", @@ -588,6 +619,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -607,6 +639,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -626,6 +659,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -645,6 +679,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -664,6 +699,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -683,6 +719,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -702,6 +739,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -721,6 +759,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -740,6 +779,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -759,6 +799,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -778,6 +819,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -796,6 +838,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -814,6 +857,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -833,6 +877,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -852,6 +897,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -871,6 +917,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -890,6 +937,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -909,6 +957,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -927,6 +976,7 @@ "mac", "posix" ], + "cpu_cost": 0.5, "exclude_configs": [], "flaky": false, "language": "c", @@ -942,6 +992,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.5, "exclude_configs": [], "flaky": false, "language": "c", @@ -958,6 +1009,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -977,6 +1029,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -996,6 +1049,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1015,6 +1069,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1034,6 +1089,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1053,6 +1109,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1072,6 +1129,7 @@ "posix", "windows" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -1091,6 +1149,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1110,6 +1169,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1129,6 +1189,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1148,6 +1209,7 @@ "posix", "windows" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -1167,6 +1229,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1186,6 +1249,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1205,6 +1269,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1224,6 +1289,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1243,6 +1309,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1262,6 +1329,7 @@ "posix", "windows" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -1281,6 +1349,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1300,6 +1369,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1318,6 +1388,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1335,6 +1406,7 @@ "mac", "posix" ], + "cpu_cost": 0.5, "exclude_configs": [], "flaky": false, "language": "c", @@ -1352,6 +1424,7 @@ "mac", "posix" ], + "cpu_cost": 0.5, "exclude_configs": [], "flaky": false, "language": "c", @@ -1369,6 +1442,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1387,6 +1461,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1406,6 +1481,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1425,6 +1501,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1444,6 +1521,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1463,6 +1541,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1482,6 +1561,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1501,6 +1581,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1519,6 +1600,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1536,6 +1618,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1554,6 +1637,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1572,6 +1656,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -1590,6 +1675,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1608,6 +1694,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1625,6 +1712,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1643,6 +1731,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1662,6 +1751,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1681,6 +1771,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1699,6 +1790,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1717,6 +1809,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1736,6 +1829,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1755,6 +1849,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1774,6 +1869,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1793,6 +1889,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1812,6 +1909,7 @@ "posix", "windows" ], + "cpu_cost": 0.5, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1828,9 +1926,28 @@ "ci_platforms": [ "linux", "mac", + "posix" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "flaky": false, + "language": "c++", + "name": "generic_async_streaming_ping_pong_test", + "platforms": [ + "linux", + "mac", + "posix" + ] + }, + { + "args": [], + "ci_platforms": [ + "linux", + "mac", "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1849,6 +1966,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1867,6 +1985,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1885,6 +2004,7 @@ "mac", "posix" ], + "cpu_cost": 10, "exclude_configs": [ "tsan" ], @@ -1905,6 +2025,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1923,6 +2044,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1940,6 +2062,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1958,6 +2081,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1977,6 +2101,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -1995,6 +2120,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -2012,6 +2138,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -2029,6 +2156,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c++", @@ -2047,6 +2175,7 @@ "posix", "windows" ], + "cpu_cost": 100, "exclude_configs": [], "flaky": false, "language": "c++", @@ -2066,6 +2195,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c89", @@ -2085,6 +2215,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -2104,6 +2235,7 @@ "posix", "windows" ], + "cpu_cost": 0.2, "exclude_configs": [], "flaky": false, "language": "c", @@ -2123,6 +2255,7 @@ "posix", "windows" ], + "cpu_cost": 0.2, "exclude_configs": [], "flaky": false, "language": "c", @@ -2142,6 +2275,7 @@ "posix", "windows" ], + "cpu_cost": 0.2, "exclude_configs": [], "flaky": false, "language": "c", @@ -2161,6 +2295,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -2180,6 +2315,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -2199,6 +2335,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -2218,6 +2355,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -2236,6 +2374,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -2253,6 +2392,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -2272,6 +2412,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2294,6 +2435,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2316,6 +2458,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2338,6 +2481,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2360,6 +2504,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2385,6 +2530,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2410,6 +2556,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2435,6 +2582,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2460,6 +2608,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2485,6 +2634,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2510,6 +2660,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2535,6 +2686,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2560,6 +2712,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2585,6 +2738,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2610,6 +2764,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2635,6 +2790,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2660,6 +2816,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2685,6 +2842,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2710,6 +2868,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2735,6 +2894,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2760,6 +2920,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2785,6 +2946,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2810,6 +2972,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2835,6 +2998,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2860,6 +3024,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2885,6 +3050,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2910,6 +3076,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2935,6 +3102,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2960,6 +3128,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -2984,6 +3153,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3006,6 +3176,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3028,6 +3199,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3052,6 +3224,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3074,6 +3247,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3096,6 +3270,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3118,6 +3293,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3140,6 +3316,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3162,6 +3339,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3184,6 +3362,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3206,6 +3385,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3228,6 +3408,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3250,6 +3431,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3274,6 +3456,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3296,6 +3479,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3318,6 +3502,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3342,6 +3527,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3364,6 +3550,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3386,6 +3573,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3408,6 +3596,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3430,6 +3619,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3454,6 +3644,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3476,6 +3667,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3498,6 +3690,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3520,6 +3713,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3542,6 +3736,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3564,6 +3759,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3586,6 +3782,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3608,6 +3805,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3630,6 +3828,7 @@ "posix", "windows" ], + "cpu_cost": 1.0, "exclude_configs": [ "asan" ], @@ -3653,6 +3852,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -3674,6 +3874,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -3695,6 +3896,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -3716,6 +3918,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -3737,6 +3940,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -3758,6 +3962,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -3779,6 +3984,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -3800,6 +4006,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -3821,6 +4028,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -3842,6 +4050,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -3863,6 +4072,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -3884,6 +4094,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -3905,6 +4116,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -3926,6 +4138,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -3947,6 +4160,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -3968,6 +4182,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -3989,6 +4204,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4010,6 +4226,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4031,6 +4248,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4052,6 +4270,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4073,6 +4292,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4094,6 +4314,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4115,6 +4336,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4136,6 +4358,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4157,6 +4380,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4178,6 +4402,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4199,6 +4424,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4220,6 +4446,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4241,6 +4468,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4262,6 +4490,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4283,6 +4512,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4304,6 +4534,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4325,6 +4556,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4346,6 +4578,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4367,6 +4600,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4388,6 +4622,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4409,6 +4644,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4430,6 +4666,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4451,6 +4688,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4472,6 +4710,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4493,6 +4732,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4514,6 +4754,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4535,6 +4776,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4556,6 +4798,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4577,6 +4820,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4598,6 +4842,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4619,6 +4864,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4640,6 +4886,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4661,6 +4908,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4682,6 +4930,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4703,6 +4952,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4724,6 +4974,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4745,6 +4996,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4766,6 +5018,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4787,6 +5040,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4808,6 +5062,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4829,6 +5084,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4850,6 +5106,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4871,6 +5128,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4892,6 +5150,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4913,6 +5172,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4934,6 +5194,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -4955,6 +5216,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4976,6 +5238,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -4997,6 +5260,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5018,6 +5282,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5039,6 +5304,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5060,6 +5326,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5081,6 +5348,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5102,6 +5370,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5123,6 +5392,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5144,6 +5414,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5164,6 +5435,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5184,6 +5456,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5204,6 +5477,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5224,6 +5498,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5244,6 +5519,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5264,6 +5540,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5284,6 +5561,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5304,6 +5582,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5324,6 +5603,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5344,6 +5624,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5364,6 +5645,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5384,6 +5666,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5404,6 +5687,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5424,6 +5708,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5444,6 +5729,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5464,6 +5750,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5484,6 +5771,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5504,6 +5792,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5524,6 +5813,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5544,6 +5834,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5564,6 +5855,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5584,6 +5876,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5604,6 +5897,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5624,6 +5918,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5644,6 +5939,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5664,6 +5960,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5684,6 +5981,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5704,6 +6002,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5724,6 +6023,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5744,6 +6044,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5764,6 +6065,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5784,6 +6086,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5804,6 +6107,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5824,6 +6128,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5844,6 +6149,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5864,6 +6170,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5885,6 +6192,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5906,6 +6214,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5927,6 +6236,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -5948,6 +6258,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5969,6 +6280,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -5990,6 +6302,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6011,6 +6324,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6032,6 +6346,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6053,6 +6368,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6074,6 +6390,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6095,6 +6412,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6116,6 +6434,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6137,6 +6456,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6158,6 +6478,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6179,6 +6500,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6200,6 +6522,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6221,6 +6544,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6242,6 +6566,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6263,6 +6588,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6284,6 +6610,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6305,6 +6632,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6326,6 +6654,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6347,6 +6676,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6368,6 +6698,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6389,6 +6720,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6410,6 +6742,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6431,6 +6764,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6452,6 +6786,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6473,6 +6808,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6494,6 +6830,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6515,6 +6852,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6536,6 +6874,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6557,6 +6896,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6578,6 +6918,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6599,6 +6940,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6620,6 +6962,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6638,6 +6981,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6653,6 +6997,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6668,6 +7013,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6683,6 +7029,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6698,6 +7045,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6713,6 +7061,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6728,6 +7077,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6743,6 +7093,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6758,6 +7109,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6773,6 +7125,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6788,6 +7141,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6803,6 +7157,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6818,6 +7173,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6833,6 +7189,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6848,6 +7205,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6863,6 +7221,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6878,6 +7237,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6893,6 +7253,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6908,6 +7269,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6923,6 +7285,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6938,6 +7301,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6953,6 +7317,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -6968,6 +7333,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6983,6 +7349,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -6998,6 +7365,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7013,6 +7381,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7028,6 +7397,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7043,6 +7413,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7058,6 +7429,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7073,6 +7445,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7088,6 +7461,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7103,6 +7477,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7118,6 +7493,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7133,6 +7509,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7148,6 +7525,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7163,6 +7541,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7178,6 +7557,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7193,6 +7573,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7208,6 +7589,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7223,6 +7605,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7238,6 +7621,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7253,6 +7637,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7268,6 +7653,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7283,6 +7669,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7298,6 +7685,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7313,6 +7701,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7328,6 +7717,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7343,6 +7733,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7358,6 +7749,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7373,6 +7765,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7388,6 +7781,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7403,6 +7797,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7418,6 +7813,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7433,6 +7829,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7448,6 +7845,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7463,6 +7861,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7478,6 +7877,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7493,6 +7893,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7508,6 +7909,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7523,6 +7925,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7538,6 +7941,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7553,6 +7957,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7568,6 +7973,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7583,6 +7989,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7598,6 +8005,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7613,6 +8021,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7628,6 +8037,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7643,6 +8053,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7658,6 +8069,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7673,6 +8085,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7688,6 +8101,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7703,6 +8117,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7718,6 +8133,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7733,6 +8149,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7748,6 +8165,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7763,6 +8181,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7778,6 +8197,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7793,6 +8213,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7808,6 +8229,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7823,6 +8245,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7838,6 +8261,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7853,6 +8277,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7868,6 +8293,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7883,6 +8309,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7898,6 +8325,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7913,6 +8341,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7928,6 +8357,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7943,6 +8373,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -7958,6 +8389,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7973,6 +8405,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -7988,6 +8421,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8003,6 +8437,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8018,6 +8453,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8033,6 +8469,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8048,6 +8485,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8063,6 +8501,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8078,6 +8517,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8093,6 +8533,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8108,6 +8549,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8123,6 +8565,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8138,6 +8581,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8153,6 +8597,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8168,6 +8613,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8183,6 +8629,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8198,6 +8645,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8213,6 +8661,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8228,6 +8677,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8243,6 +8693,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8260,6 +8711,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8280,6 +8732,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8300,6 +8753,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8320,6 +8774,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8340,6 +8795,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8360,6 +8816,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8380,6 +8837,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8400,6 +8858,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8420,6 +8879,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8440,6 +8900,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8460,6 +8921,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8480,6 +8942,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8500,6 +8963,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8520,6 +8984,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8540,6 +9005,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8560,6 +9026,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8580,6 +9047,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8600,6 +9068,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8620,6 +9089,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8640,6 +9110,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8660,6 +9131,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8680,6 +9152,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8700,6 +9173,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8720,6 +9194,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8740,6 +9215,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8760,6 +9236,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8780,6 +9257,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8800,6 +9278,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8820,6 +9299,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8840,6 +9320,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8860,6 +9341,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8880,6 +9362,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8900,6 +9383,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8920,6 +9404,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -8940,6 +9425,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8960,6 +9446,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -8980,6 +9467,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9000,6 +9488,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9020,6 +9509,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9040,6 +9530,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9060,6 +9551,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9080,6 +9572,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9100,6 +9593,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9120,6 +9614,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9140,6 +9635,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9160,6 +9656,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9180,6 +9677,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9200,6 +9698,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9220,6 +9719,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9240,6 +9740,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9260,6 +9761,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9280,6 +9782,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9300,6 +9803,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9320,6 +9824,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9340,6 +9845,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9360,6 +9866,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9380,6 +9887,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9400,6 +9908,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9420,6 +9929,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9440,6 +9950,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9460,6 +9971,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9480,6 +9992,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9500,6 +10013,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9520,6 +10034,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9540,6 +10055,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9560,6 +10076,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9580,6 +10097,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9600,6 +10118,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9620,6 +10139,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9640,6 +10160,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9660,6 +10181,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9680,6 +10202,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9700,6 +10223,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9720,6 +10244,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9740,6 +10265,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9760,6 +10286,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9780,6 +10307,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9800,6 +10328,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9820,6 +10349,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9840,6 +10370,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9860,6 +10391,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9880,6 +10412,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9900,6 +10433,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9920,6 +10454,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -9940,6 +10475,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9960,6 +10496,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -9980,6 +10517,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10000,6 +10538,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10020,6 +10559,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10040,6 +10580,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10060,6 +10601,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10080,6 +10622,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10100,6 +10643,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10120,6 +10664,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10140,6 +10685,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10160,6 +10706,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10180,6 +10727,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10201,6 +10749,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10222,6 +10771,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10243,6 +10793,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10264,6 +10815,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10285,6 +10837,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10306,6 +10859,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10327,6 +10881,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10348,6 +10903,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10369,6 +10925,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10390,6 +10947,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10411,6 +10969,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10432,6 +10991,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10453,6 +11013,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10474,6 +11035,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10495,6 +11057,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10516,6 +11079,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10537,6 +11101,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10558,6 +11123,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10579,6 +11145,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10600,6 +11167,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10621,6 +11189,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10642,6 +11211,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10663,6 +11233,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10684,6 +11255,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10705,6 +11277,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10726,6 +11299,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10747,6 +11321,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10768,6 +11343,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10789,6 +11365,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10810,6 +11387,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10830,6 +11408,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10850,6 +11429,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10870,6 +11450,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -10890,6 +11471,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10910,6 +11492,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10930,6 +11513,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10950,6 +11534,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10970,6 +11555,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -10990,6 +11576,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11010,6 +11597,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11030,6 +11618,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11050,6 +11639,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11070,6 +11660,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11090,6 +11681,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11110,6 +11702,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11130,6 +11723,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11150,6 +11744,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11170,6 +11765,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11190,6 +11786,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11210,6 +11807,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11230,6 +11828,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11250,6 +11849,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11270,6 +11870,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11290,6 +11891,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11310,6 +11912,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11330,6 +11933,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11350,6 +11954,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11370,6 +11975,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11390,6 +11996,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11410,6 +12017,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11430,6 +12038,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11451,6 +12060,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11472,6 +12082,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11493,6 +12104,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11514,6 +12126,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11535,6 +12148,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11556,6 +12170,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11577,6 +12192,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11598,6 +12214,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11619,6 +12236,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11640,6 +12258,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11661,6 +12280,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11682,6 +12302,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11703,6 +12324,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11724,6 +12346,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11745,6 +12368,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11766,6 +12390,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11787,6 +12412,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11808,6 +12434,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11829,6 +12456,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11850,6 +12478,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11871,6 +12500,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11892,6 +12522,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11913,6 +12544,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11934,6 +12566,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11955,6 +12588,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -11976,6 +12610,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -11997,6 +12632,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12018,6 +12654,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12039,6 +12676,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12060,6 +12698,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12081,6 +12720,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12102,6 +12742,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12123,6 +12764,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12144,6 +12786,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12165,6 +12808,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12186,6 +12830,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12204,6 +12849,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12219,6 +12865,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12234,6 +12881,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12249,6 +12897,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12264,6 +12913,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12279,6 +12929,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12294,6 +12945,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12309,6 +12961,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12324,6 +12977,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12339,6 +12993,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12354,6 +13009,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12369,6 +13025,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12384,6 +13041,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12399,6 +13057,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12414,6 +13073,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12429,6 +13089,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12444,6 +13105,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12459,6 +13121,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12474,6 +13137,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12489,6 +13153,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12504,6 +13169,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12519,6 +13185,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12534,6 +13201,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12549,6 +13217,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12564,6 +13233,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12579,6 +13249,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12594,6 +13265,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12609,6 +13281,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12624,6 +13297,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12639,6 +13313,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12654,6 +13329,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12669,6 +13345,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12684,6 +13361,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12699,6 +13377,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12714,6 +13393,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12729,6 +13409,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12746,6 +13427,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12766,6 +13448,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12786,6 +13469,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12806,6 +13490,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12826,6 +13511,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12846,6 +13532,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12866,6 +13553,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12886,6 +13574,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12906,6 +13595,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -12926,6 +13616,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12946,6 +13637,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12966,6 +13658,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -12986,6 +13679,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13006,6 +13700,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13026,6 +13721,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13046,6 +13742,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13066,6 +13763,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13086,6 +13784,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13106,6 +13805,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13126,6 +13826,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13146,6 +13847,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13166,6 +13868,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13186,6 +13889,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13206,6 +13910,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13226,6 +13931,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13246,6 +13952,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13266,6 +13973,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13286,6 +13994,7 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13306,6 +14015,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13326,6 +14036,7 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13347,6 +14058,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13368,6 +14080,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13389,6 +14102,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13410,6 +14124,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13431,6 +14146,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13452,6 +14168,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13473,6 +14190,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13494,6 +14212,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13515,6 +14234,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13536,6 +14256,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13557,6 +14278,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13578,6 +14300,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13599,6 +14322,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13620,6 +14344,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13641,6 +14366,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13662,6 +14388,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13683,6 +14410,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13704,6 +14432,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13725,6 +14454,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13746,6 +14476,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13767,6 +14498,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13788,6 +14520,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -13809,6 +14542,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13830,6 +14564,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13851,6 +14586,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13872,6 +14608,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13893,6 +14630,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13914,6 +14652,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13935,6 +14674,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13956,6 +14696,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13977,6 +14718,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -13997,6 +14739,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14016,6 +14759,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14035,6 +14779,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14054,6 +14799,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14073,6 +14819,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14092,6 +14839,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14111,6 +14859,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14130,6 +14879,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14149,6 +14899,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14168,6 +14919,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14187,6 +14939,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14206,6 +14959,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14225,6 +14979,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14244,6 +14999,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14263,6 +15019,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14282,6 +15039,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14301,6 +15059,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14320,6 +15079,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14339,6 +15099,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14358,6 +15119,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14377,6 +15139,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14396,6 +15159,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14415,6 +15179,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14434,6 +15199,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14453,6 +15219,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14472,6 +15239,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14491,6 +15259,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14510,6 +15279,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14529,6 +15299,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14548,6 +15319,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14567,6 +15339,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14586,6 +15359,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14605,6 +15379,7 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14624,6 +15399,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14643,6 +15419,7 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14660,6 +15437,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14675,6 +15453,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14690,6 +15469,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14705,6 +15485,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14720,6 +15501,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14735,6 +15517,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14750,6 +15533,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14765,6 +15549,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14780,6 +15565,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14795,6 +15581,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14810,6 +15597,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14825,6 +15613,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14840,6 +15629,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14855,6 +15645,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14870,6 +15661,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14885,6 +15677,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14900,6 +15693,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14915,6 +15709,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14930,6 +15725,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14945,6 +15741,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14960,6 +15757,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -14975,6 +15773,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -14990,6 +15789,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -15005,6 +15805,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -15020,6 +15821,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -15035,6 +15837,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -15050,6 +15853,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -15065,6 +15869,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -15080,6 +15885,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -15095,6 +15901,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -15110,6 +15917,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -15125,6 +15933,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -15140,6 +15949,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", @@ -15155,6 +15965,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -15170,6 +15981,7 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", @@ -15188,10 +16000,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15209,10 +16022,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15230,10 +16044,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15251,10 +16066,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15272,10 +16088,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15293,10 +16110,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15314,10 +16132,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15335,10 +16154,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15356,10 +16176,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15377,10 +16198,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15398,10 +16220,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15419,10 +16242,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15440,10 +16264,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15461,10 +16286,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15482,10 +16308,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15503,10 +16330,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15524,10 +16352,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15545,10 +16374,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15566,10 +16396,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15587,10 +16418,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15608,10 +16440,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15629,10 +16462,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15650,10 +16484,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15671,10 +16506,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15692,10 +16528,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15713,10 +16550,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15734,10 +16572,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15755,10 +16594,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15776,10 +16616,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15797,10 +16638,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15818,10 +16660,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15839,10 +16682,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15860,10 +16704,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15881,10 +16726,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15902,10 +16748,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_census_test", + "name": "h2_census_nosec_test", "platforms": [ "windows", "linux", @@ -15923,10 +16770,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -15944,10 +16792,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -15965,10 +16814,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -15986,10 +16836,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16007,10 +16858,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16028,10 +16880,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16049,10 +16902,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16070,10 +16924,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16091,10 +16946,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16112,10 +16968,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16133,10 +16990,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16154,10 +17012,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16175,10 +17034,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16196,10 +17056,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16217,10 +17078,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16238,10 +17100,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16259,10 +17122,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16280,10 +17144,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16301,10 +17166,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16322,10 +17188,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16343,10 +17210,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16364,10 +17232,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16385,10 +17254,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16406,10 +17276,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16427,10 +17298,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16448,10 +17320,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16469,10 +17342,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16490,10 +17364,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16511,10 +17386,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16532,10 +17408,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16553,10 +17430,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16574,10 +17452,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16595,10 +17474,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16616,10 +17496,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16637,10 +17518,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_compress_test", + "name": "h2_compress_nosec_test", "platforms": [ "windows", "linux", @@ -16658,10 +17540,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16679,10 +17562,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16700,10 +17584,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16721,10 +17606,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16742,10 +17628,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16763,10 +17650,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16784,10 +17672,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16805,10 +17694,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16826,10 +17716,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16847,10 +17738,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16868,10 +17760,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16889,10 +17782,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16910,10 +17804,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16931,10 +17826,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16952,10 +17848,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16973,10 +17870,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -16994,10 +17892,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17015,10 +17914,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17036,10 +17936,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17057,10 +17958,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17078,10 +17980,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17099,10 +18002,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17120,10 +18024,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17141,10 +18046,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17162,10 +18068,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17183,10 +18090,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17204,10 +18112,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17225,10 +18134,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17246,10 +18156,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17267,10 +18178,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17288,10 +18200,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17309,10 +18222,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17330,10 +18244,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17351,10 +18266,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17372,10 +18288,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full_test", + "name": "h2_full_nosec_test", "platforms": [ "windows", "linux", @@ -17390,10 +18307,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17405,10 +18323,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17420,10 +18339,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17435,10 +18355,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17450,10 +18371,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17465,10 +18387,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17480,10 +18403,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17495,10 +18419,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17510,10 +18435,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17525,10 +18451,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17540,10 +18467,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17555,10 +18483,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17570,10 +18499,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17585,10 +18515,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17600,10 +18531,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17615,10 +18547,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17630,10 +18563,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17645,10 +18579,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17660,10 +18595,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17675,10 +18611,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17690,10 +18627,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17705,10 +18643,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17720,10 +18659,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17735,10 +18675,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17750,10 +18691,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17765,10 +18707,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17780,10 +18723,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17795,10 +18739,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17810,10 +18755,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17825,10 +18771,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17840,10 +18787,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17855,10 +18803,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17870,10 +18819,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17885,10 +18835,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17900,10 +18851,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+pipe_test", + "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" ] @@ -17915,10 +18867,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -17930,10 +18883,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -17945,10 +18899,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -17960,10 +18915,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -17975,10 +18931,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -17990,10 +18947,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18005,10 +18963,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18020,10 +18979,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18035,10 +18995,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18050,10 +19011,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18065,10 +19027,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18080,10 +19043,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18095,10 +19059,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18110,10 +19075,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18125,10 +19091,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18140,10 +19107,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18155,10 +19123,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18170,10 +19139,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18185,10 +19155,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18200,10 +19171,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18215,10 +19187,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18230,10 +19203,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18245,10 +19219,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18260,10 +19235,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18275,10 +19251,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18290,10 +19267,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18305,10 +19283,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18320,10 +19299,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18335,10 +19315,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18350,10 +19331,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18365,10 +19347,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18380,10 +19363,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18395,10 +19379,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18410,10 +19395,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18425,10 +19411,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll_test", + "name": "h2_full+poll_nosec_test", "platforms": [ "linux" ] @@ -18440,10 +19427,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18455,10 +19443,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18470,10 +19459,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18485,10 +19475,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18500,10 +19491,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18515,10 +19507,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18530,10 +19523,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18545,10 +19539,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18560,10 +19555,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18575,10 +19571,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18590,10 +19587,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18605,10 +19603,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18620,10 +19619,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18635,10 +19635,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18650,10 +19651,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18665,10 +19667,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18680,10 +19683,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18695,10 +19699,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18710,10 +19715,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18725,10 +19731,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18740,10 +19747,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18755,10 +19763,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18770,10 +19779,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18785,10 +19795,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18800,10 +19811,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18815,10 +19827,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18830,10 +19843,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18845,10 +19859,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18860,10 +19875,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18875,10 +19891,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18890,10 +19907,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18905,10 +19923,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18920,10 +19939,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18935,10 +19955,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18950,10 +19971,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_full+poll+pipe_test", + "name": "h2_full+poll+pipe_nosec_test", "platforms": [ "linux" ] @@ -18967,10 +19989,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -18987,10 +20010,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19007,10 +20031,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19027,10 +20052,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19047,10 +20073,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19067,10 +20094,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19087,10 +20115,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19107,10 +20136,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19127,10 +20157,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19147,10 +20178,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19167,10 +20199,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19187,10 +20220,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19207,10 +20241,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19227,10 +20262,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19247,10 +20283,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19267,10 +20304,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19287,10 +20325,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19307,10 +20346,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19327,10 +20367,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19347,10 +20388,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19367,10 +20409,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19387,10 +20430,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19407,10 +20451,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19427,10 +20472,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19447,10 +20493,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19467,10 +20514,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19487,10 +20535,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19507,10 +20556,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19527,10 +20577,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_proxy_test", + "name": "h2_proxy_nosec_test", "platforms": [ "windows", "linux", @@ -19547,10 +20598,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19567,10 +20619,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19587,10 +20640,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19607,10 +20661,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19627,10 +20682,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19647,10 +20703,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19667,10 +20724,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19687,10 +20745,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19707,10 +20766,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19727,10 +20787,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19747,10 +20808,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19767,10 +20829,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19787,10 +20850,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19807,10 +20871,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19827,10 +20892,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19847,10 +20913,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19867,10 +20934,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19887,10 +20955,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19907,10 +20976,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19927,10 +20997,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19947,10 +21018,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19967,10 +21039,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -19987,10 +21060,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -20007,10 +21081,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -20027,10 +21102,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -20047,10 +21123,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -20067,10 +21144,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -20087,10 +21165,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -20107,10 +21186,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -20127,10 +21207,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_test", + "name": "h2_sockpair_nosec_test", "platforms": [ "windows", "linux", @@ -20148,10 +21229,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20169,10 +21251,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20190,10 +21273,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20211,10 +21295,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20232,10 +21317,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20253,10 +21339,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20274,10 +21361,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20295,10 +21383,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20316,10 +21405,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20337,10 +21427,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20358,10 +21449,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20379,10 +21471,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20400,10 +21493,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20421,10 +21515,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20442,10 +21537,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20463,10 +21559,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20484,10 +21581,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20505,10 +21603,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20526,10 +21625,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20547,10 +21647,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20568,10 +21669,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20589,10 +21691,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20610,10 +21713,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20631,10 +21735,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20652,10 +21757,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20673,10 +21779,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20694,10 +21801,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20715,10 +21823,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20736,10 +21845,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair+trace_test", + "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", "linux", @@ -20756,10 +21866,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20776,10 +21887,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20796,10 +21908,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20816,10 +21929,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20836,10 +21950,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20856,10 +21971,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20876,10 +21992,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20896,10 +22013,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20916,10 +22034,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20936,10 +22055,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20956,10 +22076,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20976,10 +22097,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -20996,10 +22118,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21016,10 +22139,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21036,10 +22160,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21056,10 +22181,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21076,10 +22202,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21096,10 +22223,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21116,10 +22244,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21136,10 +22265,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21156,10 +22286,11 @@ "linux", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21176,10 +22307,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21196,10 +22328,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21216,10 +22349,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21236,10 +22370,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21256,10 +22391,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21276,10 +22412,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21296,10 +22433,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21316,10 +22454,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21336,10 +22475,11 @@ "linux", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_sockpair_1byte_test", + "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", "linux", @@ -21357,10 +22497,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21378,10 +22519,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21399,10 +22541,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21420,10 +22563,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21441,10 +22585,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21462,10 +22607,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21483,10 +22629,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21504,10 +22651,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21525,10 +22673,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21546,10 +22695,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21567,10 +22717,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21588,10 +22739,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21609,10 +22761,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21630,10 +22783,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21651,10 +22805,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21672,10 +22827,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21693,10 +22849,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21714,10 +22871,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21735,10 +22893,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21756,10 +22915,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21777,10 +22937,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21798,10 +22959,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21819,10 +22981,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21840,10 +23003,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21861,10 +23025,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21882,10 +23047,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21903,10 +23069,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21924,10 +23091,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21945,10 +23113,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21966,10 +23135,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uchannel_test", + "name": "h2_uchannel_nosec_test", "platforms": [ "windows", "linux", @@ -21986,10 +23156,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22005,10 +23176,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22024,10 +23196,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22043,10 +23216,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22062,10 +23236,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22081,10 +23256,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22100,10 +23276,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22119,10 +23296,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22138,10 +23316,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22157,10 +23336,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22176,10 +23356,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22195,10 +23376,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22214,10 +23396,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22233,10 +23416,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22252,10 +23436,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22271,10 +23456,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22290,10 +23476,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22309,10 +23496,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22328,10 +23516,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22347,10 +23536,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22366,10 +23556,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22385,10 +23576,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22404,10 +23596,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22423,10 +23616,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22442,10 +23636,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22461,10 +23656,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22480,10 +23676,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22499,10 +23696,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22518,10 +23716,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22537,10 +23736,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22556,10 +23756,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22575,10 +23776,11 @@ "mac", "posix" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22594,10 +23796,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22613,10 +23816,11 @@ "mac", "posix" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds_test", + "name": "h2_uds_nosec_test", "platforms": [ "linux", "mac", @@ -22630,10 +23834,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22645,10 +23850,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22660,10 +23866,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22675,10 +23882,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22690,10 +23898,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22705,10 +23914,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22720,10 +23930,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22735,10 +23946,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22750,10 +23962,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22765,10 +23978,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22780,10 +23994,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22795,10 +24010,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22810,10 +24026,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22825,10 +24042,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22840,10 +24058,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22855,10 +24074,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22870,10 +24090,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22885,10 +24106,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22900,10 +24122,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22915,10 +24138,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22930,10 +24154,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22945,10 +24170,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22960,10 +24186,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22975,10 +24202,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -22990,10 +24218,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -23005,10 +24234,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -23020,10 +24250,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -23035,10 +24266,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -23050,10 +24282,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -23065,10 +24298,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -23080,10 +24314,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -23095,10 +24330,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -23110,10 +24346,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] @@ -23125,10 +24362,11 @@ "ci_platforms": [ "linux" ], + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "language": "c", - "name": "h2_uds+poll_test", + "name": "h2_uds+poll_nosec_test", "platforms": [ "linux" ] diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000000..a655935219 --- /dev/null +++ b/tox.ini @@ -0,0 +1,26 @@ +# GRPC Python tox (test environment) settings +[tox] +skipsdist = true +envlist = py27 + +[testenv] +setenv = + PYGRPC_ROOT = {toxinidir}/src/python/grpcio/ +commands = + {envpython} setup.py build_py + {envpython} setup.py test + {envbindir}/coverage combine +# TODO(atash): we currently ignore cygrpc.pyx due to an insufficiency in Cython's coverage plug-in. Discussion is ongoing. + {envbindir}/coverage html --include='{env:PYGRPC_ROOT}/grpc/*' --omit='{env:PYGRPC_ROOT}/grpc/framework/alpha/*','{env:PYGRPC_ROOT}/grpc/early_adopter/*','{env:PYGRPC_ROOT}/grpc/framework/base/*','{env:PYGRPC_ROOT}/grpc/framework/face/*','{env:PYGRPC_ROOT}/grpc/_adapter/fore.py','{env:PYGRPC_ROOT}/grpc/_adapter/rear.py','{env:PYGRPC_ROOT}/grpc/_cython/cygrpc.pyx' + {envbindir}/coverage report --include='{env:PYGRPC_ROOT}/grpc/*' --omit='{env:PYGRPC_ROOT}/grpc/framework/alpha/*','{env:PYGRPC_ROOT}/grpc/early_adopter/*','{env:PYGRPC_ROOT}/grpc/framework/base/*','{env:PYGRPC_ROOT}/grpc/framework/face/*','{env:PYGRPC_ROOT}/grpc/_adapter/fore.py','{env:PYGRPC_ROOT}/grpc/_adapter/rear.py','{env:PYGRPC_ROOT}/grpc/_cython/cygrpc.pyx' +deps = + -rrequirements.txt +passenv = * + +[testenv:interop_client] +commands = + {envpython} setup.py run_interop --client --args='{posargs}' + +[testenv:interop_server] +commands = + {envpython} setup.py run_interop --server --args='{posargs}' diff --git a/vsprojects/grpc_csharp_ext.sln b/vsprojects/grpc_csharp_ext.sln index 1c824963f2..11d2204ba5 100644 --- a/vsprojects/grpc_csharp_ext.sln +++ b/vsprojects/grpc_csharp_ext.sln @@ -29,8 +29,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_csharp_ext", "vcxproj\ lib = "True" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject Global diff --git a/vsprojects/nuget_package/buildall.bat b/vsprojects/nuget_package/buildall.bat index 65aac3aa68..e6cd0ac421 100644 --- a/vsprojects/nuget_package/buildall.bat +++ b/vsprojects/nuget_package/buildall.bat @@ -1,10 +1,10 @@ @echo off -REM setlocal -REM call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 -REM call :build x64 Release v140 || goto :eof -REM call :build x64 Debug v140 || goto :eof -REM endlocal +setlocal +call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 +call :build x64 Release v140 || goto :eof +call :build x64 Debug v140 || goto :eof +endlocal setlocal call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 @@ -12,11 +12,11 @@ call :build Win32 Release v140 || goto :eof call :build Win32 Debug v140 || goto :eof endlocal -REM setlocal -REM call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" amd64 -REM call :build x64 Release v120 || goto :eof -REM call :build x64 Debug v120 || goto :eof -REM endlocal +setlocal +call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" amd64 +call :build x64 Release v120 || goto :eof +call :build x64 Debug v120 || goto :eof +endlocal setlocal call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86 @@ -24,34 +24,8 @@ call :build Win32 Release v120 || goto :eof call :build Win32 Debug v120 || goto :eof endlocal -REM setlocal -REM call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" amd64 -REM call :build x64 Release v110 || goto :eof -REM call :build x64 Debug v110 || goto :eof -REM endlocal - -REM setlocal -REM call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86 -REM call :build Win32 Release v110 || goto :eof -REM call :build Win32 Debug v110 || goto :eof -REM endlocal - -REM setlocal -REM call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" amd64 -REM call :build x64 Release v100 || goto :eof -REM call :build x64 Debug v100 || goto :eof -REM endlocal - -setlocal -call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 -call :build Win32 Release v100 || goto :eof -call :build Win32 Debug v100 || goto :eof -endlocal - goto :eof :build msbuild /P:Platform=%1 /P:Configuration=%2 /P:PlatformToolset=%3 /P:OutDir=..\..\nuget_package\output\%3\%1\%2\ /P:IntDir=..\..\nuget_package\tmp\%3\%1\%2\ ..\grpc_csharp_ext.sln || goto :eof goto :eof - - diff --git a/vsprojects/nuget_package/grpc.native.csharp.nuspec b/vsprojects/nuget_package/grpc.native.csharp.nuspec index 0f65d1e1a1..72b9a79d89 100644 --- a/vsprojects/nuget_package/grpc.native.csharp.nuspec +++ b/vsprojects/nuget_package/grpc.native.csharp.nuspec @@ -14,22 +14,19 @@ <title>gRPC C# Native Extension</title> <summary>Native library required by gRPC C#</summary> <tags>gRPC native</tags> - <dependencies> - <dependency id="grpc.dependencies.zlib.redist" version="1.2.8.10" /> - <dependency id="grpc.dependencies.openssl.redist" version="1.0.204.1" /> - </dependencies> </metadata> <files> <file src="grpc.native.csharp.targets" target="\build\portable-net45+netcore45+wpa81+wp8\grpc.native.csharp.targets" /> - - <!-- VS 2010 --> - <file src="output\v100\Win32\Release\grpc_csharp_ext.dll" target="/build/native/bin/v100\Win32\Release\grpc_csharp_ext.dll" /> - <file src="output\v100\Win32\Debug\grpc_csharp_ext.dll" target="/build/native/bin/v100\Win32\Debug\grpc_csharp_ext.dll" /> + <!-- VS 2013 --> <file src="output\v120\Win32\Debug\grpc_csharp_ext.dll" target="/build/native/bin/v120\Win32\Debug\grpc_csharp_ext.dll" /> <file src="output\v120\Win32\Release\grpc_csharp_ext.dll" target="/build/native/bin/v120\Win32\Release\grpc_csharp_ext.dll" /> + <file src="output\v120\x64\Debug\grpc_csharp_ext.dll" target="/build/native/bin/v120\x64\Debug\grpc_csharp_ext.dll" /> + <file src="output\v120\x64\Release\grpc_csharp_ext.dll" target="/build/native/bin/v120\x64\Release\grpc_csharp_ext.dll" /> <!-- VS 2015 --> <file src="output\v140\Win32\Debug\grpc_csharp_ext.dll" target="/build/native/bin/v140\Win32\Debug\grpc_csharp_ext.dll" /> <file src="output\v140\Win32\Release\grpc_csharp_ext.dll" target="/build/native/bin/v140\Win32\Release\grpc_csharp_ext.dll" /> + <file src="output\v140\x64\Debug\grpc_csharp_ext.dll" target="/build/native/bin/v140\x64\Debug\grpc_csharp_ext.dll" /> + <file src="output\v140\x64\Release\grpc_csharp_ext.dll" target="/build/native/bin/v140\x64\Release\grpc_csharp_ext.dll" /> </files> </package> diff --git a/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj b/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj index 72a6837dff..299fdaf773 100644 --- a/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj +++ b/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj @@ -153,29 +153,29 @@ <ClInclude Include="$(SolutionDir)\..\test\cpp\util\subprocess.h" /> </ItemGroup> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\cpp\util\messages.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\cpp\util\messages.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\cpp\util\messages.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\cpp\util\messages.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\cpp\util\echo.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\cpp\util\echo.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\cpp\util\echo.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\cpp\util\echo.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\cpp\util\echo_duplicate.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\cpp\util\echo_duplicate.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\cpp\util\echo_duplicate.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\cpp\util\echo_duplicate.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.grpc.pb.h"> </ClInclude> <ClCompile Include="$(SolutionDir)\..\test\cpp\util\cli_call.cc"> </ClCompile> 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 6db4efe78f..70addd61b1 100644 --- a/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj.filters +++ b/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj.filters @@ -1,14 +1,14 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\cpp\util\messages.proto"> - <Filter>test\cpp\util</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\cpp\util\echo.proto"> - <Filter>test\cpp\util</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\cpp\util\echo_duplicate.proto"> - <Filter>test\cpp\util</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.proto"> + <Filter>src\proto\grpc\testing\duplicate</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\cpp\util\cli_call.cc"> <Filter>test\cpp\util</Filter> @@ -39,6 +39,21 @@ </ItemGroup> <ItemGroup> + <Filter Include="src"> + <UniqueIdentifier>{21f220cf-c756-4172-000b-e8a1f0888097}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto"> + <UniqueIdentifier>{58b0e1e0-f329-64ce-86e5-8f125c02b96e}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc"> + <UniqueIdentifier>{f3daac52-2bfd-362e-9a76-04cd7a90aa34}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc\testing"> + <UniqueIdentifier>{3df5f11f-e018-1126-8c22-291540035aa8}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc\testing\duplicate"> + <UniqueIdentifier>{4063b792-4f0a-a558-d4b1-0543a2b9fdeb}</UniqueIdentifier> + </Filter> <Filter Include="test"> <UniqueIdentifier>{b1aaa210-fe1d-859a-67b3-95a2b286ec99}</UniqueIdentifier> </Filter> diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj index 9d646153e2..8d6800e9d3 100644 --- a/vsprojects/vcxproj/grpc/grpc.vcxproj +++ b/vsprojects/vcxproj/grpc/grpc.vcxproj @@ -88,12 +88,14 @@ <TargetName>grpc</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'"> @@ -640,6 +642,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\server_create.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\surface\validate_metadata.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\version.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\transport\byte_stream.c"> diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters index 055256a7e8..f29f881595 100644 --- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters +++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters @@ -352,6 +352,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\surface\server_create.c"> <Filter>src\core\surface</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\surface\validate_metadata.c"> + <Filter>src\core\surface</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\version.c"> <Filter>src\core\surface</Filter> </ClCompile> diff --git a/vsprojects/vcxproj/grpc_csharp_ext/grpc_csharp_ext.vcxproj b/vsprojects/vcxproj/grpc_csharp_ext/grpc_csharp_ext.vcxproj index aa37d1dbea..680008cf7d 100644 --- a/vsprojects/vcxproj/grpc_csharp_ext/grpc_csharp_ext.vcxproj +++ b/vsprojects/vcxproj/grpc_csharp_ext/grpc_csharp_ext.vcxproj @@ -63,12 +63,14 @@ <TargetName>grpc_csharp_ext</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_csharp_ext</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> @@ -160,12 +162,12 @@ </ClCompile> </ItemGroup> <ItemGroup> - <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj"> - <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project> - </ProjectReference> <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc\grpc.vcxproj"> <Project>{29D16885-7228-4C31-81ED-5F9187C7F2A9}</Project> </ProjectReference> + <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj"> + <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project> + </ProjectReference> </ItemGroup> <ItemGroup> <None Include="packages.config" /> diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj index b2965212bb..78ffe148e5 100644 --- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj +++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj @@ -578,6 +578,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\server_create.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\surface\validate_metadata.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\version.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\transport\byte_stream.c"> diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters index e30ca5f685..e068c3fe18 100644 --- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters @@ -292,6 +292,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\surface\server_create.c"> <Filter>src\core\surface</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\surface\validate_metadata.c"> + <Filter>src\core\surface</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\version.c"> <Filter>src\core\surface</Filter> </ClCompile> diff --git a/vsprojects/vcxproj/interop_client_helper/interop_client_helper.vcxproj b/vsprojects/vcxproj/interop_client_helper/interop_client_helper.vcxproj index dcf5e80fa4..7a8a4b362f 100644 --- a/vsprojects/vcxproj/interop_client_helper/interop_client_helper.vcxproj +++ b/vsprojects/vcxproj/interop_client_helper/interop_client_helper.vcxproj @@ -150,13 +150,13 @@ <ClInclude Include="$(SolutionDir)\..\test\cpp\interop\client_helper.h" /> </ItemGroup> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.h"> </ClInclude> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\client_helper.cc"> </ClCompile> diff --git a/vsprojects/vcxproj/interop_client_helper/interop_client_helper.vcxproj.filters b/vsprojects/vcxproj/interop_client_helper/interop_client_helper.vcxproj.filters index 0aad79bedb..466ef8ba9a 100644 --- a/vsprojects/vcxproj/interop_client_helper/interop_client_helper.vcxproj.filters +++ b/vsprojects/vcxproj/interop_client_helper/interop_client_helper.vcxproj.filters @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\client_helper.cc"> <Filter>test\cpp\interop</Filter> @@ -15,6 +15,18 @@ </ItemGroup> <ItemGroup> + <Filter Include="src"> + <UniqueIdentifier>{f00fc868-0efd-6675-4891-42af1833c479}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto"> + <UniqueIdentifier>{3c09bd5f-4d22-1faf-1a58-32118a5473e6}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc"> + <UniqueIdentifier>{0c11c3d3-d0b6-7803-39c4-8521b045464e}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc\testing"> + <UniqueIdentifier>{0e888b7f-bacf-f718-56cf-e2db104e2263}</UniqueIdentifier> + </Filter> <Filter Include="test"> <UniqueIdentifier>{2164d474-4a93-f014-982c-30ff23cb7ba5}</UniqueIdentifier> </Filter> @@ -24,9 +36,6 @@ <Filter Include="test\cpp\interop"> <UniqueIdentifier>{d07b9253-17d2-d5cf-0cbb-86223b2591b9}</UniqueIdentifier> </Filter> - <Filter Include="test\proto"> - <UniqueIdentifier>{00d5cdb1-193e-96f6-44cf-9a71c61dd117}</UniqueIdentifier> - </Filter> </ItemGroup> </Project> diff --git a/vsprojects/vcxproj/interop_client_main/interop_client_main.vcxproj b/vsprojects/vcxproj/interop_client_main/interop_client_main.vcxproj index a8a758d8f6..b85c713194 100644 --- a/vsprojects/vcxproj/interop_client_main/interop_client_main.vcxproj +++ b/vsprojects/vcxproj/interop_client_main/interop_client_main.vcxproj @@ -150,29 +150,29 @@ <ClInclude Include="$(SolutionDir)\..\test\cpp\interop\interop_client.h" /> </ItemGroup> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\empty.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\empty.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\test.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\test.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\test.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\test.grpc.pb.h"> </ClInclude> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\client.cc"> </ClCompile> diff --git a/vsprojects/vcxproj/interop_client_main/interop_client_main.vcxproj.filters b/vsprojects/vcxproj/interop_client_main/interop_client_main.vcxproj.filters index 1e4990b134..4925cf4955 100644 --- a/vsprojects/vcxproj/interop_client_main/interop_client_main.vcxproj.filters +++ b/vsprojects/vcxproj/interop_client_main/interop_client_main.vcxproj.filters @@ -1,14 +1,14 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\client.cc"> <Filter>test\cpp\interop</Filter> @@ -24,6 +24,18 @@ </ItemGroup> <ItemGroup> + <Filter Include="src"> + <UniqueIdentifier>{14f6df92-cbdd-4e46-2357-47b6ad60530a}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto"> + <UniqueIdentifier>{5c42148f-df9d-b35f-748d-30c00eb3be96}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc"> + <UniqueIdentifier>{049f0174-42f7-6e52-a411-146353ad7e89}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc\testing"> + <UniqueIdentifier>{02f16533-e225-b418-f5b0-d118ad8534ad}</UniqueIdentifier> + </Filter> <Filter Include="test"> <UniqueIdentifier>{bd02b37c-f3ec-86c0-0511-d2e1feeae251}</UniqueIdentifier> </Filter> @@ -33,9 +45,6 @@ <Filter Include="test\cpp\interop"> <UniqueIdentifier>{7b56f732-09fc-3a65-4d2e-bcdd9ce4309d}</UniqueIdentifier> </Filter> - <Filter Include="test\proto"> - <UniqueIdentifier>{243fbb01-7396-5edc-5680-2aed26221188}</UniqueIdentifier> - </Filter> </ItemGroup> </Project> diff --git a/vsprojects/vcxproj/interop_server_main/interop_server_main.vcxproj b/vsprojects/vcxproj/interop_server_main/interop_server_main.vcxproj index b847b78d5d..69f80a8e59 100644 --- a/vsprojects/vcxproj/interop_server_main/interop_server_main.vcxproj +++ b/vsprojects/vcxproj/interop_server_main/interop_server_main.vcxproj @@ -147,29 +147,29 @@ </ItemDefinitionGroup> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\empty.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\empty.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\test.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\test.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\test.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\test.grpc.pb.h"> </ClInclude> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\server.cc"> </ClCompile> diff --git a/vsprojects/vcxproj/interop_server_main/interop_server_main.vcxproj.filters b/vsprojects/vcxproj/interop_server_main/interop_server_main.vcxproj.filters index e5bdb783cc..8a9ff2704a 100644 --- a/vsprojects/vcxproj/interop_server_main/interop_server_main.vcxproj.filters +++ b/vsprojects/vcxproj/interop_server_main/interop_server_main.vcxproj.filters @@ -1,14 +1,14 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\server.cc"> <Filter>test\cpp\interop</Filter> @@ -16,6 +16,18 @@ </ItemGroup> <ItemGroup> + <Filter Include="src"> + <UniqueIdentifier>{9dfb04b3-9e58-7efb-70a2-b02ec8c5e83e}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto"> + <UniqueIdentifier>{ebd8177f-6130-a4fb-1c41-d894f801e3b9}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc"> + <UniqueIdentifier>{1df1acf2-4654-4530-10af-912381c69012}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc\testing"> + <UniqueIdentifier>{ba56d830-1546-c07f-f5ee-03164e41914e}</UniqueIdentifier> + </Filter> <Filter Include="test"> <UniqueIdentifier>{02523054-816a-75a0-b24b-f527e99c7142}</UniqueIdentifier> </Filter> @@ -25,9 +37,6 @@ <Filter Include="test\cpp\interop"> <UniqueIdentifier>{ca4121b0-3c58-ad24-318c-1d1684152ce1}</UniqueIdentifier> </Filter> - <Filter Include="test\proto"> - <UniqueIdentifier>{0d66af43-d873-cae8-4c0c-f953772dfc11}</UniqueIdentifier> - </Filter> </ItemGroup> </Project> diff --git a/vsprojects/vcxproj/qps/qps.vcxproj b/vsprojects/vcxproj/qps/qps.vcxproj index fcd917b8e9..0b017e71c1 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj +++ b/vsprojects/vcxproj/qps/qps.vcxproj @@ -160,53 +160,53 @@ <ClInclude Include="$(SolutionDir)\..\test\cpp\util\benchmark_config.h" /> </ItemGroup> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\control.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\control.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\benchmarks\control.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\control.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\control.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\control.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\benchmarks\control.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\control.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\payloads.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\payloads.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\benchmarks\payloads.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\payloads.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\payloads.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\payloads.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\benchmarks\payloads.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\payloads.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\services.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\services.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\benchmarks\services.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\services.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\services.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\services.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\benchmarks\services.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\services.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\stats.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\benchmarks\stats.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\stats.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\benchmarks\stats.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\cpp\qps\perf_db.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\cpp\qps\perf_db.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\cpp\qps\perf_db.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\cpp\qps\perf_db.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.grpc.pb.h"> </ClInclude> <ClCompile Include="$(SolutionDir)\..\test\cpp\qps\client_async.cc"> </ClCompile> diff --git a/vsprojects/vcxproj/qps/qps.vcxproj.filters b/vsprojects/vcxproj/qps/qps.vcxproj.filters index 0c4668ca39..f575eae6ca 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj.filters +++ b/vsprojects/vcxproj/qps/qps.vcxproj.filters @@ -1,23 +1,23 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\control.proto"> - <Filter>test\proto\benchmarks</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\control.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\payloads.proto"> - <Filter>test\proto\benchmarks</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\payloads.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\services.proto"> - <Filter>test\proto\benchmarks</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\services.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\benchmarks\stats.proto"> - <Filter>test\proto\benchmarks</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\cpp\qps\perf_db.proto"> - <Filter>test\cpp\qps</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\cpp\qps\client_async.cc"> <Filter>test\cpp\qps</Filter> @@ -87,6 +87,18 @@ </ItemGroup> <ItemGroup> + <Filter Include="src"> + <UniqueIdentifier>{0a68b7ce-1b1a-8927-e173-5e8d7ebecf8a}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto"> + <UniqueIdentifier>{7e654fb3-2440-c5ad-9cc1-c6c425cd91bd}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc"> + <UniqueIdentifier>{d95c9d8c-ad29-576f-c974-aafa292a361e}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc\testing"> + <UniqueIdentifier>{0878a4bc-7ae5-7cad-e2e1-3a91cc0e7b59}</UniqueIdentifier> + </Filter> <Filter Include="test"> <UniqueIdentifier>{2d898a55-573b-f256-2336-bddd04eb7c70}</UniqueIdentifier> </Filter> @@ -99,12 +111,6 @@ <Filter Include="test\cpp\util"> <UniqueIdentifier>{9042d134-6d5a-a907-799e-01768a475055}</UniqueIdentifier> </Filter> - <Filter Include="test\proto"> - <UniqueIdentifier>{44e63a33-67f4-0575-e87a-711a7c9111e2}</UniqueIdentifier> - </Filter> - <Filter Include="test\proto\benchmarks"> - <UniqueIdentifier>{4180a094-39b4-e46c-1576-940bfe87d284}</UniqueIdentifier> - </Filter> </ItemGroup> </Project> diff --git a/vsprojects/vcxproj/test/algorithm_test/algorithm_test.vcxproj b/vsprojects/vcxproj/test/algorithm_test/algorithm_test.vcxproj index fbe4bdb370..faffd2b30d 100644 --- a/vsprojects/vcxproj/test/algorithm_test/algorithm_test.vcxproj +++ b/vsprojects/vcxproj/test/algorithm_test/algorithm_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>algorithm_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>algorithm_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/alloc_test/alloc_test.vcxproj b/vsprojects/vcxproj/test/alloc_test/alloc_test.vcxproj index cc929d572f..0f8380a773 100644 --- a/vsprojects/vcxproj/test/alloc_test/alloc_test.vcxproj +++ b/vsprojects/vcxproj/test/alloc_test/alloc_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>alloc_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>alloc_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/alpn_test/alpn_test.vcxproj b/vsprojects/vcxproj/test/alpn_test/alpn_test.vcxproj index 16f129eb19..11890a4a44 100644 --- a/vsprojects/vcxproj/test/alpn_test/alpn_test.vcxproj +++ b/vsprojects/vcxproj/test/alpn_test/alpn_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>alpn_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>alpn_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/async_end2end_test/async_end2end_test.vcxproj b/vsprojects/vcxproj/test/async_end2end_test/async_end2end_test.vcxproj index f12a683742..45c1c29cd6 100644 --- a/vsprojects/vcxproj/test/async_end2end_test/async_end2end_test.vcxproj +++ b/vsprojects/vcxproj/test/async_end2end_test/async_end2end_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>async_end2end_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>async_end2end_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/auth_property_iterator_test/auth_property_iterator_test.vcxproj b/vsprojects/vcxproj/test/auth_property_iterator_test/auth_property_iterator_test.vcxproj index 8d28efa2f2..bea9ad3425 100644 --- a/vsprojects/vcxproj/test/auth_property_iterator_test/auth_property_iterator_test.vcxproj +++ b/vsprojects/vcxproj/test/auth_property_iterator_test/auth_property_iterator_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>auth_property_iterator_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>auth_property_iterator_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/badreq_bad_client_test/badreq_bad_client_test.vcxproj b/vsprojects/vcxproj/test/badreq_bad_client_test/badreq_bad_client_test.vcxproj index 5f326054cf..9f8d80e0ba 100644 --- a/vsprojects/vcxproj/test/badreq_bad_client_test/badreq_bad_client_test.vcxproj +++ b/vsprojects/vcxproj/test/badreq_bad_client_test/badreq_bad_client_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>badreq_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>badreq_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/bin_encoder_test/bin_encoder_test.vcxproj b/vsprojects/vcxproj/test/bin_encoder_test/bin_encoder_test.vcxproj index b59a215516..82998bea93 100644 --- a/vsprojects/vcxproj/test/bin_encoder_test/bin_encoder_test.vcxproj +++ b/vsprojects/vcxproj/test/bin_encoder_test/bin_encoder_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>bin_encoder_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>bin_encoder_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_aead_test/boringssl_aead_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_aead_test/boringssl_aead_test.vcxproj index 0a4b2d23e3..870222239c 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_aead_test/boringssl_aead_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_aead_test/boringssl_aead_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_aead_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_aead_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_aes_test/boringssl_aes_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_aes_test/boringssl_aes_test.vcxproj index 81460934d0..20fc686854 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_aes_test/boringssl_aes_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_aes_test/boringssl_aes_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_aes_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_aes_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_base64_test/boringssl_base64_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_base64_test/boringssl_base64_test.vcxproj index bc4c5bd04e..b986ec1766 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_base64_test/boringssl_base64_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_base64_test/boringssl_base64_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_base64_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_base64_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_bio_test/boringssl_bio_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_bio_test/boringssl_bio_test.vcxproj index d676a37cd4..3119acc057 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_bio_test/boringssl_bio_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_bio_test/boringssl_bio_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_bio_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_bio_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_bn_test/boringssl_bn_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_bn_test/boringssl_bn_test.vcxproj index 55abb2ea8a..26e2ccd8f8 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_bn_test/boringssl_bn_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_bn_test/boringssl_bn_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_bn_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_bn_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_bytestring_test/boringssl_bytestring_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_bytestring_test/boringssl_bytestring_test.vcxproj index 25ef93c73a..d9b387d370 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_bytestring_test/boringssl_bytestring_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_bytestring_test/boringssl_bytestring_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_bytestring_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_bytestring_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_cipher_test/boringssl_cipher_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_cipher_test/boringssl_cipher_test.vcxproj index 6b1eec23a5..a761856ead 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_cipher_test/boringssl_cipher_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_cipher_test/boringssl_cipher_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_cipher_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_cipher_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_cmac_test/boringssl_cmac_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_cmac_test/boringssl_cmac_test.vcxproj index f59db05613..5643c60f8c 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_cmac_test/boringssl_cmac_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_cmac_test/boringssl_cmac_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_cmac_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_cmac_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_constant_time_test/boringssl_constant_time_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_constant_time_test/boringssl_constant_time_test.vcxproj index 0466f15754..c0a57972e7 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_constant_time_test/boringssl_constant_time_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_constant_time_test/boringssl_constant_time_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_constant_time_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_constant_time_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_dh_test/boringssl_dh_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_dh_test/boringssl_dh_test.vcxproj index 9f301eafed..f8bc4f23c0 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_dh_test/boringssl_dh_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_dh_test/boringssl_dh_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_dh_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_dh_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_digest_test/boringssl_digest_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_digest_test/boringssl_digest_test.vcxproj index 2d8da4bd4e..869a70fbdf 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_digest_test/boringssl_digest_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_digest_test/boringssl_digest_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_digest_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_digest_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_dsa_test/boringssl_dsa_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_dsa_test/boringssl_dsa_test.vcxproj index 88ee1208d7..52505e6cc7 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_dsa_test/boringssl_dsa_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_dsa_test/boringssl_dsa_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_dsa_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_dsa_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ec_test/boringssl_ec_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_ec_test/boringssl_ec_test.vcxproj index dfdc930ba0..dfa7d23aaf 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_ec_test/boringssl_ec_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ec_test/boringssl_ec_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_ec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_ec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_test/boringssl_ecdsa_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_test/boringssl_ecdsa_test.vcxproj index b6d94560f2..0f85a20f7a 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_test/boringssl_ecdsa_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ecdsa_test/boringssl_ecdsa_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_ecdsa_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_ecdsa_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ed25519_test/boringssl_ed25519_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_ed25519_test/boringssl_ed25519_test.vcxproj index 52b9ca3191..85fd0640fe 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_ed25519_test/boringssl_ed25519_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ed25519_test/boringssl_ed25519_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_ed25519_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_ed25519_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_err_test/boringssl_err_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_err_test/boringssl_err_test.vcxproj index 61ee7661c2..085b8ce0e8 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_err_test/boringssl_err_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_err_test/boringssl_err_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_err_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_err_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_evp_extra_test/boringssl_evp_extra_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_evp_extra_test/boringssl_evp_extra_test.vcxproj index 23d722b765..25e5a761ed 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_evp_extra_test/boringssl_evp_extra_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_evp_extra_test/boringssl_evp_extra_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_evp_extra_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_evp_extra_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_evp_test/boringssl_evp_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_evp_test/boringssl_evp_test.vcxproj index 9b139cf963..76312fa811 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_evp_test/boringssl_evp_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_evp_test/boringssl_evp_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_evp_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_evp_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_example_mul/boringssl_example_mul.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_example_mul/boringssl_example_mul.vcxproj index f54c1ecf69..e607808cab 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_example_mul/boringssl_example_mul.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_example_mul/boringssl_example_mul.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_example_mul</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_example_mul</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test/boringssl_gcm_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test/boringssl_gcm_test.vcxproj index 973e8af28c..4bf014ce49 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test/boringssl_gcm_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_gcm_test/boringssl_gcm_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_gcm_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_gcm_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_hkdf_test/boringssl_hkdf_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_hkdf_test/boringssl_hkdf_test.vcxproj index 1290853fc0..d6294b83cb 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_hkdf_test/boringssl_hkdf_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_hkdf_test/boringssl_hkdf_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_hkdf_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_hkdf_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_hmac_test/boringssl_hmac_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_hmac_test/boringssl_hmac_test.vcxproj index 369477d611..e2f6afb9cf 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_hmac_test/boringssl_hmac_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_hmac_test/boringssl_hmac_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_hmac_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_hmac_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_lhash_test/boringssl_lhash_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_lhash_test/boringssl_lhash_test.vcxproj index c19c322527..2a4f81fb7e 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_lhash_test/boringssl_lhash_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_lhash_test/boringssl_lhash_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_lhash_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_lhash_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_pbkdf_test/boringssl_pbkdf_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_pbkdf_test/boringssl_pbkdf_test.vcxproj index 415e3f4cd0..6eedd2d21b 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_pbkdf_test/boringssl_pbkdf_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_pbkdf_test/boringssl_pbkdf_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_pbkdf_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_pbkdf_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_pkcs12_test/boringssl_pkcs12_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_pkcs12_test/boringssl_pkcs12_test.vcxproj index 7cd3c44f82..d31e89ed4b 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_pkcs12_test/boringssl_pkcs12_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_pkcs12_test/boringssl_pkcs12_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_pkcs12_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_pkcs12_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_pkcs7_test/boringssl_pkcs7_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_pkcs7_test/boringssl_pkcs7_test.vcxproj index 8ee7ffbb28..19b2e1efea 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_pkcs7_test/boringssl_pkcs7_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_pkcs7_test/boringssl_pkcs7_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_pkcs7_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_pkcs7_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_pkcs8_test/boringssl_pkcs8_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_pkcs8_test/boringssl_pkcs8_test.vcxproj index 28e5cb1dbd..fe8f78b50f 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_pkcs8_test/boringssl_pkcs8_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_pkcs8_test/boringssl_pkcs8_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_pkcs8_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_pkcs8_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_poly1305_test/boringssl_poly1305_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_poly1305_test/boringssl_poly1305_test.vcxproj index 344c555d77..9424e20151 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_poly1305_test/boringssl_poly1305_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_poly1305_test/boringssl_poly1305_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_poly1305_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_poly1305_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test/boringssl_pqueue_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test/boringssl_pqueue_test.vcxproj index 0802ec41d0..7c0189b627 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test/boringssl_pqueue_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_pqueue_test/boringssl_pqueue_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_pqueue_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_pqueue_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_refcount_test/boringssl_refcount_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_refcount_test/boringssl_refcount_test.vcxproj index 09eef3862b..c357b64cbd 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_refcount_test/boringssl_refcount_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_refcount_test/boringssl_refcount_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_refcount_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_refcount_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_rsa_test/boringssl_rsa_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_rsa_test/boringssl_rsa_test.vcxproj index 75e3056177..4916f3ff18 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_rsa_test/boringssl_rsa_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_rsa_test/boringssl_rsa_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_rsa_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_rsa_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_ssl_test/boringssl_ssl_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_ssl_test/boringssl_ssl_test.vcxproj index e58f5c4844..eab2cabfd2 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_ssl_test/boringssl_ssl_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_ssl_test/boringssl_ssl_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_ssl_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_ssl_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_tab_test/boringssl_tab_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_tab_test/boringssl_tab_test.vcxproj index 56282052f6..fc7a9c2b01 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_tab_test/boringssl_tab_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_tab_test/boringssl_tab_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_tab_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_tab_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_thread_test/boringssl_thread_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_thread_test/boringssl_thread_test.vcxproj index 26a4384cdc..1730c70005 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_thread_test/boringssl_thread_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_thread_test/boringssl_thread_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_thread_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_thread_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_v3name_test/boringssl_v3name_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_v3name_test/boringssl_v3name_test.vcxproj index 12ddfa3800..517c5c429e 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_v3name_test/boringssl_v3name_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_v3name_test/boringssl_v3name_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_v3name_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_v3name_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/boringssl/boringssl_x25519_test/boringssl_x25519_test.vcxproj b/vsprojects/vcxproj/test/boringssl/boringssl_x25519_test/boringssl_x25519_test.vcxproj index 04cd2d1825..9dfd8a830a 100644 --- a/vsprojects/vcxproj/test/boringssl/boringssl_x25519_test/boringssl_x25519_test.vcxproj +++ b/vsprojects/vcxproj/test/boringssl/boringssl_x25519_test/boringssl_x25519_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>boringssl_x25519_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>boringssl_x25519_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/channel_arguments_test/channel_arguments_test.vcxproj b/vsprojects/vcxproj/test/channel_arguments_test/channel_arguments_test.vcxproj index 936d774128..d20bb38763 100644 --- a/vsprojects/vcxproj/test/channel_arguments_test/channel_arguments_test.vcxproj +++ b/vsprojects/vcxproj/test/channel_arguments_test/channel_arguments_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>channel_arguments_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>channel_arguments_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/channel_create_test/channel_create_test.vcxproj b/vsprojects/vcxproj/test/channel_create_test/channel_create_test.vcxproj index ca6a84faf7..8a5fc550c9 100644 --- a/vsprojects/vcxproj/test/channel_create_test/channel_create_test.vcxproj +++ b/vsprojects/vcxproj/test/channel_create_test/channel_create_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>channel_create_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>channel_create_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/chttp2_hpack_encoder_test/chttp2_hpack_encoder_test.vcxproj b/vsprojects/vcxproj/test/chttp2_hpack_encoder_test/chttp2_hpack_encoder_test.vcxproj index edf04cb889..0c6f74721a 100644 --- a/vsprojects/vcxproj/test/chttp2_hpack_encoder_test/chttp2_hpack_encoder_test.vcxproj +++ b/vsprojects/vcxproj/test/chttp2_hpack_encoder_test/chttp2_hpack_encoder_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>chttp2_hpack_encoder_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>chttp2_hpack_encoder_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/chttp2_status_conversion_test/chttp2_status_conversion_test.vcxproj b/vsprojects/vcxproj/test/chttp2_status_conversion_test/chttp2_status_conversion_test.vcxproj index 214491f50b..f5b8838cdf 100644 --- a/vsprojects/vcxproj/test/chttp2_status_conversion_test/chttp2_status_conversion_test.vcxproj +++ b/vsprojects/vcxproj/test/chttp2_status_conversion_test/chttp2_status_conversion_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>chttp2_status_conversion_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>chttp2_status_conversion_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/chttp2_stream_map_test/chttp2_stream_map_test.vcxproj b/vsprojects/vcxproj/test/chttp2_stream_map_test/chttp2_stream_map_test.vcxproj index b74e925ea9..157e90cf6c 100644 --- a/vsprojects/vcxproj/test/chttp2_stream_map_test/chttp2_stream_map_test.vcxproj +++ b/vsprojects/vcxproj/test/chttp2_stream_map_test/chttp2_stream_map_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>chttp2_stream_map_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>chttp2_stream_map_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/chttp2_varint_test/chttp2_varint_test.vcxproj b/vsprojects/vcxproj/test/chttp2_varint_test/chttp2_varint_test.vcxproj index 7a3286b82d..a4ee7dca2d 100644 --- a/vsprojects/vcxproj/test/chttp2_varint_test/chttp2_varint_test.vcxproj +++ b/vsprojects/vcxproj/test/chttp2_varint_test/chttp2_varint_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>chttp2_varint_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>chttp2_varint_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/cli_call_test/cli_call_test.vcxproj b/vsprojects/vcxproj/test/cli_call_test/cli_call_test.vcxproj index 83936a5aef..b5d2fc6d0c 100644 --- a/vsprojects/vcxproj/test/cli_call_test/cli_call_test.vcxproj +++ b/vsprojects/vcxproj/test/cli_call_test/cli_call_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>cli_call_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>cli_call_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/client_crash_test_server/client_crash_test_server.vcxproj b/vsprojects/vcxproj/test/client_crash_test_server/client_crash_test_server.vcxproj index 98bac3050f..bc9efb502e 100644 --- a/vsprojects/vcxproj/test/client_crash_test_server/client_crash_test_server.vcxproj +++ b/vsprojects/vcxproj/test/client_crash_test_server/client_crash_test_server.vcxproj @@ -65,12 +65,14 @@ <TargetName>client_crash_test_server</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>client_crash_test_server</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/compression_test/compression_test.vcxproj b/vsprojects/vcxproj/test/compression_test/compression_test.vcxproj index f754d94557..5bfbe2dcb7 100644 --- a/vsprojects/vcxproj/test/compression_test/compression_test.vcxproj +++ b/vsprojects/vcxproj/test/compression_test/compression_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>compression_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>compression_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/connection_prefix_bad_client_test/connection_prefix_bad_client_test.vcxproj b/vsprojects/vcxproj/test/connection_prefix_bad_client_test/connection_prefix_bad_client_test.vcxproj index 4f3010e9a6..c09ef73913 100644 --- a/vsprojects/vcxproj/test/connection_prefix_bad_client_test/connection_prefix_bad_client_test.vcxproj +++ b/vsprojects/vcxproj/test/connection_prefix_bad_client_test/connection_prefix_bad_client_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>connection_prefix_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>connection_prefix_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/credentials_test/credentials_test.vcxproj b/vsprojects/vcxproj/test/credentials_test/credentials_test.vcxproj index e117278055..43be5fbfe4 100644 --- a/vsprojects/vcxproj/test/credentials_test/credentials_test.vcxproj +++ b/vsprojects/vcxproj/test/credentials_test/credentials_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>credentials_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>credentials_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/cxx_byte_buffer_test/cxx_byte_buffer_test.vcxproj b/vsprojects/vcxproj/test/cxx_byte_buffer_test/cxx_byte_buffer_test.vcxproj index f915be3698..8b63392d0c 100644 --- a/vsprojects/vcxproj/test/cxx_byte_buffer_test/cxx_byte_buffer_test.vcxproj +++ b/vsprojects/vcxproj/test/cxx_byte_buffer_test/cxx_byte_buffer_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>cxx_byte_buffer_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>cxx_byte_buffer_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/cxx_slice_test/cxx_slice_test.vcxproj b/vsprojects/vcxproj/test/cxx_slice_test/cxx_slice_test.vcxproj index 584fec0064..f7bc268b34 100644 --- a/vsprojects/vcxproj/test/cxx_slice_test/cxx_slice_test.vcxproj +++ b/vsprojects/vcxproj/test/cxx_slice_test/cxx_slice_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>cxx_slice_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>cxx_slice_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/cxx_string_ref_test/cxx_string_ref_test.vcxproj b/vsprojects/vcxproj/test/cxx_string_ref_test/cxx_string_ref_test.vcxproj index e2f93bb855..8d9989557f 100644 --- a/vsprojects/vcxproj/test/cxx_string_ref_test/cxx_string_ref_test.vcxproj +++ b/vsprojects/vcxproj/test/cxx_string_ref_test/cxx_string_ref_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>cxx_string_ref_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>cxx_string_ref_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/cxx_time_test/cxx_time_test.vcxproj b/vsprojects/vcxproj/test/cxx_time_test/cxx_time_test.vcxproj index c2b00b03d0..bcbaf898c2 100644 --- a/vsprojects/vcxproj/test/cxx_time_test/cxx_time_test.vcxproj +++ b/vsprojects/vcxproj/test/cxx_time_test/cxx_time_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>cxx_time_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>cxx_time_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/dns_resolver_test/dns_resolver_test.vcxproj b/vsprojects/vcxproj/test/dns_resolver_test/dns_resolver_test.vcxproj index 16806f5097..1f3089b9aa 100644 --- a/vsprojects/vcxproj/test/dns_resolver_test/dns_resolver_test.vcxproj +++ b/vsprojects/vcxproj/test/dns_resolver_test/dns_resolver_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>dns_resolver_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>dns_resolver_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_census_nosec_test/h2_census_nosec_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_census_nosec_test/h2_census_nosec_test.vcxproj index db550013fb..3000ec18fb 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_census_nosec_test/h2_census_nosec_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_census_nosec_test/h2_census_nosec_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_census_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_census_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_census_test/h2_census_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_census_test/h2_census_test.vcxproj index 441cf49eea..612b5df806 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_census_test/h2_census_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_census_test/h2_census_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_census_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_census_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_compress_nosec_test/h2_compress_nosec_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_compress_nosec_test/h2_compress_nosec_test.vcxproj index 81282a3fd1..0fddf5577a 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_compress_nosec_test/h2_compress_nosec_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_compress_nosec_test/h2_compress_nosec_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_compress_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_compress_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_compress_test/h2_compress_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_compress_test/h2_compress_test.vcxproj index ee47dabb7b..4b6fbaa585 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_compress_test/h2_compress_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_compress_test/h2_compress_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_compress_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_compress_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_fakesec_test/h2_fakesec_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_fakesec_test/h2_fakesec_test.vcxproj index 1e882b6b08..3406fadc1e 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_fakesec_test/h2_fakesec_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_fakesec_test/h2_fakesec_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_fakesec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_fakesec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_full_nosec_test/h2_full_nosec_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_full_nosec_test/h2_full_nosec_test.vcxproj index fd4e9b2bf1..b76f51e5ab 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_full_nosec_test/h2_full_nosec_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_full_nosec_test/h2_full_nosec_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_full_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_full_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_full_test/h2_full_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_full_test/h2_full_test.vcxproj index 3dde432a2c..96bd4361d0 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_full_test/h2_full_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_full_test/h2_full_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_full_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_full_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_oauth2_test/h2_oauth2_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_oauth2_test/h2_oauth2_test.vcxproj index b4ef73e8c3..f89d32c192 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_oauth2_test/h2_oauth2_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_oauth2_test/h2_oauth2_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_oauth2_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_oauth2_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_proxy_nosec_test/h2_proxy_nosec_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_proxy_nosec_test/h2_proxy_nosec_test.vcxproj index d738e02d80..7eb45e424e 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_proxy_nosec_test/h2_proxy_nosec_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_proxy_nosec_test/h2_proxy_nosec_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_proxy_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_proxy_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_proxy_test/h2_proxy_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_proxy_test/h2_proxy_test.vcxproj index 6045a9bf23..8f56454848 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_proxy_test/h2_proxy_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_proxy_test/h2_proxy_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_proxy_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_proxy_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair+trace_nosec_test/h2_sockpair+trace_nosec_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair+trace_nosec_test/h2_sockpair+trace_nosec_test.vcxproj index 36539b06e6..ebcdb21173 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair+trace_nosec_test/h2_sockpair+trace_nosec_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair+trace_nosec_test/h2_sockpair+trace_nosec_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_sockpair+trace_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_sockpair+trace_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair+trace_test/h2_sockpair+trace_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair+trace_test/h2_sockpair+trace_test.vcxproj index 74f3ed8f80..44427fb134 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair+trace_test/h2_sockpair+trace_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair+trace_test/h2_sockpair+trace_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_sockpair+trace_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_sockpair+trace_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_1byte_nosec_test/h2_sockpair_1byte_nosec_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_1byte_nosec_test/h2_sockpair_1byte_nosec_test.vcxproj index 6d3c6cecce..a3529e595c 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_1byte_nosec_test/h2_sockpair_1byte_nosec_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_1byte_nosec_test/h2_sockpair_1byte_nosec_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_sockpair_1byte_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_sockpair_1byte_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_1byte_test/h2_sockpair_1byte_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_1byte_test/h2_sockpair_1byte_test.vcxproj index 96893203d7..5f4e43ff4e 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_1byte_test/h2_sockpair_1byte_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_1byte_test/h2_sockpair_1byte_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_sockpair_1byte_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_sockpair_1byte_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_nosec_test/h2_sockpair_nosec_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_nosec_test/h2_sockpair_nosec_test.vcxproj index c203295717..fe01a3df95 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_nosec_test/h2_sockpair_nosec_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_nosec_test/h2_sockpair_nosec_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_sockpair_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_sockpair_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_test/h2_sockpair_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_test/h2_sockpair_test.vcxproj index 05f03cce43..96359174bc 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_test/h2_sockpair_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_sockpair_test/h2_sockpair_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_sockpair_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_sockpair_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_ssl_proxy_test/h2_ssl_proxy_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_ssl_proxy_test/h2_ssl_proxy_test.vcxproj index 79e7c67c7e..0693d6573a 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_ssl_proxy_test/h2_ssl_proxy_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_ssl_proxy_test/h2_ssl_proxy_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_ssl_proxy_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_ssl_proxy_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_ssl_test/h2_ssl_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_ssl_test/h2_ssl_test.vcxproj index a298e330a9..64e0c1be4a 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_ssl_test/h2_ssl_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_ssl_test/h2_ssl_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_ssl_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_ssl_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_uchannel_nosec_test/h2_uchannel_nosec_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_uchannel_nosec_test/h2_uchannel_nosec_test.vcxproj index 6d839dd1d9..76a9e5600f 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_uchannel_nosec_test/h2_uchannel_nosec_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_uchannel_nosec_test/h2_uchannel_nosec_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_uchannel_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_uchannel_nosec_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end/fixtures/h2_uchannel_test/h2_uchannel_test.vcxproj b/vsprojects/vcxproj/test/end2end/fixtures/h2_uchannel_test/h2_uchannel_test.vcxproj index f68759456d..bcf0f34066 100644 --- a/vsprojects/vcxproj/test/end2end/fixtures/h2_uchannel_test/h2_uchannel_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end/fixtures/h2_uchannel_test/h2_uchannel_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>h2_uchannel_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>h2_uchannel_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/end2end_test/end2end_test.vcxproj b/vsprojects/vcxproj/test/end2end_test/end2end_test.vcxproj index 765a38283d..c04742ffee 100644 --- a/vsprojects/vcxproj/test/end2end_test/end2end_test.vcxproj +++ b/vsprojects/vcxproj/test/end2end_test/end2end_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>end2end_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>end2end_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/endpoint_pair_test/endpoint_pair_test.vcxproj b/vsprojects/vcxproj/test/endpoint_pair_test/endpoint_pair_test.vcxproj index f77cf9da5a..3c94feb54f 100644 --- a/vsprojects/vcxproj/test/endpoint_pair_test/endpoint_pair_test.vcxproj +++ b/vsprojects/vcxproj/test/endpoint_pair_test/endpoint_pair_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>endpoint_pair_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>endpoint_pair_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/fling_client/fling_client.vcxproj b/vsprojects/vcxproj/test/fling_client/fling_client.vcxproj index 51f176fc79..31cac37f66 100644 --- a/vsprojects/vcxproj/test/fling_client/fling_client.vcxproj +++ b/vsprojects/vcxproj/test/fling_client/fling_client.vcxproj @@ -63,12 +63,14 @@ <TargetName>fling_client</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>fling_client</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/fling_server/fling_server.vcxproj b/vsprojects/vcxproj/test/fling_server/fling_server.vcxproj index 5ce96bd2d5..99dd3f1ec3 100644 --- a/vsprojects/vcxproj/test/fling_server/fling_server.vcxproj +++ b/vsprojects/vcxproj/test/fling_server/fling_server.vcxproj @@ -63,12 +63,14 @@ <TargetName>fling_server</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>fling_server</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/generic_end2end_test/generic_end2end_test.vcxproj b/vsprojects/vcxproj/test/generic_end2end_test/generic_end2end_test.vcxproj index 02112a4ae6..44b0870958 100644 --- a/vsprojects/vcxproj/test/generic_end2end_test/generic_end2end_test.vcxproj +++ b/vsprojects/vcxproj/test/generic_end2end_test/generic_end2end_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>generic_end2end_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>generic_end2end_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_avl_test/gpr_avl_test.vcxproj b/vsprojects/vcxproj/test/gpr_avl_test/gpr_avl_test.vcxproj index 1c0bbfdcf7..e6b0be2600 100644 --- a/vsprojects/vcxproj/test/gpr_avl_test/gpr_avl_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_avl_test/gpr_avl_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_avl_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_avl_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_cmdline_test/gpr_cmdline_test.vcxproj b/vsprojects/vcxproj/test/gpr_cmdline_test/gpr_cmdline_test.vcxproj index 43b0746be2..9df03abed0 100644 --- a/vsprojects/vcxproj/test/gpr_cmdline_test/gpr_cmdline_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_cmdline_test/gpr_cmdline_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_cmdline_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_cmdline_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_cpu_test/gpr_cpu_test.vcxproj b/vsprojects/vcxproj/test/gpr_cpu_test/gpr_cpu_test.vcxproj index 0339adbac1..9ba6745e8c 100644 --- a/vsprojects/vcxproj/test/gpr_cpu_test/gpr_cpu_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_cpu_test/gpr_cpu_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_cpu_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_cpu_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_env_test/gpr_env_test.vcxproj b/vsprojects/vcxproj/test/gpr_env_test/gpr_env_test.vcxproj index dc3813ed4e..19c6139858 100644 --- a/vsprojects/vcxproj/test/gpr_env_test/gpr_env_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_env_test/gpr_env_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_env_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_env_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_file_test/gpr_file_test.vcxproj b/vsprojects/vcxproj/test/gpr_file_test/gpr_file_test.vcxproj index 8c7b99c2d9..5a2fdee123 100644 --- a/vsprojects/vcxproj/test/gpr_file_test/gpr_file_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_file_test/gpr_file_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_file_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_file_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_histogram_test/gpr_histogram_test.vcxproj b/vsprojects/vcxproj/test/gpr_histogram_test/gpr_histogram_test.vcxproj index ff8f5113b6..fa65c1532f 100644 --- a/vsprojects/vcxproj/test/gpr_histogram_test/gpr_histogram_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_histogram_test/gpr_histogram_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_histogram_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_histogram_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_host_port_test/gpr_host_port_test.vcxproj b/vsprojects/vcxproj/test/gpr_host_port_test/gpr_host_port_test.vcxproj index 0c22192a1b..6d4194b2a5 100644 --- a/vsprojects/vcxproj/test/gpr_host_port_test/gpr_host_port_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_host_port_test/gpr_host_port_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_host_port_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_host_port_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_log_test/gpr_log_test.vcxproj b/vsprojects/vcxproj/test/gpr_log_test/gpr_log_test.vcxproj index 72661b659f..651a3d3326 100644 --- a/vsprojects/vcxproj/test/gpr_log_test/gpr_log_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_log_test/gpr_log_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_log_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_log_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_slice_buffer_test/gpr_slice_buffer_test.vcxproj b/vsprojects/vcxproj/test/gpr_slice_buffer_test/gpr_slice_buffer_test.vcxproj index 29daeab006..33926ff116 100644 --- a/vsprojects/vcxproj/test/gpr_slice_buffer_test/gpr_slice_buffer_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_slice_buffer_test/gpr_slice_buffer_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_slice_buffer_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_slice_buffer_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_slice_test/gpr_slice_test.vcxproj b/vsprojects/vcxproj/test/gpr_slice_test/gpr_slice_test.vcxproj index e8ff8bcc6d..bb2badc35c 100644 --- a/vsprojects/vcxproj/test/gpr_slice_test/gpr_slice_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_slice_test/gpr_slice_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_slice_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_slice_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_stack_lockfree_test/gpr_stack_lockfree_test.vcxproj b/vsprojects/vcxproj/test/gpr_stack_lockfree_test/gpr_stack_lockfree_test.vcxproj index a8e90c2a8d..218cff8ba9 100644 --- a/vsprojects/vcxproj/test/gpr_stack_lockfree_test/gpr_stack_lockfree_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_stack_lockfree_test/gpr_stack_lockfree_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_stack_lockfree_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_stack_lockfree_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_string_test/gpr_string_test.vcxproj b/vsprojects/vcxproj/test/gpr_string_test/gpr_string_test.vcxproj index 5da404bc6e..56adb59c42 100644 --- a/vsprojects/vcxproj/test/gpr_string_test/gpr_string_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_string_test/gpr_string_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_string_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_string_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_sync_test/gpr_sync_test.vcxproj b/vsprojects/vcxproj/test/gpr_sync_test/gpr_sync_test.vcxproj index 878317e8b5..0b48230c17 100644 --- a/vsprojects/vcxproj/test/gpr_sync_test/gpr_sync_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_sync_test/gpr_sync_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_sync_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_sync_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_thd_test/gpr_thd_test.vcxproj b/vsprojects/vcxproj/test/gpr_thd_test/gpr_thd_test.vcxproj index fd122662e5..54483c0a74 100644 --- a/vsprojects/vcxproj/test/gpr_thd_test/gpr_thd_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_thd_test/gpr_thd_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_thd_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_thd_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_time_test/gpr_time_test.vcxproj b/vsprojects/vcxproj/test/gpr_time_test/gpr_time_test.vcxproj index 48f02859b4..f9529bba82 100644 --- a/vsprojects/vcxproj/test/gpr_time_test/gpr_time_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_time_test/gpr_time_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_time_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_time_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_tls_test/gpr_tls_test.vcxproj b/vsprojects/vcxproj/test/gpr_tls_test/gpr_tls_test.vcxproj index 686ce86845..4399132a09 100644 --- a/vsprojects/vcxproj/test/gpr_tls_test/gpr_tls_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_tls_test/gpr_tls_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_tls_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_tls_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/gpr_useful_test/gpr_useful_test.vcxproj b/vsprojects/vcxproj/test/gpr_useful_test/gpr_useful_test.vcxproj index 1095dd86c0..40866b92a4 100644 --- a/vsprojects/vcxproj/test/gpr_useful_test/gpr_useful_test.vcxproj +++ b/vsprojects/vcxproj/test/gpr_useful_test/gpr_useful_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>gpr_useful_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>gpr_useful_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/grpc_auth_context_test/grpc_auth_context_test.vcxproj b/vsprojects/vcxproj/test/grpc_auth_context_test/grpc_auth_context_test.vcxproj index 67238fdace..db710601b8 100644 --- a/vsprojects/vcxproj/test/grpc_auth_context_test/grpc_auth_context_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_auth_context_test/grpc_auth_context_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>grpc_auth_context_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_auth_context_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/grpc_base64_test/grpc_base64_test.vcxproj b/vsprojects/vcxproj/test/grpc_base64_test/grpc_base64_test.vcxproj index 0bae2329f5..3e49ac8ae2 100644 --- a/vsprojects/vcxproj/test/grpc_base64_test/grpc_base64_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_base64_test/grpc_base64_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>grpc_base64_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_base64_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/grpc_byte_buffer_reader_test/grpc_byte_buffer_reader_test.vcxproj b/vsprojects/vcxproj/test/grpc_byte_buffer_reader_test/grpc_byte_buffer_reader_test.vcxproj index 3ee30aa2f7..9b74cf1fc9 100644 --- a/vsprojects/vcxproj/test/grpc_byte_buffer_reader_test/grpc_byte_buffer_reader_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_byte_buffer_reader_test/grpc_byte_buffer_reader_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>grpc_byte_buffer_reader_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_byte_buffer_reader_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/grpc_channel_args_test/grpc_channel_args_test.vcxproj b/vsprojects/vcxproj/test/grpc_channel_args_test/grpc_channel_args_test.vcxproj index 7ea51a40df..0203b29cf9 100644 --- a/vsprojects/vcxproj/test/grpc_channel_args_test/grpc_channel_args_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_channel_args_test/grpc_channel_args_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>grpc_channel_args_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_channel_args_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/grpc_channel_stack_test/grpc_channel_stack_test.vcxproj b/vsprojects/vcxproj/test/grpc_channel_stack_test/grpc_channel_stack_test.vcxproj index aa9533e382..905f9996e2 100644 --- a/vsprojects/vcxproj/test/grpc_channel_stack_test/grpc_channel_stack_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_channel_stack_test/grpc_channel_stack_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>grpc_channel_stack_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_channel_stack_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj b/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj index 8630e3821b..eeb0e8cfa7 100644 --- a/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj +++ b/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj @@ -65,12 +65,14 @@ <TargetName>grpc_cli</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_cli</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/grpc_completion_queue_test/grpc_completion_queue_test.vcxproj b/vsprojects/vcxproj/test/grpc_completion_queue_test/grpc_completion_queue_test.vcxproj index d4ad8bceba..5830638c54 100644 --- a/vsprojects/vcxproj/test/grpc_completion_queue_test/grpc_completion_queue_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_completion_queue_test/grpc_completion_queue_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>grpc_completion_queue_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_completion_queue_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/grpc_credentials_test/grpc_credentials_test.vcxproj b/vsprojects/vcxproj/test/grpc_credentials_test/grpc_credentials_test.vcxproj index ab153f26d4..cbd602e216 100644 --- a/vsprojects/vcxproj/test/grpc_credentials_test/grpc_credentials_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_credentials_test/grpc_credentials_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>grpc_credentials_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_credentials_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/grpc_invalid_channel_args_test/grpc_invalid_channel_args_test.vcxproj b/vsprojects/vcxproj/test/grpc_invalid_channel_args_test/grpc_invalid_channel_args_test.vcxproj index cfef2cd93a..9f85ec8fe4 100644 --- a/vsprojects/vcxproj/test/grpc_invalid_channel_args_test/grpc_invalid_channel_args_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_invalid_channel_args_test/grpc_invalid_channel_args_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>grpc_invalid_channel_args_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_invalid_channel_args_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/grpc_jwt_verifier_test/grpc_jwt_verifier_test.vcxproj b/vsprojects/vcxproj/test/grpc_jwt_verifier_test/grpc_jwt_verifier_test.vcxproj index bd461e3560..0928586687 100644 --- a/vsprojects/vcxproj/test/grpc_jwt_verifier_test/grpc_jwt_verifier_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_jwt_verifier_test/grpc_jwt_verifier_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>grpc_jwt_verifier_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_jwt_verifier_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/grpc_security_connector_test/grpc_security_connector_test.vcxproj b/vsprojects/vcxproj/test/grpc_security_connector_test/grpc_security_connector_test.vcxproj index d3cbb54309..a5849d1abc 100644 --- a/vsprojects/vcxproj/test/grpc_security_connector_test/grpc_security_connector_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_security_connector_test/grpc_security_connector_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>grpc_security_connector_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>grpc_security_connector_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/headers_bad_client_test/headers_bad_client_test.vcxproj b/vsprojects/vcxproj/test/headers_bad_client_test/headers_bad_client_test.vcxproj index c0702e882a..cc73799a49 100644 --- a/vsprojects/vcxproj/test/headers_bad_client_test/headers_bad_client_test.vcxproj +++ b/vsprojects/vcxproj/test/headers_bad_client_test/headers_bad_client_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>headers_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>headers_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/hpack_parser_test/hpack_parser_test.vcxproj b/vsprojects/vcxproj/test/hpack_parser_test/hpack_parser_test.vcxproj index 8f9be70c6b..380d465baa 100644 --- a/vsprojects/vcxproj/test/hpack_parser_test/hpack_parser_test.vcxproj +++ b/vsprojects/vcxproj/test/hpack_parser_test/hpack_parser_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>hpack_parser_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>hpack_parser_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/hpack_table_test/hpack_table_test.vcxproj b/vsprojects/vcxproj/test/hpack_table_test/hpack_table_test.vcxproj index 6598574618..f92e33c75e 100644 --- a/vsprojects/vcxproj/test/hpack_table_test/hpack_table_test.vcxproj +++ b/vsprojects/vcxproj/test/hpack_table_test/hpack_table_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>hpack_table_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>hpack_table_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/httpcli_format_request_test/httpcli_format_request_test.vcxproj b/vsprojects/vcxproj/test/httpcli_format_request_test/httpcli_format_request_test.vcxproj index 30175a242c..97f14f6c8e 100644 --- a/vsprojects/vcxproj/test/httpcli_format_request_test/httpcli_format_request_test.vcxproj +++ b/vsprojects/vcxproj/test/httpcli_format_request_test/httpcli_format_request_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>httpcli_format_request_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>httpcli_format_request_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/httpcli_parser_test/httpcli_parser_test.vcxproj b/vsprojects/vcxproj/test/httpcli_parser_test/httpcli_parser_test.vcxproj index dddcf18fad..6f976309c5 100644 --- a/vsprojects/vcxproj/test/httpcli_parser_test/httpcli_parser_test.vcxproj +++ b/vsprojects/vcxproj/test/httpcli_parser_test/httpcli_parser_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>httpcli_parser_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>httpcli_parser_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/init_test/init_test.vcxproj b/vsprojects/vcxproj/test/init_test/init_test.vcxproj index 77edce544a..e4f0de7de8 100644 --- a/vsprojects/vcxproj/test/init_test/init_test.vcxproj +++ b/vsprojects/vcxproj/test/init_test/init_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>init_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>init_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/initial_settings_frame_bad_client_test/initial_settings_frame_bad_client_test.vcxproj b/vsprojects/vcxproj/test/initial_settings_frame_bad_client_test/initial_settings_frame_bad_client_test.vcxproj index cbf3cd964e..084132e049 100644 --- a/vsprojects/vcxproj/test/initial_settings_frame_bad_client_test/initial_settings_frame_bad_client_test.vcxproj +++ b/vsprojects/vcxproj/test/initial_settings_frame_bad_client_test/initial_settings_frame_bad_client_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>initial_settings_frame_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>initial_settings_frame_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/invalid_call_argument_test/invalid_call_argument_test.vcxproj b/vsprojects/vcxproj/test/invalid_call_argument_test/invalid_call_argument_test.vcxproj index 9b43875baa..84472eff12 100644 --- a/vsprojects/vcxproj/test/invalid_call_argument_test/invalid_call_argument_test.vcxproj +++ b/vsprojects/vcxproj/test/invalid_call_argument_test/invalid_call_argument_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>invalid_call_argument_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>invalid_call_argument_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/json_rewrite/json_rewrite.vcxproj b/vsprojects/vcxproj/test/json_rewrite/json_rewrite.vcxproj index 818da802dd..52cb29b023 100644 --- a/vsprojects/vcxproj/test/json_rewrite/json_rewrite.vcxproj +++ b/vsprojects/vcxproj/test/json_rewrite/json_rewrite.vcxproj @@ -63,12 +63,14 @@ <TargetName>json_rewrite</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>json_rewrite</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/json_rewrite_test/json_rewrite_test.vcxproj b/vsprojects/vcxproj/test/json_rewrite_test/json_rewrite_test.vcxproj index 510851be3e..5a8c3d86c2 100644 --- a/vsprojects/vcxproj/test/json_rewrite_test/json_rewrite_test.vcxproj +++ b/vsprojects/vcxproj/test/json_rewrite_test/json_rewrite_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>json_rewrite_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>json_rewrite_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/json_stream_error_test/json_stream_error_test.vcxproj b/vsprojects/vcxproj/test/json_stream_error_test/json_stream_error_test.vcxproj index e636087596..accb6293bc 100644 --- a/vsprojects/vcxproj/test/json_stream_error_test/json_stream_error_test.vcxproj +++ b/vsprojects/vcxproj/test/json_stream_error_test/json_stream_error_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>json_stream_error_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>json_stream_error_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/json_test/json_test.vcxproj b/vsprojects/vcxproj/test/json_test/json_test.vcxproj index 36c9fbbb31..04ac883e13 100644 --- a/vsprojects/vcxproj/test/json_test/json_test.vcxproj +++ b/vsprojects/vcxproj/test/json_test/json_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>json_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>json_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/lame_client_test/lame_client_test.vcxproj b/vsprojects/vcxproj/test/lame_client_test/lame_client_test.vcxproj index d4ebcd3caf..0bda78baf6 100644 --- a/vsprojects/vcxproj/test/lame_client_test/lame_client_test.vcxproj +++ b/vsprojects/vcxproj/test/lame_client_test/lame_client_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>lame_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>lame_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/lb_policies_test/lb_policies_test.vcxproj b/vsprojects/vcxproj/test/lb_policies_test/lb_policies_test.vcxproj index db5cb61cf4..22b364f35c 100644 --- a/vsprojects/vcxproj/test/lb_policies_test/lb_policies_test.vcxproj +++ b/vsprojects/vcxproj/test/lb_policies_test/lb_policies_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>lb_policies_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>lb_policies_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/message_compress_test/message_compress_test.vcxproj b/vsprojects/vcxproj/test/message_compress_test/message_compress_test.vcxproj index 5fbba7bdaf..de55bf38eb 100644 --- a/vsprojects/vcxproj/test/message_compress_test/message_compress_test.vcxproj +++ b/vsprojects/vcxproj/test/message_compress_test/message_compress_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>message_compress_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>message_compress_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/metrics_client/metrics_client.vcxproj b/vsprojects/vcxproj/test/metrics_client/metrics_client.vcxproj index dc5d57869b..42cc95590b 100644 --- a/vsprojects/vcxproj/test/metrics_client/metrics_client.vcxproj +++ b/vsprojects/vcxproj/test/metrics_client/metrics_client.vcxproj @@ -65,12 +65,14 @@ <TargetName>metrics_client</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>metrics_client</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> @@ -161,13 +163,13 @@ <ClInclude Include="$(SolutionDir)\..\test\cpp\util\metrics_server.h" /> </ItemGroup> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\metrics.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\metrics.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\metrics.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\metrics.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\metrics.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\metrics.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\metrics.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\metrics.grpc.pb.h"> </ClInclude> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\metrics_client.cc"> </ClCompile> diff --git a/vsprojects/vcxproj/test/metrics_client/metrics_client.vcxproj.filters b/vsprojects/vcxproj/test/metrics_client/metrics_client.vcxproj.filters index cbb4ad5b9b..7329489cd3 100644 --- a/vsprojects/vcxproj/test/metrics_client/metrics_client.vcxproj.filters +++ b/vsprojects/vcxproj/test/metrics_client/metrics_client.vcxproj.filters @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\metrics.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\metrics.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\metrics_client.cc"> <Filter>test\cpp\interop</Filter> @@ -15,6 +15,18 @@ </ItemGroup> <ItemGroup> + <Filter Include="src"> + <UniqueIdentifier>{2f2185a6-32fc-013a-9860-d623721af645}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto"> + <UniqueIdentifier>{bf59f117-18fd-cc4b-b073-1a6c11dcbbbd}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc"> + <UniqueIdentifier>{a2d30ba0-0eec-29c7-9257-d55e8456eca3}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc\testing"> + <UniqueIdentifier>{47a85da2-170b-d623-a6c9-d3b4eaab5302}</UniqueIdentifier> + </Filter> <Filter Include="test"> <UniqueIdentifier>{2c00b6b1-865c-55b2-0d9d-8d7b42ad7d03}</UniqueIdentifier> </Filter> @@ -27,9 +39,6 @@ <Filter Include="test\cpp\util"> <UniqueIdentifier>{16f4e45d-a509-3e4d-4a19-9383576bec54}</UniqueIdentifier> </Filter> - <Filter Include="test\proto"> - <UniqueIdentifier>{c638ed75-9aa0-ccc3-a8d2-a1a6203977b1}</UniqueIdentifier> - </Filter> </ItemGroup> </Project> diff --git a/vsprojects/vcxproj/test/mock_test/mock_test.vcxproj b/vsprojects/vcxproj/test/mock_test/mock_test.vcxproj index f9b587a80f..8c840fd5be 100644 --- a/vsprojects/vcxproj/test/mock_test/mock_test.vcxproj +++ b/vsprojects/vcxproj/test/mock_test/mock_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>mock_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>mock_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/multiple_server_queues_test/multiple_server_queues_test.vcxproj b/vsprojects/vcxproj/test/multiple_server_queues_test/multiple_server_queues_test.vcxproj index a8e9343616..a37726ba83 100644 --- a/vsprojects/vcxproj/test/multiple_server_queues_test/multiple_server_queues_test.vcxproj +++ b/vsprojects/vcxproj/test/multiple_server_queues_test/multiple_server_queues_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>multiple_server_queues_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>multiple_server_queues_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/murmur_hash_test/murmur_hash_test.vcxproj b/vsprojects/vcxproj/test/murmur_hash_test/murmur_hash_test.vcxproj index 3691ce8006..d12ab69caf 100644 --- a/vsprojects/vcxproj/test/murmur_hash_test/murmur_hash_test.vcxproj +++ b/vsprojects/vcxproj/test/murmur_hash_test/murmur_hash_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>murmur_hash_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>murmur_hash_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/no_server_test/no_server_test.vcxproj b/vsprojects/vcxproj/test/no_server_test/no_server_test.vcxproj index 4a9cfbedd8..11518db4e7 100644 --- a/vsprojects/vcxproj/test/no_server_test/no_server_test.vcxproj +++ b/vsprojects/vcxproj/test/no_server_test/no_server_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>no_server_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>no_server_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/public_headers_must_be_c89/public_headers_must_be_c89.vcxproj b/vsprojects/vcxproj/test/public_headers_must_be_c89/public_headers_must_be_c89.vcxproj index ade586794e..155bffbe61 100644 --- a/vsprojects/vcxproj/test/public_headers_must_be_c89/public_headers_must_be_c89.vcxproj +++ b/vsprojects/vcxproj/test/public_headers_must_be_c89/public_headers_must_be_c89.vcxproj @@ -63,12 +63,14 @@ <TargetName>public_headers_must_be_c89</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>public_headers_must_be_c89</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/reconnect_interop_client/reconnect_interop_client.vcxproj b/vsprojects/vcxproj/test/reconnect_interop_client/reconnect_interop_client.vcxproj index 78407f4cd8..ad73f65504 100644 --- a/vsprojects/vcxproj/test/reconnect_interop_client/reconnect_interop_client.vcxproj +++ b/vsprojects/vcxproj/test/reconnect_interop_client/reconnect_interop_client.vcxproj @@ -65,12 +65,14 @@ <TargetName>reconnect_interop_client</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>reconnect_interop_client</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> @@ -158,29 +160,29 @@ </ItemDefinitionGroup> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\empty.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\empty.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\test.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\test.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\test.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\test.grpc.pb.h"> </ClInclude> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\reconnect_interop_client.cc"> </ClCompile> diff --git a/vsprojects/vcxproj/test/reconnect_interop_client/reconnect_interop_client.vcxproj.filters b/vsprojects/vcxproj/test/reconnect_interop_client/reconnect_interop_client.vcxproj.filters index 018b4e67af..807e1622a9 100644 --- a/vsprojects/vcxproj/test/reconnect_interop_client/reconnect_interop_client.vcxproj.filters +++ b/vsprojects/vcxproj/test/reconnect_interop_client/reconnect_interop_client.vcxproj.filters @@ -1,14 +1,14 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\reconnect_interop_client.cc"> <Filter>test\cpp\interop</Filter> @@ -16,6 +16,18 @@ </ItemGroup> <ItemGroup> + <Filter Include="src"> + <UniqueIdentifier>{64f2b493-09f7-d7cb-f9e8-3c9340ed52b8}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto"> + <UniqueIdentifier>{8adcf7eb-7c61-b465-3f50-24b72334ca70}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc"> + <UniqueIdentifier>{8fc32b7e-6688-0959-39ef-ee82ef4629a3}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc\testing"> + <UniqueIdentifier>{db662faa-152b-3329-6672-553f842cc34e}</UniqueIdentifier> + </Filter> <Filter Include="test"> <UniqueIdentifier>{9d06cc54-0814-e593-dea7-231f4cdd7839}</UniqueIdentifier> </Filter> @@ -25,9 +37,6 @@ <Filter Include="test\cpp\interop"> <UniqueIdentifier>{d2772815-610b-8123-ce83-d383ae42c5f5}</UniqueIdentifier> </Filter> - <Filter Include="test\proto"> - <UniqueIdentifier>{eb4ab688-fa6a-9b22-49d2-4c1d71522ef9}</UniqueIdentifier> - </Filter> </ItemGroup> </Project> diff --git a/vsprojects/vcxproj/test/reconnect_interop_server/reconnect_interop_server.vcxproj b/vsprojects/vcxproj/test/reconnect_interop_server/reconnect_interop_server.vcxproj index 7dea6ad049..86902aa75a 100644 --- a/vsprojects/vcxproj/test/reconnect_interop_server/reconnect_interop_server.vcxproj +++ b/vsprojects/vcxproj/test/reconnect_interop_server/reconnect_interop_server.vcxproj @@ -65,12 +65,14 @@ <TargetName>reconnect_interop_server</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>reconnect_interop_server</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> @@ -158,29 +160,29 @@ </ItemDefinitionGroup> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\empty.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\empty.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\test.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\test.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\test.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\test.grpc.pb.h"> </ClInclude> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\reconnect_interop_server.cc"> </ClCompile> diff --git a/vsprojects/vcxproj/test/reconnect_interop_server/reconnect_interop_server.vcxproj.filters b/vsprojects/vcxproj/test/reconnect_interop_server/reconnect_interop_server.vcxproj.filters index 488f36ad32..0d09fd94e4 100644 --- a/vsprojects/vcxproj/test/reconnect_interop_server/reconnect_interop_server.vcxproj.filters +++ b/vsprojects/vcxproj/test/reconnect_interop_server/reconnect_interop_server.vcxproj.filters @@ -1,14 +1,14 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\reconnect_interop_server.cc"> <Filter>test\cpp\interop</Filter> @@ -16,6 +16,18 @@ </ItemGroup> <ItemGroup> + <Filter Include="src"> + <UniqueIdentifier>{1fcb325d-f87d-6a3a-7966-dd085866559b}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto"> + <UniqueIdentifier>{a0dd749f-006f-e766-3363-ddc21ddc7137}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc"> + <UniqueIdentifier>{04d54dc7-4657-c6c1-48f3-17de7d737f13}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc\testing"> + <UniqueIdentifier>{12b2970d-42e0-b3ea-96e3-7ba58adcbc30}</UniqueIdentifier> + </Filter> <Filter Include="test"> <UniqueIdentifier>{3b344672-cac7-682c-aa96-4c737cdbd4c9}</UniqueIdentifier> </Filter> @@ -25,9 +37,6 @@ <Filter Include="test\cpp\interop"> <UniqueIdentifier>{058c3798-9fdd-84e5-9ce8-71184a49e468}</UniqueIdentifier> </Filter> - <Filter Include="test\proto"> - <UniqueIdentifier>{4f3bfec8-02f3-5a7b-c235-2b0f937d0394}</UniqueIdentifier> - </Filter> </ItemGroup> </Project> diff --git a/vsprojects/vcxproj/test/resolve_address_test/resolve_address_test.vcxproj b/vsprojects/vcxproj/test/resolve_address_test/resolve_address_test.vcxproj index acff2c8202..03e8caecd8 100644 --- a/vsprojects/vcxproj/test/resolve_address_test/resolve_address_test.vcxproj +++ b/vsprojects/vcxproj/test/resolve_address_test/resolve_address_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>resolve_address_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>resolve_address_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/secure_auth_context_test/secure_auth_context_test.vcxproj b/vsprojects/vcxproj/test/secure_auth_context_test/secure_auth_context_test.vcxproj index b9c676f637..c6d5764d4f 100644 --- a/vsprojects/vcxproj/test/secure_auth_context_test/secure_auth_context_test.vcxproj +++ b/vsprojects/vcxproj/test/secure_auth_context_test/secure_auth_context_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>secure_auth_context_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>secure_auth_context_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/secure_channel_create_test/secure_channel_create_test.vcxproj b/vsprojects/vcxproj/test/secure_channel_create_test/secure_channel_create_test.vcxproj index 6e9efd9ba5..726116de6d 100644 --- a/vsprojects/vcxproj/test/secure_channel_create_test/secure_channel_create_test.vcxproj +++ b/vsprojects/vcxproj/test/secure_channel_create_test/secure_channel_create_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>secure_channel_create_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>secure_channel_create_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/secure_endpoint_test/secure_endpoint_test.vcxproj b/vsprojects/vcxproj/test/secure_endpoint_test/secure_endpoint_test.vcxproj index e8ca6e9458..e131463b42 100644 --- a/vsprojects/vcxproj/test/secure_endpoint_test/secure_endpoint_test.vcxproj +++ b/vsprojects/vcxproj/test/secure_endpoint_test/secure_endpoint_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>secure_endpoint_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>secure_endpoint_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/server_chttp2_test/server_chttp2_test.vcxproj b/vsprojects/vcxproj/test/server_chttp2_test/server_chttp2_test.vcxproj index 32021b70fe..3562e6acb3 100644 --- a/vsprojects/vcxproj/test/server_chttp2_test/server_chttp2_test.vcxproj +++ b/vsprojects/vcxproj/test/server_chttp2_test/server_chttp2_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>server_chttp2_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>server_chttp2_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/server_crash_test_client/server_crash_test_client.vcxproj b/vsprojects/vcxproj/test/server_crash_test_client/server_crash_test_client.vcxproj index dbd8081584..4b25a3e43d 100644 --- a/vsprojects/vcxproj/test/server_crash_test_client/server_crash_test_client.vcxproj +++ b/vsprojects/vcxproj/test/server_crash_test_client/server_crash_test_client.vcxproj @@ -65,12 +65,14 @@ <TargetName>server_crash_test_client</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>server_crash_test_client</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/server_registered_method_bad_client_test/server_registered_method_bad_client_test.vcxproj b/vsprojects/vcxproj/test/server_registered_method_bad_client_test/server_registered_method_bad_client_test.vcxproj index 3920bdff5a..83527d31ca 100644 --- a/vsprojects/vcxproj/test/server_registered_method_bad_client_test/server_registered_method_bad_client_test.vcxproj +++ b/vsprojects/vcxproj/test/server_registered_method_bad_client_test/server_registered_method_bad_client_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>server_registered_method_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>server_registered_method_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/server_test/server_test.vcxproj b/vsprojects/vcxproj/test/server_test/server_test.vcxproj index 161f067412..0b4d97797b 100644 --- a/vsprojects/vcxproj/test/server_test/server_test.vcxproj +++ b/vsprojects/vcxproj/test/server_test/server_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>server_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>server_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/set_initial_connect_string_test/set_initial_connect_string_test.vcxproj b/vsprojects/vcxproj/test/set_initial_connect_string_test/set_initial_connect_string_test.vcxproj index ec28fccbea..5fda720526 100644 --- a/vsprojects/vcxproj/test/set_initial_connect_string_test/set_initial_connect_string_test.vcxproj +++ b/vsprojects/vcxproj/test/set_initial_connect_string_test/set_initial_connect_string_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>set_initial_connect_string_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>set_initial_connect_string_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/shutdown_test/shutdown_test.vcxproj b/vsprojects/vcxproj/test/shutdown_test/shutdown_test.vcxproj index 93b9a16722..1ff80b7269 100644 --- a/vsprojects/vcxproj/test/shutdown_test/shutdown_test.vcxproj +++ b/vsprojects/vcxproj/test/shutdown_test/shutdown_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>shutdown_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>shutdown_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/simple_request_bad_client_test/simple_request_bad_client_test.vcxproj b/vsprojects/vcxproj/test/simple_request_bad_client_test/simple_request_bad_client_test.vcxproj index c29a06fe70..0e065d5c47 100644 --- a/vsprojects/vcxproj/test/simple_request_bad_client_test/simple_request_bad_client_test.vcxproj +++ b/vsprojects/vcxproj/test/simple_request_bad_client_test/simple_request_bad_client_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>simple_request_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>simple_request_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/sockaddr_resolver_test/sockaddr_resolver_test.vcxproj b/vsprojects/vcxproj/test/sockaddr_resolver_test/sockaddr_resolver_test.vcxproj index ce9c2deb2c..1062132c60 100644 --- a/vsprojects/vcxproj/test/sockaddr_resolver_test/sockaddr_resolver_test.vcxproj +++ b/vsprojects/vcxproj/test/sockaddr_resolver_test/sockaddr_resolver_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>sockaddr_resolver_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>sockaddr_resolver_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/sockaddr_utils_test/sockaddr_utils_test.vcxproj b/vsprojects/vcxproj/test/sockaddr_utils_test/sockaddr_utils_test.vcxproj index bd29f0574b..1b9024caa9 100644 --- a/vsprojects/vcxproj/test/sockaddr_utils_test/sockaddr_utils_test.vcxproj +++ b/vsprojects/vcxproj/test/sockaddr_utils_test/sockaddr_utils_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>sockaddr_utils_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>sockaddr_utils_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/status_test/status_test.vcxproj b/vsprojects/vcxproj/test/status_test/status_test.vcxproj index 6d551b8a09..8e8e3839cf 100644 --- a/vsprojects/vcxproj/test/status_test/status_test.vcxproj +++ b/vsprojects/vcxproj/test/status_test/status_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>status_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>status_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj b/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj index dad322c925..ba2ed468b9 100644 --- a/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj +++ b/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>stress_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>stress_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> @@ -164,37 +166,37 @@ <ClInclude Include="$(SolutionDir)\..\test\cpp\util\metrics_server.h" /> </ItemGroup> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\empty.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\empty.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\messages.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\metrics.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\metrics.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\metrics.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\metrics.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\metrics.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\metrics.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\metrics.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\metrics.grpc.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\test.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\test.pb.h"> </ClInclude> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.grpc.pb.cc"> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.grpc.pb.cc"> </ClCompile> - <ClInclude Include="$(SolutionDir)\..\test\proto\test.grpc.pb.h"> + <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\test.grpc.pb.h"> </ClInclude> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\interop_client.cc"> </ClCompile> diff --git a/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj.filters b/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj.filters index e76ca188ef..08367b79af 100644 --- a/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj.filters +++ b/vsprojects/vcxproj/test/stress_test/stress_test.vcxproj.filters @@ -1,17 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> - <ClCompile Include="$(SolutionDir)\..\test\proto\empty.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\empty.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\messages.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\metrics.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\metrics.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\test\proto\test.proto"> - <Filter>test\proto</Filter> + <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\test.proto"> + <Filter>src\proto\grpc\testing</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\cpp\interop\interop_client.cc"> <Filter>test\cpp\interop</Filter> @@ -42,6 +42,18 @@ </ItemGroup> <ItemGroup> + <Filter Include="src"> + <UniqueIdentifier>{2240848e-b50a-4076-464a-786310b2d6be}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto"> + <UniqueIdentifier>{aaad45c2-b399-83f4-5950-6d90d3ee1c32}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc"> + <UniqueIdentifier>{1a3222d0-0e47-792c-188e-207fcd8286c5}</UniqueIdentifier> + </Filter> + <Filter Include="src\proto\grpc\testing"> + <UniqueIdentifier>{7f2f0ad6-9e60-abd3-c178-d82a346be435}</UniqueIdentifier> + </Filter> <Filter Include="test"> <UniqueIdentifier>{0fddcdfd-8fd7-bb4b-e21d-f53728f4a766}</UniqueIdentifier> </Filter> @@ -54,9 +66,6 @@ <Filter Include="test\cpp\util"> <UniqueIdentifier>{e4704307-621e-0e9c-08c2-3c698c1b827f}</UniqueIdentifier> </Filter> - <Filter Include="test\proto"> - <UniqueIdentifier>{7172a335-47bf-8284-380d-a28a05c07311}</UniqueIdentifier> - </Filter> </ItemGroup> </Project> diff --git a/vsprojects/vcxproj/test/thread_stress_test/thread_stress_test.vcxproj b/vsprojects/vcxproj/test/thread_stress_test/thread_stress_test.vcxproj index 33c0febb91..44b0a35766 100644 --- a/vsprojects/vcxproj/test/thread_stress_test/thread_stress_test.vcxproj +++ b/vsprojects/vcxproj/test/thread_stress_test/thread_stress_test.vcxproj @@ -65,12 +65,14 @@ <TargetName>thread_stress_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>thread_stress_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/time_averaged_stats_test/time_averaged_stats_test.vcxproj b/vsprojects/vcxproj/test/time_averaged_stats_test/time_averaged_stats_test.vcxproj index 47ddeb8000..ea8937978e 100644 --- a/vsprojects/vcxproj/test/time_averaged_stats_test/time_averaged_stats_test.vcxproj +++ b/vsprojects/vcxproj/test/time_averaged_stats_test/time_averaged_stats_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>time_averaged_stats_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>time_averaged_stats_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/timeout_encoding_test/timeout_encoding_test.vcxproj b/vsprojects/vcxproj/test/timeout_encoding_test/timeout_encoding_test.vcxproj index cd97231cfd..37be682009 100644 --- a/vsprojects/vcxproj/test/timeout_encoding_test/timeout_encoding_test.vcxproj +++ b/vsprojects/vcxproj/test/timeout_encoding_test/timeout_encoding_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>timeout_encoding_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>timeout_encoding_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/timer_heap_test/timer_heap_test.vcxproj b/vsprojects/vcxproj/test/timer_heap_test/timer_heap_test.vcxproj index 65708793f3..6718a56c40 100644 --- a/vsprojects/vcxproj/test/timer_heap_test/timer_heap_test.vcxproj +++ b/vsprojects/vcxproj/test/timer_heap_test/timer_heap_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>timer_heap_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>timer_heap_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/timer_list_test/timer_list_test.vcxproj b/vsprojects/vcxproj/test/timer_list_test/timer_list_test.vcxproj index 6287688e4f..06249604bb 100644 --- a/vsprojects/vcxproj/test/timer_list_test/timer_list_test.vcxproj +++ b/vsprojects/vcxproj/test/timer_list_test/timer_list_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>timer_list_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>timer_list_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/timers_test/timers_test.vcxproj b/vsprojects/vcxproj/test/timers_test/timers_test.vcxproj index 629e1d5317..fa1ba6adc6 100644 --- a/vsprojects/vcxproj/test/timers_test/timers_test.vcxproj +++ b/vsprojects/vcxproj/test/timers_test/timers_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>timers_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>timers_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/transport_connectivity_state_test/transport_connectivity_state_test.vcxproj b/vsprojects/vcxproj/test/transport_connectivity_state_test/transport_connectivity_state_test.vcxproj index 18e125c1aa..fd41bd7d3f 100644 --- a/vsprojects/vcxproj/test/transport_connectivity_state_test/transport_connectivity_state_test.vcxproj +++ b/vsprojects/vcxproj/test/transport_connectivity_state_test/transport_connectivity_state_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>transport_connectivity_state_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>transport_connectivity_state_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/transport_metadata_test/transport_metadata_test.vcxproj b/vsprojects/vcxproj/test/transport_metadata_test/transport_metadata_test.vcxproj index fdf1186f8a..4debc5b809 100644 --- a/vsprojects/vcxproj/test/transport_metadata_test/transport_metadata_test.vcxproj +++ b/vsprojects/vcxproj/test/transport_metadata_test/transport_metadata_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>transport_metadata_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>transport_metadata_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/unknown_frame_bad_client_test/unknown_frame_bad_client_test.vcxproj b/vsprojects/vcxproj/test/unknown_frame_bad_client_test/unknown_frame_bad_client_test.vcxproj index 0c2567ebe4..3fc458ee3d 100644 --- a/vsprojects/vcxproj/test/unknown_frame_bad_client_test/unknown_frame_bad_client_test.vcxproj +++ b/vsprojects/vcxproj/test/unknown_frame_bad_client_test/unknown_frame_bad_client_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>unknown_frame_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>unknown_frame_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/uri_parser_test/uri_parser_test.vcxproj b/vsprojects/vcxproj/test/uri_parser_test/uri_parser_test.vcxproj index 0dd7ad40d5..51c4a274a8 100644 --- a/vsprojects/vcxproj/test/uri_parser_test/uri_parser_test.vcxproj +++ b/vsprojects/vcxproj/test/uri_parser_test/uri_parser_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>uri_parser_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>uri_parser_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> diff --git a/vsprojects/vcxproj/test/window_overflow_bad_client_test/window_overflow_bad_client_test.vcxproj b/vsprojects/vcxproj/test/window_overflow_bad_client_test/window_overflow_bad_client_test.vcxproj index d709a8c8f7..a40c9b99cb 100644 --- a/vsprojects/vcxproj/test/window_overflow_bad_client_test/window_overflow_bad_client_test.vcxproj +++ b/vsprojects/vcxproj/test/window_overflow_bad_client_test/window_overflow_bad_client_test.vcxproj @@ -63,12 +63,14 @@ <TargetName>window_overflow_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Release'"> <TargetName>window_overflow_bad_client_test</TargetName> <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> + <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |