aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/run_tests
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2016-12-09 08:42:36 -0800
committerGravatar Craig Tiller <ctiller@google.com>2016-12-09 08:42:36 -0800
commit162f9ea69f5e839dc4fd2225cb32b1c18ef326af (patch)
treecbb9b7edaba5c438c21d3b9d2e464105cf6192e8 /tools/run_tests
parentebffb4b8231ee397b9415966a6e76c99099fe3c2 (diff)
parent7ae081b9f02667a22797d313c56b1f592a568dd0 (diff)
Merge branch 'slice_with_exec_ctx' into slice_interning
Diffstat (limited to 'tools/run_tests')
-rwxr-xr-xtools/run_tests/build_python.sh3
-rwxr-xr-xtools/run_tests/dockerize/build_and_run_docker.sh11
-rwxr-xr-xtools/run_tests/jobset.py12
-rw-r--r--tools/run_tests/package_targets.py41
-rwxr-xr-xtools/run_tests/performance/process_local_perf_flamegraphs.sh40
-rwxr-xr-xtools/run_tests/performance/process_remote_perf_flamegraphs.sh44
-rw-r--r--tools/run_tests/report_utils.py7
-rwxr-xr-xtools/run_tests/run_performance_tests.py148
-rwxr-xr-xtools/run_tests/run_tests.py8
-rwxr-xr-xtools/run_tests/sanity/check_submodules.sh2
-rwxr-xr-xtools/run_tests/sanity/core_banned_functions.py31
-rw-r--r--tools/run_tests/sources_and_headers.json108
-rw-r--r--tools/run_tests/tests.json204
13 files changed, 466 insertions, 193 deletions
diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh
index fb884ad166..7cac394960 100755
--- a/tools/run_tests/build_python.sh
+++ b/tools/run_tests/build_python.sh
@@ -171,8 +171,7 @@ pip_install_dir() {
}
$VENV_PYTHON -m pip install --upgrade pip
-# TODO(https://github.com/pypa/setuptools/issues/709) get the latest setuptools
-$VENV_PYTHON -m pip install setuptools==25.1.1
+$VENV_PYTHON -m pip install setuptools
$VENV_PYTHON -m pip install cython
pip_install_dir $ROOT
$VENV_PYTHON $ROOT/tools/distrib/python/make_grpcio_tools.py
diff --git a/tools/run_tests/dockerize/build_and_run_docker.sh b/tools/run_tests/dockerize/build_and_run_docker.sh
index 1ef34b2f96..f52f16ebd6 100755
--- a/tools/run_tests/dockerize/build_and_run_docker.sh
+++ b/tools/run_tests/dockerize/build_and_run_docker.sh
@@ -41,13 +41,20 @@ cd -
# DOCKERFILE_DIR - Directory in which Dockerfile file is located.
# DOCKER_RUN_SCRIPT - Script to run under docker (relative to grpc repo root)
# OUTPUT_DIR - Directory that will be copied from inside docker after finishing.
+# DOCKERHUB_ORGANIZATION - If set, pull a prebuilt image from given dockerhub org.
# $@ - Extra args to pass to docker run
# Use image name based on Dockerfile location checksum
DOCKER_IMAGE_NAME=$(basename $DOCKERFILE_DIR)_$(sha1sum $DOCKERFILE_DIR/Dockerfile | cut -f1 -d\ )
-# Make sure docker image has been built. Should be instantaneous if so.
-docker build -t $DOCKER_IMAGE_NAME $DOCKERFILE_DIR
+if [ "$DOCKERHUB_ORGANIZATION" != "" ]
+then
+ DOCKER_IMAGE_NAME=$DOCKERHUB_ORGANIZATION/$DOCKER_IMAGE_NAME
+ docker pull $DOCKER_IMAGE_NAME
+else
+ # Make sure docker image has been built. Should be instantaneous if so.
+ docker build -t $DOCKER_IMAGE_NAME $DOCKERFILE_DIR
+fi
# Choose random name for docker container
CONTAINER_NAME="build_and_run_docker_$(uuidgen)"
diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py
index b84eb3b5d7..2acc7971f6 100755
--- a/tools/run_tests/jobset.py
+++ b/tools/run_tests/jobset.py
@@ -49,12 +49,22 @@ measure_cpu_costs = False
_DEFAULT_MAX_JOBS = 16 * multiprocessing.cpu_count()
_MAX_RESULT_SIZE = 8192
+
+# NOTE: If you change this, please make sure to test reviewing the
+# github PR with http://reviewable.io, which is known to add UTF-8
+# characters to the PR description, which leak into the environment here
+# and cause failures.
+def strip_non_ascii_chars(s):
+ return ''.join(c for c in s if ord(c) < 128)
+
+
def sanitized_environment(env):
sanitized = {}
for key, value in env.items():
- sanitized[str(key).encode()] = str(value).encode()
+ sanitized[strip_non_ascii_chars(key)] = strip_non_ascii_chars(value)
return sanitized
+
def platform_string():
if platform.system() == 'Windows':
return 'windows'
diff --git a/tools/run_tests/package_targets.py b/tools/run_tests/package_targets.py
index 2802957ff1..673affeac0 100644
--- a/tools/run_tests/package_targets.py
+++ b/tools/run_tests/package_targets.py
@@ -71,50 +71,28 @@ def create_jobspec(name, cmdline, environ=None, cwd=None, shell=False,
class CSharpPackage:
"""Builds C# nuget packages."""
- def __init__(self, linux=False, use_dotnet_cli=True):
+ def __init__(self, linux=False):
self.linux = linux
- self.use_dotnet_cli = use_dotnet_cli
-
self.labels = ['package', 'csharp']
-
- if use_dotnet_cli:
- if linux:
- self.name = 'csharp_package_dotnetcli_linux'
- self.labels += ['linux']
- else:
- self.name = 'csharp_package_dotnetcli_windows'
- self.labels += ['windows']
+ if linux:
+ self.name = 'csharp_package_dotnetcli_linux'
+ self.labels += ['linux']
else:
- # official packages built with dotnet cli rather than nuget pack
- self.name = 'csharp_package_obsolete'
- self.labels += ['obsolete']
-
+ self.name = 'csharp_package_dotnetcli_windows'
+ self.labels += ['windows']
def pre_build_jobspecs(self):
- # The older, obsolete build uses nuget only instead of dotnet cli
- if 'obsolete' in self.labels:
- return [create_jobspec('prebuild_%s' % self.name,
- ['tools\\run_tests\\pre_build_csharp.bat'],
- shell=True,
- flake_retries=5,
- timeout_retries=2)]
- else:
- return []
+ return []
def build_jobspec(self):
- if self.use_dotnet_cli and self.linux:
+ if self.linux:
return create_docker_jobspec(
self.name,
'tools/dockerfile/test/csharp_coreclr_x64',
'src/csharp/build_packages_dotnetcli.sh')
- elif self.use_dotnet_cli:
- return create_jobspec(self.name,
- ['build_packages_dotnetcli.bat'],
- cwd='src\\csharp',
- shell=True)
else:
return create_jobspec(self.name,
- ['build_packages.bat'],
+ ['build_packages_dotnetcli.bat'],
cwd='src\\csharp',
shell=True)
@@ -194,7 +172,6 @@ def targets():
"""Gets list of supported targets"""
return [CSharpPackage(),
CSharpPackage(linux=True),
- CSharpPackage(use_dotnet_cli=False),
NodePackage(),
RubyPackage(),
PythonPackage(),
diff --git a/tools/run_tests/performance/process_local_perf_flamegraphs.sh b/tools/run_tests/performance/process_local_perf_flamegraphs.sh
new file mode 100755
index 0000000000..d15610f137
--- /dev/null
+++ b/tools/run_tests/performance/process_local_perf_flamegraphs.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+mkdir -p $OUTPUT_DIR
+
+PERF_DATA_FILE=${PERF_BASE_NAME}-perf.data
+PERF_SCRIPT_OUTPUT=${PERF_BASE_NAME}-out.perf
+
+# Generate Flame graphs
+echo "running perf script on $PERF_DATA_FILE"
+perf script -i $PERF_DATA_FILE > $PERF_SCRIPT_OUTPUT
+
+~/FlameGraph/stackcollapse-perf.pl $PERF_SCRIPT_OUTPUT | ~/FlameGraph/flamegraph.pl > ${OUTPUT_DIR}/${OUTPUT_FILENAME}.svg
diff --git a/tools/run_tests/performance/process_remote_perf_flamegraphs.sh b/tools/run_tests/performance/process_remote_perf_flamegraphs.sh
new file mode 100755
index 0000000000..cc075354cc
--- /dev/null
+++ b/tools/run_tests/performance/process_remote_perf_flamegraphs.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+mkdir -p $OUTPUT_DIR
+
+PERF_DATA_FILE=${PERF_BASE_NAME}-perf.data
+PERF_SCRIPT_OUTPUT=${PERF_BASE_NAME}-out.perf
+
+# Generate Flame graphs
+echo "running perf script on $USER_AT_HOST with perf.data"
+ssh $USER_AT_HOST "cd ~/performance_workspace/grpc && perf script -i $PERF_DATA_FILE | gzip > ${PERF_SCRIPT_OUTPUT}.gz"
+
+scp $USER_AT_HOST:~/performance_workspace/grpc/$PERF_SCRIPT_OUTPUT.gz .
+
+gzip -d -f $PERF_SCRIPT_OUTPUT.gz
+
+~/FlameGraph/stackcollapse-perf.pl --kernel $PERF_SCRIPT_OUTPUT | ~/FlameGraph/flamegraph.pl --color=java --hash > ${OUTPUT_DIR}/${OUTPUT_FILENAME}.svg
diff --git a/tools/run_tests/report_utils.py b/tools/run_tests/report_utils.py
index 90055e3530..5ce2a87cfa 100644
--- a/tools/run_tests/report_utils.py
+++ b/tools/run_tests/report_utils.py
@@ -122,3 +122,10 @@ def render_interop_html_report(
except:
print(exceptions.text_error_template().render())
raise
+
+def render_perf_profiling_results(output_filepath, profile_names):
+ with open(output_filepath, 'w') as output_file:
+ output_file.write('<ul>\n')
+ for name in profile_names:
+ output_file.write('<li><a href=%s>%s</a></li>\n' % (name, name))
+ output_file.write('</ul>\n')
diff --git a/tools/run_tests/run_performance_tests.py b/tools/run_tests/run_performance_tests.py
index 1d0c98fb69..69ccff85cf 100755
--- a/tools/run_tests/run_performance_tests.py
+++ b/tools/run_tests/run_performance_tests.py
@@ -49,6 +49,7 @@ import tempfile
import time
import traceback
import uuid
+import report_utils
_ROOT = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '../..'))
@@ -57,15 +58,18 @@ os.chdir(_ROOT)
_REMOTE_HOST_USERNAME = 'jenkins'
+_PERF_REPORT_OUTPUT_DIR = 'perf_reports'
+
class QpsWorkerJob:
"""Encapsulates a qps worker server job."""
- def __init__(self, spec, language, host_and_port):
+ def __init__(self, spec, language, host_and_port, perf_file_base_name=None):
self._spec = spec
self.language = language
self.host_and_port = host_and_port
self._job = None
+ self.perf_file_base_name = perf_file_base_name
def start(self):
self._job = jobset.Job(self._spec, newline_on_success=True, travis=True, add_env={})
@@ -80,24 +84,32 @@ class QpsWorkerJob:
self._job = None
-def create_qpsworker_job(language, shortname=None,
- port=10000, remote_host=None):
- cmdline = language.worker_cmdline() + ['--driver_port=%s' % port]
+def create_qpsworker_job(language, shortname=None, port=10000, remote_host=None, perf_cmd=None):
+ cmdline = (language.worker_cmdline() + ['--driver_port=%s' % port])
+
if remote_host:
- user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, remote_host)
- cmdline = ['ssh',
- str(user_at_host),
- 'cd ~/performance_workspace/grpc/ && %s' % ' '.join(cmdline)]
host_and_port='%s:%s' % (remote_host, port)
else:
host_and_port='localhost:%s' % port
+ perf_file_base_name = None
+ if perf_cmd:
+ perf_file_base_name = '%s-%s' % (host_and_port, shortname)
+ # specify -o output file so perf.data gets collected when worker stopped
+ cmdline = perf_cmd + ['-o', '%s-perf.data' % perf_file_base_name] + cmdline
+
+ if remote_host:
+ user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, remote_host)
+ ssh_cmd = ['ssh']
+ ssh_cmd.extend([str(user_at_host), 'cd ~/performance_workspace/grpc/ && %s' % ' '.join(cmdline)])
+ cmdline = ssh_cmd
+
jobspec = jobset.JobSpec(
cmdline=cmdline,
shortname=shortname,
timeout_seconds=5*60, # workers get restarted after each scenario
verbose_success=True)
- return QpsWorkerJob(jobspec, language, host_and_port)
+ return QpsWorkerJob(jobspec, language, host_and_port, perf_file_base_name)
def create_scenario_jobspec(scenario_json, workers, remote_host=None,
@@ -259,7 +271,7 @@ def build_on_remote_hosts(hosts, languages=scenario_config.LANGUAGES.keys(), bui
sys.exit(1)
-def create_qpsworkers(languages, worker_hosts):
+def create_qpsworkers(languages, worker_hosts, perf_cmd=None):
"""Creates QPS workers (but does not start them)."""
if not worker_hosts:
# run two workers locally (for each language)
@@ -275,11 +287,32 @@ def create_qpsworkers(languages, worker_hosts):
shortname= 'qps_worker_%s_%s' % (language,
worker_idx),
port=worker[1] + language.worker_port_offset(),
- remote_host=worker[0])
+ remote_host=worker[0],
+ perf_cmd=perf_cmd)
for language in languages
for worker_idx, worker in enumerate(workers)]
+def perf_report_processor_job(worker_host, perf_base_name, output_filename):
+ print('Creating perf report collection job for %s' % worker_host)
+ cmd = ''
+ if worker_host != 'localhost':
+ user_at_host = "%s@%s" % (_REMOTE_HOST_USERNAME, worker_host)
+ cmd = "USER_AT_HOST=%s OUTPUT_FILENAME=%s OUTPUT_DIR=%s PERF_BASE_NAME=%s\
+ tools/run_tests/performance/process_remote_perf_flamegraphs.sh" \
+ % (user_at_host, output_filename, _PERF_REPORT_OUTPUT_DIR, perf_base_name)
+ else:
+ cmd = "OUTPUT_FILENAME=%s OUTPUT_DIR=%s PERF_BASE_NAME=%s\
+ tools/run_tests/performance/process_local_perf_flamegraphs.sh" \
+ % (output_filename, _PERF_REPORT_OUTPUT_DIR, perf_base_name)
+
+ return jobset.JobSpec(cmdline=cmd,
+ timeout_seconds=3*60,
+ shell=True,
+ verbose_success=True,
+ shortname='process perf report')
+
+
Scenario = collections.namedtuple('Scenario', 'jobspec workers name')
@@ -372,6 +405,31 @@ def finish_qps_workers(jobs):
print('All QPS workers finished.')
return num_killed
+profile_output_files = []
+
+# Collect perf text reports and flamegraphs if perf_cmd was used
+# Note the base names of perf text reports are used when creating and processing
+# perf data. The scenario name uniqifies the output name in the final
+# perf reports directory.
+# Alos, the perf profiles need to be fetched and processed after each scenario
+# in order to avoid clobbering the output files.
+def run_collect_perf_profile_jobs(hosts_and_base_names, scenario_name):
+ perf_report_jobs = []
+ global profile_output_files
+ for host_and_port in hosts_and_base_names:
+ perf_base_name = hosts_and_base_names[host_and_port]
+ output_filename = '%s-%s' % (scenario_name, perf_base_name)
+ # from the base filename, create .svg output filename
+ host = host_and_port.split(':')[0]
+ profile_output_files.append('%s.svg' % output_filename)
+ perf_report_jobs.append(perf_report_processor_job(host, perf_base_name, output_filename))
+
+ jobset.message('START', 'Collecting perf reports from qps workers', do_newline=True)
+ failures, _ = jobset.run(perf_report_jobs, newline_on_success=True, maxjobs=1)
+ jobset.message('END', 'Collecting perf reports from qps workers', do_newline=True)
+ return failures
+
+
argp = argparse.ArgumentParser(description='Run performance tests.')
argp.add_argument('-l', '--language',
choices=['all'] + sorted(scenario_config.LANGUAGES.keys()),
@@ -405,6 +463,33 @@ argp.add_argument('--netperf',
help='Run netperf benchmark as one of the scenarios.')
argp.add_argument('-x', '--xml_report', default='report.xml', type=str,
help='Name of XML report file to generate.')
+argp.add_argument('--perf_args',
+ help=('Example usage: "--perf_args=record -F 99 -g". '
+ 'Wrap QPS workers in a perf command '
+ 'with the arguments to perf specified here. '
+ '".svg" flame graph profiles will be '
+ 'created for each Qps Worker on each scenario. '
+ 'Files will output to "<repo_root>/perf_reports" '
+ 'directory. Output files from running the worker '
+ 'under perf are saved in the repo root where its ran. '
+ 'Note that the perf "-g" flag is necessary for '
+ 'flame graphs generation to work (assuming the binary '
+ 'being profiled uses frame pointers, check out '
+ '"--call-graph dwarf" option using libunwind otherwise.) '
+ 'Also note that the entire "--perf_args=<arg(s)>" must '
+ 'be wrapped in quotes as in the example usage. '
+ 'If the "--perg_args" is unspecified, "perf" will '
+ 'not be used at all. '
+ 'See http://www.brendangregg.com/perf.html '
+ 'for more general perf examples.'))
+argp.add_argument('--skip_generate_flamegraphs',
+ default=False,
+ action='store_const',
+ const=True,
+ help=('Turn flame graph generation off. '
+ 'May be useful if "perf_args" arguments do not make sense for '
+ 'generating flamegraphs (e.g., "--perf_args=stat ...")'))
+
args = argp.parse_args()
@@ -435,7 +520,13 @@ if not args.remote_driver_host:
if not args.dry_run:
build_on_remote_hosts(remote_hosts, languages=[str(l) for l in languages], build_local=build_local)
-qpsworker_jobs = create_qpsworkers(languages, args.remote_worker_host)
+perf_cmd = None
+if args.perf_args:
+ # Expect /usr/bin/perf to be installed here, as is usual
+ perf_cmd = ['/usr/bin/perf']
+ perf_cmd.extend(re.split('\s+', args.perf_args))
+
+qpsworker_jobs = create_qpsworkers(languages, args.remote_worker_host, perf_cmd=perf_cmd)
# get list of worker addresses for each language.
workers_by_lang = dict([(str(language), []) for language in languages])
@@ -457,16 +548,20 @@ if not scenarios:
total_scenario_failures = 0
qps_workers_killed = 0
merged_resultset = {}
+perf_report_failures = 0
+
for scenario in scenarios:
if args.dry_run:
print(scenario.name)
else:
+ scenario_failures = 0
try:
for worker in scenario.workers:
worker.start()
- scenario_failures, resultset = jobset.run([scenario.jobspec,
- create_quit_jobspec(scenario.workers, remote_host=args.remote_driver_host)],
- newline_on_success=True, maxjobs=1)
+ jobs = [scenario.jobspec]
+ if scenario.workers:
+ jobs.append(create_quit_jobspec(scenario.workers, remote_host=args.remote_driver_host))
+ scenario_failures, resultset = jobset.run(jobs, newline_on_success=True, maxjobs=1)
total_scenario_failures += scenario_failures
merged_resultset = dict(itertools.chain(merged_resultset.iteritems(),
resultset.iteritems()))
@@ -474,10 +569,27 @@ for scenario in scenarios:
# Consider qps workers that need to be killed as failures
qps_workers_killed += finish_qps_workers(scenario.workers)
+ if perf_cmd and scenario_failures == 0 and not args.skip_generate_flamegraphs:
+ workers_and_base_names = {}
+ for worker in scenario.workers:
+ if not worker.perf_file_base_name:
+ raise Exception('using perf buf perf report filename is unspecified')
+ workers_and_base_names[worker.host_and_port] = worker.perf_file_base_name
+ perf_report_failures += run_collect_perf_profile_jobs(workers_and_base_names, scenario.name)
+
-report_utils.render_junit_xml_report(merged_resultset, args.xml_report,
- suite_name='benchmarks')
+# Still write the index.html even if some scenarios failed.
+# 'profile_output_files' will only have names for scenarios that passed
+if perf_cmd and not args.skip_generate_flamegraphs:
+ # write the index fil to the output dir, with all profiles from all scenarios/workers
+ report_utils.render_perf_profiling_results('%s/index.html' % _PERF_REPORT_OUTPUT_DIR, profile_output_files)
if total_scenario_failures > 0 or qps_workers_killed > 0:
- print ("%s scenarios failed and %s qps worker jobs killed" % (total_scenario_failures, qps_workers_killed))
+ print('%s scenarios failed and %s qps worker jobs killed' % (total_scenario_failures, qps_workers_killed))
+ sys.exit(1)
+
+report_utils.render_junit_xml_report(merged_resultset, args.xml_report,
+ suite_name='benchmarks')
+if perf_report_failures > 0:
+ print('%s perf profile collection jobs failed' % perf_report_failures)
sys.exit(1)
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index e503b82f0e..c49ee4a6cc 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -231,6 +231,9 @@ class CLanguage(object):
'GRPC_POLL_STRATEGY': polling_strategy,
'GRPC_VERBOSITY': 'DEBUG'}
shortname_ext = '' if polling_strategy=='all' else ' GRPC_POLL_STRATEGY=%s' % polling_strategy
+ timeout_scaling = 1
+ if polling_strategy == 'poll-cv':
+ timeout_scaling *= 5
if self.config.build_config in target['exclude_configs']:
continue
if self.args.iomgr_platform in target.get('exclude_iomgrs', []):
@@ -269,6 +272,7 @@ class CLanguage(object):
out.append(self.config.job_spec(cmdline,
shortname='%s --gtest_filter=%s %s' % (binary, test, shortname_ext),
cpu_cost=cpu_cost,
+ timeout_seconds=_DEFAULT_TIMEOUT_SECONDS * timeout_scaling,
environ=env))
else:
cmdline = [binary] + target['args']
@@ -279,7 +283,7 @@ class CLanguage(object):
shortname_ext,
cpu_cost=cpu_cost,
flaky=target.get('flaky', False),
- timeout_seconds=target.get('timeout_seconds', _DEFAULT_TIMEOUT_SECONDS),
+ timeout_seconds=target.get('timeout_seconds', _DEFAULT_TIMEOUT_SECONDS) * timeout_scaling,
environ=env))
elif self.args.regex == '.*' or self.platform == 'windows':
print('\nWARNING: binary not found, skipping', binary)
@@ -507,7 +511,7 @@ class PythonLanguage(object):
config.run,
timeout_seconds=5*60,
environ=dict(list(environment.items()) +
- [('GRPC_PYTHON_TESTRUNNER_FILTER', suite_name)]),
+ [('GRPC_PYTHON_TESTRUNNER_FILTER', str(suite_name))]),
shortname='%s.test.%s' % (config.name, suite_name),)
for suite_name in tests_json
for config in self.pythons]
diff --git a/tools/run_tests/sanity/check_submodules.sh b/tools/run_tests/sanity/check_submodules.sh
index 6ec0786c96..be12f968d2 100755
--- a/tools/run_tests/sanity/check_submodules.sh
+++ b/tools/run_tests/sanity/check_submodules.sh
@@ -43,7 +43,7 @@ git submodule | awk '{ print $1 }' | sort > $submodules
cat << EOF | awk '{ print $1 }' | sort > $want_submodules
c880e42ba1c8032d4cdde2aba0541d8a9d9fa2e9 third_party/boringssl (version_for_cocoapods_2.0-100-gc880e42)
05b155ff59114735ec8cd089f669c4c3d8f59029 third_party/gflags (v2.1.0-45-g05b155f)
- 44c25c892a6229b20db7cd9dc05584ea865896de third_party/google_benchmark (v0.1.0-343-g44c25c8)
+ 44c25c892a6229b20db7cd9dc05584ea865896de third_party/benchmark (v0.1.0-343-g44c25c8)
c99458533a9b4c743ed51537e25989ea55944908 third_party/googletest (release-1.7.0)
a428e42072765993ff674fda72863c9f1aa2d268 third_party/protobuf (v3.1.0)
50893291621658f355bc5b4d450a8d06a563053d third_party/zlib (v1.2.8)
diff --git a/tools/run_tests/sanity/core_banned_functions.py b/tools/run_tests/sanity/core_banned_functions.py
index cf88c42d46..afac10bf80 100755
--- a/tools/run_tests/sanity/core_banned_functions.py
+++ b/tools/run_tests/sanity/core_banned_functions.py
@@ -1,4 +1,33 @@
-#!/usr/bin/python
+#!/usr/bin/env python2.7
+
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os
import sys
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 6cdfdbf9bc..fde9beaff1 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -2263,7 +2263,7 @@
},
{
"deps": [
- "google_benchmark",
+ "benchmark",
"gpr",
"gpr_test_util",
"grpc",
@@ -2913,7 +2913,7 @@
},
{
"deps": [
- "google_benchmark"
+ "benchmark"
],
"headers": [],
"is_filegroup": false,
@@ -6207,30 +6207,30 @@
{
"deps": [],
"headers": [
- "third_party/google_benchmark/include/benchmark/benchmark.h",
- "third_party/google_benchmark/include/benchmark/benchmark_api.h",
- "third_party/google_benchmark/include/benchmark/macros.h",
- "third_party/google_benchmark/include/benchmark/reporter.h",
- "third_party/google_benchmark/src/arraysize.h",
- "third_party/google_benchmark/src/benchmark_api_internal.h",
- "third_party/google_benchmark/src/check.h",
- "third_party/google_benchmark/src/colorprint.h",
- "third_party/google_benchmark/src/commandlineflags.h",
- "third_party/google_benchmark/src/complexity.h",
- "third_party/google_benchmark/src/cycleclock.h",
- "third_party/google_benchmark/src/internal_macros.h",
- "third_party/google_benchmark/src/log.h",
- "third_party/google_benchmark/src/mutex.h",
- "third_party/google_benchmark/src/re.h",
- "third_party/google_benchmark/src/sleep.h",
- "third_party/google_benchmark/src/stat.h",
- "third_party/google_benchmark/src/string_util.h",
- "third_party/google_benchmark/src/sysinfo.h",
- "third_party/google_benchmark/src/timers.h"
- ],
- "is_filegroup": false,
- "language": "c++",
- "name": "google_benchmark",
+ "third_party/benchmark/include/benchmark/benchmark.h",
+ "third_party/benchmark/include/benchmark/benchmark_api.h",
+ "third_party/benchmark/include/benchmark/macros.h",
+ "third_party/benchmark/include/benchmark/reporter.h",
+ "third_party/benchmark/src/arraysize.h",
+ "third_party/benchmark/src/benchmark_api_internal.h",
+ "third_party/benchmark/src/check.h",
+ "third_party/benchmark/src/colorprint.h",
+ "third_party/benchmark/src/commandlineflags.h",
+ "third_party/benchmark/src/complexity.h",
+ "third_party/benchmark/src/cycleclock.h",
+ "third_party/benchmark/src/internal_macros.h",
+ "third_party/benchmark/src/log.h",
+ "third_party/benchmark/src/mutex.h",
+ "third_party/benchmark/src/re.h",
+ "third_party/benchmark/src/sleep.h",
+ "third_party/benchmark/src/stat.h",
+ "third_party/benchmark/src/string_util.h",
+ "third_party/benchmark/src/sysinfo.h",
+ "third_party/benchmark/src/timers.h"
+ ],
+ "is_filegroup": false,
+ "language": "c++",
+ "name": "benchmark",
"src": [],
"third_party": false,
"type": "lib"
@@ -6749,6 +6749,7 @@
"src/core/lib/json/json_reader.h",
"src/core/lib/json/json_writer.h",
"src/core/lib/slice/percent_encoding.h",
+ "src/core/lib/slice/slice_internal.h",
"src/core/lib/slice/slice_string_helpers.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
@@ -6943,6 +6944,7 @@
"src/core/lib/slice/slice.c",
"src/core/lib/slice/slice_buffer.c",
"src/core/lib/slice/slice_intern.c",
+ "src/core/lib/slice/slice_internal.h",
"src/core/lib/slice/slice_string_helpers.c",
"src/core/lib/slice/slice_string_helpers.h",
"src/core/lib/surface/alarm.c",
@@ -7222,9 +7224,9 @@
"src/core/lib/security/credentials/plugin/plugin_credentials.h",
"src/core/lib/security/credentials/ssl/ssl_credentials.h",
"src/core/lib/security/transport/auth_filters.h",
- "src/core/lib/security/transport/handshake.h",
"src/core/lib/security/transport/secure_endpoint.h",
"src/core/lib/security/transport/security_connector.h",
+ "src/core/lib/security/transport/security_handshaker.h",
"src/core/lib/security/transport/tsi_error.h",
"src/core/lib/security/util/b64.h",
"src/core/lib/security/util/json_util.h"
@@ -7263,12 +7265,12 @@
"src/core/lib/security/credentials/ssl/ssl_credentials.h",
"src/core/lib/security/transport/auth_filters.h",
"src/core/lib/security/transport/client_auth_filter.c",
- "src/core/lib/security/transport/handshake.c",
- "src/core/lib/security/transport/handshake.h",
"src/core/lib/security/transport/secure_endpoint.c",
"src/core/lib/security/transport/secure_endpoint.h",
"src/core/lib/security/transport/security_connector.c",
"src/core/lib/security/transport/security_connector.h",
+ "src/core/lib/security/transport/security_handshaker.c",
+ "src/core/lib/security/transport/security_handshaker.h",
"src/core/lib/security/transport/server_auth_filter.c",
"src/core/lib/security/transport/tsi_error.c",
"src/core/lib/security/transport/tsi_error.h",
@@ -7435,9 +7437,29 @@
"deps": [
"gpr",
"grpc_base",
- "grpc_client_channel",
"grpc_transport_chttp2"
],
+ "headers": [
+ "src/core/ext/transport/chttp2/client/chttp2_connector.h"
+ ],
+ "is_filegroup": true,
+ "language": "c",
+ "name": "grpc_transport_chttp2_client_connector",
+ "src": [
+ "src/core/ext/transport/chttp2/client/chttp2_connector.c",
+ "src/core/ext/transport/chttp2/client/chttp2_connector.h"
+ ],
+ "third_party": false,
+ "type": "filegroup"
+ },
+ {
+ "deps": [
+ "gpr",
+ "grpc_base",
+ "grpc_client_channel",
+ "grpc_transport_chttp2",
+ "grpc_transport_chttp2_client_connector"
+ ],
"headers": [],
"is_filegroup": true,
"language": "c",
@@ -7455,7 +7477,8 @@
"grpc_base",
"grpc_client_channel",
"grpc_secure",
- "grpc_transport_chttp2"
+ "grpc_transport_chttp2",
+ "grpc_transport_chttp2_client_connector"
],
"headers": [],
"is_filegroup": true,
@@ -7473,6 +7496,26 @@
"grpc_base",
"grpc_transport_chttp2"
],
+ "headers": [
+ "src/core/ext/transport/chttp2/server/chttp2_server.h"
+ ],
+ "is_filegroup": true,
+ "language": "c",
+ "name": "grpc_transport_chttp2_server",
+ "src": [
+ "src/core/ext/transport/chttp2/server/chttp2_server.c",
+ "src/core/ext/transport/chttp2/server/chttp2_server.h"
+ ],
+ "third_party": false,
+ "type": "filegroup"
+ },
+ {
+ "deps": [
+ "gpr",
+ "grpc_base",
+ "grpc_transport_chttp2",
+ "grpc_transport_chttp2_server"
+ ],
"headers": [],
"is_filegroup": true,
"language": "c",
@@ -7489,7 +7532,8 @@
"gpr",
"grpc_base",
"grpc_secure",
- "grpc_transport_chttp2"
+ "grpc_transport_chttp2",
+ "grpc_transport_chttp2_server"
],
"headers": [],
"is_filegroup": true,
diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json
index c4bfd0a9a7..b76263b8b9 100644
--- a/tools/run_tests/tests.json
+++ b/tools/run_tests/tests.json
@@ -36765,7 +36765,8 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -36788,7 +36789,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -36811,7 +36813,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -36834,7 +36837,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -36857,7 +36861,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -36880,7 +36885,8 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -36903,7 +36909,8 @@
"cpu_cost": 1024,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -36926,7 +36933,8 @@
"cpu_cost": 1024,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -36949,7 +36957,8 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -36972,7 +36981,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -36995,7 +37005,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37018,7 +37029,8 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37041,7 +37053,8 @@
"cpu_cost": 1024,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37064,7 +37077,8 @@
"cpu_cost": 1024,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37087,7 +37101,8 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37110,7 +37125,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37133,7 +37149,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37156,7 +37173,8 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37179,7 +37197,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37202,7 +37221,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37225,7 +37245,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37248,7 +37269,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37271,7 +37293,8 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37294,7 +37317,8 @@
"cpu_cost": 1024,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37317,7 +37341,8 @@
"cpu_cost": 1024,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37340,7 +37365,8 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37363,7 +37389,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37386,7 +37413,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37409,7 +37437,8 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37432,7 +37461,8 @@
"cpu_cost": 1024,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37455,7 +37485,8 @@
"cpu_cost": 1024,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37478,7 +37509,8 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37501,7 +37533,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37524,7 +37557,8 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "tsan"
+ "tsan",
+ "asan"
],
"flaky": false,
"language": "c++",
@@ -37547,7 +37581,6 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37570,7 +37603,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_generic_async_streaming_ping_pong_secure",
+ "shortname": "json_run_localhost:cpp_generic_async_streaming_ping_pong_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -37585,7 +37618,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37608,7 +37640,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_generic_async_streaming_qps_unconstrained_secure",
+ "shortname": "json_run_localhost:cpp_generic_async_streaming_qps_unconstrained_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -37623,7 +37655,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37646,7 +37677,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_generic_async_streaming_qps_one_server_core_secure",
+ "shortname": "json_run_localhost:cpp_generic_async_streaming_qps_one_server_core_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -37661,7 +37692,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37684,7 +37714,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_client_sync_server_unary_qps_unconstrained_secure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_client_sync_server_unary_qps_unconstrained_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -37699,7 +37729,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37722,7 +37751,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_client_sync_server_streaming_qps_unconstrained_secure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_client_sync_server_streaming_qps_unconstrained_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -37737,7 +37766,6 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37760,7 +37788,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_unary_ping_pong_secure",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_unary_ping_pong_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -37775,7 +37803,6 @@
"cpu_cost": 64,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37798,7 +37825,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_unary_qps_unconstrained_secure",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_unary_qps_unconstrained_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -37813,7 +37840,6 @@
"cpu_cost": 64,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37836,7 +37862,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_unary_qps_unconstrained_secure_500kib_resource_quota",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_unary_qps_unconstrained_secure_500kib_resource_quota_low_thread_count",
"timeout_seconds": 360
},
{
@@ -37851,7 +37877,6 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37874,7 +37899,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_unary_ping_pong_secure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_unary_ping_pong_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -37889,7 +37914,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37912,7 +37936,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_unary_qps_unconstrained_secure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_unary_qps_unconstrained_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -37927,7 +37951,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37950,7 +37973,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_unary_qps_unconstrained_secure_500kib_resource_quota",
+ "shortname": "json_run_localhost:cpp_protobuf_async_unary_qps_unconstrained_secure_500kib_resource_quota_low_thread_count",
"timeout_seconds": 360
},
{
@@ -37965,7 +37988,6 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -37988,7 +38010,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_ping_pong_secure",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_ping_pong_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38003,7 +38025,6 @@
"cpu_cost": 64,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38026,7 +38047,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_qps_unconstrained_secure",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_qps_unconstrained_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38041,7 +38062,6 @@
"cpu_cost": 64,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38064,7 +38084,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_qps_unconstrained_secure_500kib_resource_quota",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_qps_unconstrained_secure_500kib_resource_quota_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38079,7 +38099,6 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38102,7 +38121,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_streaming_ping_pong_secure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_streaming_ping_pong_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38117,7 +38136,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38140,7 +38158,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_secure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_secure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38155,7 +38173,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38178,7 +38195,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_secure_500kib_resource_quota",
+ "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_secure_500kib_resource_quota_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38193,7 +38210,6 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38216,7 +38232,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_generic_async_streaming_ping_pong_insecure",
+ "shortname": "json_run_localhost:cpp_generic_async_streaming_ping_pong_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38231,7 +38247,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38254,7 +38269,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_generic_async_streaming_qps_unconstrained_insecure",
+ "shortname": "json_run_localhost:cpp_generic_async_streaming_qps_unconstrained_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38269,7 +38284,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38292,7 +38306,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_generic_async_streaming_qps_one_server_core_insecure",
+ "shortname": "json_run_localhost:cpp_generic_async_streaming_qps_one_server_core_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38307,7 +38321,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38330,7 +38343,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_client_sync_server_unary_qps_unconstrained_insecure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_client_sync_server_unary_qps_unconstrained_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38345,7 +38358,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38368,7 +38380,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_client_sync_server_streaming_qps_unconstrained_insecure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_client_sync_server_streaming_qps_unconstrained_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38383,7 +38395,6 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38406,7 +38417,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_unary_ping_pong_insecure",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_unary_ping_pong_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38421,7 +38432,6 @@
"cpu_cost": 64,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38444,7 +38454,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_unary_qps_unconstrained_insecure",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_unary_qps_unconstrained_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38459,7 +38469,6 @@
"cpu_cost": 64,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38482,7 +38491,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_unary_qps_unconstrained_insecure_500kib_resource_quota",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_unary_qps_unconstrained_insecure_500kib_resource_quota_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38497,7 +38506,6 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38520,7 +38528,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_unary_ping_pong_insecure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_unary_ping_pong_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38535,7 +38543,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38558,7 +38565,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_unary_qps_unconstrained_insecure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_unary_qps_unconstrained_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38573,7 +38580,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38596,7 +38602,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_unary_qps_unconstrained_insecure_500kib_resource_quota",
+ "shortname": "json_run_localhost:cpp_protobuf_async_unary_qps_unconstrained_insecure_500kib_resource_quota_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38611,7 +38617,6 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38634,7 +38639,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_ping_pong_insecure",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_ping_pong_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38649,7 +38654,6 @@
"cpu_cost": 64,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38672,7 +38676,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_qps_unconstrained_insecure",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_qps_unconstrained_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38687,7 +38691,6 @@
"cpu_cost": 64,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38710,7 +38713,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_qps_unconstrained_insecure_500kib_resource_quota",
+ "shortname": "json_run_localhost:cpp_protobuf_sync_streaming_qps_unconstrained_insecure_500kib_resource_quota_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38725,7 +38728,6 @@
"cpu_cost": 2,
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38748,7 +38750,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_streaming_ping_pong_insecure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_streaming_ping_pong_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38763,7 +38765,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38786,7 +38787,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_insecure",
+ "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_insecure_low_thread_count",
"timeout_seconds": 360
},
{
@@ -38801,7 +38802,6 @@
"cpu_cost": "capacity",
"defaults": "boringssl",
"exclude_configs": [
- "asan",
"asan-noleaks",
"asan-trace-cmp",
"basicprof",
@@ -38824,7 +38824,7 @@
"platforms": [
"linux"
],
- "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_insecure_500kib_resource_quota",
+ "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_insecure_500kib_resource_quota_low_thread_count",
"timeout_seconds": 360
},
{