mirror of
https://github.com/rust-lang/cargo
synced 2024-08-25 02:25:46 +00:00
![Matthias Krüger](/assets/img/avatar_default.png)
fixes these clippy warnings: map_collect_result_unit needless_borrow needless_return into_iter_on_ref manual_flatten match_like_matches_macro bool_comparison
145 lines
3.6 KiB
Rust
145 lines
3.6 KiB
Rust
//! Tests for multiple `--target` flags to subcommands
|
|
|
|
use cargo_test_support::{basic_manifest, cross_compile, project, rustc_host};
|
|
|
|
#[cargo_test]
|
|
fn double_target_rejected() {
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_manifest("foo", "1.0.0"))
|
|
.file("src/main.rs", "fn main() {}")
|
|
.build();
|
|
|
|
p.cargo("build --target a --target b")
|
|
.with_stderr("error: specifying multiple `--target` flags requires `-Zmultitarget`")
|
|
.with_status(101)
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn simple_build() {
|
|
if cross_compile::disabled() {
|
|
return;
|
|
}
|
|
let t1 = cross_compile::alternate();
|
|
let t2 = rustc_host();
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_manifest("foo", "1.0.0"))
|
|
.file("src/main.rs", "fn main() {}")
|
|
.build();
|
|
|
|
p.cargo("build -Z multitarget")
|
|
.arg("--target")
|
|
.arg(&t1)
|
|
.arg("--target")
|
|
.arg(&t2)
|
|
.masquerade_as_nightly_cargo()
|
|
.run();
|
|
|
|
assert!(p.target_bin(t1, "foo").is_file());
|
|
assert!(p.target_bin(t2, "foo").is_file());
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn simple_test() {
|
|
if !cross_compile::can_run_on_host() {
|
|
return;
|
|
}
|
|
let t1 = cross_compile::alternate();
|
|
let t2 = rustc_host();
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_manifest("foo", "1.0.0"))
|
|
.file("src/lib.rs", "fn main() {}")
|
|
.build();
|
|
|
|
p.cargo("test -Z multitarget")
|
|
.arg("--target")
|
|
.arg(&t1)
|
|
.arg("--target")
|
|
.arg(&t2)
|
|
.masquerade_as_nightly_cargo()
|
|
.with_stderr_contains(&format!("[RUNNING] [..]{}[..]", t1))
|
|
.with_stderr_contains(&format!("[RUNNING] [..]{}[..]", t2))
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn simple_run() {
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_manifest("foo", "1.0.0"))
|
|
.file("src/main.rs", "fn main() {}")
|
|
.build();
|
|
|
|
p.cargo("run -Z multitarget --target a --target b")
|
|
.with_stderr("error: only one `--target` argument is supported")
|
|
.with_status(101)
|
|
.masquerade_as_nightly_cargo()
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn simple_doc() {
|
|
if cross_compile::disabled() {
|
|
return;
|
|
}
|
|
let t1 = cross_compile::alternate();
|
|
let t2 = rustc_host();
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_manifest("foo", "1.0.0"))
|
|
.file("src/lib.rs", "//! empty lib")
|
|
.build();
|
|
|
|
p.cargo("doc -Z multitarget")
|
|
.arg("--target")
|
|
.arg(&t1)
|
|
.arg("--target")
|
|
.arg(&t2)
|
|
.masquerade_as_nightly_cargo()
|
|
.run();
|
|
|
|
assert!(p.build_dir().join(&t1).join("doc/foo/index.html").is_file());
|
|
assert!(p.build_dir().join(&t2).join("doc/foo/index.html").is_file());
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn simple_check() {
|
|
if cross_compile::disabled() {
|
|
return;
|
|
}
|
|
let t1 = cross_compile::alternate();
|
|
let t2 = rustc_host();
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_manifest("foo", "1.0.0"))
|
|
.file("src/main.rs", "fn main() {}")
|
|
.build();
|
|
|
|
p.cargo("check -Z multitarget")
|
|
.arg("--target")
|
|
.arg(&t1)
|
|
.arg("--target")
|
|
.arg(&t2)
|
|
.masquerade_as_nightly_cargo()
|
|
.run();
|
|
}
|
|
|
|
#[cargo_test]
|
|
fn same_value_twice() {
|
|
if cross_compile::disabled() {
|
|
return;
|
|
}
|
|
let t = rustc_host();
|
|
let p = project()
|
|
.file("Cargo.toml", &basic_manifest("foo", "1.0.0"))
|
|
.file("src/main.rs", "fn main() {}")
|
|
.build();
|
|
|
|
p.cargo("build -Z multitarget")
|
|
.arg("--target")
|
|
.arg(&t)
|
|
.arg("--target")
|
|
.arg(&t)
|
|
.masquerade_as_nightly_cargo()
|
|
.run();
|
|
|
|
assert!(p.target_bin(t, "foo").is_file());
|
|
}
|