File tree Expand file tree Collapse file tree 1 file changed +53
-0
lines changed Expand file tree Collapse file tree 1 file changed +53
-0
lines changed Original file line number Diff line number Diff line change @@ -391,6 +391,59 @@ fn update_precise() {
391
391
. run ( ) ;
392
392
}
393
393
394
+ #[ cargo_test]
395
+ fn update_precise_mismatched ( ) {
396
+ Package :: new ( "serde" , "1.2.0" ) . publish ( ) ;
397
+ Package :: new ( "serde" , "1.2.1" ) . publish ( ) ;
398
+ Package :: new ( "serde" , "1.6.0" ) . publish ( ) ;
399
+
400
+ let p = project ( )
401
+ . file (
402
+ "Cargo.toml" ,
403
+ r#"
404
+ [package]
405
+ name = "bar"
406
+ version = "0.0.1"
407
+ authors = []
408
+
409
+ [dependencies]
410
+ serde = "~1.2"
411
+ "# ,
412
+ )
413
+ . file ( "src/lib.rs" , "" )
414
+ . build ( ) ;
415
+
416
+ p. cargo ( "check" ) . run ( ) ;
417
+
418
+ // `1.6.0` does not match `"~1.2"`
419
+ p. cargo ( "update serde:1.2 --precise 1.6.0" )
420
+ // This terrible error message was a regression in #12749
421
+ . with_stderr (
422
+ "\
423
+ [UPDATING] `[..]` index
424
+ thread 'main' panicked at src/cargo/util/semver_ext.rs:79:9:
425
+ cannot update_precise ~1.2 to 1.6.0
426
+ [..]
427
+ " ,
428
+ )
429
+ . with_status ( 101 )
430
+ . run ( ) ;
431
+
432
+ // `1.9.0` does not exist
433
+ p. cargo ( "update serde:1.2 --precise 1.9.0" )
434
+ // This terrible error message has been the same for a long time. A fix is more than welcome!
435
+ . with_stderr (
436
+ "\
437
+ [UPDATING] `[..]` index
438
+ [ERROR] no matching package named `serde` found
439
+ location searched: registry `crates-io`
440
+ required by package `bar v0.0.1 ([..]/foo)`
441
+ " ,
442
+ )
443
+ . with_status ( 101 )
444
+ . run ( ) ;
445
+ }
446
+
394
447
#[ cargo_test]
395
448
fn update_precise_build_metadata ( ) {
396
449
Package :: new ( "serde" , "0.0.1+first" ) . publish ( ) ;
You can’t perform that action at this time.
0 commit comments