Skip to content

Commit

Permalink
Start to get Bazel running different pollers
Browse files Browse the repository at this point in the history
  • Loading branch information
ctiller committed Nov 30, 2017
1 parent af8470f commit 360712f
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 10 deletions.
39 changes: 29 additions & 10 deletions bazel/grpc_build_system.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@
# 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 = [],
external_deps = [], deps = [], standalone = False,
language = "C++", testonly = False, visibility = None,
Expand Down Expand Up @@ -70,19 +73,35 @@ def grpc_proto_library(name, srcs = [], deps = [], well_known_protos = False,
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 = []
if language.upper() == "C":
copts = ["-std=c99"]
native.cc_test(
name = name,
srcs = srcs,
args = args,
data = data,
deps = deps + ["//external:" + dep for dep in external_deps],
copts = copts,
linkopts = ["-pthread"],
)
args = {
'name': name,
'srcs': srcs,
'args': args,
'data': data,
'deps': deps + ["//external:" + dep for dep in external_deps],
'copts': copts,
'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 = []):
copts = []
Expand Down
5 changes: 5 additions & 0 deletions test/core/util/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -121,3 +121,8 @@ sh_library(
name = "fuzzer_one_entry_runner",
srcs = ["fuzzer_one_entry_runner.sh"],
)

sh_library(
name = "run_with_poller_sh",
srcs = ["run_with_poller.sh"],
)
19 changes: 19 additions & 0 deletions test/core/util/run_with_poller.sh
Original file line number Diff line number Diff line change
@@ -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
$@

0 comments on commit 360712f

Please sign in to comment.