@@ -245,49 +245,81 @@ fn dependency_rust_version_newer_than_package() {
245
245
. file ( "src/main.rs" , "fn main(){}" )
246
246
. build ( ) ;
247
247
248
+ p. cargo ( "check" )
249
+ . arg ( "-Zmsrv-policy" )
250
+ . masquerade_as_nightly_cargo ( & [ "msrv-policy" ] )
251
+ . run ( ) ;
248
252
p. cargo ( "check --ignore-rust-version" )
249
253
. arg ( "-Zmsrv-policy" )
250
254
. masquerade_as_nightly_cargo ( & [ "msrv-policy" ] )
251
- // This shouldn't fail
252
- . with_status ( 101 )
255
+ . run ( ) ;
256
+ }
257
+
258
+ #[ cargo_test]
259
+ fn dependency_rust_version_older_and_newer_than_package ( ) {
260
+ Package :: new ( "bar" , "1.5.0" )
261
+ . rust_version ( "1.55.0" )
262
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
263
+ . publish ( ) ;
264
+ Package :: new ( "bar" , "1.6.0" )
265
+ . rust_version ( "1.65.0" )
266
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
267
+ . publish ( ) ;
268
+
269
+ let p = project ( )
270
+ . file (
271
+ "Cargo.toml" ,
272
+ r#"
273
+ [package]
274
+ name = "foo"
275
+ version = "0.0.1"
276
+ authors = []
277
+ rust-version = "1.60.0"
278
+ [dependencies]
279
+ bar = "1.0.0"
280
+ "# ,
281
+ )
282
+ . file ( "src/main.rs" , "fn main(){}" )
283
+ . build ( ) ;
284
+
285
+ p. cargo ( "check --ignore-rust-version" )
286
+ . arg ( "-Zmsrv-policy" )
287
+ . masquerade_as_nightly_cargo ( & [ "msrv-policy" ] )
288
+ // This should pick 1.6.0
253
289
. with_stderr (
254
290
"\
255
291
[UPDATING] `dummy-registry` index
256
- [ERROR] failed to select a version for the requirement `bar = \" ^1.0.0 \" `
257
- candidate versions found which didn't match: 1.6.0
258
- location searched: `dummy-registry` index (which is replacing registry `crates-io`)
259
- required by package `foo v0.0.1 ([CWD])`
260
- perhaps a crate was updated and forgotten to be re-vendored?
292
+ [DOWNLOADING] crates ...
293
+ [DOWNLOADED] bar v1.5.0 (registry `dummy-registry`)
294
+ [CHECKING] bar v1.5.0
295
+ [CHECKING] [..]
296
+ [FINISHED] [..]
261
297
" ,
262
298
)
263
299
. run ( ) ;
264
300
p. cargo ( "check" )
265
301
. arg ( "-Zmsrv-policy" )
266
302
. masquerade_as_nightly_cargo ( & [ "msrv-policy" ] )
267
- . with_status ( 101 )
268
- // This should have a better error message
269
303
. with_stderr (
270
304
"\
271
- [UPDATING] `dummy-registry` index
272
- [ERROR] failed to select a version for the requirement `bar = \" ^1.0.0\" `
273
- candidate versions found which didn't match: 1.6.0
274
- location searched: `dummy-registry` index (which is replacing registry `crates-io`)
275
- required by package `foo v0.0.1 ([CWD])`
276
- perhaps a crate was updated and forgotten to be re-vendored?
305
+ [FINISHED] [..]
277
306
" ,
278
307
)
279
308
. run ( ) ;
280
309
}
281
310
282
311
#[ cargo_test]
283
- fn dependency_rust_version_older_and_newer_than_package ( ) {
284
- Package :: new ( "bar " , "1.5 .0" )
285
- . rust_version ( "1.55 .0" )
312
+ fn dependency_rust_version_backtracking ( ) {
313
+ Package :: new ( "has-rust-version " , "1.6 .0" )
314
+ . rust_version ( "1.65 .0" )
286
315
. file ( "src/lib.rs" , "fn other_stuff() {}" )
287
316
. publish ( ) ;
288
- Package :: new ( "bar" , "1.6.0" )
289
- . rust_version ( "1.65.0" )
317
+ Package :: new ( "no-rust-version" , "2.1.0" )
318
+ . file ( "src/lib.rs" , "fn other_stuff() {}" )
319
+ . publish ( ) ;
320
+ Package :: new ( "no-rust-version" , "2.2.0" )
290
321
. file ( "src/lib.rs" , "fn other_stuff() {}" )
322
+ . dep ( "has-rust-version" , "1.6.0" )
291
323
. publish ( ) ;
292
324
293
325
let p = project ( )
@@ -300,7 +332,7 @@ fn dependency_rust_version_older_and_newer_than_package() {
300
332
authors = []
301
333
rust-version = "1.60.0"
302
334
[dependencies]
303
- bar = "1.0.0 "
335
+ no-rust-version = "2 "
304
336
"# ,
305
337
)
306
338
. file ( "src/main.rs" , "fn main(){}" )
@@ -309,13 +341,14 @@ fn dependency_rust_version_older_and_newer_than_package() {
309
341
p. cargo ( "check --ignore-rust-version" )
310
342
. arg ( "-Zmsrv-policy" )
311
343
. masquerade_as_nightly_cargo ( & [ "msrv-policy" ] )
312
- // This should pick 1.6.0
313
344
. with_stderr (
314
345
"\
315
346
[UPDATING] `dummy-registry` index
316
347
[DOWNLOADING] crates ...
317
- [DOWNLOADED] bar v1.5.0 (registry `dummy-registry`)
318
- [CHECKING] bar v1.5.0
348
+ [DOWNLOADED] no-rust-version v2.2.0 (registry `dummy-registry`)
349
+ [DOWNLOADED] has-rust-version v1.6.0 (registry `dummy-registry`)
350
+ [CHECKING] has-rust-version v1.6.0
351
+ [CHECKING] no-rust-version v2.2.0
319
352
[CHECKING] [..]
320
353
[FINISHED] [..]
321
354
" ,
0 commit comments