Skip to content

Commit 0f1c9df

Browse files
committed
test(resolver): Add MSRV pref test
1 parent 6bfc32a commit 0f1c9df

File tree

1 file changed

+41
-15
lines changed

1 file changed

+41
-15
lines changed

src/cargo/core/resolver/version_prefs.rs

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ impl VersionPreferences {
9696
mod test {
9797
use super::*;
9898
use crate::core::SourceId;
99-
use crate::util::RustVersion;
10099
use std::collections::BTreeMap;
101100

102101
fn pkgid(name: &str, version: &str) -> PackageId {
@@ -111,15 +110,15 @@ mod test {
111110
Dependency::parse(name, Some(version), src_id).unwrap()
112111
}
113112

114-
fn summ(name: &str, version: &str) -> Summary {
113+
fn summ(name: &str, version: &str, msrv: Option<&str>) -> Summary {
115114
let pkg_id = pkgid(name, version);
116115
let features = BTreeMap::new();
117116
Summary::new(
118117
pkg_id,
119118
Vec::new(),
120119
&features,
121120
None::<&String>,
122-
None::<RustVersion>,
121+
msrv.map(|m| m.parse().unwrap()),
123122
)
124123
.unwrap()
125124
}
@@ -138,10 +137,10 @@ mod test {
138137
vp.prefer_package_id(pkgid("foo", "1.2.3"));
139138

140139
let mut summaries = vec![
141-
summ("foo", "1.2.4"),
142-
summ("foo", "1.2.3"),
143-
summ("foo", "1.1.0"),
144-
summ("foo", "1.0.9"),
140+
summ("foo", "1.2.4", None),
141+
summ("foo", "1.2.3", None),
142+
summ("foo", "1.1.0", None),
143+
summ("foo", "1.0.9", None),
145144
];
146145

147146
vp.version_ordering(VersionOrdering::MaximumVersionsFirst);
@@ -165,10 +164,10 @@ mod test {
165164
vp.prefer_dependency(dep("foo", "=1.2.3"));
166165

167166
let mut summaries = vec![
168-
summ("foo", "1.2.4"),
169-
summ("foo", "1.2.3"),
170-
summ("foo", "1.1.0"),
171-
summ("foo", "1.0.9"),
167+
summ("foo", "1.2.4", None),
168+
summ("foo", "1.2.3", None),
169+
summ("foo", "1.1.0", None),
170+
summ("foo", "1.0.9", None),
172171
];
173172

174173
vp.version_ordering(VersionOrdering::MaximumVersionsFirst);
@@ -193,10 +192,10 @@ mod test {
193192
vp.prefer_dependency(dep("foo", "=1.1.0"));
194193

195194
let mut summaries = vec![
196-
summ("foo", "1.2.4"),
197-
summ("foo", "1.2.3"),
198-
summ("foo", "1.1.0"),
199-
summ("foo", "1.0.9"),
195+
summ("foo", "1.2.4", None),
196+
summ("foo", "1.2.3", None),
197+
summ("foo", "1.1.0", None),
198+
summ("foo", "1.0.9", None),
200199
];
201200

202201
vp.version_ordering(VersionOrdering::MaximumVersionsFirst);
@@ -213,4 +212,31 @@ mod test {
213212
"foo/1.1.0, foo/1.2.3, foo/1.0.9, foo/1.2.4".to_string()
214213
);
215214
}
215+
216+
#[test]
217+
fn test_max_rust_version() {
218+
let mut vp = VersionPreferences::default();
219+
vp.max_rust_version(Some("1.50".parse().unwrap()));
220+
221+
let mut summaries = vec![
222+
summ("foo", "1.2.4", Some("1.60")),
223+
summ("foo", "1.2.3", Some("1.50")),
224+
summ("foo", "1.1.0", Some("1.40")),
225+
summ("foo", "1.0.9", None),
226+
];
227+
228+
vp.version_ordering(VersionOrdering::MaximumVersionsFirst);
229+
vp.sort_summaries(&mut summaries, None);
230+
assert_eq!(
231+
describe(&summaries),
232+
"foo/1.2.3, foo/1.1.0, foo/1.0.9".to_string()
233+
);
234+
235+
vp.version_ordering(VersionOrdering::MinimumVersionsFirst);
236+
vp.sort_summaries(&mut summaries, None);
237+
assert_eq!(
238+
describe(&summaries),
239+
"foo/1.0.9, foo/1.1.0, foo/1.2.3".to_string()
240+
);
241+
}
216242
}

0 commit comments

Comments
 (0)