doc test supports silent output

Signed-off-by: hi-rustin <rustin.liu@gmail.com>
This commit is contained in:
hi-rustin 2021-07-27 15:49:59 +08:00
parent 5ccb5a3f92
commit 8ee5433c3a
2 changed files with 71 additions and 0 deletions

View file

@ -236,6 +236,10 @@ fn run_doc_tests(
p.arg("--test-args").arg(arg);
}
if config.shell().verbosity() == Verbosity::Quiet {
p.arg("--test-args").arg("--quiet");
}
p.args(args);
if *unstable_opts {

View file

@ -216,6 +216,73 @@ fn cargo_test_quiet_no_harness() {
p.cargo("test -q").with_stdout("").with_stderr("").run();
}
#[cargo_test]
fn cargo_doc_test_quiet() {
let p = project()
.file(
"Cargo.toml",
r#"
[package]
name = "foo"
version = "0.1.0"
authors = []
"#,
)
.file(
"src/lib.rs",
r#"
/// ```
/// let result = foo::add(2, 3);
/// assert_eq!(result, 5);
/// ```
pub fn add(a: i32, b: i32) -> i32 {
a + b
}
/// ```
/// let result = foo::div(10, 2);
/// assert_eq!(result, 5);
/// ```
///
/// # Panics
///
/// The function panics if the second argument is zero.
///
/// ```rust,should_panic
/// // panics on division by zero
/// foo::div(10, 0);
/// ```
pub fn div(a: i32, b: i32) -> i32 {
if b == 0 {
panic!("Divide-by-zero error");
}
a / b
}
#[test] fn test_hello() {}
"#,
)
.build();
p.cargo("test -q")
.with_stdout(
"
running 1 test
.
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..]
running 3 tests
...
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out[..]
",
)
.with_stderr("")
.run();
}
#[cargo_test]
fn cargo_test_verbose() {
let p = project()