@@ -2656,6 +2656,91 @@ dep = ["dep:dep"]
2656
2656
) ;
2657
2657
}
2658
2658
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
+
2659
2744
#[ cargo_test]
2660
2745
fn remove_ignored_default_features ( ) {
2661
2746
Package :: new ( "dep_simple" , "0.1.0" ) . publish ( ) ;
0 commit comments