diff --git a/tests/testsuite/cargo_add/mod.rs b/tests/testsuite/cargo_add/mod.rs index 26a11dd8a493..cd7e94e09959 100644 --- a/tests/testsuite/cargo_add/mod.rs +++ b/tests/testsuite/cargo_add/mod.rs @@ -102,6 +102,10 @@ mod quiet; mod registry; mod rename; mod require_weak; +mod rust_version_ignore; +mod rust_version_incompatible; +mod rust_version_latest; +mod rust_version_older; mod sorted_table_with_dotted_item; mod target; mod target_cfg; diff --git a/tests/testsuite/cargo_add/rust_version_ignore/in/Cargo.toml b/tests/testsuite/cargo_add/rust_version_ignore/in/Cargo.toml new file mode 100644 index 000000000000..b24cd9deb20d --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_ignore/in/Cargo.toml @@ -0,0 +1,6 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" +rust-version = "1.68" diff --git a/tests/testsuite/cargo_add/rust_version_ignore/in/src/lib.rs b/tests/testsuite/cargo_add/rust_version_ignore/in/src/lib.rs new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/testsuite/cargo_add/rust_version_ignore/mod.rs b/tests/testsuite/cargo_add/rust_version_ignore/mod.rs new file mode 100644 index 000000000000..c8e209b4d8d0 --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_ignore/mod.rs @@ -0,0 +1,36 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use crate::cargo_add::init_registry; +use cargo_test_support::curr_dir; + +#[cargo_test(nightly, reason = "-Zmsrv-policy is unstable")] +fn case() { + init_registry(); + + cargo_test_support::registry::Package::new("rust-version-user", "0.1.0") + .rust_version("1.66") + .publish(); + cargo_test_support::registry::Package::new("rust-version-user", "0.2.1") + .rust_version("1.72") + .publish(); + + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("-Zmsrv-policy") + .arg("add") + .arg("--ignore-rust-version") + .arg_line("rust-version-user") + .current_dir(cwd) + .masquerade_as_nightly_cargo(&["msrv-policy"]) + .assert() + .success() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); + + assert_ui().subset_matches(curr_dir!().join("out"), &project_root); +} diff --git a/tests/testsuite/cargo_add/rust_version_ignore/out/Cargo.toml b/tests/testsuite/cargo_add/rust_version_ignore/out/Cargo.toml new file mode 100644 index 000000000000..62164a3445ad --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_ignore/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" +rust-version = "1.68" + +[dependencies] +rust-version-user = "0.2.1" diff --git a/tests/testsuite/cargo_add/rust_version_ignore/out/src/lib.rs b/tests/testsuite/cargo_add/rust_version_ignore/out/src/lib.rs new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/testsuite/cargo_add/rust_version_ignore/stderr.log b/tests/testsuite/cargo_add/rust_version_ignore/stderr.log new file mode 100644 index 000000000000..430abe31b470 --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_ignore/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding rust-version-user v0.2.1 to dependencies. diff --git a/tests/testsuite/cargo_add/rust_version_ignore/stdout.log b/tests/testsuite/cargo_add/rust_version_ignore/stdout.log new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/testsuite/cargo_add/rust_version_incompatible/in/Cargo.toml b/tests/testsuite/cargo_add/rust_version_incompatible/in/Cargo.toml new file mode 100644 index 000000000000..ef6fce441ff6 --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_incompatible/in/Cargo.toml @@ -0,0 +1,6 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" +rust-version = "1.56" diff --git a/tests/testsuite/cargo_add/rust_version_incompatible/in/src/lib.rs b/tests/testsuite/cargo_add/rust_version_incompatible/in/src/lib.rs new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/testsuite/cargo_add/rust_version_incompatible/mod.rs b/tests/testsuite/cargo_add/rust_version_incompatible/mod.rs new file mode 100644 index 000000000000..1a25b487020c --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_incompatible/mod.rs @@ -0,0 +1,35 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use crate::cargo_add::init_registry; +use cargo_test_support::curr_dir; + +#[cargo_test(nightly, reason = "-Zmsrv-policy is unstable")] +fn case() { + init_registry(); + + cargo_test_support::registry::Package::new("rust-version-user", "0.1.0") + .rust_version("1.66") + .publish(); + cargo_test_support::registry::Package::new("rust-version-user", "0.2.1") + .rust_version("1.72") + .publish(); + + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("-Zmsrv-policy") + .arg("add") + .arg_line("rust-version-user") + .current_dir(cwd) + .masquerade_as_nightly_cargo(&["msrv-policy"]) + .assert() + .failure() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); + + assert_ui().subset_matches(curr_dir!().join("out"), &project_root); +} diff --git a/tests/testsuite/cargo_add/rust_version_incompatible/out/Cargo.toml b/tests/testsuite/cargo_add/rust_version_incompatible/out/Cargo.toml new file mode 100644 index 000000000000..ef6fce441ff6 --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_incompatible/out/Cargo.toml @@ -0,0 +1,6 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" +rust-version = "1.56" diff --git a/tests/testsuite/cargo_add/rust_version_incompatible/out/src/lib.rs b/tests/testsuite/cargo_add/rust_version_incompatible/out/src/lib.rs new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/testsuite/cargo_add/rust_version_incompatible/stderr.log b/tests/testsuite/cargo_add/rust_version_incompatible/stderr.log new file mode 100644 index 000000000000..ed5cea84b100 --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_incompatible/stderr.log @@ -0,0 +1,4 @@ + Updating `dummy-registry` index +error: could not find version of crate `rust-version-user` that satisfies this package's rust-version +help: use `--ignore-rust-version` to override this behavior +note: the lowest rust-version available for `rust-version-user` is 1.66 diff --git a/tests/testsuite/cargo_add/rust_version_incompatible/stdout.log b/tests/testsuite/cargo_add/rust_version_incompatible/stdout.log new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/testsuite/cargo_add/rust_version_latest/in/Cargo.toml b/tests/testsuite/cargo_add/rust_version_latest/in/Cargo.toml new file mode 100644 index 000000000000..d9358a5de5e4 --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_latest/in/Cargo.toml @@ -0,0 +1,6 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" +rust-version = "1.72" diff --git a/tests/testsuite/cargo_add/rust_version_latest/in/src/lib.rs b/tests/testsuite/cargo_add/rust_version_latest/in/src/lib.rs new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/testsuite/cargo_add/rust_version_latest/mod.rs b/tests/testsuite/cargo_add/rust_version_latest/mod.rs new file mode 100644 index 000000000000..7a17298c5e12 --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_latest/mod.rs @@ -0,0 +1,35 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use crate::cargo_add::init_registry; +use cargo_test_support::curr_dir; + +#[cargo_test(nightly, reason = "-Zmsrv-policy is unstable")] +fn case() { + init_registry(); + + cargo_test_support::registry::Package::new("rust-version-user", "0.1.0") + .rust_version("1.66") + .publish(); + cargo_test_support::registry::Package::new("rust-version-user", "0.2.1") + .rust_version("1.72") + .publish(); + + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("-Zmsrv-policy") + .arg("add") + .arg_line("rust-version-user") + .current_dir(cwd) + .masquerade_as_nightly_cargo(&["msrv-policy"]) + .assert() + .success() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); + + assert_ui().subset_matches(curr_dir!().join("out"), &project_root); +} diff --git a/tests/testsuite/cargo_add/rust_version_latest/out/Cargo.toml b/tests/testsuite/cargo_add/rust_version_latest/out/Cargo.toml new file mode 100644 index 000000000000..f824b41c3d03 --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_latest/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" +rust-version = "1.72" + +[dependencies] +rust-version-user = "0.2.1" diff --git a/tests/testsuite/cargo_add/rust_version_latest/out/src/lib.rs b/tests/testsuite/cargo_add/rust_version_latest/out/src/lib.rs new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/testsuite/cargo_add/rust_version_latest/stderr.log b/tests/testsuite/cargo_add/rust_version_latest/stderr.log new file mode 100644 index 000000000000..430abe31b470 --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_latest/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding rust-version-user v0.2.1 to dependencies. diff --git a/tests/testsuite/cargo_add/rust_version_latest/stdout.log b/tests/testsuite/cargo_add/rust_version_latest/stdout.log new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/testsuite/cargo_add/rust_version_older/in/Cargo.toml b/tests/testsuite/cargo_add/rust_version_older/in/Cargo.toml new file mode 100644 index 000000000000..6fd6f12324ff --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_older/in/Cargo.toml @@ -0,0 +1,6 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" +rust-version = "1.70" diff --git a/tests/testsuite/cargo_add/rust_version_older/in/src/lib.rs b/tests/testsuite/cargo_add/rust_version_older/in/src/lib.rs new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/testsuite/cargo_add/rust_version_older/mod.rs b/tests/testsuite/cargo_add/rust_version_older/mod.rs new file mode 100644 index 000000000000..7a17298c5e12 --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_older/mod.rs @@ -0,0 +1,35 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use crate::cargo_add::init_registry; +use cargo_test_support::curr_dir; + +#[cargo_test(nightly, reason = "-Zmsrv-policy is unstable")] +fn case() { + init_registry(); + + cargo_test_support::registry::Package::new("rust-version-user", "0.1.0") + .rust_version("1.66") + .publish(); + cargo_test_support::registry::Package::new("rust-version-user", "0.2.1") + .rust_version("1.72") + .publish(); + + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("-Zmsrv-policy") + .arg("add") + .arg_line("rust-version-user") + .current_dir(cwd) + .masquerade_as_nightly_cargo(&["msrv-policy"]) + .assert() + .success() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); + + assert_ui().subset_matches(curr_dir!().join("out"), &project_root); +} diff --git a/tests/testsuite/cargo_add/rust_version_older/out/Cargo.toml b/tests/testsuite/cargo_add/rust_version_older/out/Cargo.toml new file mode 100644 index 000000000000..14737e3288dd --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_older/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" +rust-version = "1.70" + +[dependencies] +rust-version-user = "0.1.0" diff --git a/tests/testsuite/cargo_add/rust_version_older/out/src/lib.rs b/tests/testsuite/cargo_add/rust_version_older/out/src/lib.rs new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/testsuite/cargo_add/rust_version_older/stderr.log b/tests/testsuite/cargo_add/rust_version_older/stderr.log new file mode 100644 index 000000000000..a5c817ae3be1 --- /dev/null +++ b/tests/testsuite/cargo_add/rust_version_older/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index +warning: selecting older version of `rust-version-user` to satisfy this package's rust-version (use `--ignore-rust-version` to override) + Adding rust-version-user v0.1.0 to dependencies. diff --git a/tests/testsuite/cargo_add/rust_version_older/stdout.log b/tests/testsuite/cargo_add/rust_version_older/stdout.log new file mode 100644 index 000000000000..e69de29bb2d1