Add additional test runner for single-threaded unary-stream code path

pull/20938/head
Richard Belleville 5 years ago
parent 4b31415e61
commit 86cb2f9efc
  1. 8
      src/python/grpcio/grpc/_channel.py
  2. 58
      src/python/grpcio_tests/tests/unit/BUILD.bazel
  3. 5
      src/python/grpcio_tests/tests/unit/_single_threaded_unary_stream_test_runner.sh

@ -16,6 +16,7 @@
import copy
import functools
import logging
import os
import sys
import threading
import time
@ -33,6 +34,11 @@ _USER_AGENT = 'grpc-python/{}'.format(_grpcio_metadata.__version__)
_EMPTY_FLAGS = 0
# NOTE(rbellevi): No guarantees are given about the maintenance of this
# environment variable.
_DEFAULT_SINGLE_THREADED_UNARY_STREAM = os.getenv(
"GRPC_SINGLE_THREADED_UNARY_STREAM") is not None
_UNARY_UNARY_INITIAL_DUE = (
cygrpc.OperationType.send_initial_metadata,
cygrpc.OperationType.send_message,
@ -1334,7 +1340,7 @@ class Channel(grpc.Channel):
used over the lifetime of the channel.
"""
python_options, core_options = _separate_channel_options(options)
self._single_threaded_unary_stream = False
self._single_threaded_unary_stream = _DEFAULT_SINGLE_THREADED_UNARY_STREAM
self._process_python_options(python_options)
self._channel = cygrpc.Channel(
_common.encode(target), _augment_options(core_options, compression),

@ -84,29 +84,39 @@ py_library(
)
[
py2and3_test(
name=test_file_name[:-3],
size="small",
srcs=[test_file_name],
main=test_file_name,
deps=[
"//src/python/grpcio/grpc:grpcio",
":resources",
":test_common",
":thread_pool",
":_exit_scenarios",
":_server_shutdown_scenarios",
":_from_grpc_import_star",
":_tcp_proxy",
":_signal_client",
"//src/python/grpcio_tests/tests/unit/framework/common",
"//src/python/grpcio_tests/tests/testing",
"//external:six"
],
imports=["../../",],
data=[
"//src/python/grpcio_tests/tests/unit/credentials",
],
) for test_file_name in GRPCIO_TESTS_UNIT
[
py2and3_test(
name=test_file_name[:-3],
size="small",
srcs=[test_file_name],
main=test_file_name,
deps=[
"//src/python/grpcio/grpc:grpcio",
":resources",
":test_common",
":thread_pool",
":_exit_scenarios",
":_server_shutdown_scenarios",
":_from_grpc_import_star",
":_tcp_proxy",
":_signal_client",
"//src/python/grpcio_tests/tests/unit/framework/common",
"//src/python/grpcio_tests/tests/testing",
"//external:six"
],
imports=["../../",],
data=[
"//src/python/grpcio_tests/tests/unit/credentials",
],
),
sh_test(
name = test_file_name[:-3] + ".single_threaded_unary_stream",
data = ["{}.python3".format(test_file_name[:-3])],
args = ["{}.python3".format(test_file_name[:-3])],
size = "small",
srcs = ["_single_threaded_unary_stream_test_runner.sh"]
)
]
for test_file_name in GRPCIO_TESTS_UNIT
]

@ -0,0 +1,5 @@
#!/bin/bash
export GRPC_SINGLE_THREADED_UNARY_STREAM=true
find . -name "$1" -exec {} \;
Loading…
Cancel
Save