diff options
-rw-r--r-- | src/core/ext/transport/chttp2/client/chttp2_connector.c | 1 | ||||
-rwxr-xr-x | src/ruby/pb/test/server.rb | 27 | ||||
-rwxr-xr-x | test/core/end2end/end2end_test.sh | 33 | ||||
-rwxr-xr-x | test/core/end2end/generate_tests.bzl | 11 | ||||
-rw-r--r-- | test/core/util/BUILD | 6 | ||||
-rwxr-xr-x | test/core/util/fuzzer_one_entry_runner.sh | 33 | ||||
-rw-r--r-- | test/core/util/grpc_fuzzer.bzl | 12 | ||||
-rwxr-xr-x | tools/run_tests/sanity/check_submodules.sh | 9 |
8 files changed, 115 insertions, 17 deletions
diff --git a/src/core/ext/transport/chttp2/client/chttp2_connector.c b/src/core/ext/transport/chttp2/client/chttp2_connector.c index bf4d797938..2385f91dbd 100644 --- a/src/core/ext/transport/chttp2/client/chttp2_connector.c +++ b/src/core/ext/transport/chttp2/client/chttp2_connector.c @@ -47,7 +47,6 @@ #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/channel/handshaker.h" #include "src/core/lib/iomgr/tcp_client.h" -#include "src/core/lib/security/transport/security_connector.h" #include "src/core/lib/slice/slice_internal.h" typedef struct { diff --git a/src/ruby/pb/test/server.rb b/src/ruby/pb/test/server.rb index 3f1e0a1ccf..cc9b872648 100755 --- a/src/ruby/pb/test/server.rb +++ b/src/ruby/pb/test/server.rb @@ -129,6 +129,27 @@ def nulls(l) [].pack('x' * l).force_encoding('ascii-8bit') end +def maybe_echo_metadata(_call) + + # these are consistent for all interop tests + initial_metadata_key = "x-grpc-test-echo-initial" + trailing_metadata_key = "x-grpc-test-echo-trailing-bin" + + if _call.metadata.has_key?(initial_metadata_key) + _call.metadata_to_send[initial_metadata_key] = _call.metadata[initial_metadata_key] + end + if _call.metadata.has_key?(trailing_metadata_key) + _call.output_metadata[trailing_metadata_key] = _call.metadata[trailing_metadata_key] + end +end + +def maybe_echo_status_and_message(req) + unless req.response_status.nil? + fail GRPC::BadStatus.new_status_exception( + req.response_status.code, req.response_status.message) + end +end + # A FullDuplexEnumerator passes requests to a block and yields generated responses class FullDuplexEnumerator include Grpc::Testing @@ -143,6 +164,7 @@ class FullDuplexEnumerator begin cls = StreamingOutputCallResponse @requests.each do |req| + maybe_echo_status_and_message(req) req.response_parameters.each do |params| resp_size = params.size GRPC.logger.info("read a req, response size is #{resp_size}") @@ -170,6 +192,8 @@ class TestTarget < Grpc::Testing::TestService::Service end def unary_call(simple_req, _call) + maybe_echo_metadata(_call) + maybe_echo_status_and_message(simple_req) req_size = simple_req.response_size SimpleResponse.new(payload: Payload.new(type: :COMPRESSABLE, body: nulls(req_size))) @@ -189,7 +213,8 @@ class TestTarget < Grpc::Testing::TestService::Service end end - def full_duplex_call(reqs) + def full_duplex_call(reqs, _call) + maybe_echo_metadata(_call) # reqs is a lazy Enumerator of the requests sent by the client. FullDuplexEnumerator.new(reqs).each_item end diff --git a/test/core/end2end/end2end_test.sh b/test/core/end2end/end2end_test.sh new file mode 100755 index 0000000000..f2309acc88 --- /dev/null +++ b/test/core/end2end/end2end_test.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +# Test runner for end2end tests from bazel + +# Copyright 2017, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +$1 $2 diff --git a/test/core/end2end/generate_tests.bzl b/test/core/end2end/generate_tests.bzl index 31f330c6b9..ed1ba3eea9 100755 --- a/test/core/end2end/generate_tests.bzl +++ b/test/core/end2end/generate_tests.bzl @@ -175,8 +175,8 @@ def grpc_end2end_tests(): ) for f, fopt in END2END_FIXTURES.items(): - native.cc_library( - name = '%s_test_lib' % f, + native.cc_binary( + name = '%s_test' % f, srcs = ['fixtures/%s.c' % f], copts = ['-std=c99'], deps = [':end2end_tests'] @@ -184,8 +184,9 @@ def grpc_end2end_tests(): for t, topt in END2END_TESTS.items(): #print(compatible(fopt, topt), f, t, fopt, topt) if not compatible(fopt, topt): continue - native.cc_test( + native.sh_test( name = '%s_test@%s' % (f, t), - args = [t], - deps = [':%s_test_lib' % f], + srcs = ['end2end_test.sh'], + args = ['$(location %s_test)' % f, t], + data = [':%s_test' % f], ) diff --git a/test/core/util/BUILD b/test/core/util/BUILD index e44e4e2105..e50e595d03 100644 --- a/test/core/util/BUILD +++ b/test/core/util/BUILD @@ -50,3 +50,9 @@ cc_library( deps = [":gpr_test_util", "//:grpc"], visibility = ["//test:__subpackages__"], ) + +sh_library( + name = "fuzzer_one_entry_runner", + srcs = ["fuzzer_one_entry_runner.sh"], + visibility = ["//test:__subpackages__"], +) diff --git a/test/core/util/fuzzer_one_entry_runner.sh b/test/core/util/fuzzer_one_entry_runner.sh new file mode 100755 index 0000000000..a0558a9c09 --- /dev/null +++ b/test/core/util/fuzzer_one_entry_runner.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +# Test runner for fuzzer tests from bazel + +# Copyright 2017, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +$1 $2 diff --git a/test/core/util/grpc_fuzzer.bzl b/test/core/util/grpc_fuzzer.bzl index 3ec9e4e485..2f552a9fdb 100644 --- a/test/core/util/grpc_fuzzer.bzl +++ b/test/core/util/grpc_fuzzer.bzl @@ -28,16 +28,16 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. def grpc_fuzzer(name, corpus, srcs = [], deps = [], **kwargs): - native.cc_library( - name = "%s/one_entry" % name, + native.cc_binary( + name = '%s/one_entry.bin' % name, srcs = srcs, deps = deps + ["//test/core/util:one_corpus_entry_fuzzer"], **kwargs ) for entry in native.glob(['%s/*' % corpus]): - native.cc_test( + native.sh_test( name = '%s/one_entry/%s' % (name, entry), - deps = [':%s/one_entry' % name], - args = ['$(location %s)' % entry], - data = [entry], + data = [':%s/one_entry.bin' % name, entry], + srcs = ['//test/core/util:fuzzer_one_entry_runner'], + args = ['$(location :%s/one_entry.bin)' % name, '$(location %s)' % entry] ) diff --git a/tools/run_tests/sanity/check_submodules.sh b/tools/run_tests/sanity/check_submodules.sh index be12f968d2..61e8185854 100755 --- a/tools/run_tests/sanity/check_submodules.sh +++ b/tools/run_tests/sanity/check_submodules.sh @@ -41,13 +41,14 @@ want_submodules=`mktemp /tmp/submXXXXXX` git submodule | awk '{ print $1 }' | sort > $submodules cat << EOF | awk '{ print $1 }' | sort > $want_submodules - c880e42ba1c8032d4cdde2aba0541d8a9d9fa2e9 third_party/boringssl (version_for_cocoapods_2.0-100-gc880e42) - 05b155ff59114735ec8cd089f669c4c3d8f59029 third_party/gflags (v2.1.0-45-g05b155f) 44c25c892a6229b20db7cd9dc05584ea865896de third_party/benchmark (v0.1.0-343-g44c25c8) + c880e42ba1c8032d4cdde2aba0541d8a9d9fa2e9 third_party/boringssl (c880e42) + 886e7d75368e3f4fab3f4d0d3584e4abfc557755 third_party/boringssl-with-bazel (version_for_cocoapods_7.0-857-g886e7d7) + 05b155ff59114735ec8cd089f669c4c3d8f59029 third_party/gflags (v2.1.0-45-g05b155f) c99458533a9b4c743ed51537e25989ea55944908 third_party/googletest (release-1.7.0) - a428e42072765993ff674fda72863c9f1aa2d268 third_party/protobuf (v3.1.0) + a428e42072765993ff674fda72863c9f1aa2d268 third_party/protobuf (v3.1.0-alpha-1) + bcad91771b7f0bff28a1cac1981d7ef2b9bcef3c third_party/thrift (bcad917) 50893291621658f355bc5b4d450a8d06a563053d third_party/zlib (v1.2.8) - bcad91771b7f0bff28a1cac1981d7ef2b9bcef3c third_party/thrift EOF diff -u $submodules $want_submodules |