diff options
| author | bors <bors@rust-lang.org> | 2021-05-27 21:14:55 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-05-27 21:14:55 +0000 |
| commit | 1c6868aa21981b37cbd3fc95828ee3b0ac22d494 (patch) | |
| tree | efa2770eecc3605da8b0e5a4e0609a602f96f99c /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | |
| parent | e51830b90afd339332892a8f20db1957d43bf086 (diff) | |
| parent | 9f83e2290a978ef448567e55548a192f8b8f1f69 (diff) | |
| download | rust-1c6868aa21981b37cbd3fc95828ee3b0ac22d494.tar.gz rust-1c6868aa21981b37cbd3fc95828ee3b0ac22d494.zip | |
Auto merge of #84568 - andoriyu:libtest/junit_formatter, r=yaahc
feat(libtest): Add JUnit formatter
tracking issue: https://github.com/rust-lang/rust/issues/85563
Add an alternative formatter to `libtest`. Formatter produces valid xml that later can be interpreted as JUnit report.
Caveats:
- `timestamp` is required by schema, but every viewer/parser ignores it. Attribute is not set to avoid depending on chrono;
- Running all "suits" (unit tests, doc-tests and integration tests) will produce a mess;
- I couldn't find a way to get integration test binary name, so it's just goes by "integration";
Sample output for unit tests (pretty printed by 3rd party tool):
```
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite name="test" package="test" id="0" errors="0" failures="0" tests="13" skipped="1">
<testcase classname="results::tests" name="test_completed_bad" time="0"/>
<testcase classname="results::tests" name="suite_started" time="0"/>
<testcase classname="results::tests" name="suite_ended_ok" time="0"/>
<testcase classname="results::tests" name="suite_ended_bad" time="0"/>
<testcase classname="junit::tests" name="test_failed_output" time="0"/>
<testcase classname="junit::tests" name="test_simple_output" time="0"/>
<testcase classname="junit::tests" name="test_multiple_outputs" time="0"/>
<testcase classname="results::tests" name="test_completed_ok" time="0"/>
<testcase classname="results::tests" name="test_stared" time="0"/>
<testcase classname="junit::tests" name="test_generate_xml_no_error_single_testsuite" time="0"/>
<testcase classname="results::tests" name="test_simple_output" time="0"/>
<testcase classname="test" name="should_panic" time="0"/>
<system-out/>
<system-err/>
</testsuite>
</testsuites>
```
Sample output for integration tests (pretty printed by 3rd party tool):
```
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite name="test" package="test" id="0" errors="0" failures="0" tests="1" skipped="0">
<testcase classname="integration" name="test_add" time="0"/>
<system-out/>
<system-err/>
</testsuite>
</testsuites>
```
Sample output for Doc-tests (pretty printed by 3rd party tool):
```
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite name="test" package="test" id="0" errors="0" failures="0" tests="1" skipped="0">
<testcase classname="src/lib.rs" name="(line 2)" time="0"/>
<system-out/>
<system-err/>
</testsuite>
</testsuites>
```
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
