From 131c3e28912df24ea81db01a38291d2a2c50f128 Mon Sep 17 00:00:00 2001 From: Klaus Purer Date: Fri, 23 Mar 2018 19:58:56 +0100 Subject: [PATCH] tests(resolver): Add integration test for -Z minimal-versions --- src/cargo/core/resolver/mod.rs | 2 +- tests/testsuite/generate_lockfile.rs | 35 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/cargo/core/resolver/mod.rs b/src/cargo/core/resolver/mod.rs index ec5f376de..0e266ecf2 100644 --- a/src/cargo/core/resolver/mod.rs +++ b/src/cargo/core/resolver/mod.rs @@ -816,7 +816,7 @@ impl<'a> RegistryQueryer<'a> { // Higher version ordered first. cmp.reverse() } - }, + } _ => previous_cmp, } }); diff --git a/tests/testsuite/generate_lockfile.rs b/tests/testsuite/generate_lockfile.rs index 6018904f0..69476315f 100644 --- a/tests/testsuite/generate_lockfile.rs +++ b/tests/testsuite/generate_lockfile.rs @@ -250,3 +250,38 @@ fn cargo_update_generate_lockfile() { assert_that(p.cargo("update"), execs().with_status(0).with_stdout("")); assert_that(&lockfile, existing_file()); } + +// Ensure that the "-Z minimal-versions" CLI option works and the minimal +// version of a dependency ends up in the lock file. +#[test] +fn install_minimal_version() { + Package::new("dep", "1.0.0").publish(); + Package::new("dep", "1.1.0").publish(); + + let p = project("foo") + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + authors = [] + version = "0.0.1" + + [dependencies] + dep = "1.0" + "#, + ) + .file("src/main.rs", "fn main() {}") + .build(); + + assert_that( + p.cargo("generate-lockfile") + .masquerade_as_nightly_cargo() + .arg("-Zminimal-versions"), + execs().with_status(0), + ); + + let lock = p.read_lockfile(); + + assert!(lock.contains("dep 1.0.0")); +} -- 2.30.2