mirror of
https://github.com/rust-lang/cargo
synced 2024-10-14 03:32:39 +00:00
Ignore panic
configuration for test/bench profiles
Both of these profiles link to libtest, so it's invalid to configure them with `panic="abort"`. To prevent confusing errors just ignore the configuration for now. Closes #3166
This commit is contained in:
parent
eca9e159b6
commit
0f44202b7b
|
@ -245,7 +245,7 @@ pub fn compile_ws<'a>(ws: &Workspace<'a>,
|
|||
let _p = profile::start("compiling");
|
||||
let mut build_config = try!(scrape_build_config(config, jobs, target));
|
||||
build_config.release = release;
|
||||
build_config.test = mode == CompileMode::Test;
|
||||
build_config.test = mode == CompileMode::Test || mode == CompileMode::Bench;
|
||||
build_config.json_errors = message_format == MessageFormat::Json;
|
||||
if let CompileMode::Doc { deps } = mode {
|
||||
build_config.doc_all = deps;
|
||||
|
|
|
@ -1239,6 +1239,10 @@ fn build_profiles(profiles: &Option<TomlProfiles>) -> Profiles {
|
|||
profiles.and_then(|p| p.doc.as_ref())),
|
||||
custom_build: Profile::default_custom_build(),
|
||||
};
|
||||
// The test/bench targets cannot have panic=abort because they'll all get
|
||||
// compiled with --test which requires the unwind runtime currently
|
||||
profiles.test.panic = None;
|
||||
profiles.bench.panic = None;
|
||||
profiles.test_deps.panic = None;
|
||||
profiles.bench_deps.panic = None;
|
||||
return profiles;
|
||||
|
|
|
@ -2332,3 +2332,35 @@ fn pass_correct_cfgs_flags_to_rustdoc() {
|
|||
[DOCTEST] foo
|
||||
[RUNNING] `rustdoc --test [..]feature_a[..]`"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_release_ignore_panic() {
|
||||
let p = project("foo")
|
||||
.file("Cargo.toml", r#"
|
||||
[package]
|
||||
name = "foo"
|
||||
version = "0.0.1"
|
||||
authors = []
|
||||
|
||||
[dependencies]
|
||||
a = { path = "a" }
|
||||
|
||||
[profile.test]
|
||||
panic = 'abort'
|
||||
[profile.release]
|
||||
panic = 'abort'
|
||||
"#)
|
||||
.file("src/lib.rs", "extern crate a;")
|
||||
.file("a/Cargo.toml", r#"
|
||||
[package]
|
||||
name = "a"
|
||||
version = "0.0.1"
|
||||
authors = []
|
||||
"#)
|
||||
.file("a/src/lib.rs", "");
|
||||
p.build();
|
||||
println!("test");
|
||||
assert_that(p.cargo("test").arg("-v"), execs().with_status(0));
|
||||
println!("bench");
|
||||
assert_that(p.cargo("bench").arg("-v"), execs().with_status(0));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue