Skip to content

Commit cccf817

Browse files
committed
generate Build deps, don't bother with Development deps.
1 parent 3a6788b commit cccf817

File tree

1 file changed

+40
-10
lines changed

1 file changed

+40
-10
lines changed

tests/testsuite/support/resolver.rs

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,11 @@ pub fn dep(name: &str) -> Dependency {
235235
pub fn dep_req(name: &str, req: &str) -> Dependency {
236236
Dependency::parse_no_deprecated(name, Some(req), &registry_loc()).unwrap()
237237
}
238+
pub fn dep_req_kind(name: &str, req: &str, kind: Kind) -> Dependency {
239+
let mut dep = dep_req(name, req);
240+
dep.set_kind(kind);
241+
dep
242+
}
238243

239244
pub fn dep_loc(name: &str, location: &str) -> Dependency {
240245
let url = location.to_url().unwrap();
@@ -277,12 +282,26 @@ impl fmt::Debug for PrettyPrintRegistry {
277282
} else {
278283
write!(f, "pkg!((\"{}\", \"{}\") => [", s.name(), s.version())?;
279284
for d in s.dependencies() {
280-
write!(
281-
f,
282-
"dep_req(\"{}\", \"{}\"),",
283-
d.name_in_toml(),
284-
d.version_req()
285-
)?;
285+
if d.kind() == Kind::Normal {
286+
write!(
287+
f,
288+
"dep_req(\"{}\", \"{}\"),",
289+
d.name_in_toml(),
290+
d.version_req()
291+
)?;
292+
} else {
293+
write!(
294+
f,
295+
"dep_req_kind(\"{}\", \"{}\", {}),",
296+
d.name_in_toml(),
297+
d.version_req(),
298+
match d.kind() {
299+
Kind::Development => "Kind::Development",
300+
Kind::Build => "Kind::Build",
301+
Kind::Normal => "Kind::Normal",
302+
}
303+
)?;
304+
}
286305
}
287306
write!(f, "]),")?;
288307
}
@@ -304,6 +323,8 @@ fn meta_test_deep_pretty_print_registry() {
304323
pkg!(("bar", "2.0.0") => [dep_req("baz", "=1.0.1")]),
305324
pkg!(("baz", "1.0.2") => [dep_req("other", "2")]),
306325
pkg!(("baz", "1.0.1")),
326+
pkg!(("cat", "1.0.2") => [dep_req_kind("other", "2", Kind::Build)]),
327+
pkg!(("cat", "1.0.2") => [dep_req_kind("other", "2", Kind::Development)]),
307328
pkg!(("dep_req", "1.0.0")),
308329
pkg!(("dep_req", "2.0.0")),
309330
])
@@ -313,7 +334,10 @@ fn meta_test_deep_pretty_print_registry() {
313334
pkg!((\"bar\", \"1.0.0\") => [dep_req(\"baz\", \"= 1.0.2\"),dep_req(\"other\", \"^1\"),]),\
314335
pkg!((\"bar\", \"2.0.0\") => [dep_req(\"baz\", \"= 1.0.1\"),]),\
315336
pkg!((\"baz\", \"1.0.2\") => [dep_req(\"other\", \"^2\"),]),\
316-
pkg!((\"baz\", \"1.0.1\")),pkg!((\"dep_req\", \"1.0.0\")),\
337+
pkg!((\"baz\", \"1.0.1\")),\
338+
pkg!((\"cat\", \"1.0.2\") => [dep_req_kind(\"other\", \"^2\", Kind::Build),]),\
339+
pkg!((\"cat\", \"1.0.2\") => [dep_req_kind(\"other\", \"^2\", Kind::Development),]),\
340+
pkg!((\"dep_req\", \"1.0.0\")),\
317341
pkg!((\"dep_req\", \"2.0.0\")),]"
318342
)
319343
}
@@ -357,7 +381,7 @@ pub fn registry_strategy(
357381
let max_deps = max_versions * (max_crates * (max_crates - 1)) / shrinkage;
358382

359383
let raw_version_range = (any::<Index>(), any::<Index>());
360-
let raw_dependency = (any::<Index>(), any::<Index>(), raw_version_range);
384+
let raw_dependency = (any::<Index>(), any::<Index>(), raw_version_range, 0..=1);
361385

362386
fn order_index(a: Index, b: Index, size: usize) -> (usize, usize) {
363387
let (a, b) = (a.index(size), b.index(size));
@@ -374,7 +398,7 @@ pub fn registry_strategy(
374398
.collect();
375399
let len_all_pkgid = list_of_pkgid.len();
376400
let mut dependency_by_pkgid = vec![vec![]; len_all_pkgid];
377-
for (a, b, (c, d)) in raw_dependencies {
401+
for (a, b, (c, d), k) in raw_dependencies {
378402
let (a, b) = order_index(a, b, len_all_pkgid);
379403
let ((dep_name, _), _) = list_of_pkgid[a];
380404
if (list_of_pkgid[b].0).0 == dep_name {
@@ -383,13 +407,19 @@ pub fn registry_strategy(
383407
let s = &crate_vers_by_name[dep_name];
384408
let (c, d) = order_index(c, d, s.len());
385409

386-
dependency_by_pkgid[b].push(dep_req(
410+
dependency_by_pkgid[b].push(dep_req_kind(
387411
&dep_name,
388412
&if c == d {
389413
format!("={}", s[c].0)
390414
} else {
391415
format!(">={}, <={}", s[c].0, s[d].0)
392416
},
417+
match k {
418+
0 => Kind::Normal,
419+
1 => Kind::Build,
420+
// => Kind::Development,
421+
_ => panic!("bad index for Kind"),
422+
},
393423
))
394424
}
395425

0 commit comments

Comments
 (0)