|
|
|
@ -34,6 +34,7 @@ JAVA_WARMUP_SECONDS=15 # Java needs more warmup time for JIT to kick in. |
|
|
|
|
BENCHMARK_SECONDS=30 |
|
|
|
|
|
|
|
|
|
SMOKETEST='smoketest' |
|
|
|
|
SCALABLE='scalable' |
|
|
|
|
|
|
|
|
|
SECURE_SECARGS = {'use_test_ca': True, |
|
|
|
|
'server_host_override': 'foo.test.google.fr'} |
|
|
|
@ -181,7 +182,7 @@ class CXXLanguage: |
|
|
|
|
# TODO(ctiller): add 70% load latency test |
|
|
|
|
for secure in [True, False]: |
|
|
|
|
secstr = 'secure' if secure else 'insecure' |
|
|
|
|
smoketest_categories = [SMOKETEST] if secure else None |
|
|
|
|
smoketest_categories = [SMOKETEST] if secure else [] |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'cpp_generic_async_streaming_ping_pong_%s' % secstr, rpc_type='STREAMING', |
|
|
|
@ -214,20 +215,21 @@ class CXXLanguage: |
|
|
|
|
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', |
|
|
|
|
unconstrained_client='async', |
|
|
|
|
secure=secure, |
|
|
|
|
categories=smoketest_categories) |
|
|
|
|
categories=smoketest_categories+[SCALABLE]) |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'cpp_protobuf_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING', |
|
|
|
|
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', |
|
|
|
|
unconstrained_client='async', |
|
|
|
|
secure=secure) |
|
|
|
|
secure=secure, |
|
|
|
|
categories=[SCALABLE]) |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'cpp_generic_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING', |
|
|
|
|
client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER', |
|
|
|
|
unconstrained_client='async', use_generic_payload=True, |
|
|
|
|
secure=secure, |
|
|
|
|
categories=smoketest_categories) |
|
|
|
|
categories=smoketest_categories+[SCALABLE]) |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'cpp_generic_async_streaming_qps_one_server_core_%s' % secstr, rpc_type='STREAMING', |
|
|
|
@ -275,12 +277,13 @@ class CSharpLanguage: |
|
|
|
|
'csharp_protobuf_async_unary_qps_unconstrained', rpc_type='UNARY', |
|
|
|
|
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', |
|
|
|
|
unconstrained_client='async', |
|
|
|
|
categories=[SMOKETEST]) |
|
|
|
|
categories=[SMOKETEST,SCALABLE]) |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'csharp_protobuf_async_streaming_qps_unconstrained', rpc_type='STREAMING', |
|
|
|
|
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', |
|
|
|
|
unconstrained_client='async') |
|
|
|
|
unconstrained_client='async', |
|
|
|
|
categories=[SCALABLE]) |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'csharp_to_cpp_protobuf_sync_unary_ping_pong', rpc_type='UNARY', |
|
|
|
@ -296,17 +299,20 @@ class CSharpLanguage: |
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'csharp_to_cpp_protobuf_async_unary_qps_unconstrained', rpc_type='UNARY', |
|
|
|
|
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', |
|
|
|
|
unconstrained_client='async', server_language='c++') |
|
|
|
|
unconstrained_client='async', server_language='c++', |
|
|
|
|
categories=[SCALABLE]) |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'csharp_to_cpp_protobuf_sync_to_async_unary_qps_unconstrained', rpc_type='UNARY', |
|
|
|
|
client_type='SYNC_CLIENT', server_type='ASYNC_SERVER', |
|
|
|
|
unconstrained_client='sync', server_language='c++') |
|
|
|
|
unconstrained_client='sync', server_language='c++', |
|
|
|
|
categories=[SCALABLE]) |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'cpp_to_csharp_protobuf_async_unary_qps_unconstrained', rpc_type='UNARY', |
|
|
|
|
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', |
|
|
|
|
unconstrained_client='async', client_language='c++') |
|
|
|
|
unconstrained_client='async', client_language='c++', |
|
|
|
|
categories=[SCALABLE]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __str__(self): |
|
|
|
@ -487,7 +493,7 @@ class JavaLanguage: |
|
|
|
|
def scenarios(self): |
|
|
|
|
for secure in [True, False]: |
|
|
|
|
secstr = 'secure' if secure else 'insecure' |
|
|
|
|
smoketest_categories = [SMOKETEST] if secure else None |
|
|
|
|
smoketest_categories = [SMOKETEST] if secure else [] |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'java_generic_async_streaming_ping_pong_%s' % secstr, rpc_type='STREAMING', |
|
|
|
@ -520,19 +526,21 @@ class JavaLanguage: |
|
|
|
|
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', |
|
|
|
|
unconstrained_client='async', |
|
|
|
|
secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS, |
|
|
|
|
categories=smoketest_categories) |
|
|
|
|
categories=smoketest_categories+[SCALABLE]) |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'java_protobuf_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING', |
|
|
|
|
client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', |
|
|
|
|
unconstrained_client='async', |
|
|
|
|
secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS) |
|
|
|
|
secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS, |
|
|
|
|
categories=[SCALABLE]) |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'java_generic_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING', |
|
|
|
|
client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER', |
|
|
|
|
unconstrained_client='async', use_generic_payload=True, |
|
|
|
|
secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS) |
|
|
|
|
secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS, |
|
|
|
|
categories=[SCALABLE]) |
|
|
|
|
|
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'java_generic_async_streaming_qps_one_server_core_%s' % secstr, rpc_type='STREAMING', |
|
|
|
@ -562,7 +570,7 @@ class GoLanguage: |
|
|
|
|
def scenarios(self): |
|
|
|
|
for secure in [True, False]: |
|
|
|
|
secstr = 'secure' if secure else 'insecure' |
|
|
|
|
smoketest_categories = [SMOKETEST] if secure else None |
|
|
|
|
smoketest_categories = [SMOKETEST] if secure else [] |
|
|
|
|
|
|
|
|
|
# ASYNC_GENERIC_SERVER for Go actually uses a sync streaming server, |
|
|
|
|
# but that's mostly because of lack of better name of the enum value. |
|
|
|
@ -592,14 +600,15 @@ class GoLanguage: |
|
|
|
|
client_type='SYNC_CLIENT', server_type='SYNC_SERVER', |
|
|
|
|
unconstrained_client='async', |
|
|
|
|
secure=secure, |
|
|
|
|
categories=smoketest_categories) |
|
|
|
|
categories=smoketest_categories+[SCALABLE]) |
|
|
|
|
|
|
|
|
|
# unconstrained_client='async' is intended (client uses goroutines) |
|
|
|
|
yield _ping_pong_scenario( |
|
|
|
|
'go_protobuf_sync_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING', |
|
|
|
|
client_type='SYNC_CLIENT', server_type='SYNC_SERVER', |
|
|
|
|
unconstrained_client='async', |
|
|
|
|
secure=secure) |
|
|
|
|
secure=secure, |
|
|
|
|
categories=[SCALABLE]) |
|
|
|
|
|
|
|
|
|
# unconstrained_client='async' is intended (client uses goroutines) |
|
|
|
|
# ASYNC_GENERIC_SERVER for Go actually uses a sync streaming server, |
|
|
|
@ -608,7 +617,8 @@ class GoLanguage: |
|
|
|
|
'go_generic_sync_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING', |
|
|
|
|
client_type='SYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER', |
|
|
|
|
unconstrained_client='async', use_generic_payload=True, |
|
|
|
|
secure=secure) |
|
|
|
|
secure=secure, |
|
|
|
|
categories=[SCALABLE]) |
|
|
|
|
|
|
|
|
|
# TODO(jtattermusch): add scenarios go vs C++ |
|
|
|
|
|
|
|
|
|