Skip to content

Commit fbe1cd1

Browse files
committed
test(fix): Show the dep-feature behavior
1 parent fa14a13 commit fbe1cd1

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

tests/testsuite/fix.rs

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2656,6 +2656,91 @@ dep = ["dep:dep"]
26562656
);
26572657
}
26582658

2659+
#[cargo_test]
2660+
fn activate_dep_for_dep_feature() {
2661+
Package::new("dep-feature", "0.1.0")
2662+
.feature("a", &[])
2663+
.feature("b", &[])
2664+
.publish();
2665+
Package::new("dep-and-dep-feature", "0.1.0")
2666+
.feature("a", &[])
2667+
.feature("b", &[])
2668+
.publish();
2669+
Package::new("renamed-feature", "0.1.0")
2670+
.feature("a", &[])
2671+
.feature("b", &[])
2672+
.publish();
2673+
Package::new("unrelated-feature", "0.1.0")
2674+
.feature("a", &[])
2675+
.feature("b", &[])
2676+
.publish();
2677+
let p = project()
2678+
.file(
2679+
"Cargo.toml",
2680+
r#"
2681+
[package]
2682+
name = "foo"
2683+
version = "0.1.0"
2684+
edition = "2021"
2685+
2686+
[dependencies]
2687+
dep-feature = { version = "0.1.0", optional = true }
2688+
dep-and-dep-feature = { version = "0.1.0", optional = true }
2689+
renamed-feature = { version = "0.1.0", optional = true }
2690+
unrelated-feature = { version = "0.1.0", optional = true }
2691+
2692+
[features]
2693+
dep-feature = ["dep-feature/a", "dep-feature/b"]
2694+
dep-and-dep-feature = ["dep:dep-and-dep-feature", "dep-and-dep-feature/a", "dep-and-dep-feature/b"]
2695+
renamed = ["renamed-feature/a", "renamed-feature/b"]
2696+
unrelated-feature = []
2697+
unrelated-dep-feature = ["unrelated-feature/a", "unrelated-feature/b"]
2698+
"#,
2699+
)
2700+
.file("src/lib.rs", "")
2701+
.build();
2702+
2703+
p.cargo("fix --edition --allow-no-vcs")
2704+
.masquerade_as_nightly_cargo(&["edition2024"])
2705+
.with_stderr(
2706+
"\
2707+
[MIGRATING] Cargo.toml from 2021 edition to 2024
2708+
[FIXED] Cargo.toml (3 fixes)
2709+
[UPDATING] `dummy-registry` index
2710+
[LOCKING] 5 packages to latest compatible versions
2711+
[CHECKING] foo v0.1.0 ([CWD])
2712+
[MIGRATING] src/lib.rs from 2021 edition to 2024
2713+
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [..]s
2714+
",
2715+
)
2716+
.run();
2717+
assert_e2e().eq(
2718+
p.read_file("Cargo.toml"),
2719+
str![[r#"
2720+
2721+
[package]
2722+
name = "foo"
2723+
version = "0.1.0"
2724+
edition = "2021"
2725+
2726+
[dependencies]
2727+
dep-feature = { version = "0.1.0", optional = true }
2728+
dep-and-dep-feature = { version = "0.1.0", optional = true }
2729+
renamed-feature = { version = "0.1.0", optional = true }
2730+
unrelated-feature = { version = "0.1.0", optional = true }
2731+
2732+
[features]
2733+
dep-feature = ["dep:dep-feature"]
2734+
dep-and-dep-feature = ["dep:dep-and-dep-feature", "dep-and-dep-feature/a", "dep-and-dep-feature/b"]
2735+
renamed = ["renamed-feature/a", "renamed-feature/b"]
2736+
unrelated-feature = ["dep:unrelated-feature"]
2737+
unrelated-dep-feature = ["unrelated-feature/a", "unrelated-feature/b"]
2738+
renamed-feature = ["dep:renamed-feature"]
2739+
2740+
"#]],
2741+
);
2742+
}
2743+
26592744
#[cargo_test]
26602745
fn remove_ignored_default_features() {
26612746
Package::new("dep_simple", "0.1.0").publish();

0 commit comments

Comments
 (0)