only use multi_target report for selected languages

pull/20206/head
Jan Tattermusch 6 years ago
parent 902094f9f2
commit 11222b78c2
  1. 6
      tools/run_tests/python_utils/report_utils.py
  2. 10
      tools/run_tests/run_tests.py
  3. 26
      tools/run_tests/run_tests_matrix.py

@ -50,14 +50,16 @@ def render_junit_xml_report(resultset,
suite_package='grpc',
suite_name='tests',
replace_dots=True,
split_by_target=False):
multi_target=False):
"""Generate JUnit-like XML report."""
if not split_by_target:
if not multi_targets:
tree = new_junit_xml_tree()
append_junit_xml_results(tree, resultset, suite_package, suite_name, '1',
replace_dots)
create_xml_report_file(tree, report_file)
else:
# To have each test result displayed as a separate target by the Resultstore/Sponge UI,
# we generate a separate XML report file for each test result
for shortname, results in six.iteritems(resultset):
one_result = { shortname: results }
tree = new_junit_xml_tree()

@ -1472,6 +1472,14 @@ argp.add_argument(
default='tests',
type=str,
help='Test suite name to use in generated JUnit XML report')
argp.add_argument(
'--report_multi_target',
default=False,
const=True,
action='store_const',
help=
'Generate separate XML report for each test job (Looks better in UIs).'
)
argp.add_argument(
'--quiet_success',
default=False,
@ -1880,7 +1888,7 @@ def _build_and_run(check_cancelled,
upload_extra_fields)
if xml_report and resultset:
report_utils.render_junit_xml_report(
resultset, xml_report, suite_name=args.report_suite_name, split_by_target=True)
resultset, xml_report, suite_name=args.report_suite_name, multi_target=args.report_multi_target)
number_failures, _ = jobset.run(
post_tests_steps,

@ -175,7 +175,7 @@ def _create_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS):
configs=['dbg', 'opt'],
platforms=['linux'],
labels=['basictests'],
extra_args=extra_args,
extra_args=extra_args + ['--report_multi_target'],
inner_jobs=inner_jobs)
# supported on linux only
@ -184,7 +184,7 @@ def _create_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS):
configs=['dbg', 'opt'],
platforms=['linux'],
labels=['basictests', 'multilang'],
extra_args=extra_args,
extra_args=extra_args + ['--report_multi_target'],
inner_jobs=inner_jobs)
# supported on all platforms.
@ -193,7 +193,7 @@ def _create_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS):
configs=['dbg', 'opt'],
platforms=['linux', 'macos', 'windows'],
labels=['basictests', 'corelang'],
extra_args=extra_args,
extra_args=extra_args, # don't use multi_target report because C has too many test cases
inner_jobs=inner_jobs,
timeout_seconds=_CPP_RUNTESTS_TIMEOUT)
@ -203,7 +203,7 @@ def _create_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS):
configs=['dbg', 'opt'],
platforms=['linux', 'macos', 'windows'],
labels=['basictests', 'multilang'],
extra_args=extra_args,
extra_args=extra_args + ['--report_multi_target'],
inner_jobs=inner_jobs)
# C# tests on .NET core
test_jobs += _generate_jobs(
@ -213,7 +213,7 @@ def _create_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS):
arch='default',
compiler='coreclr',
labels=['basictests', 'multilang'],
extra_args=extra_args,
extra_args=extra_args + ['--report_multi_target'],
inner_jobs=inner_jobs)
test_jobs += _generate_jobs(
@ -222,7 +222,7 @@ def _create_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS):
platforms=['linux', 'macos', 'windows'],
iomgr_platforms=['native', 'gevent'],
labels=['basictests', 'multilang'],
extra_args=extra_args,
extra_args=extra_args + ['--report_multi_target'],
inner_jobs=inner_jobs)
# supported on linux and mac.
@ -231,7 +231,7 @@ def _create_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS):
configs=['dbg', 'opt'],
platforms=['linux', 'macos'],
labels=['basictests', 'corelang'],
extra_args=extra_args,
extra_args=extra_args, # don't use multi_target report because C++ has too many test cases
inner_jobs=inner_jobs,
timeout_seconds=_CPP_RUNTESTS_TIMEOUT)
@ -240,7 +240,7 @@ def _create_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS):
configs=['dbg', 'opt'],
platforms=['linux', 'macos'],
labels=['basictests', 'multilang'],
extra_args=extra_args,
extra_args=extra_args + ['--report_multi_target'],
inner_jobs=inner_jobs)
# supported on mac only.
@ -249,7 +249,7 @@ def _create_test_jobs(extra_args=[], inner_jobs=_DEFAULT_INNER_JOBS):
configs=['opt'],
platforms=['macos'],
labels=['basictests', 'multilang'],
extra_args=extra_args,
extra_args=extra_args + ['--report_multi_target'],
inner_jobs=inner_jobs,
timeout_seconds=_OBJC_RUNTESTS_TIMEOUT)
@ -400,7 +400,7 @@ def _create_portability_test_jobs(extra_args=[],
arch='default',
compiler='python_alpine',
labels=['portability', 'multilang'],
extra_args=extra_args,
extra_args=extra_args + ['--report_multi_target'],
inner_jobs=inner_jobs)
# TODO(jtattermusch): a large portion of the libuv tests is failing,
@ -605,16 +605,16 @@ if __name__ == "__main__":
report_utils.render_junit_xml_report(
resultset,
_report_filename('run_tests_matrix_jobs'),
suite_name='run_tests_matrix_jobs', split_by_target=True)
suite_name='run_tests_matrix_jobs', multi_target=True)
if num_failures == 0:
jobset.message(
'SUCCESS',
'All run_tests.py instance finished successfully.',
'All run_tests.py instances finished successfully.',
do_newline=True)
else:
jobset.message(
'FAILED',
'Some run_tests.py instance have failed.',
'Some run_tests.py instances have failed.',
do_newline=True)
sys.exit(1)

Loading…
Cancel
Save