@@ -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]
26602745fn remove_ignored_default_features ( ) {
26612746 Package :: new ( "dep_simple" , "0.1.0" ) . publish ( ) ;
0 commit comments