mirror of
https://github.com/rust-lang/cargo.git
synced 2025-09-28 11:20:36 +00:00
Auto merge of #9128 - poliorcetics:respect-shortness-rustdoc, r=ehuss
Pass the error message format to rustdoc - Goes with rust-lang/rust#81675. - Will help with rust-lang/rust#81662. This is my first PR to Cargo and I haven't finished reading the contributor guide yet, how should I add tests for this ? Did I had the code in the correct place ?
This commit is contained in:
commit
572e201536
@ -228,6 +228,7 @@ impl<'a, 'cfg> Context<'a, 'cfg> {
|
||||
let mut unstable_opts = false;
|
||||
let mut args = compiler::extern_args(&self, unit, &mut unstable_opts)?;
|
||||
args.extend(compiler::lto_args(&self, unit));
|
||||
|
||||
for feature in &unit.features {
|
||||
args.push("--cfg".into());
|
||||
args.push(format!("feature=\"{}\"", feature).into());
|
||||
@ -242,6 +243,16 @@ impl<'a, 'cfg> Context<'a, 'cfg> {
|
||||
}
|
||||
}
|
||||
args.extend(self.bcx.rustdocflags_args(unit).iter().map(Into::into));
|
||||
|
||||
use super::MessageFormat;
|
||||
let format = match self.bcx.build_config.message_format {
|
||||
MessageFormat::Short => "short",
|
||||
MessageFormat::Human => "human",
|
||||
MessageFormat::Json { .. } => "json",
|
||||
};
|
||||
args.push("--error-format".into());
|
||||
args.push(format.into());
|
||||
|
||||
self.compilation.to_doc_test.push(compilation::Doctest {
|
||||
unit: unit.clone(),
|
||||
args,
|
||||
|
@ -1,6 +1,6 @@
|
||||
//! Tests for --message-format flag.
|
||||
|
||||
use cargo_test_support::{basic_manifest, project};
|
||||
use cargo_test_support::{basic_lib_manifest, basic_manifest, is_nightly, project};
|
||||
|
||||
#[cargo_test]
|
||||
fn cannot_specify_two() {
|
||||
@ -109,3 +109,30 @@ fn cargo_renders_ansi() {
|
||||
.with_stdout_contains("[..]\\u001b[38;5;9merror[..]")
|
||||
.run();
|
||||
}
|
||||
|
||||
#[cargo_test]
|
||||
fn cargo_renders_doctests() {
|
||||
if !is_nightly() {
|
||||
// --error-format=short support added in 1.51
|
||||
return;
|
||||
}
|
||||
|
||||
let p = project()
|
||||
.file("Cargo.toml", &basic_lib_manifest("foo"))
|
||||
.file(
|
||||
"src/lib.rs",
|
||||
"\
|
||||
/// ```rust
|
||||
/// bar()
|
||||
/// ```
|
||||
pub fn bar() {}
|
||||
",
|
||||
)
|
||||
.build();
|
||||
|
||||
p.cargo("test --doc --message-format short")
|
||||
.with_status(101)
|
||||
.with_stdout_contains("src/lib.rs:2:1: error[E0425]:[..]")
|
||||
.with_stdout_contains("[..]src/lib.rs - bar (line 1)[..]")
|
||||
.run();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user