mirror of
https://github.com/rust-lang/cargo.git
synced 2025-10-01 11:30:39 +00:00

This commit enables pipelined compilation by default in Cargo now that the requisite support has been stablized in rust-lang/rust#62766. This involved minor updates in a number of locations here and there, but nothing of meat has changed from the original implementation (just tweaks to how rustc is called).
183 lines
4.5 KiB
Rust
183 lines
4.5 KiB
Rust
use crate::support::{basic_manifest, project};
|
|
|
|
#[cargo_test]
|
|
fn rustdoc_simple() {
|
|
let p = project().file("src/lib.rs", "").build();
|
|
|
|
p.cargo("rustdoc -v")
|
|
.with_stderr(
|
|
"\
|
|
[DOCUMENTING] foo v0.0.1 ([CWD])
|
|
[RUNNING] `rustdoc --crate-name foo src/lib.rs [..]\
|
|
-o [CWD]/target/doc \
|
|
[..] \
|
|
-L dependency=[CWD]/target/debug/deps`
|
|
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
|
|
",
|
|
)
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn rustdoc_args() {
|
|
let p = project().file("src/lib.rs", "").build();
|
|
|
|
p.cargo("rustdoc -v -- --cfg=foo")
|
|
.with_stderr(
|
|
"\
|
|
[DOCUMENTING] foo v0.0.1 ([CWD])
|
|
[RUNNING] `rustdoc --crate-name foo src/lib.rs [..]\
|
|
-o [CWD]/target/doc \
|
|
[..] \
|
|
--cfg=foo \
|
|
-L dependency=[CWD]/target/debug/deps`
|
|
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
|
|
",
|
|
)
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn rustdoc_foo_with_bar_dependency() {
|
|
let foo = project()
|
|
.file(
|
|
"Cargo.toml",
|
|
r#"
|
|
[package]
|
|
name = "foo"
|
|
version = "0.0.1"
|
|
authors = []
|
|
|
|
[dependencies.bar]
|
|
path = "../bar"
|
|
"#,
|
|
)
|
|
.file("src/lib.rs", "extern crate bar; pub fn foo() {}")
|
|
.build();
|
|
let _bar = project()
|
|
.at("bar")
|
|
.file("Cargo.toml", &basic_manifest("bar", "0.0.1"))
|
|
.file("src/lib.rs", "pub fn baz() {}")
|
|
.build();
|
|
|
|
foo.cargo("rustdoc -v -- --cfg=foo")
|
|
.with_stderr(
|
|
"\
|
|
[CHECKING] bar v0.0.1 ([..])
|
|
[RUNNING] `rustc [..]bar/src/lib.rs [..]`
|
|
[DOCUMENTING] foo v0.0.1 ([CWD])
|
|
[RUNNING] `rustdoc --crate-name foo src/lib.rs [..]\
|
|
-o [CWD]/target/doc \
|
|
[..] \
|
|
--cfg=foo \
|
|
-L dependency=[CWD]/target/debug/deps \
|
|
--extern [..]`
|
|
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
|
|
",
|
|
)
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn rustdoc_only_bar_dependency() {
|
|
let foo = project()
|
|
.file(
|
|
"Cargo.toml",
|
|
r#"
|
|
[package]
|
|
name = "foo"
|
|
version = "0.0.1"
|
|
authors = []
|
|
|
|
[dependencies.bar]
|
|
path = "../bar"
|
|
"#,
|
|
)
|
|
.file("src/main.rs", "extern crate bar; fn main() { bar::baz() }")
|
|
.build();
|
|
let _bar = project()
|
|
.at("bar")
|
|
.file("Cargo.toml", &basic_manifest("bar", "0.0.1"))
|
|
.file("src/lib.rs", "pub fn baz() {}")
|
|
.build();
|
|
|
|
foo.cargo("rustdoc -v -p bar -- --cfg=foo")
|
|
.with_stderr(
|
|
"\
|
|
[DOCUMENTING] bar v0.0.1 ([..])
|
|
[RUNNING] `rustdoc --crate-name bar [..]bar/src/lib.rs [..]\
|
|
-o [CWD]/target/doc \
|
|
[..] \
|
|
--cfg=foo \
|
|
-L dependency=[CWD]/target/debug/deps`
|
|
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
|
|
",
|
|
)
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn rustdoc_same_name_documents_lib() {
|
|
let p = project()
|
|
.file("src/main.rs", "fn main() {}")
|
|
.file("src/lib.rs", r#" "#)
|
|
.build();
|
|
|
|
p.cargo("rustdoc -v -- --cfg=foo")
|
|
.with_stderr(
|
|
"\
|
|
[DOCUMENTING] foo v0.0.1 ([..])
|
|
[RUNNING] `rustdoc --crate-name foo src/lib.rs [..]\
|
|
-o [CWD]/target/doc \
|
|
[..] \
|
|
--cfg=foo \
|
|
-L dependency=[CWD]/target/debug/deps`
|
|
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
|
|
",
|
|
)
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn features() {
|
|
let p = project()
|
|
.file(
|
|
"Cargo.toml",
|
|
r#"
|
|
[package]
|
|
name = "foo"
|
|
version = "0.0.1"
|
|
authors = []
|
|
|
|
[features]
|
|
quux = []
|
|
"#,
|
|
)
|
|
.file("src/lib.rs", "")
|
|
.build();
|
|
|
|
p.cargo("rustdoc --verbose --features quux")
|
|
.with_stderr_contains("[..]feature=[..]quux[..]")
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
#[cfg(all(target_arch = "x86_64", target_os = "linux", target_env = "gnu"))]
|
|
fn rustdoc_target() {
|
|
let p = project().file("src/lib.rs", "").build();
|
|
|
|
p.cargo("rustdoc --verbose --target x86_64-unknown-linux-gnu")
|
|
.with_stderr(
|
|
"\
|
|
[DOCUMENTING] foo v0.0.1 ([..])
|
|
[RUNNING] `rustdoc --crate-name foo src/lib.rs [..]\
|
|
--target x86_64-unknown-linux-gnu \
|
|
-o [CWD]/target/x86_64-unknown-linux-gnu/doc \
|
|
[..] \
|
|
-L dependency=[CWD]/target/x86_64-unknown-linux-gnu/debug/deps \
|
|
-L dependency=[CWD]/target/debug/deps`
|
|
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]",
|
|
)
|
|
.run();
|
|
}
|