diff --git a/llvm/utils/lit/lit/main.py b/llvm/utils/lit/lit/main.py --- a/llvm/utils/lit/lit/main.py +++ b/llvm/utils/lit/lit/main.py @@ -80,9 +80,13 @@ '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 @@ 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) diff --git a/llvm/utils/lit/lit/reports.py b/llvm/utils/lit/lit/reports.py --- a/llvm/utils/lit/lit/reports.py +++ b/llvm/utils/lit/lit/reports.py @@ -127,7 +127,7 @@ 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' diff --git a/llvm/utils/lit/tests/xunit-output.py b/llvm/utils/lit/tests/xunit-output.py --- a/llvm/utils/lit/tests/xunit-output.py +++ b/llvm/utils/lit/tests/xunit-output.py @@ -14,7 +14,7 @@ # CHECK-NEXT: ]]]]> &"]]> # CHECK-NEXT: # CHECK-NEXT: -# CHECK-NEXT: +# CHECK-NEXT: # CHECK-NEXT: # CHECK-NEXT: # CHECK-NEXT: