summaryrefslogtreecommitdiffstats
path: root/src/tools/cargo/tests/testsuite/minimal_versions.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/cargo/tests/testsuite/minimal_versions.rs')
-rw-r--r--src/tools/cargo/tests/testsuite/minimal_versions.rs38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/tools/cargo/tests/testsuite/minimal_versions.rs b/src/tools/cargo/tests/testsuite/minimal_versions.rs
new file mode 100644
index 000000000..f814dcb70
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/minimal_versions.rs
@@ -0,0 +1,38 @@
+//! Tests for minimal-version resolution.
+//!
+//! Note: Some tests are located in the resolver-tests package.
+
+use cargo_test_support::project;
+use cargo_test_support::registry::Package;
+
+// Ensure that the "-Z minimal-versions" CLI option works and the minimal
+// version of a dependency ends up in the lock file.
+#[cargo_test]
+fn minimal_version_cli() {
+ Package::new("dep", "1.0.0").publish();
+ Package::new("dep", "1.1.0").publish();
+
+ let p = project()
+ .file(
+ "Cargo.toml",
+ r#"
+ [package]
+ name = "foo"
+ authors = []
+ version = "0.0.1"
+
+ [dependencies]
+ dep = "1.0"
+ "#,
+ )
+ .file("src/main.rs", "fn main() {}")
+ .build();
+
+ p.cargo("generate-lockfile -Zminimal-versions")
+ .masquerade_as_nightly_cargo(&["minimal-versions"])
+ .run();
+
+ let lock = p.read_lockfile();
+
+ assert!(!lock.contains("1.1.0"));
+}