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