Skip to content
Snippets Groups Projects
Commit ac9c9f93 authored by Jan Tattermusch's avatar Jan Tattermusch
Browse files

reports can create subdirs

parent 365c52b4
No related branches found
No related tags found
No related merge requests found
...@@ -37,4 +37,4 @@ git submodule update --init ...@@ -37,4 +37,4 @@ git submodule update --init
# download docker images from dockerhub # download docker images from dockerhub
export DOCKERHUB_ORGANIZATION=grpctesting export DOCKERHUB_ORGANIZATION=grpctesting
tools/run_tests/run_tests_matrix.py -f portability linux tools/run_tests/run_tests_matrix.py -f portability linux --internal_ci
...@@ -37,4 +37,4 @@ git submodule update --init ...@@ -37,4 +37,4 @@ git submodule update --init
# download docker images from dockerhub # download docker images from dockerhub
export DOCKERHUB_ORGANIZATION=grpctesting export DOCKERHUB_ORGANIZATION=grpctesting
tools/run_tests/run_tests_matrix.py -f portability linux --build_only tools/run_tests/run_tests_matrix.py -f portability linux --internal_ci --build_only
...@@ -77,6 +77,10 @@ def render_junit_xml_report(resultset, xml_report, suite_package='grpc', ...@@ -77,6 +77,10 @@ def render_junit_xml_report(resultset, xml_report, suite_package='grpc',
ET.SubElement(xml_test, 'error', message='Timeout') ET.SubElement(xml_test, 'error', message='Timeout')
elif result.state == 'SKIPPED': elif result.state == 'SKIPPED':
ET.SubElement(xml_test, 'skipped', message='Skipped') ET.SubElement(xml_test, 'skipped', message='Skipped')
# ensure the report directory exists
report_dir = os.path.dirname(os.path.abspath(xml_report))
if not os.path.exists(report_dir):
os.makedirs(report_dir)
tree = ET.ElementTree(root) tree = ET.ElementTree(root)
tree.write(xml_report, encoding='UTF-8') tree.write(xml_report, encoding='UTF-8')
......
...@@ -55,6 +55,16 @@ _DEFAULT_INNER_JOBS = 2 ...@@ -55,6 +55,16 @@ _DEFAULT_INNER_JOBS = 2
_REPORT_SUFFIX = 'sponge_log.xml' _REPORT_SUFFIX = 'sponge_log.xml'
def _report_filename(name):
"""Generates report file name"""
return 'report_%s_%s' % (name, _REPORT_SUFFIX)
def _report_filename_internal_ci(name):
"""Generates report file name that leads to better presentation by internal CI"""
return '%s/%s' % (name, _REPORT_SUFFIX)
def _docker_jobspec(name, runtests_args=[], runtests_envs={}, def _docker_jobspec(name, runtests_args=[], runtests_envs={},
inner_jobs=_DEFAULT_INNER_JOBS): inner_jobs=_DEFAULT_INNER_JOBS):
"""Run a single instance of run_tests.py in a docker container""" """Run a single instance of run_tests.py in a docker container"""
...@@ -63,7 +73,7 @@ def _docker_jobspec(name, runtests_args=[], runtests_envs={}, ...@@ -63,7 +73,7 @@ def _docker_jobspec(name, runtests_args=[], runtests_envs={},
'--use_docker', '--use_docker',
'-t', '-t',
'-j', str(inner_jobs), '-j', str(inner_jobs),
'-x', 'report_%s_%s' % (name, _REPORT_SUFFIX), '-x', _report_filename(name),
'--report_suite_name', '%s' % name] + runtests_args, '--report_suite_name', '%s' % name] + runtests_args,
environ=runtests_envs, environ=runtests_envs,
shortname='run_tests_%s' % name, shortname='run_tests_%s' % name,
...@@ -83,7 +93,7 @@ def _workspace_jobspec(name, runtests_args=[], workspace_name=None, ...@@ -83,7 +93,7 @@ def _workspace_jobspec(name, runtests_args=[], workspace_name=None,
'tools/run_tests/helper_scripts/run_tests_in_workspace.sh', 'tools/run_tests/helper_scripts/run_tests_in_workspace.sh',
'-t', '-t',
'-j', str(inner_jobs), '-j', str(inner_jobs),
'-x', '../report_%s_%s' % (name, _REPORT_SUFFIX), '-x', '../%s' % _report_filename(name),
'--report_suite_name', '%s' % name] + runtests_args, '--report_suite_name', '%s' % name] + runtests_args,
environ=env, environ=env,
shortname='run_tests_%s' % name, shortname='run_tests_%s' % name,
...@@ -380,8 +390,17 @@ if __name__ == "__main__": ...@@ -380,8 +390,17 @@ if __name__ == "__main__":
argp.add_argument('--max_time', default=-1, type=int, argp.add_argument('--max_time', default=-1, type=int,
help='Maximum amount of time to run tests for' + help='Maximum amount of time to run tests for' +
'(other tests will be skipped)') '(other tests will be skipped)')
argp.add_argument('--internal_ci',
default=False,
action='store_const',
const=True,
help='Put reports into subdirectories to improve presentation of '
'results by Internal CI.')
args = argp.parse_args() args = argp.parse_args()
if args.internal_ci:
_report_filename = _report_filename_internal_ci # override the function
extra_args = [] extra_args = []
if args.build_only: if args.build_only:
extra_args.append('--build_only') extra_args.append('--build_only')
...@@ -450,7 +469,7 @@ if __name__ == "__main__": ...@@ -450,7 +469,7 @@ if __name__ == "__main__":
ignored_num_skipped_failures, skipped_results = jobset.run( ignored_num_skipped_failures, skipped_results = jobset.run(
skipped_jobs, skip_jobs=True) skipped_jobs, skip_jobs=True)
resultset.update(skipped_results) resultset.update(skipped_results)
report_utils.render_junit_xml_report(resultset, 'report_%s' % _REPORT_SUFFIX, report_utils.render_junit_xml_report(resultset, _report_filename('aggregate_tests'),
suite_name='aggregate_tests') suite_name='aggregate_tests')
if num_failures == 0: if num_failures == 0:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment