Skip to content

Commit 9955f82

Browse files
committed
the simplest kind of dep is a "*", so change the default
1 parent 71bb461 commit 9955f82

File tree

2 files changed

+46
-33
lines changed

2 files changed

+46
-33
lines changed

tests/testsuite/resolve.rs

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
use std::env;
22

3-
use cargo::core::dependency::Kind::Development;
3+
use cargo::core::dependency::Kind;
44
use cargo::core::{enable_nightly_features, Dependency};
55
use cargo::util::Config;
66

77
use support::project;
88
use support::registry::Package;
99
use support::resolver::{
10-
assert_contains, assert_same, dep, dep_kind, dep_loc, dep_req, loc_names, names, pkg, pkg_dep,
11-
pkg_id, pkg_loc, registry, registry_strategy, resolve, resolve_and_validated,
10+
assert_contains, assert_same, dep, dep_kind, dep_loc, dep_req, loc_names, names,
11+
pkg, pkg_dep, pkg_id, pkg_loc, registry, registry_strategy, resolve, resolve_and_validated,
1212
resolve_with_config, PrettyPrintRegistry, ToDep, ToPkgId,
1313
};
1414

@@ -219,15 +219,15 @@ fn test_resolving_with_same_name() {
219219
#[test]
220220
fn test_resolving_with_dev_deps() {
221221
let reg = registry(vec![
222-
pkg!("foo" => ["bar", dep_kind("baz", Development)]),
223-
pkg!("baz" => ["bat", dep_kind("bam", Development)]),
222+
pkg!("foo" => ["bar", dep_kind("baz", Kind::Development)]),
223+
pkg!("baz" => ["bat", dep_kind("bam", Kind::Development)]),
224224
pkg!("bar"),
225225
pkg!("bat"),
226226
]);
227227

228228
let res = resolve(
229229
&pkg_id("root"),
230-
vec![dep("foo"), dep_kind("baz", Development)],
230+
vec![dep("foo"), dep_kind("baz", Kind::Development)],
231231
&reg,
232232
)
233233
.unwrap();
@@ -598,13 +598,13 @@ fn resolving_with_many_equivalent_backtracking() {
598598
let next = format!("level{}", l + 1);
599599
for i in 1..BRANCHING_FACTOR {
600600
let vsn = format!("1.0.{}", i);
601-
reglist.push(pkg!((name.as_str(), vsn.as_str()) => [dep_req(next.as_str(), "*")]));
601+
reglist.push(pkg!((name.as_str(), vsn.as_str()) => [dep(next.as_str())]));
602602
}
603603
}
604604

605605
let reg = registry(reglist.clone());
606606

607-
let res = resolve(&pkg_id("root"), vec![dep_req("level0", "*")], &reg);
607+
let res = resolve(&pkg_id("root"), vec![dep("level0")], &reg);
608608

609609
assert!(res.is_err());
610610

@@ -614,7 +614,7 @@ fn resolving_with_many_equivalent_backtracking() {
614614

615615
let reg = registry(reglist.clone());
616616

617-
let res = resolve(&pkg_id("root"), vec![dep_req("level0", "*")], &reg).unwrap();
617+
let res = resolve(&pkg_id("root"), vec![dep("level0")], &reg).unwrap();
618618

619619
assert_contains(&res, &names(&[("root", "1.0.0"), ("level0", "1.0.0")]));
620620

@@ -629,7 +629,7 @@ fn resolving_with_many_equivalent_backtracking() {
629629

630630
let res = resolve(
631631
&pkg_id("root"),
632-
vec![dep_req("level0", "*"), dep_req("constrained", "*")],
632+
vec![dep("level0"), dep("constrained")],
633633
&reg,
634634
)
635635
.unwrap();
@@ -647,7 +647,7 @@ fn resolving_with_many_equivalent_backtracking() {
647647

648648
let res = resolve(
649649
&pkg_id("root"),
650-
vec![dep_req("level0", "1.0.1"), dep_req("constrained", "*")],
650+
vec![dep_req("level0", "1.0.1"), dep("constrained")],
651651
&reg,
652652
)
653653
.unwrap();
@@ -686,7 +686,7 @@ fn resolving_with_deep_traps() {
686686
let next = format!("backtrack_trap{}", l + 1);
687687
for i in 1..BRANCHING_FACTOR {
688688
let vsn = format!("1.0.{}", i);
689-
reglist.push(pkg!((name.as_str(), vsn.as_str()) => [dep_req(next.as_str(), "*")]));
689+
reglist.push(pkg!((name.as_str(), vsn.as_str()) => [dep(next.as_str())]));
690690
}
691691
}
692692
{
@@ -708,7 +708,7 @@ fn resolving_with_deep_traps() {
708708

709709
let res = resolve(
710710
&pkg_id("root"),
711-
vec![dep_req("backtrack_trap0", "*"), dep_req("cloaking", "*")],
711+
vec![dep("backtrack_trap0"), dep("cloaking")],
712712
&reg,
713713
);
714714

@@ -729,7 +729,7 @@ fn resolving_with_constrained_cousins_backtrack() {
729729
let next = format!("backtrack_trap{}", l + 1);
730730
for i in 1..BRANCHING_FACTOR {
731731
let vsn = format!("1.0.{}", i);
732-
reglist.push(pkg!((name.as_str(), vsn.as_str()) => [dep_req(next.as_str(), "*")]));
732+
reglist.push(pkg!((name.as_str(), vsn.as_str()) => [dep(next.as_str())]));
733733
}
734734
}
735735
{
@@ -761,9 +761,9 @@ fn resolving_with_constrained_cousins_backtrack() {
761761
let res = resolve(
762762
&pkg_id("root"),
763763
vec![
764-
dep_req("backtrack_trap0", "*"),
764+
dep("backtrack_trap0"),
765765
dep_req("constrained", "2.0.1"),
766-
dep_req("cloaking", "*"),
766+
dep("cloaking"),
767767
],
768768
&reg,
769769
);
@@ -777,28 +777,28 @@ fn resolving_with_constrained_cousins_backtrack() {
777777
let next = format!("level{}", l + 1);
778778
for i in 1..BRANCHING_FACTOR {
779779
let vsn = format!("1.0.{}", i);
780-
reglist.push(pkg!((name.as_str(), vsn.as_str()) => [dep_req(next.as_str(), "*")]));
780+
reglist.push(pkg!((name.as_str(), vsn.as_str()) => [dep(next.as_str())]));
781781
}
782782
}
783783
reglist.push(
784-
pkg!((format!("level{}", DEPTH).as_str(), "1.0.0") => [dep_req("backtrack_trap0", "*"),
785-
dep_req("cloaking", "*")
784+
pkg!((format!("level{}", DEPTH).as_str(), "1.0.0") => [dep("backtrack_trap0"),
785+
dep("cloaking")
786786
]),
787787
);
788788

789789
let reg = registry(reglist.clone());
790790

791791
let res = resolve(
792792
&pkg_id("root"),
793-
vec![dep_req("level0", "*"), dep_req("constrained", "2.0.1")],
793+
vec![dep("level0"), dep_req("constrained", "2.0.1")],
794794
&reg,
795795
);
796796

797797
assert!(res.is_err());
798798

799799
let res = resolve(
800800
&pkg_id("root"),
801-
vec![dep_req("level0", "*"), dep_req("constrained", "2.0.0")],
801+
vec![dep("level0"), dep_req("constrained", "2.0.0")],
802802
&reg,
803803
)
804804
.unwrap();
@@ -985,7 +985,7 @@ fn incomplete_information_skiping_2() {
985985
dep("bad"),
986986
]),
987987
pkg!(("h", "3.8.3") => [
988-
dep_req("g", "*"),
988+
dep("g"),
989989
]),
990990
pkg!(("h", "6.8.3") => [
991991
dep("f"),
@@ -994,10 +994,10 @@ fn incomplete_information_skiping_2() {
994994
dep_req("to_yank", "=8.8.1"),
995995
]),
996996
pkg!("i" => [
997-
dep_req("b", "*"),
998-
dep_req("c", "*"),
999-
dep_req("e", "*"),
1000-
dep_req("h", "*"),
997+
dep("b"),
998+
dep("c"),
999+
dep("e"),
1000+
dep("h"),
10011001
]),
10021002
];
10031003
let reg = registry(input.clone());
@@ -1043,7 +1043,7 @@ fn incomplete_information_skiping_3() {
10431043
] },
10441044
pkg!{("b", "2.0.2") => [
10451045
dep_req("to_yank", "3.3.0"),
1046-
dep_req("a", "*"),
1046+
dep("a"),
10471047
] },
10481048
pkg!{("b", "2.3.3") => [
10491049
dep_req("to_yank", "3.3.0"),
@@ -1052,7 +1052,7 @@ fn incomplete_information_skiping_3() {
10521052
];
10531053
let reg = registry(input.clone());
10541054

1055-
let res = resolve(&pkg_id("root"), vec![dep_req("b", "*")], &reg).unwrap();
1055+
let res = resolve(&pkg_id("root"), vec![dep("b")], &reg).unwrap();
10561056
let package_to_yank = ("to_yank", "3.0.3").to_pkgid();
10571057
// this package is not used in the resolution.
10581058
assert!(!res.contains(&package_to_yank));
@@ -1066,7 +1066,7 @@ fn incomplete_information_skiping_3() {
10661066
);
10671067
assert_eq!(input.len(), new_reg.len() + 1);
10681068
// it should still build
1069-
assert!(resolve(&pkg_id("root"), vec![dep_req("b", "*")], &new_reg).is_ok());
1069+
assert!(resolve(&pkg_id("root"), vec![dep("b")], &new_reg).is_ok());
10701070
}
10711071

10721072
#[test]

tests/testsuite/support/resolver.rs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ pub fn pkg_loc(name: &str, loc: &str) -> Summary {
229229
}
230230

231231
pub fn dep(name: &str) -> Dependency {
232-
dep_req(name, "1.0.0")
232+
dep_req(name, "*")
233233
}
234234
pub fn dep_req(name: &str, req: &str) -> Dependency {
235235
Dependency::parse_no_deprecated(name, Some(req), &registry_loc()).unwrap()
@@ -281,7 +281,11 @@ impl fmt::Debug for PrettyPrintRegistry {
281281
} else {
282282
write!(f, "pkg!((\"{}\", \"{}\") => [", s.name(), s.version())?;
283283
for d in s.dependencies() {
284-
if d.kind() == Kind::Normal {
284+
if d.kind() == Kind::Normal
285+
&& &d.version_req().to_string() == "*"
286+
{
287+
write!(f, "dep(\"{}\"),", d.name_in_toml())?;
288+
} else if d.kind() == Kind::Normal {
285289
write!(
286290
f,
287291
"dep_req(\"{}\", \"{}\"),",
@@ -317,6 +321,7 @@ fn meta_test_deep_pretty_print_registry() {
317321
PrettyPrintRegistry(vec![
318322
pkg!(("foo", "1.0.1") => [dep_req("bar", "1")]),
319323
pkg!(("foo", "1.0.0") => [dep_req("bar", "2")]),
324+
pkg!(("foo", "2.0.0") => [dep_req("bar", "*")]),
320325
pkg!(("bar", "1.0.0") => [dep_req("baz", "=1.0.2"),
321326
dep_req("other", "1")]),
322327
pkg!(("bar", "2.0.0") => [dep_req("baz", "=1.0.1")]),
@@ -330,6 +335,7 @@ fn meta_test_deep_pretty_print_registry() {
330335
),
331336
"vec![pkg!((\"foo\", \"1.0.1\") => [dep_req(\"bar\", \"^1\"),]),\
332337
pkg!((\"foo\", \"1.0.0\") => [dep_req(\"bar\", \"^2\"),]),\
338+
pkg!((\"foo\", \"2.0.0\") => [dep(\"bar\"),]),\
333339
pkg!((\"bar\", \"1.0.0\") => [dep_req(\"baz\", \"= 1.0.2\"),dep_req(\"other\", \"^1\"),]),\
334340
pkg!((\"bar\", \"2.0.0\") => [dep_req(\"baz\", \"= 1.0.1\"),]),\
335341
pkg!((\"baz\", \"1.0.2\") => [dep_req(\"other\", \"^2\"),]),\
@@ -404,19 +410,26 @@ pub fn registry_strategy(
404410
continue;
405411
}
406412
let s = &crate_vers_by_name[dep_name];
413+
let s_last_index = s.len() - 1;
407414
let (c, d) = order_index(c, d, s.len());
408415

409416
dependency_by_pkgid[b].push(dep_req_kind(
410417
&dep_name,
411-
&if c == d {
418+
&if c == 0 && d == s_last_index {
419+
"*".to_string()
420+
} else if c == 0 {
421+
format!("<={}", s[d].0)
422+
} else if d == s_last_index {
423+
format!(">={}", s[c].0)
424+
} else if c == d {
412425
format!("={}", s[c].0)
413426
} else {
414427
format!(">={}, <={}", s[c].0, s[d].0)
415428
},
416429
match k {
417430
0 => Kind::Normal,
418431
1 => Kind::Build,
419-
// => Kind::Development,
432+
// => Kind::Development, // Development has not impact so don't gen
420433
_ => panic!("bad index for Kind"),
421434
},
422435
))

0 commit comments

Comments
 (0)