From: Eh2406 Date: Tue, 13 Mar 2018 15:16:10 +0000 (-0400) Subject: test that cashing works with constraints correctly X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~22^2~2^2~46^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d903259423945b80d5f7db97bc48ba885e058f4c;p=cargo.git test that cashing works with constraints correctly --- diff --git a/tests/testsuite/resolve.rs b/tests/testsuite/resolve.rs index 86b7d86c5..b9889d544 100644 --- a/tests/testsuite/resolve.rs +++ b/tests/testsuite/resolve.rs @@ -500,7 +500,7 @@ fn resolving_with_many_equivalent_backtracking() { // Lets make sure we can find a good answer if it is there. reglist.push(pkg!(("level0", "1.0.0"))); - let reg = registry(reglist); + let reg = registry(reglist.clone()); let res = resolve(&pkg_id("root"), vec![ dep_req("level0", "*"), @@ -508,6 +508,42 @@ fn resolving_with_many_equivalent_backtracking() { assert_that(&res, contains(names(&[("root", "1.0.0"), ("level0", "1.0.0")]))); + + // Make sure we have not special case no candidates. + reglist.push(pkg!(("constrained", "1.1.0"))); + reglist.push(pkg!(("constrained", "1.0.0"))); + reglist.push(pkg!((format!("level{}", DEPTH).as_str(), "1.0.0") => [dep_req("constrained", "=1.0.0")])); + + let reg = registry(reglist.clone()); + + let res = resolve(&pkg_id("root"), vec![ + dep_req("level0", "*"), + dep_req("constrained", "*"), + ], ®).unwrap(); + + assert_that(&res, contains(names(&[("root", "1.0.0"), + ("level0", "1.0.0"), + ("constrained", "1.1.0")]))); + + let reg = registry(reglist.clone()); + + let res = resolve(&pkg_id("root"), vec![ + dep_req("level0", "1.0.1"), + dep_req("constrained", "*"), + ], ®).unwrap(); + + assert_that(&res, contains(names(&[("root", "1.0.0"), + (format!("level{}", DEPTH).as_str(), "1.0.0"), + ("constrained", "1.0.0")]))); + + let reg = registry(reglist.clone()); + + let res = resolve(&pkg_id("root"), vec![ + dep_req("level0", "1.0.1"), + dep_req("constrained", "1.1.0"), + ], ®); + + assert!(res.is_err()); } #[test]