@ -39,6 +39,7 @@ from src.proto.grpc.testing import metrics_pb2
from src . proto . grpc . testing import test_pb2
from tests . interop import methods
from tests . interop import resources
from tests . qps import histogram
from tests . stress import metrics_server
from tests . stress import test_runner
@ -71,6 +72,16 @@ def _args():
' --metrics_port ' ,
help = ' the port to listen for metrics requests on ' ,
default = 8081 , type = int )
parser . add_argument (
' --use_test_ca ' ,
help = ' Whether to use our fake CA. Requires --use_tls=true ' ,
default = False , type = bool )
parser . add_argument (
' --use_tls ' ,
help = ' Whether to use TLS ' , default = False , type = bool )
parser . add_argument (
' --server_host_override ' , default = " foo.test.google.fr " ,
help = ' the server host to which to claim to connect ' , type = str )
return parser . parse_args ( )
@ -90,6 +101,19 @@ def _parse_weighted_test_cases(test_case_args):
weighted_test_cases [ test_case ] = int ( weight )
return weighted_test_cases
def _get_channel ( target , args ) :
if args . use_tls :
if args . use_test_ca :
root_certificates = resources . test_root_certificates ( )
else :
root_certificates = None # will load default roots.
channel_credentials = grpc . ssl_channel_credentials (
root_certificates = root_certificates )
options = ( ( ' grpc.ssl_target_name_override ' , args . server_host_override , ) , )
return grpc . secure_channel (
target , channel_credentials , options = options )
else :
return grpc . insecure_channel ( target )
def run_test ( args ) :
test_cases = _parse_weighted_test_cases ( args . test_cases )
@ -108,7 +132,7 @@ def run_test(args):
for test_server_target in test_server_targets :
for _ in xrange ( args . num_channels_per_server ) :
channel = grpc . insecure _channel( test_server_target )
channel = _get _channel( test_server_target , args )
for _ in xrange ( args . num_stubs_per_channel ) :
stub = test_pb2 . TestServiceStub ( channel )
runner = test_runner . TestRunner ( stub , test_cases , hist ,