Skip to content

Commit 10012ce

Browse files
committed
test(fix): Show default-features migration
1 parent 5965c15 commit 10012ce

File tree

1 file changed

+152
-0
lines changed

1 file changed

+152
-0
lines changed

tests/testsuite/fix.rs

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2654,3 +2654,155 @@ baz = ["dep:baz"]
26542654
"#
26552655
);
26562656
}
2657+
2658+
#[cargo_test]
2659+
fn remove_ignored_default_features() {
2660+
Package::new("dep_simple", "0.1.0").publish();
2661+
Package::new("dep_df_true", "0.1.0").publish();
2662+
Package::new("dep_df_false", "0.1.0").publish();
2663+
2664+
let pkg_default = r#"
2665+
[package]
2666+
name = "pkg_default"
2667+
version = "0.1.0"
2668+
edition = "2021"
2669+
2670+
[dependencies]
2671+
dep_simple = { workspace = true }
2672+
dep_df_true = { workspace = true }
2673+
dep_df_false = { workspace = true }
2674+
2675+
[build-dependencies]
2676+
dep_simple = { workspace = true }
2677+
dep_df_true = { workspace = true }
2678+
dep_df_false = { workspace = true }
2679+
2680+
[target.'cfg(target_os = "linux")'.dependencies]
2681+
dep_simple = { workspace = true }
2682+
dep_df_true = { workspace = true }
2683+
dep_df_false = { workspace = true }
2684+
"#;
2685+
let pkg_df_true = r#"
2686+
[package]
2687+
name = "pkg_df_true"
2688+
version = "0.1.0"
2689+
edition = "2021"
2690+
2691+
[dependencies]
2692+
dep_simple = { workspace = true, default-features = true }
2693+
dep_df_true = { workspace = true, default-features = true }
2694+
dep_df_false = { workspace = true, default-features = true }
2695+
2696+
[build-dependencies]
2697+
dep_simple = { workspace = true, default-features = true }
2698+
dep_df_true = { workspace = true, default-features = true }
2699+
dep_df_false = { workspace = true, default-features = true }
2700+
2701+
[target.'cfg(target_os = "linux")'.dependencies]
2702+
dep_simple = { workspace = true, default-features = true }
2703+
dep_df_true = { workspace = true, default-features = true }
2704+
dep_df_false = { workspace = true, default-features = true }
2705+
"#;
2706+
let pkg_df_false = r#"
2707+
[package]
2708+
name = "pkg_df_false"
2709+
version = "0.1.0"
2710+
edition = "2021"
2711+
2712+
[dependencies]
2713+
dep_simple = { workspace = true, default-features = false }
2714+
dep_df_true = { workspace = true, default-features = false }
2715+
dep_df_false = { workspace = true, default-features = false }
2716+
2717+
[build-dependencies]
2718+
dep_simple = { workspace = true, default-features = false }
2719+
dep_df_true = { workspace = true, default-features = false }
2720+
dep_df_false = { workspace = true, default-features = false }
2721+
2722+
[target.'cfg(target_os = "linux")'.dependencies]
2723+
dep_simple = { workspace = true, default-features = false }
2724+
dep_df_true = { workspace = true, default-features = false }
2725+
dep_df_false = { workspace = true, default-features = false }
2726+
"#;
2727+
let p = project()
2728+
.file(
2729+
"Cargo.toml",
2730+
r#"
2731+
[workspace]
2732+
members = ["pkg_default", "pkg_df_true", "pkg_df_false"]
2733+
resolver = "2"
2734+
2735+
[workspace.dependencies]
2736+
dep_simple = "0.1.0"
2737+
dep_df_true = { version = "0.1.0", default-features = true }
2738+
dep_df_false = { version = "0.1.0", default-features = false }
2739+
"#,
2740+
)
2741+
.file("pkg_default/Cargo.toml", pkg_default)
2742+
.file("pkg_default/src/lib.rs", "")
2743+
.file("pkg_df_true/Cargo.toml", pkg_df_true)
2744+
.file("pkg_df_true/src/lib.rs", "")
2745+
.file("pkg_df_false/Cargo.toml", pkg_df_false)
2746+
.file("pkg_df_false/src/lib.rs", "")
2747+
.build();
2748+
2749+
p.cargo("fix --all --edition --allow-no-vcs")
2750+
.masquerade_as_nightly_cargo(&["edition2024"])
2751+
.with_stderr_unordered(
2752+
"\
2753+
[MIGRATING] pkg_default/Cargo.toml from 2021 edition to 2024
2754+
[MIGRATING] pkg_df_true/Cargo.toml from 2021 edition to 2024
2755+
[MIGRATING] pkg_df_false/Cargo.toml from 2021 edition to 2024
2756+
[WARNING] [CWD]/pkg_df_false/Cargo.toml: `default-features` is ignored for dep_df_true, since `default-features` was true for `workspace.dependencies.dep_df_true`, this could become a hard error in the future
2757+
[WARNING] [CWD]/pkg_df_false/Cargo.toml: `default-features` is ignored for dep_simple, since `default-features` was not specified for `workspace.dependencies.dep_simple`, this could become a hard error in the future
2758+
[WARNING] [CWD]/pkg_df_false/Cargo.toml: `default-features` is ignored for dep_df_true, since `default-features` was true for `workspace.dependencies.dep_df_true`, this could become a hard error in the future
2759+
[WARNING] [CWD]/pkg_df_false/Cargo.toml: `default-features` is ignored for dep_simple, since `default-features` was not specified for `workspace.dependencies.dep_simple`, this could become a hard error in the future
2760+
[WARNING] [CWD]/pkg_df_false/Cargo.toml: `default-features` is ignored for dep_df_true, since `default-features` was true for `workspace.dependencies.dep_df_true`, this could become a hard error in the future
2761+
[WARNING] [CWD]/pkg_df_false/Cargo.toml: `default-features` is ignored for dep_simple, since `default-features` was not specified for `workspace.dependencies.dep_simple`, this could become a hard error in the future
2762+
[UPDATING] `dummy-registry` index
2763+
[LOCKING] 6 packages to latest compatible versions
2764+
[DOWNLOADING] crates ...
2765+
[DOWNLOADED] dep_simple v0.1.0 (registry `dummy-registry`)
2766+
[DOWNLOADED] dep_df_true v0.1.0 (registry `dummy-registry`)
2767+
[DOWNLOADED] dep_df_false v0.1.0 (registry `dummy-registry`)
2768+
[CHECKING] dep_df_true v0.1.0
2769+
[CHECKING] dep_df_false v0.1.0
2770+
[CHECKING] dep_simple v0.1.0
2771+
[CHECKING] pkg_df_true v0.1.0 ([CWD]/pkg_df_true)
2772+
[CHECKING] pkg_df_false v0.1.0 ([CWD]/pkg_df_false)
2773+
[CHECKING] pkg_default v0.1.0 ([CWD]/pkg_default)
2774+
[MIGRATING] pkg_df_false/src/lib.rs from 2021 edition to 2024
2775+
[MIGRATING] pkg_df_true/src/lib.rs from 2021 edition to 2024
2776+
[MIGRATING] pkg_default/src/lib.rs from 2021 edition to 2024
2777+
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [..]s
2778+
",
2779+
)
2780+
.run();
2781+
2782+
assert_eq!(p.read_file("pkg_default/Cargo.toml"), pkg_default);
2783+
assert_eq!(p.read_file("pkg_df_true/Cargo.toml"), pkg_df_true);
2784+
assert_eq!(
2785+
p.read_file("pkg_df_false/Cargo.toml"),
2786+
r#"
2787+
[package]
2788+
name = "pkg_df_false"
2789+
version = "0.1.0"
2790+
edition = "2021"
2791+
2792+
[dependencies]
2793+
dep_simple = { workspace = true, default-features = false }
2794+
dep_df_true = { workspace = true, default-features = false }
2795+
dep_df_false = { workspace = true, default-features = false }
2796+
2797+
[build-dependencies]
2798+
dep_simple = { workspace = true, default-features = false }
2799+
dep_df_true = { workspace = true, default-features = false }
2800+
dep_df_false = { workspace = true, default-features = false }
2801+
2802+
[target.'cfg(target_os = "linux")'.dependencies]
2803+
dep_simple = { workspace = true, default-features = false }
2804+
dep_df_true = { workspace = true, default-features = false }
2805+
dep_df_false = { workspace = true, default-features = false }
2806+
"#
2807+
);
2808+
}

0 commit comments

Comments
 (0)