forked from OSchip/llvm-project
[lit] Don't include tests skipped due to sharding in reports
When running multiple shards, don't include skipped tests in the xunit output since merging the files will result in duplicates. In our CHERI Jenkins CI, I configured the libc++ tests to run using sharding (since we are testing using a single-CPU QEMU). We then merge the generated XUnit xml files to produce a final result, but if the individual XMLs report tests excluded due to sharding each test is included N times in the final result. This also makes it difficult to find the tests that were skipped due to missing REQUIRES: etc. Reviewed By: yln Differential Revision: https://reviews.llvm.org/D84235
This commit is contained in:
parent
98b61112c3
commit
18df607dbe
|
@ -80,9 +80,13 @@ def main(builtin_params={}):
|
|||
'error.\n')
|
||||
sys.exit(2)
|
||||
|
||||
# When running multiple shards, don't include skipped tests in the xunit
|
||||
# output since merging the files will result in duplicates.
|
||||
tests_for_report = discovered_tests
|
||||
if opts.shard:
|
||||
(run, shards) = opts.shard
|
||||
selected_tests = filter_by_shard(selected_tests, run, shards, lit_config)
|
||||
tests_for_report = selected_tests
|
||||
if not selected_tests:
|
||||
sys.stderr.write('warning: shard does not contain any tests. '
|
||||
'Consider decreasing the number of shards.\n')
|
||||
|
@ -102,7 +106,7 @@ def main(builtin_params={}):
|
|||
print_results(discovered_tests, elapsed, opts)
|
||||
|
||||
for report in opts.reports:
|
||||
report.write_results(discovered_tests, elapsed)
|
||||
report.write_results(tests_for_report, elapsed)
|
||||
|
||||
if lit_config.numErrors:
|
||||
sys.stderr.write('\n%d error(s) in tests\n' % lit_config.numErrors)
|
||||
|
|
|
@ -127,7 +127,7 @@ class XunitReport(object):
|
|||
def _get_skip_reason(self, test):
|
||||
code = test.result.code
|
||||
if code == lit.Test.EXCLUDED:
|
||||
return 'Test not selected (--filter, --max-tests, --run-shard)'
|
||||
return 'Test not selected (--filter, --max-tests)'
|
||||
if code == lit.Test.SKIPPED:
|
||||
return 'User interrupt'
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# CHECK-NEXT: <failure><![CDATA[& < > ]]]]><![CDATA[> &"]]></failure>
|
||||
# CHECK-NEXT: </testcase>
|
||||
# CHECK-NEXT: <testcase classname="test-data.test-data" name="excluded.ini" time="{{[0-1]\.[0-9]+}}">
|
||||
# CHECK-NEXT: <skipped message="Test not selected (--filter, --max-tests, --run-shard)"/>
|
||||
# CHECK-NEXT: <skipped message="Test not selected (--filter, --max-tests)"/>
|
||||
# CHECK-NEXT: </testcase>
|
||||
# CHECK-NEXT: <testcase classname="test-data.test-data" name="missing_feature.ini" time="{{[0-1]\.[0-9]+}}">
|
||||
# CHECK-NEXT: <skipped message="Missing required feature(s): dummy_feature"/>
|
||||
|
|
Loading…
Reference in New Issue