Merge pull request #13051 from ctiller/bazel-pollers

Test multiple pollers with Bazel
pull/13068/head^2
Craig Tiller 7 years ago committed by GitHub
commit f66cfed913
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 39
      bazel/grpc_build_system.bzl
  2. 5
      test/core/util/BUILD
  3. 19
      test/core/util/run_with_poller.sh

@ -23,6 +23,9 @@
# each change must be ported from one to the other. # each change must be ported from one to the other.
# #
# The set of pollers to test against if a test exercises polling
POLLERS = ['epollex', 'epollsig', 'epoll1', 'poll', 'poll-cv']
def grpc_cc_library(name, srcs = [], public_hdrs = [], hdrs = [], def grpc_cc_library(name, srcs = [], public_hdrs = [], hdrs = [],
external_deps = [], deps = [], standalone = False, external_deps = [], deps = [], standalone = False,
language = "C++", testonly = False, visibility = None, language = "C++", testonly = False, visibility = None,
@ -70,19 +73,35 @@ def grpc_proto_library(name, srcs = [], deps = [], well_known_protos = False,
generate_mock = generate_mock, generate_mock = generate_mock,
) )
def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data = [], language = "C++"): def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data = [], uses_polling = True, language = "C++"):
copts = [] copts = []
if language.upper() == "C": if language.upper() == "C":
copts = ["-std=c99"] copts = ["-std=c99"]
native.cc_test( args = {
name = name, 'name': name,
srcs = srcs, 'srcs': srcs,
args = args, 'args': args,
data = data, 'data': data,
deps = deps + ["//external:" + dep for dep in external_deps], 'deps': deps + ["//external:" + dep for dep in external_deps],
copts = copts, 'copts': copts,
linkopts = ["-pthread"], 'linkopts': ["-pthread"],
) }
if uses_polling:
native.cc_binary(testonly=True, **args)
for poller in POLLERS:
native.sh_test(
name = name + '@poller=' + poller,
data = [name],
srcs = [
'//test/core/util:run_with_poller_sh',
],
args = [
poller,
'$(location %s)' % name
],
)
else:
native.cc_test(**args)
def grpc_cc_binary(name, srcs = [], deps = [], external_deps = [], args = [], data = [], language = "C++", testonly = False, linkshared = False, linkopts = []): def grpc_cc_binary(name, srcs = [], deps = [], external_deps = [], args = [], data = [], language = "C++", testonly = False, linkshared = False, linkopts = []):
copts = [] copts = []

@ -137,3 +137,8 @@ sh_library(
name = "fuzzer_one_entry_runner", name = "fuzzer_one_entry_runner",
srcs = ["fuzzer_one_entry_runner.sh"], srcs = ["fuzzer_one_entry_runner.sh"],
) )
sh_library(
name = "run_with_poller_sh",
srcs = ["run_with_poller.sh"],
)

@ -0,0 +1,19 @@
#!/bin/sh
# Copyright 2017 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -ex
export GRPC_POLL_STRATEGY=$1
shift
$@
Loading…
Cancel
Save