diff --git a/tests/testsuite/cargo_add/add_latest/in b/tests/testsuite/cargo_add/add_latest/in new file mode 120000 index 00000000000..6c6a27fcfb5 --- /dev/null +++ b/tests/testsuite/cargo_add/add_latest/in @@ -0,0 +1 @@ +../add-basic.in \ No newline at end of file diff --git a/tests/testsuite/cargo_add/add_latest/mod.rs b/tests/testsuite/cargo_add/add_latest/mod.rs new file mode 100644 index 00000000000..0f19f4a31c2 --- /dev/null +++ b/tests/testsuite/cargo_add/add_latest/mod.rs @@ -0,0 +1,37 @@ +use crate::prelude::*; +use cargo_test_support::Project; +use cargo_test_support::compare::assert_ui; +use cargo_test_support::current_dir; +use cargo_test_support::file; +use cargo_test_support::str; + +#[cargo_test] +fn case() { + cargo_test_support::registry::init(); + for ver in [ + "0.1.1+my-package", + "0.2.0+my-package", + "0.2.3+my-package", + "0.4.1+my-package", + "20.0.0+my-package", + "99999.0.0+my-package", + "99999.0.0-alpha.1+my-package", + ] { + cargo_test_support::registry::Package::new("my-package", ver).publish(); + } + + let project = Project::from_template(current_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package@latest") + .current_dir(cwd) + .assert() + .failure() + .stdout_eq(str![""]) + .stderr_eq(file!["stderr.term.svg"]); + + assert_ui().subset_matches(current_dir!().join("out"), &project_root); +} diff --git a/tests/testsuite/cargo_add/add_latest/out/Cargo.toml b/tests/testsuite/cargo_add/add_latest/out/Cargo.toml new file mode 100644 index 00000000000..946b7c86bf0 --- /dev/null +++ b/tests/testsuite/cargo_add/add_latest/out/Cargo.toml @@ -0,0 +1,6 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" +edition = "2015" diff --git a/tests/testsuite/cargo_add/add_latest/stderr.term.svg b/tests/testsuite/cargo_add/add_latest/stderr.term.svg new file mode 100644 index 00000000000..9505c56dd85 --- /dev/null +++ b/tests/testsuite/cargo_add/add_latest/stderr.term.svg @@ -0,0 +1,33 @@ + + + + + + + error: invalid version requirement `latest` + + + + Caused by: + + unexpected character 'l' while parsing major version number + + + + + + diff --git a/tests/testsuite/cargo_add/mod.rs b/tests/testsuite/cargo_add/mod.rs index bd9024466ac..c1ac29febd1 100644 --- a/tests/testsuite/cargo_add/mod.rs +++ b/tests/testsuite/cargo_add/mod.rs @@ -1,4 +1,5 @@ mod add_basic; +mod add_latest; mod add_multiple; mod add_no_vendored_package_with_alter_registry; mod add_no_vendored_package_with_vendor;