From 1a26e86cc761c3fa4ba95ebe476970eb05a128dc Mon Sep 17 00:00:00 2001 From: gibix Date: Sat, 24 Mar 2018 20:04:19 +0100 Subject: [PATCH] add precise test --- tests/testsuite/update.rs | 55 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/tests/testsuite/update.rs b/tests/testsuite/update.rs index fd106ca01..053f0888d 100644 --- a/tests/testsuite/update.rs +++ b/tests/testsuite/update.rs @@ -358,3 +358,58 @@ fn change_package_version() { assert_that(p.cargo("build"), execs().with_status(0)); } + +#[test] +fn update_precise() { + Package::new("log", "0.1.0").publish(); + Package::new("serde", "0.1.0").publish(); + Package::new("serde", "0.2.1").publish(); + + let p = project("foo") + .file( + "Cargo.toml", + r#" + [package] + name = "bar" + version = "0.0.1" + authors = [] + + [dependencies] + serde = "0.2" + foo = { path = "foo" } + "#, + ) + .file("src/lib.rs", "") + .file( + "foo/Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + + [dependencies] + serde = "0.1" + "#, + ) + .file("foo/src/lib.rs", "") + .build(); + + assert_that(p.cargo("build"), execs().with_status(0)); + + Package::new("serde", "0.2.0").publish(); + + assert_that( + p.cargo("update") + .arg("-p") + .arg("serde:0.2.1") + .arg("--precise") + .arg("0.2.0"), + execs().with_status(0).with_stderr( + "\ +[UPDATING] registry `[..]` +[UPDATING] serde v0.2.1 -> v0.2.0 +", + ), + ); +}