Rollup merge of #94566 - yanganto:show-ignore-message, r=m-ou-se

Show ignore message in console and json output

- Provide ignore the message in console and JSON output
- Modify the ignore message style in the log file

related: #92714
This commit is contained in:
Dylan DPC 2022-03-29 17:11:51 +02:00 committed by GitHub
commit 1830e8fdcd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 33 additions and 12 deletions

View file

@ -118,7 +118,7 @@ impl ConsoleTestState {
TestResult::TrIgnored => {
#[cfg(not(bootstrap))]
if let Some(msg) = ignore_message {
format!("ignored, {msg}")
format!("ignored: {msg}")
} else {
"ignored".to_owned()
}

View file

@ -121,6 +121,19 @@ impl<T: Write> OutputFormatter for JsonFormatter<T> {
),
TestResult::TrIgnored => {
#[cfg(not(bootstrap))]
return self.write_event(
"test",
desc.name.as_slice(),
"ignored",
exec_time,
stdout,
desc.ignore_message
.map(|msg| format!(r#""message": "{}""#, EscapedString(msg)))
.as_deref(),
);
#[cfg(bootstrap)]
self.write_event("test", desc.name.as_slice(), "ignored", exec_time, stdout, None)
}

View file

@ -45,8 +45,12 @@ impl<T: Write> PrettyFormatter<T> {
self.write_short_result("FAILED", term::color::RED)
}
pub fn write_ignored(&mut self) -> io::Result<()> {
self.write_short_result("ignored", term::color::YELLOW)
pub fn write_ignored(&mut self, message: Option<&'static str>) -> io::Result<()> {
if let Some(message) = message {
self.write_short_result(&format!("ignored, {}", message), term::color::YELLOW)
} else {
self.write_short_result("ignored", term::color::YELLOW)
}
}
pub fn write_time_failed(&mut self) -> io::Result<()> {
@ -214,7 +218,12 @@ impl<T: Write> OutputFormatter for PrettyFormatter<T> {
match *result {
TestResult::TrOk => self.write_ok()?,
TestResult::TrFailed | TestResult::TrFailedMsg(_) => self.write_failed()?,
TestResult::TrIgnored => self.write_ignored()?,
TestResult::TrIgnored => {
#[cfg(not(bootstrap))]
self.write_ignored(desc.ignore_message)?;
#[cfg(bootstrap)]
self.write_ignored(None)?;
}
TestResult::TrBench(ref bs) => {
self.write_bench()?;
self.write_plain(&format!(": {}", fmt_bench_samples(bs)))?;

View file

@ -5,7 +5,7 @@
OUTPUT_FILE_DEFAULT := $(TMPDIR)/libtest-json-output-default.json
OUTPUT_FILE_STDOUT_SUCCESS := $(TMPDIR)/libtest-json-output-stdout-success.json
all:
all: f.rs validate_json.py output-default.json output-stdout-success.json
$(RUSTC) --test f.rs
RUST_BACKTRACE=0 $(call RUN,f) -Z unstable-options --test-threads=1 --format=json > $(OUTPUT_FILE_DEFAULT) || true
RUST_BACKTRACE=0 $(call RUN,f) -Z unstable-options --test-threads=1 --format=json --show-output > $(OUTPUT_FILE_STDOUT_SUCCESS) || true

View file

@ -16,7 +16,7 @@ fn c() {
}
#[test]
#[ignore]
#[ignore = "msg"]
fn d() {
assert!(false);
}

View file

@ -6,5 +6,5 @@
{ "type": "test", "event": "started", "name": "c" }
{ "type": "test", "name": "c", "event": "ok" }
{ "type": "test", "event": "started", "name": "d" }
{ "type": "test", "name": "d", "event": "ignored" }
{ "type": "test", "name": "d", "event": "ignored", "message": "msg" }
{ "type": "suite", "event": "failed", "passed": 2, "failed": 1, "ignored": 1, "measured": 0, "filtered_out": 0, "exec_time": $TIME }

View file

@ -6,5 +6,5 @@
{ "type": "test", "event": "started", "name": "c" }
{ "type": "test", "name": "c", "event": "ok", "stdout": "thread 'main' panicked at 'assertion failed: false', f.rs:15:5\n" }
{ "type": "test", "event": "started", "name": "d" }
{ "type": "test", "name": "d", "event": "ignored" }
{ "type": "test", "name": "d", "event": "ignored", "message": "msg" }
{ "type": "suite", "event": "failed", "passed": 2, "failed": 1, "ignored": 1, "measured": 0, "filtered_out": 0, "exec_time": $TIME }

View file

@ -5,7 +5,6 @@
// ignore-emscripten no threads support
// run-pass
#[test]
fn test_ok() {
let _a = true;
@ -18,9 +17,9 @@ fn test_panic() {
}
#[test]
#[ignore]
#[ignore = "msg"]
fn test_no_run() {
loop{
loop {
println!("Hello, world");
}
}

View file

@ -1,6 +1,6 @@
running 3 tests
test test_no_run ... ignored
test test_no_run ... ignored, msg
test test_ok ... ok
test test_panic - should panic ... ok