Skip to content

Commit

Permalink
test(features2): test to prevent regressing of optional host deps of dep
Browse files Browse the repository at this point in the history
  • Loading branch information
weihanglo committed Nov 6, 2022
1 parent df56877 commit dc0ddc3
Showing 1 changed file with 82 additions and 0 deletions.
82 changes: 82 additions & 0 deletions tests/testsuite/features2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2472,3 +2472,85 @@ fn all_features_merges_with_features() {
.with_stdout("it works")
.run();
}

#[cargo_test]
fn dep_with_optional_host_deps_activated() {
// To prevent regression like rust-lang/cargo#11330
Package::new("serde_derive", "0.1.0")
.feature("derive", &["dep:serde_derive"])
.file("src/lib.rs", "")
.publish();

Package::new("serde", "0.1.0")
.feature("derive", &["dep:serde_derive"])
.dep("serde_derive", "0.1.0")
.file("src/lib.rs", "")
.publish();

let p = project()
.file(
"Cargo.toml",
r#"
[package]
name = "foo"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { path = "serde", features = ["derive", "build"] }
"#,
)
.file("src/lib.rs", "")
.file(
"serde/Cargo.toml",
r#"
[package]
name = "serde"
version = "0.1.0"
edition = "2021"
[dependencies]
serde_derive = { path = "../serde_derive", optional = true }
[build-dependencies]
serde_build = { path = "../serde_build", optional = true }
[features]
derive = ["dep:serde_derive"]
build = ["dep:serde_build"]
"#,
)
.file("serde/src/lib.rs", "")
.file("serde/build.rs", "fn main() {}")
.file(
"serde_derive/Cargo.toml",
r#"
[package]
name = "serde_derive"
version = "0.1.0"
edition = "2021"
[lib]
proc-macro = true
"#,
)
.file("serde_derive/src/lib.rs", "")
.file(
"serde_build/Cargo.toml",
&basic_manifest("serde_build", "0.1.0"),
)
.file("serde_build/src/lib.rs", "")
.build();

p.cargo("build")
.with_stderr(
"\
[COMPILING] serde_build v0.1.0 ([ROOT]/foo/serde_build)
[COMPILING] serde_derive v0.1.0 ([ROOT]/foo/serde_derive)
[COMPILING] serde v0.1.0 ([ROOT]/foo/serde)
[COMPILING] foo v0.1.0 ([ROOT]/foo)
[FINISHED] dev [..]
",
)
.run();
}

0 comments on commit dc0ddc3

Please sign in to comment.