1 //! Tests for the `cargo rustdoc` command.
3 use cargo_test_support
::{basic_manifest, cross_compile, project}
;
7 let p
= project().file("src/lib.rs", "").build();
12 [DOCUMENTING] foo v0.0.1 ([CWD])
13 [RUNNING] `rustdoc [..]--crate-name foo src/lib.rs [..]\
16 -L dependency=[CWD]/target/debug/deps [..]`
17 [FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
25 let p
= project().file("src/lib.rs", "").build();
27 p
.cargo("rustdoc -v -- --cfg=foo")
30 [DOCUMENTING] foo v0.0.1 ([CWD])
31 [RUNNING] `rustdoc [..]--crate-name foo src/lib.rs [..]\
36 -L dependency=[CWD]/target/debug/deps [..]`
37 [FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
44 fn rustdoc_binary_args_passed() {
45 let p
= project().file("src/main.rs", "").build();
49 .arg("--markdown-no-toc")
50 .with_stderr_contains("[RUNNING] `rustdoc [..] --markdown-no-toc[..]`")
55 fn rustdoc_foo_with_bar_dependency() {
69 .file("src/lib.rs", "extern crate bar; pub fn foo() {}")
73 .file("Cargo.toml", &basic_manifest("bar", "0.0.1"))
74 .file("src/lib.rs", "pub fn baz() {}")
77 foo
.cargo("rustdoc -v -- --cfg=foo")
80 [CHECKING] bar v0.0.1 ([..])
81 [RUNNING] `rustc [..]bar/src/lib.rs [..]`
82 [DOCUMENTING] foo v0.0.1 ([CWD])
83 [RUNNING] `rustdoc [..]--crate-name foo src/lib.rs [..]\
88 -L dependency=[CWD]/target/debug/deps \
90 [FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
97 fn rustdoc_only_bar_dependency() {
111 .file("src/main.rs", "extern crate bar; fn main() { bar::baz() }")
115 .file("Cargo.toml", &basic_manifest("bar", "0.0.1"))
116 .file("src/lib.rs", "pub fn baz() {}")
119 foo
.cargo("rustdoc -v -p bar -- --cfg=foo")
122 [DOCUMENTING] bar v0.0.1 ([..])
123 [RUNNING] `rustdoc [..]--crate-name bar [..]bar/src/lib.rs [..]\
124 -o [CWD]/target/doc \
128 -L dependency=[CWD]/target/debug/deps [..]`
129 [FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
136 fn rustdoc_same_name_documents_lib() {
138 .file("src/main.rs", "fn main() {}")
139 .file("src/lib.rs", r
#" "#)
142 p
.cargo("rustdoc -v -- --cfg=foo")
145 [DOCUMENTING] foo v0.0.1 ([..])
146 [RUNNING] `rustdoc [..]--crate-name foo src/lib.rs [..]\
147 -o [CWD]/target/doc \
151 -L dependency=[CWD]/target/debug/deps [..]`
152 [FINISHED] dev [unoptimized + debuginfo] target(s) in [..]
173 .file("src/lib.rs", "")
176 p
.cargo("rustdoc --verbose --features quux")
177 .with_stderr_contains("[..]feature=[..]quux[..]")
182 fn proc_macro_crate_type() {
197 .file("src/lib.rs", "")
200 p
.cargo("rustdoc --verbose")
201 .with_stderr_contains(
203 [RUNNING] `rustdoc --crate-type proc-macro [..]`
210 fn rustdoc_target() {
211 if cross_compile
::disabled() {
215 let p
= project().file("src/lib.rs", "").build();
217 p
.cargo("rustdoc --verbose --target")
218 .arg(cross_compile
::alternate())
219 .with_stderr(format
!(
221 [DOCUMENTING] foo v0.0.1 ([..])
222 [RUNNING] `rustdoc [..]--crate-name foo src/lib.rs [..]\
224 -o [CWD]/target/{target}/doc \
226 -L dependency=[CWD]/target/{target}/debug/deps \
227 -L dependency=[CWD]/target/debug/deps[..]`
228 [FINISHED] dev [unoptimized + debuginfo] target(s) in [..]",
229 target
= cross_compile
::alternate()
235 fn fail_with_glob() {
244 .file("bar/Cargo.toml", &basic_manifest("bar", "0.1.0"))
245 .file("bar/src/lib.rs", "pub fn bar() { break_the_build(); }")
248 p
.cargo("rustdoc -p '*z'")
250 .with_stderr("[ERROR] Glob patterns on package selection are not supported.")