Skip to content

Commit f299d1c

Browse files
author
Alex Helfet
committed
Failing test.
1 parent 22e2f23 commit f299d1c

File tree

1 file changed

+161
-0
lines changed

1 file changed

+161
-0
lines changed

tests/testsuite/update.rs

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,167 @@ fn update_precise() {
395395
.run();
396396
}
397397

398+
// cargo update should respect its arguments even without a lockfile.
399+
// See issue "Running cargo update without a Cargo.lock ignores arguments"
400+
// at <https://github.com/rust-lang/cargo/issues/6872>.
401+
#[test]
402+
fn update_precise_first_run() {
403+
Package::new("serde", "0.1.0").publish();
404+
Package::new("serde", "0.2.0").publish();
405+
Package::new("serde", "0.2.1").publish();
406+
407+
let p = project()
408+
.file(
409+
"Cargo.toml",
410+
r#"
411+
[package]
412+
name = "bar"
413+
version = "0.0.1"
414+
415+
[dependencies]
416+
serde = "0.2"
417+
"#,
418+
)
419+
.file("src/lib.rs", "")
420+
.build();
421+
422+
p.cargo("update -p serde --precise 0.2.0")
423+
.with_stderr(
424+
"\
425+
[UPDATING] `[..]` index
426+
",
427+
)
428+
.run();
429+
430+
// Assert `cargo metadata` shows serde 0.2.0
431+
p.cargo("metadata")
432+
.with_json(
433+
r#"{
434+
"packages": [
435+
{
436+
"authors": [],
437+
"categories": [],
438+
"dependencies": [],
439+
"description": null,
440+
"edition": "2015",
441+
"features": {},
442+
"id": "serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
443+
"keywords": [],
444+
"license": null,
445+
"license_file": null,
446+
"links": null,
447+
"manifest_path": "[..]/home/.cargo/registry/src/-[..]/serde-0.2.0/Cargo.toml",
448+
"metadata": null,
449+
"name": "serde",
450+
"readme": null,
451+
"repository": null,
452+
"source": "registry+https://github.com/rust-lang/crates.io-index",
453+
"targets": [
454+
{
455+
"crate_types": [
456+
"lib"
457+
],
458+
"edition": "2015",
459+
"kind": [
460+
"lib"
461+
],
462+
"name": "serde",
463+
"src_path": "[..]/home/.cargo/registry/src/-[..]/serde-0.2.0/src/lib.rs"
464+
}
465+
],
466+
"version": "0.2.0"
467+
},
468+
{
469+
"authors": [],
470+
"categories": [],
471+
"dependencies": [
472+
{
473+
"features": [],
474+
"kind": null,
475+
"name": "serde",
476+
"optional": false,
477+
"registry": null,
478+
"rename": null,
479+
"req": "^0.2",
480+
"source": "registry+https://github.com/rust-lang/crates.io-index",
481+
"target": null,
482+
"uses_default_features": true
483+
}
484+
],
485+
"description": null,
486+
"edition": "2015",
487+
"features": {},
488+
"id": "bar 0.0.1 (path+file://[..]/foo)",
489+
"keywords": [],
490+
"license": null,
491+
"license_file": null,
492+
"links": null,
493+
"manifest_path": "[..]/foo/Cargo.toml",
494+
"metadata": null,
495+
"name": "bar",
496+
"readme": null,
497+
"repository": null,
498+
"source": null,
499+
"targets": [
500+
{
501+
"crate_types": [
502+
"lib"
503+
],
504+
"edition": "2015",
505+
"kind": [
506+
"lib"
507+
],
508+
"name": "bar",
509+
"src_path": "[..]/foo/src/lib.rs"
510+
}
511+
],
512+
"version": "0.0.1"
513+
}
514+
],
515+
"resolve": {
516+
"nodes": [
517+
{
518+
"dependencies": [
519+
"serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)"
520+
],
521+
"deps": [
522+
{
523+
"name": "serde",
524+
"pkg": "serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)"
525+
}
526+
],
527+
"features": [],
528+
"id": "bar 0.0.1 (path+file://[..]/foo)"
529+
},
530+
{
531+
"dependencies": [],
532+
"deps": [],
533+
"features": [],
534+
"id": "serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)"
535+
}
536+
],
537+
"root": "bar 0.0.1 (path+file://[..]/foo)"
538+
},
539+
"target_directory": "[..]/foo/target",
540+
"version": 1,
541+
"workspace_members": [
542+
"bar 0.0.1 (path+file://[..]/foo)"
543+
],
544+
"workspace_root": "[..]/foo"
545+
}"#,
546+
)
547+
.run();
548+
549+
p.cargo("update -p serde --precise 0.2.0")
550+
.with_stderr(
551+
"\
552+
[UPDATING] `[..]` index
553+
",
554+
)
555+
.run();
556+
557+
}
558+
398559
#[test]
399560
fn preserve_top_comment() {
400561
let p = project().file("src/lib.rs", "").build();

0 commit comments

Comments
 (0)