From 12d78181929513574136cbf98915882526b45318 Mon Sep 17 00:00:00 2001 From: hi-rustin Date: Sat, 18 Nov 2023 23:10:37 +0800 Subject: [PATCH 1/2] Add features to the default Cargo.toml file Signed-off-by: hi-rustin --- crates/cargo-test-support/src/registry.rs | 24 +++++++++++++++++++ .../update_lock_file/in/Cargo.lock | 4 ++-- .../update_lock_file/out/Cargo.lock | 4 ++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/crates/cargo-test-support/src/registry.rs b/crates/cargo-test-support/src/registry.rs index 853829c5602..9791fef2ee4 100644 --- a/crates/cargo-test-support/src/registry.rs +++ b/crates/cargo-test-support/src/registry.rs @@ -1523,6 +1523,30 @@ impl Package { manifest.push_str(&format!("rust-version = \"{}\"", version)); } + if !self.features.is_empty() { + let features: Vec = self + .features + .iter() + .map(|(feature, features)| { + if features.is_empty() { + format!("{} = []", feature) + } else { + format!( + "{} = [{}]", + feature, + features + .iter() + .map(|s| format!("\"{}\"", s)) + .collect::>() + .join(", ") + ) + } + }) + .collect(); + + manifest.push_str(&format!("\n[features]\n{}", features.join("\n"))); + } + for dep in self.deps.iter() { let target = match dep.target { None => String::new(), diff --git a/tests/testsuite/cargo_remove/update_lock_file/in/Cargo.lock b/tests/testsuite/cargo_remove/update_lock_file/in/Cargo.lock index 06c2052d526..2302220f2fb 100644 --- a/tests/testsuite/cargo_remove/update_lock_file/in/Cargo.lock +++ b/tests/testsuite/cargo_remove/update_lock_file/in/Cargo.lock @@ -43,13 +43,13 @@ checksum = "31162e7d23a085553c42dee375787b451a481275473f7779c4a63bcc267a24fd" name = "semver" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3031434e07edc922bf1b8262f075fac1522694f17b1ee7ad314c4cabd5d2723f" +checksum = "106bee742e3199d9e59f4269e458dfc825c1b4648c483b1c2b7a45cd2610a308" [[package]] name = "serde" version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75d9264696ebbf5315a6b068e9910c4df9274365afac2d88abf66525df660218" +checksum = "be7d269f612a60e3c2c4a4a120e2d878a3f3298a5285eda6e95453905a107d9a" [[package]] name = "toml" diff --git a/tests/testsuite/cargo_remove/update_lock_file/out/Cargo.lock b/tests/testsuite/cargo_remove/update_lock_file/out/Cargo.lock index bd8c90f4687..0946cee4771 100644 --- a/tests/testsuite/cargo_remove/update_lock_file/out/Cargo.lock +++ b/tests/testsuite/cargo_remove/update_lock_file/out/Cargo.lock @@ -36,13 +36,13 @@ checksum = "84949cb53285a6c481d0133065a7b669871acfd9e20f273f4ce1283c309775d5" name = "semver" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3031434e07edc922bf1b8262f075fac1522694f17b1ee7ad314c4cabd5d2723f" +checksum = "106bee742e3199d9e59f4269e458dfc825c1b4648c483b1c2b7a45cd2610a308" [[package]] name = "serde" version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75d9264696ebbf5315a6b068e9910c4df9274365afac2d88abf66525df660218" +checksum = "be7d269f612a60e3c2c4a4a120e2d878a3f3298a5285eda6e95453905a107d9a" [[package]] name = "toml" From 504c4b2fbb1bd652d6ac93a947079d7ecb95b955 Mon Sep 17 00:00:00 2001 From: hi-rustin Date: Sun, 19 Nov 2023 21:37:29 +0800 Subject: [PATCH 2/2] Add optional flag to manifest for dependencies Signed-off-by: hi-rustin --- crates/cargo-test-support/src/registry.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/cargo-test-support/src/registry.rs b/crates/cargo-test-support/src/registry.rs index 9791fef2ee4..237d59bf052 100644 --- a/crates/cargo-test-support/src/registry.rs +++ b/crates/cargo-test-support/src/registry.rs @@ -1564,6 +1564,9 @@ impl Package { "#, target, kind, dep.name, dep.vers )); + if dep.optional { + manifest.push_str("optional = true\n"); + } if let Some(artifact) = &dep.artifact { manifest.push_str(&format!("artifact = \"{}\"\n", artifact)); }