Skip to content

Commit e343288

Browse files
authored
Merge pull request #128 from oli-obk/like_libtest
Make output more like libtest
2 parents 6dee171 + 9c09586 commit e343288

File tree

7 files changed

+45
-34
lines changed

7 files changed

+45
-34
lines changed

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ pub type Filter = Vec<(Match, &'static [u8])>;
120120
pub fn run_tests(config: Config) -> Result<()> {
121121
let args = Args::test();
122122
if !args.quiet {
123-
eprintln!(" Compiler: {}", config.program.display());
123+
eprintln!("Compiler: {}", config.program.display());
124124
}
125125

126126
let name = config.root_dir.display().to_string();

src/status_emitter.rs

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
use bstr::ByteSlice;
44
use colored::Colorize;
55
use crossbeam_channel::{Sender, TryRecvError};
6-
use indicatif::{MultiProgress, ProgressBar, ProgressDrawTarget};
6+
use indicatif::{MultiProgress, ProgressBar, ProgressDrawTarget, ProgressStyle};
77

88
use crate::{
99
github_actions, parser::Pattern, rustc_stderr::Message, Error, Errored, Errors, TestOk,
@@ -108,14 +108,15 @@ impl Text {
108108
}
109109
}
110110
Msg::Status(msg, status) => {
111-
threads
112-
.get_mut(&msg)
113-
.unwrap()
114-
.set_message(format!("{msg} {status}"));
111+
threads.get_mut(&msg).unwrap().set_message(status);
115112
}
116113
Msg::Push(msg) => {
117114
let spinner =
118-
bars.add(ProgressBar::new_spinner().with_message(msg.clone()));
115+
bars.add(ProgressBar::new_spinner().with_prefix(msg.clone()));
116+
spinner.set_style(
117+
ProgressStyle::with_template("{prefix} {spinner}{msg}")
118+
.unwrap(),
119+
);
119120
threads.insert(msg, spinner);
120121
}
121122
Msg::IncLength => {
@@ -194,9 +195,9 @@ impl TestStatus for TextTest {
194195
Ok(TestOk::Filtered) => return,
195196
};
196197
let old_msg = self.msg();
197-
let msg = format!("{old_msg} ... {result}");
198+
let msg = format!("... {result}");
198199
if ProgressDrawTarget::stderr().is_hidden() {
199-
eprintln!("{msg}");
200+
eprintln!("{old_msg} {msg}");
200201
std::io::stderr().flush().unwrap();
201202
} else {
202203
self.text.sender.send(Msg::Pop(old_msg, Some(msg))).unwrap();
@@ -288,13 +289,17 @@ impl StatusEmitter for Text {
288289
// Print all errors in a single thread to show reliable output
289290
if failures == 0 {
290291
eprintln!();
291-
eprintln!(
292-
"test result: {}. {} tests passed, {} ignored, {} filtered out",
293-
"ok".green(),
294-
succeeded.to_string().green(),
295-
ignored.to_string().yellow(),
296-
filtered.to_string().yellow(),
297-
);
292+
eprint!("test result: {}.", "ok".green());
293+
if succeeded > 0 {
294+
eprint!(" {} passed;", succeeded.to_string().green());
295+
}
296+
if ignored > 0 {
297+
eprint!(" {} ignored;", ignored.to_string().yellow());
298+
}
299+
if filtered > 0 {
300+
eprint!(" {} filtered out;", filtered.to_string().yellow());
301+
}
302+
eprintln!();
298303
eprintln!();
299304
Box::new(())
300305
} else {
@@ -330,14 +335,19 @@ impl StatusEmitter for Text {
330335
eprintln!("{line}");
331336
}
332337
eprintln!();
333-
eprintln!(
334-
"test result: {}. {} tests failed, {} tests passed, {} ignored, {} filtered out",
335-
"FAIL".red(),
336-
self.failures.len().to_string().red().bold(),
337-
self.succeeded.to_string().green(),
338-
self.ignored.to_string().yellow(),
339-
self.filtered.to_string().yellow(),
340-
);
338+
eprint!("test result: {}.", "FAIL".red());
339+
eprint!(" {} failed;", self.failures.len().to_string().green());
340+
if self.succeeded > 0 {
341+
eprint!(" {} passed;", self.succeeded.to_string().green());
342+
}
343+
if self.ignored > 0 {
344+
eprint!(" {} ignored;", self.ignored.to_string().yellow());
345+
}
346+
if self.filtered > 0 {
347+
eprint!(" {} filtered out;", self.filtered.to_string().yellow());
348+
}
349+
eprintln!();
350+
eprintln!();
341351
}
342352
}
343353
Box::new(Summarizer {

tests/integration.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,6 @@ fn run(name: &str, mode: Mode) -> Result<()> {
7777
config.stderr_filter("(src/.*?\\.rs):[0-9]+:[0-9]+", "$1:LL:CC");
7878
config.stderr_filter("program not found", "No such file or directory");
7979
config.stderr_filter(" \\(os error [0-9]+\\)", "");
80-
// We emit this message on a thread, so it can sometimes happen that it
81-
// appears earlier or later than the regular test messages.
82-
config.stderr_filter(" Building test dependencies...\n", "");
8380

8481
let text = if args.quiet {
8582
ui_test::status_emitter::Text::quiet()
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Building dependencies ... ok
22
tests/actual_tests/foomp.rs ... ok
33

4-
test result: ok. 1 tests passed, 0 ignored, 0 filtered out
4+
test result: ok. 1 passed;
55

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Building dependencies ... ok
22
tests/actual_tests/foomp.rs ... ok
33

4-
test result: ok. 1 tests passed, 0 ignored, 0 filtered out
4+
test result: ok. 1 passed;
55

tests/integrations/basic-fail/Cargo.stderr

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,8 @@ FAILURES:
196196
tests/actual_tests/foomp2.rs
197197
tests/actual_tests/pattern_too_many_arrow.rs
198198

199-
test result: FAIL. 8 tests failed, 0 tests passed, 0 ignored, 0 filtered out
199+
test result: FAIL. 8 failed;
200+
200201
Error: tests failed
201202

202203
Location:
@@ -557,7 +558,8 @@ FAILURES:
557558
tests/actual_tests_bless/unknown_revision.rs
558559
tests/actual_tests_bless/unknown_revision2.rs
559560

560-
test result: FAIL. 18 tests failed, 14 tests passed, 3 ignored, 0 filtered out
561+
test result: FAIL. 18 failed; 14 passed; 3 ignored;
562+
561563
Building dependencies ... ok
562564
tests/actual_tests_bless_yolo/revisions_bad.rs (foo) ... ok
563565
tests/actual_tests_bless_yolo/revisions_bad.rs (bar) ... FAILED
@@ -584,7 +586,8 @@ For more information about this error, try `rustc --explain E0601`.
584586
FAILURES:
585587
tests/actual_tests_bless_yolo/revisions_bad.rs (revision bar)
586588

587-
test result: FAIL. 1 tests failed, 2 tests passed, 0 ignored, 0 filtered out
589+
test result: FAIL. 1 failed; 2 passed;
590+
588591
thread 'main' panicked at 'invalid mode/result combo: yolo: Err(tests failed
589592

590593
Location:
@@ -703,7 +706,8 @@ FAILURES:
703706
tests/actual_tests/foomp2.rs
704707
tests/actual_tests/pattern_too_many_arrow.rs
705708

706-
test result: FAIL. 8 tests failed, 0 tests passed, 0 ignored, 0 filtered out
709+
test result: FAIL. 8 failed;
710+
707711
Error: tests failed
708712

709713
Location:

tests/integrations/basic/Cargo.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ tests/actual_tests/unicode.rs ... ok
1111
tests/actual_tests/windows_paths.rs ... ok
1212
tests/actual_tests/subdir/aux_proc_macro.rs ... ok
1313

14-
test result: ok. 9 tests passed, 0 ignored, 0 filtered out
14+
test result: ok. 9 passed;
1515

0 commit comments

Comments
 (0)