diff options
Diffstat (limited to 'src/tools/cargo/tests/testsuite/cargo_add')
771 files changed, 5577 insertions, 0 deletions
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add-basic.in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/add-basic.in/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add-basic.in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add-basic.in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/add-basic.in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add-basic.in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_basic/in b/src/tools/cargo/tests/testsuite/cargo_add/add_basic/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_basic/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_basic/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/add_basic/mod.rs new file mode 100644 index 000000000..33889dffa --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_basic/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/add_basic/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/add_basic/out/Cargo.toml new file mode 100644 index 000000000..5964c87be --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_basic/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_basic/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/add_basic/stderr.log new file mode 100644 index 000000000..fd6b711e3 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_basic/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding my-package v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_basic/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/add_basic/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_basic/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/in b/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/mod.rs new file mode 100644 index 000000000..a9cc20575 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/out/Cargo.toml new file mode 100644 index 000000000..ba8d7eabe --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = "99999.0.0" +my-package2 = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/stderr.log new file mode 100644 index 000000000..d0b4e73c1 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to dependencies. + Adding my-package2 v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_multiple/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/in b/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/mod.rs new file mode 100644 index 000000000..63605d8dc --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("linked_hash_map Inflector") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/out/Cargo.toml new file mode 100644 index 000000000..3d0dec343 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +inflector = "0.11.4" +linked-hash-map = "0.5.4" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/stderr.log new file mode 100644 index 000000000..c7d451143 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/stderr.log @@ -0,0 +1,18 @@ + Updating `dummy-registry` index +warning: translating `linked_hash_map` to `linked-hash-map` +warning: translating `Inflector` to `inflector` + Adding linked-hash-map v0.5.4 to dependencies. + Features: + - clippy + - heapsize + - heapsize_impl + - nightly + - serde + - serde_impl + - serde_test + Adding inflector v0.11.4 to dependencies. + Features: + + heavyweight + + lazy_static + + regex + - unstable diff --git a/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/add_normalized_name_external/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build/in b/src/tools/cargo/tests/testsuite/cargo_add/build/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/build/mod.rs new file mode 100644 index 000000000..130ecfbb0 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("--build my-build-package1 my-build-package2") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/build/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/build/out/Cargo.toml new file mode 100644 index 000000000..cceb448ed --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[build-dependencies] +my-build-package1 = "99999.0.0" +my-build-package2 = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/build/stderr.log new file mode 100644 index 000000000..b873c5a80 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-build-package1 v99999.0.0 to build-dependencies. + Adding my-build-package2 v99999.0.0 to build-dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/build/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/Cargo.toml new file mode 100644 index 000000000..6a6ac823f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] +exclude = ["dependency"] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { version = "0.0.0", path = "dependency", optional = true, default-features = false, features = ["one", "two"], registry = "alternative" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/dependency/Cargo.toml new file mode 100644 index 000000000..58b909cef --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/dependency/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" + +[features] +one = [] +two = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/mod.rs new file mode 100644 index 000000000..b0bb2e03b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/mod.rs @@ -0,0 +1,28 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use crate::cargo_add::init_alt_registry; + +#[cargo_test] +fn case() { + init_alt_registry(); + let project = + Project::from_template("tests/testsuite/cargo_add/build_prefer_existing_version/in"); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture-dependency --build") + .current_dir(cwd) + .assert() + .success() + .stdout_matches_path("tests/testsuite/cargo_add/build_prefer_existing_version/stdout.log") + .stderr_matches_path("tests/testsuite/cargo_add/build_prefer_existing_version/stderr.log"); + + assert_ui().subset_matches( + "tests/testsuite/cargo_add/build_prefer_existing_version/out", + &project_root, + ); +} diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/out/Cargo.toml new file mode 100644 index 000000000..123af6d22 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/out/Cargo.toml @@ -0,0 +1,12 @@ +[workspace] +exclude = ["dependency"] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { version = "0.0.0", path = "dependency", optional = true, default-features = false, features = ["one", "two"], registry = "alternative" } + +[build-dependencies] +cargo-list-test-fixture-dependency = { version = "0.0.0", path = "dependency", registry = "alternative" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/out/dependency/Cargo.toml new file mode 100644 index 000000000..58b909cef --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/out/dependency/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" + +[features] +one = [] +two = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/stderr.log new file mode 100644 index 000000000..554aa2ef3 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/stderr.log @@ -0,0 +1,4 @@ + Adding cargo-list-test-fixture-dependency (local) to build-dependencies. + Features: + - one + - two diff --git a/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/build_prefer_existing_version/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/in/Cargo.toml new file mode 100644 index 000000000..e81a76b4b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +some-package = { package = "my-package1", version = "0.1.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/mod.rs new file mode 100644 index 000000000..94309b3ab --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package2 --rename some-package") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/out/Cargo.toml new file mode 100644 index 000000000..70cd31826 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +some-package = { package = "my-package2", version = "99999.0.0", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/stderr.log new file mode 100644 index 000000000..674f62602 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding my-package2 v99999.0.0 to optional dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/change_rename_target/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/in b/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/mod.rs new file mode 100644 index 000000000..5dffac323 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("test_cyclic_features") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/out/Cargo.toml new file mode 100644 index 000000000..27a5c31f8 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +test_cyclic_features = "0.1.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/stderr.log new file mode 100644 index 000000000..2d4a2db4a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/stderr.log @@ -0,0 +1,5 @@ + Updating `dummy-registry` index + Adding test_cyclic_features v0.1.1 to dependencies. + Features: + + feature-one + + feature-two diff --git a/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/cyclic_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/default_features/in b/src/tools/cargo/tests/testsuite/cargo_add/default_features/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/default_features/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/default_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/default_features/mod.rs new file mode 100644 index 000000000..88bdd8065 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/default_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2@0.4.1 --default-features") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/default_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/default_features/out/Cargo.toml new file mode 100644 index 000000000..c5e017892 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/default_features/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = "99999.0.0" +my-package2 = "0.4.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/default_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/default_features/stderr.log new file mode 100644 index 000000000..fb8d4903d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/default_features/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to dependencies. + Adding my-package2 v0.4.1 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/default_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/default_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/default_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/in/Cargo.toml new file mode 100644 index 000000000..c0fc374ea --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package = { version = "99999.0.0", default_features = false } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/mod.rs new file mode 100644 index 000000000..10d4e4e98 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/out/Cargo.toml new file mode 100644 index 000000000..c0fc374ea --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package = { version = "99999.0.0", default_features = false } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/stderr.log new file mode 100644 index 000000000..46d99d15d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/stderr.log @@ -0,0 +1 @@ +error: Use of `default_features` in `my-package` is unsupported, please switch to `default-features` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_default_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/in/Cargo.toml new file mode 100644 index 000000000..a83d2c621 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/in/Cargo.toml @@ -0,0 +1,11 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dev_dependencies] +my-package = "99999.0.0" + +[build_dependencies] +my-package = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/mod.rs new file mode 100644 index 000000000..10d4e4e98 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/out/Cargo.toml new file mode 100644 index 000000000..a83d2c621 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/out/Cargo.toml @@ -0,0 +1,11 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dev_dependencies] +my-package = "99999.0.0" + +[build_dependencies] +my-package = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/stderr.log new file mode 100644 index 000000000..b3b9c10f9 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/stderr.log @@ -0,0 +1 @@ +error: Deprecated dependency sections are unsupported: dev_dependencies, build_dependencies diff --git a/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/deprecated_section/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/Cargo.toml new file mode 100644 index 000000000..24c50556b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"}
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/primary/Cargo.toml new file mode 100644 index 000000000..b867edbbe --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "bar" +version = "0.0.0"
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/mod.rs new file mode 100644 index 000000000..065fb4f93 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "-p", "bar"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/out/Cargo.toml new file mode 100644 index 000000000..24c50556b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"}
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/out/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/out/primary/Cargo.toml new file mode 100644 index 000000000..a5740941b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo.workspace = true diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/stderr.log new file mode 100644 index 000000000..d2efcc0c0 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/stderr.log @@ -0,0 +1 @@ + Adding foo (workspace) to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/Cargo.toml new file mode 100644 index 000000000..b1d9b3995 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency", features = ["merge"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/dependency/Cargo.toml new file mode 100644 index 000000000..f34d7a685 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/dependency/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "foo" +version = "0.0.0" + +[features] +default-base = [] +default-test-base = [] +default-merge-base = [] +default = ["default-base", "default-test-base", "default-merge-base"] +test-base = [] +test = ["test-base", "default-test-base"] +merge-base = [] +merge = ["merge-base", "default-merge-base"] +unrelated = []
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/primary/Cargo.toml new file mode 100644 index 000000000..b867edbbe --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "bar" +version = "0.0.0"
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/mod.rs new file mode 100644 index 000000000..11ab2b1bf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "-p", "bar", "--features", "test"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/Cargo.toml new file mode 100644 index 000000000..b1d9b3995 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency", features = ["merge"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/dependency/Cargo.toml new file mode 100644 index 000000000..f34d7a685 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/dependency/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "foo" +version = "0.0.0" + +[features] +default-base = [] +default-test-base = [] +default-merge-base = [] +default = ["default-base", "default-test-base", "default-merge-base"] +test-base = [] +test = ["test-base", "default-test-base"] +merge-base = [] +merge = ["merge-base", "default-merge-base"] +unrelated = []
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/primary/Cargo.toml new file mode 100644 index 000000000..fb4a12619 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { workspace = true, features = ["test"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/stderr.log new file mode 100644 index 000000000..02dde7a34 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/stderr.log @@ -0,0 +1,10 @@ + Adding foo (workspace) to dependencies. + Features as of v0.0.0: + + default-base + + default-merge-base + + default-test-base + + merge + + merge-base + + test + + test-base + - unrelated diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/Cargo.toml new file mode 100644 index 000000000..24c50556b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"}
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/primary/Cargo.toml new file mode 100644 index 000000000..b867edbbe --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "bar" +version = "0.0.0"
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/mod.rs new file mode 100644 index 000000000..7557b520d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "-p", "bar", "--optional"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/Cargo.toml new file mode 100644 index 000000000..24c50556b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"}
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/primary/Cargo.toml new file mode 100644 index 000000000..6dd7fb6d6 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { workspace = true, optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/stderr.log new file mode 100644 index 000000000..da03b11f7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/stderr.log @@ -0,0 +1 @@ + Adding foo (workspace) to optional dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/detect_workspace_inherit_optional/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev/in b/src/tools/cargo/tests/testsuite/cargo_add/dev/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/dev/mod.rs new file mode 100644 index 000000000..112e92285 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("--dev my-dev-package1 my-dev-package2") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/dev/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/dev/out/Cargo.toml new file mode 100644 index 000000000..28d9e81ce --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dev-dependencies] +my-dev-package1 = "99999.0.0" +my-dev-package2 = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/dev/stderr.log new file mode 100644 index 000000000..f8e187ce9 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-dev-package1 v99999.0.0 to dev-dependencies. + Adding my-dev-package2 v99999.0.0 to dev-dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/dev/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/in b/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/mod.rs new file mode 100644 index 000000000..3f57c6b76 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package --dev --build") + .current_dir(cwd) + .assert() + .code(1) + .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/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/stderr.log new file mode 100644 index 000000000..69c520912 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/stderr.log @@ -0,0 +1,7 @@ +error: the argument '--dev' cannot be used with '--build' + +Usage: cargo add [OPTIONS] <DEP>[@<VERSION>] ... + cargo add [OPTIONS] --path <PATH> ... + cargo add [OPTIONS] --git <URL> ... + +For more information, try '--help'. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_build_conflict/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/Cargo.toml new file mode 100644 index 000000000..6a6ac823f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] +exclude = ["dependency"] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { version = "0.0.0", path = "dependency", optional = true, default-features = false, features = ["one", "two"], registry = "alternative" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/dependency/Cargo.toml new file mode 100644 index 000000000..58b909cef --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/dependency/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" + +[features] +one = [] +two = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/mod.rs new file mode 100644 index 000000000..1785ac820 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/mod.rs @@ -0,0 +1,25 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use crate::cargo_add::init_alt_registry; +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + init_alt_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture-dependency --dev") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/out/Cargo.toml new file mode 100644 index 000000000..247f345cf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/out/Cargo.toml @@ -0,0 +1,12 @@ +[workspace] +exclude = ["dependency"] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { version = "0.0.0", path = "dependency", optional = true, default-features = false, features = ["one", "two"], registry = "alternative" } + +[dev-dependencies] +cargo-list-test-fixture-dependency = { path = "dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/out/dependency/Cargo.toml new file mode 100644 index 000000000..58b909cef --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/out/dependency/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" + +[features] +one = [] +two = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/stderr.log new file mode 100644 index 000000000..32f9a3e82 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/stderr.log @@ -0,0 +1,4 @@ + Adding cargo-list-test-fixture-dependency (local) to dev-dependencies. + Features as of v0.0.0: + - one + - two diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dev_prefer_existing_version/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dry_run/in b/src/tools/cargo/tests/testsuite/cargo_add/dry_run/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dry_run/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dry_run/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/dry_run/mod.rs new file mode 100644 index 000000000..209d20873 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dry_run/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package --dry-run") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/dry_run/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/dry_run/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dry_run/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dry_run/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/dry_run/stderr.log new file mode 100644 index 000000000..c80dba942 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dry_run/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package v99999.0.0 to dependencies. +warning: aborting add due to dry run diff --git a/src/tools/cargo/tests/testsuite/cargo_add/dry_run/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/dry_run/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/dry_run/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features/in b/src/tools/cargo/tests/testsuite/cargo_add/features/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/features/mod.rs new file mode 100644 index 000000000..5e4115390 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face --features eyes") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features/out/Cargo.toml new file mode 100644 index 000000000..11419b203 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "99999.0.0", features = ["eyes"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/features/stderr.log new file mode 100644 index 000000000..386f3db5a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features/stderr.log @@ -0,0 +1,7 @@ + Updating `dummy-registry` index + Adding your-face v99999.0.0 to dependencies. + Features: + + eyes + - ears + - mouth + - nose diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_empty/in b/src/tools/cargo/tests/testsuite/cargo_add/features_empty/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_empty/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_empty/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/features_empty/mod.rs new file mode 100644 index 000000000..81dffc1ee --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_empty/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face --features ''") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/features_empty/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features_empty/out/Cargo.toml new file mode 100644 index 000000000..79d735a12 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_empty/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_empty/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/features_empty/stderr.log new file mode 100644 index 000000000..796b9601b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_empty/stderr.log @@ -0,0 +1,7 @@ + Updating `dummy-registry` index + Adding your-face v99999.0.0 to dependencies. + Features: + - ears + - eyes + - mouth + - nose diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_empty/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/features_empty/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_empty/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/in b/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/mod.rs new file mode 100644 index 000000000..db47f860d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face --features eyes --features nose") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/out/Cargo.toml new file mode 100644 index 000000000..0060d24bc --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "99999.0.0", features = ["eyes", "nose"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/stderr.log new file mode 100644 index 000000000..615459052 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/stderr.log @@ -0,0 +1,7 @@ + Updating `dummy-registry` index + Adding your-face v99999.0.0 to dependencies. + Features: + + eyes + + nose + - ears + - mouth diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_multiple_occurrences/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/in/Cargo.toml new file mode 100644 index 000000000..11419b203 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "99999.0.0", features = ["eyes"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/mod.rs new file mode 100644 index 000000000..ed99a3111 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/out/Cargo.toml new file mode 100644 index 000000000..11419b203 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "99999.0.0", features = ["eyes"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/stderr.log new file mode 100644 index 000000000..386f3db5a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/stderr.log @@ -0,0 +1,7 @@ + Updating `dummy-registry` index + Adding your-face v99999.0.0 to dependencies. + Features: + + eyes + - ears + - mouth + - nose diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_preserve/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/in b/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/mod.rs new file mode 100644 index 000000000..2ef212e59 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face --features eyes,nose") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/out/Cargo.toml new file mode 100644 index 000000000..0060d24bc --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "99999.0.0", features = ["eyes", "nose"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/stderr.log new file mode 100644 index 000000000..615459052 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/stderr.log @@ -0,0 +1,7 @@ + Updating `dummy-registry` index + Adding your-face v99999.0.0 to dependencies. + Features: + + eyes + + nose + - ears + - mouth diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_spaced_values/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/in b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/mod.rs new file mode 100644 index 000000000..7fd8d9529 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face --features noze") + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/stderr.log new file mode 100644 index 000000000..58afcb66b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/stderr.log @@ -0,0 +1,5 @@ + Updating `dummy-registry` index + Adding your-face v99999.0.0 to dependencies. +error: unrecognized feature for crate your-face: noze +disabled features: + ears, eyes, mouth, nose diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/in b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/mod.rs new file mode 100644 index 000000000..9f59a0353 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package --features noze") + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/stderr.log new file mode 100644 index 000000000..f1d046d53 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/stderr.log @@ -0,0 +1,4 @@ + Updating `dummy-registry` index + Adding my-package v99999.0.0 to dependencies. +error: unrecognized feature for crate my-package: noze +no features available for crate my-package diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/features_unknown_no_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git/in b/src/tools/cargo/tests/testsuite/cargo_add/git/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/git/mod.rs new file mode 100644 index 000000000..bd82b3015 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git/mod.rs @@ -0,0 +1,34 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let git_dep = cargo_test_support::git::new("git-package", |project| { + project + .file( + "Cargo.toml", + &cargo_test_support::basic_manifest("git-package", "0.3.0+git-package"), + ) + .file("src/lib.rs", "") + }); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["git-package", "--git", &git_url]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/git/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git/out/Cargo.toml new file mode 100644 index 000000000..7f2d2f188 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +git-package = { git = "[ROOTURL]/git-package", version = "0.3.0" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/git/stderr.log new file mode 100644 index 000000000..839d8bb32 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git/stderr.log @@ -0,0 +1,3 @@ + Updating git repository `[ROOTURL]/git-package` + Adding git-package (git) to dependencies. + Updating git repository `[ROOTURL]/git-package` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/git/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_branch/in b/src/tools/cargo/tests/testsuite/cargo_add/git_branch/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_branch/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_branch/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/git_branch/mod.rs new file mode 100644 index 000000000..051564566 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_branch/mod.rs @@ -0,0 +1,37 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let (git_dep, git_repo) = cargo_test_support::git::new_repo("git-package", |project| { + project + .file( + "Cargo.toml", + &cargo_test_support::basic_manifest("git-package", "0.3.0+git-package"), + ) + .file("src/lib.rs", "") + }); + let branch = "dev"; + let find_head = || (git_repo.head().unwrap().peel_to_commit().unwrap()); + git_repo.branch(branch, &find_head(), false).unwrap(); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["git-package", "--git", &git_url, "--branch", branch]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/git_branch/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git_branch/out/Cargo.toml new file mode 100644 index 000000000..2eb295581 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_branch/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +git-package = { git = "[ROOTURL]/git-package", branch = "dev", version = "0.3.0" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_branch/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/git_branch/stderr.log new file mode 100644 index 000000000..839d8bb32 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_branch/stderr.log @@ -0,0 +1,3 @@ + Updating git repository `[ROOTURL]/git-package` + Adding git-package (git) to dependencies. + Updating git repository `[ROOTURL]/git-package` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_branch/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/git_branch/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_branch/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/in b/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/mod.rs new file mode 100644 index 000000000..f123298ae --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/mod.rs @@ -0,0 +1,29 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args([ + "my-package@0.4.3", + "--git", + "https://github.com/dcjanus/invalid", + ]) + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/stderr.log new file mode 100644 index 000000000..207e0ded3 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/stderr.log @@ -0,0 +1 @@ +error: cannot specify a git URL (`https://github.com/dcjanus/invalid`) with a version (`0.4.3`). diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_conflicts_namever/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_dev/in b/src/tools/cargo/tests/testsuite/cargo_add/git_dev/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_dev/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_dev/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/git_dev/mod.rs new file mode 100644 index 000000000..9e14a4007 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_dev/mod.rs @@ -0,0 +1,34 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let git_dep = cargo_test_support::git::new("git-package", |project| { + project + .file( + "Cargo.toml", + &cargo_test_support::basic_manifest("git-package", "0.3.0+git-package"), + ) + .file("src/lib.rs", "") + }); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["git-package", "--git", &git_url, "--dev"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/git_dev/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git_dev/out/Cargo.toml new file mode 100644 index 000000000..ceb131757 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_dev/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dev-dependencies] +git-package = { git = "[ROOTURL]/git-package" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_dev/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/git_dev/stderr.log new file mode 100644 index 000000000..8e53bb4be --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_dev/stderr.log @@ -0,0 +1,3 @@ + Updating git repository `[ROOTURL]/git-package` + Adding git-package (git) to dev-dependencies. + Updating git repository `[ROOTURL]/git-package` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_dev/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/git_dev/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_dev/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/in b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/mod.rs new file mode 100644 index 000000000..52183adf4 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/mod.rs @@ -0,0 +1,34 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let git_dep = cargo_test_support::git::new("git-package", |project| { + project + .file( + "Cargo.toml", + &cargo_test_support::basic_manifest("git-package", "0.3.0+git-package"), + ) + .file("src/lib.rs", "") + }); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["--git", &git_url]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/out/Cargo.toml new file mode 100644 index 000000000..7f2d2f188 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +git-package = { git = "[ROOTURL]/git-package", version = "0.3.0" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/stderr.log new file mode 100644 index 000000000..b5e8b1c9b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/stderr.log @@ -0,0 +1,4 @@ + Updating git repository `[ROOTURL]/git-package` + Updating git repository `[ROOTURL]/git-package` + Adding git-package (git) to dependencies. + Updating git repository `[ROOTURL]/git-package` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/in b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs new file mode 100644 index 000000000..a708a8ae7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs @@ -0,0 +1,74 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let git_dep = cargo_test_support::git::new("git-package", |project| { + project + .file( + "p1/Cargo.toml", + &cargo_test_support::basic_manifest("my-package1", "0.3.0+my-package1"), + ) + .file("p1/src/lib.rs", "") + .file( + "p2/Cargo.toml", + &cargo_test_support::basic_manifest("my-package2", "0.3.0+my-package2"), + ) + .file("p2/src/lib.rs", "") + .file( + "p3/Cargo.toml", + &cargo_test_support::basic_manifest("my-package3", "0.3.0+my-package2"), + ) + .file("p3/src/lib.rs", "") + .file( + "p4/Cargo.toml", + &cargo_test_support::basic_manifest("my-package4", "0.3.0+my-package2"), + ) + .file("p4/src/lib.rs", "") + .file( + "p5/Cargo.toml", + &cargo_test_support::basic_manifest("my-package5", "0.3.0+my-package2"), + ) + .file("p5/src/lib.rs", "") + .file( + "p6/Cargo.toml", + &cargo_test_support::basic_manifest("my-package6", "0.3.0+my-package2"), + ) + .file("p6/src/lib.rs", "") + .file( + "p7/Cargo.toml", + &cargo_test_support::basic_manifest("my-package7", "0.3.0+my-package2"), + ) + .file("p7/src/lib.rs", "") + .file( + "p8/Cargo.toml", + &cargo_test_support::basic_manifest("my-package8", "0.3.0+my-package2"), + ) + .file("p8/src/lib.rs", "") + .file( + "p9/Cargo.toml", + &cargo_test_support::basic_manifest("my-package9", "0.3.0+my-package2"), + ) + .file("p9/src/lib.rs", "") + }); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["--git", &git_url]) + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/stderr.log new file mode 100644 index 000000000..2e045db6f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/stderr.log @@ -0,0 +1,5 @@ + Updating git repository `[ROOTURL]/git-package` +error: multiple packages found at `[ROOTURL]/git-package`: + my-package1, my-package2, my-package3, my-package4, my-package5, my-package6 + my-package7, my-package8, my-package9 +To disambiguate, run `cargo add --git [ROOTURL]/git-package <package>` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_inferred_name_multiple/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/in b/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/mod.rs new file mode 100644 index 000000000..39eb6e626 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/mod.rs @@ -0,0 +1,39 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let git_dep = cargo_test_support::git::new("git-package", |project| { + project + .file( + "p1/Cargo.toml", + &cargo_test_support::basic_manifest("my-package1", "0.3.0+my-package1"), + ) + .file("p1/src/lib.rs", "") + .file( + "p2/Cargo.toml", + &cargo_test_support::basic_manifest("my-package2", "0.3.0+my-package2"), + ) + .file("p2/src/lib.rs", "") + }); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["my-package1", "my-package2", "--git", &git_url]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/out/Cargo.toml new file mode 100644 index 000000000..ba9d3c5ea --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { git = "[ROOTURL]/git-package", version = "0.3.0" } +my-package2 = { git = "[ROOTURL]/git-package", version = "0.3.0" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/stderr.log new file mode 100644 index 000000000..454f0c797 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/stderr.log @@ -0,0 +1,4 @@ + Updating git repository `[ROOTURL]/git-package` + Adding my-package1 (git) to dependencies. + Adding my-package2 (git) to dependencies. + Updating git repository `[ROOTURL]/git-package` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_multiple_names/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/in b/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/mod.rs new file mode 100644 index 000000000..03d861856 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/mod.rs @@ -0,0 +1,34 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let git_dep = cargo_test_support::git::new("git-package", |project| { + project + .file( + "Cargo.toml", + &cargo_test_support::basic_manifest("git-package", "0.3.0+git-package"), + ) + .file("src/lib.rs", "") + }); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["git_package", "--git", &git_url]) + .current_dir(cwd) + .assert() + .failure() // Fuzzy searching for paths isn't supported at this time + .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/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/stderr.log new file mode 100644 index 000000000..fedf82861 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/stderr.log @@ -0,0 +1,2 @@ + Updating git repository `[ROOTURL]/git-package` +error: the crate `git_package@[ROOTURL]/git-package` could not be found at `[ROOTURL]/git-package` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_normalized_name/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_registry/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/in/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_registry/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_registry/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/mod.rs new file mode 100644 index 000000000..6bf6f8933 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/mod.rs @@ -0,0 +1,40 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use crate::cargo_add::init_alt_registry; +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + init_alt_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let git_dep = cargo_test_support::git::new("versioned-package", |project| { + project + .file( + "Cargo.toml", + &cargo_test_support::basic_manifest("versioned-package", "0.3.0+versioned-package"), + ) + .file("src/lib.rs", "") + }); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args([ + "versioned-package", + "--git", + &git_url, + "--registry", + "alternative", + ]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/git_registry/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/out/Cargo.toml new file mode 100644 index 000000000..3773d1c80 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +versioned-package = { git = "[ROOTURL]/versioned-package", version = "0.3.0", registry = "alternative" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_registry/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/stderr.log new file mode 100644 index 000000000..c554c7ec0 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/stderr.log @@ -0,0 +1,6 @@ + Updating git repository `[ROOTURL]/versioned-package` + Adding versioned-package (git) to dependencies. +error: failed to parse manifest at `[ROOT]/case/Cargo.toml` + +Caused by: + dependency (versioned-package) specification is ambiguous. Only one of `git` or `registry` is allowed. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_registry/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_registry/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_rev/in b/src/tools/cargo/tests/testsuite/cargo_add/git_rev/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_rev/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_rev/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/git_rev/mod.rs new file mode 100644 index 000000000..612607203 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_rev/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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let (git_dep, git_repo) = cargo_test_support::git::new_repo("git-package", |project| { + project + .file( + "Cargo.toml", + &cargo_test_support::basic_manifest("git-package", "0.3.0+git-package"), + ) + .file("src/lib.rs", "") + }); + let find_head = || (git_repo.head().unwrap().peel_to_commit().unwrap()); + let head = find_head().id().to_string(); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["git-package", "--git", &git_url, "--rev", &head]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/git_rev/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git_rev/out/Cargo.toml new file mode 100644 index 000000000..efc00a01a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_rev/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +git-package = { git = "[ROOTURL]/git-package", rev = "[..]", version = "0.3.0" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_rev/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/git_rev/stderr.log new file mode 100644 index 000000000..839d8bb32 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_rev/stderr.log @@ -0,0 +1,3 @@ + Updating git repository `[ROOTURL]/git-package` + Adding git-package (git) to dependencies. + Updating git repository `[ROOTURL]/git-package` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_rev/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/git_rev/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_rev/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_tag/in b/src/tools/cargo/tests/testsuite/cargo_add/git_tag/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_tag/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_tag/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/git_tag/mod.rs new file mode 100644 index 000000000..b355b1706 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_tag/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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let (git_dep, git_repo) = cargo_test_support::git::new_repo("git-package", |project| { + project + .file( + "Cargo.toml", + &cargo_test_support::basic_manifest("git-package", "0.3.0+git-package"), + ) + .file("src/lib.rs", "") + }); + let tag = "v1.0.0"; + cargo_test_support::git::tag(&git_repo, tag); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["git-package", "--git", &git_url, "--tag", tag]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/git_tag/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/git_tag/out/Cargo.toml new file mode 100644 index 000000000..233f26e65 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_tag/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +git-package = { git = "[ROOTURL]/git-package", tag = "v1.0.0", version = "0.3.0" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_tag/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/git_tag/stderr.log new file mode 100644 index 000000000..839d8bb32 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_tag/stderr.log @@ -0,0 +1,3 @@ + Updating git repository `[ROOTURL]/git-package` + Adding git-package (git) to dependencies. + Updating git repository `[ROOTURL]/git-package` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/git_tag/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/git_tag/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/git_tag/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/in b/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/mod.rs new file mode 100644 index 000000000..94533f979 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("prerelease_only") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/out/Cargo.toml new file mode 100644 index 000000000..4a86322ad --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +prerelease_only = "0.2.0-alpha.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/stderr.log new file mode 100644 index 000000000..0696d8f7b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding prerelease_only v0.2.0-alpha.1 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/infer_prerelease/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/in b/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/mod.rs new file mode 100644 index 000000000..265a571bc --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package --flag") + .current_dir(cwd) + .assert() + .code(1) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/stderr.log new file mode 100644 index 000000000..96d067ed1 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/stderr.log @@ -0,0 +1,9 @@ +error: unexpected argument '--flag' found + + tip: a similar argument exists: '--tag' + +Usage: cargo add [OPTIONS] <DEP>[@<VERSION>] ... + cargo add [OPTIONS] --path <PATH> ... + cargo add [OPTIONS] --git <URL> ... + +For more information, try '--help'. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_arg/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/in b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/mod.rs new file mode 100644 index 000000000..705182f20 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/mod.rs @@ -0,0 +1,28 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let git_url = url::Url::from_directory_path(cwd.join("does-not-exist")) + .unwrap() + .to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["fake-git", "--git", &git_url]) + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/stderr.log new file mode 100644 index 000000000..18656300b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/stderr.log @@ -0,0 +1,12 @@ + Updating git repository `[ROOTURL]/case/does-not-exist/` +... +error: failed to load source for dependency `fake-git` + +Caused by: + Unable to update [ROOTURL]/case/does-not-exist/ + +Caused by: + failed to clone into: [ROOT]/home/.cargo/git/db/does-not-exist-[..] + +Caused by: +... diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_external/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/in b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/mod.rs new file mode 100644 index 000000000..0aff8c090 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/mod.rs @@ -0,0 +1,34 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let git_dep = cargo_test_support::git::new("git-package", |project| { + project + .file( + "Cargo.toml", + &cargo_test_support::basic_manifest("git-package", "0.3.0+git-package"), + ) + .file("src/lib.rs", "") + }); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["not-in-git", "--git", &git_url]) + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/stderr.log new file mode 100644 index 000000000..68fc4e49d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/stderr.log @@ -0,0 +1,2 @@ + Updating git repository `[ROOTURL]/git-package` +error: the crate `not-in-git@[ROOTURL]/git-package` could not be found at `[ROOTURL]/git-package` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_git_name/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/Cargo.toml new file mode 100644 index 000000000..afd30d446 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"} diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/primary/Cargo.toml new file mode 100644 index 000000000..dd275f440 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "bar" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/mod.rs new file mode 100644 index 000000000..837293e5f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/mod.rs @@ -0,0 +1,23 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "--default-features", "-p", "bar"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/Cargo.toml new file mode 100644 index 000000000..afd30d446 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"} diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/primary/Cargo.toml new file mode 100644 index 000000000..dd275f440 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/out/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "bar" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/stderr.log new file mode 100644 index 000000000..85bd8da0a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/stderr.log @@ -0,0 +1 @@ +error: cannot override workspace dependency with `--default-features`, either change `workspace.dependencies.foo.default-features` or define the dependency exclusively in the package's manifest diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_inherit_dependency/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/Cargo.toml new file mode 100644 index 000000000..afd30d446 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"} diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/primary/Cargo.toml new file mode 100644 index 000000000..a5740941b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo.workspace = true diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/mod.rs new file mode 100644 index 000000000..837293e5f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/mod.rs @@ -0,0 +1,23 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "--default-features", "-p", "bar"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/Cargo.toml new file mode 100644 index 000000000..afd30d446 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"} diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/primary/Cargo.toml new file mode 100644 index 000000000..a5740941b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo.workspace = true diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/stderr.log new file mode 100644 index 000000000..85bd8da0a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/stderr.log @@ -0,0 +1 @@ +error: cannot override workspace dependency with `--default-features`, either change `workspace.dependencies.foo.default-features` or define the dependency exclusively in the package's manifest diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_overwrite_inherit_dependency/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/Cargo.toml new file mode 100644 index 000000000..12c6ee5fe --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency", "dependency-alt"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"} diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency-alt/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency-alt/Cargo.toml new file mode 100644 index 000000000..bb6472901 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency-alt/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo-alt" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency-alt/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency-alt/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency-alt/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/primary/Cargo.toml new file mode 100644 index 000000000..dd275f440 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "bar" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/mod.rs new file mode 100644 index 000000000..bee132560 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/mod.rs @@ -0,0 +1,23 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["--rename", "foo", "foo-alt", "-p", "bar"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/Cargo.toml new file mode 100644 index 000000000..12c6ee5fe --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency", "dependency-alt"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"} diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/dependency-alt/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/dependency-alt/Cargo.toml new file mode 100644 index 000000000..bb6472901 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/dependency-alt/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo-alt" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/primary/Cargo.toml new file mode 100644 index 000000000..dd275f440 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/out/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "bar" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/stderr.log new file mode 100644 index 000000000..35bcdb694 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/stderr.log @@ -0,0 +1 @@ +error: cannot override workspace dependency with `--rename`, either change `workspace.dependencies.foo.package` or define the dependency exclusively in the package's manifest diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_key_rename_inherit_dependency/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/in/Cargo.toml new file mode 100644 index 000000000..94ee95994 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "manifest-invalid-test-fixture" +version = "0.1.0" + +[invalid-section] +key = invalid-value diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/mod.rs new file mode 100644 index 000000000..e385cfc3f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package") + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/out/Cargo.toml new file mode 100644 index 000000000..94ee95994 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "manifest-invalid-test-fixture" +version = "0.1.0" + +[invalid-section] +key = invalid-value diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/stderr.log new file mode 100644 index 000000000..3dabde349 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/stderr.log @@ -0,0 +1,12 @@ +error: failed to parse manifest at `[ROOT]/case/Cargo.toml` + +Caused by: + could not parse input as TOML + +Caused by: + TOML parse error at line 8, column 7 + | + 8 | key = invalid-value + | ^ + invalid string + expected `"`, `'` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/in b/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/mod.rs new file mode 100644 index 000000000..16e041738 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("lets_hope_nobody_ever_publishes_this_crate") + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/stderr.log new file mode 100644 index 000000000..5e574ceda --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index +error: the crate `lets_hope_nobody_ever_publishes_this_crate` could not be found in registry index. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_name_external/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/in b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/mod.rs new file mode 100644 index 000000000..0d26b552d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture --path ./tests/fixtures/local") + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/stderr.log new file mode 100644 index 000000000..f6c404330 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/stderr.log @@ -0,0 +1,10 @@ +error: failed to load source for dependency `cargo-list-test-fixture` + +Caused by: + Unable to update [ROOT]/case/tests/fixtures/local + +Caused by: + failed to read `[ROOT]/case/tests/fixtures/local/Cargo.toml` + +Caused by: + [..] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/primary/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/primary/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/mod.rs new file mode 100644 index 000000000..10d841475 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("not-at-path --path ../dependency") + .current_dir(&cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/out/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/out/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/out/primary/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/out/primary/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/stderr.log new file mode 100644 index 000000000..b35ea8233 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/stderr.log @@ -0,0 +1 @@ +error: the crate `not-at-path@[ROOT]/case/dependency` could not be found at `[ROOT]/case/dependency` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_name/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/in b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/mod.rs new file mode 100644 index 000000000..a64190f44 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture --path .") + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/stderr.log new file mode 100644 index 000000000..62a25dbb4 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/stderr.log @@ -0,0 +1,2 @@ + Adding cargo-list-test-fixture (local) to dependencies. +error: cannot add `cargo-list-test-fixture` as a dependency to itself diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_path_self/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/in b/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/mod.rs new file mode 100644 index 000000000..da93c4eb8 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package --target ''") + .current_dir(cwd) + .assert() + .code(1) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/stderr.log new file mode 100644 index 000000000..4b1a2c315 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/stderr.log @@ -0,0 +1,3 @@ +error: a value is required for '--target <TARGET>' but none was supplied + +For more information, try '--help'. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_target_empty/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/in b/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/mod.rs new file mode 100644 index 000000000..c3b4d1f97 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package@invalid-version-string") + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/stderr.log new file mode 100644 index 000000000..64f908eac --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/stderr.log @@ -0,0 +1,4 @@ +error: invalid version requirement `invalid-version-string` + +Caused by: + unexpected character 'i' while parsing major version number diff --git a/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_vers/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features/in b/src/tools/cargo/tests/testsuite/cargo_add/list_features/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/list_features/mod.rs new file mode 100644 index 000000000..e1e1b212f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["your-face"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/list_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features/out/Cargo.toml new file mode 100644 index 000000000..79d735a12 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/list_features/stderr.log new file mode 100644 index 000000000..796b9601b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features/stderr.log @@ -0,0 +1,7 @@ + Updating `dummy-registry` index + Adding your-face v99999.0.0 to dependencies. + Features: + - ears + - eyes + - mouth + - nose diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/list_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/Cargo.toml new file mode 100644 index 000000000..299859e79 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency", "optional"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/dependency/Cargo.toml new file mode 100644 index 000000000..18041a53f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/dependency/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "your-face" +version = "0.1.3" + +[dependencies] +my-package = "0.1.1" +optional-dependency = { path = "../optional", optional = true } + +[features] +default = ["mouth"] +nose = [] +mouth = ["nose"] +eyes = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/optional/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/optional/Cargo.toml new file mode 100644 index 000000000..cb61a0514 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/optional/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "optional-dependency" +version = "0.1.3" + +[dependencies] +my-package = "0.1.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/optional/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/optional/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/optional/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/primary/Cargo.toml new file mode 100644 index 000000000..5e20016d7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/mod.rs new file mode 100644 index 000000000..22733b883 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face --path ../dependency") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/out/Cargo.toml new file mode 100644 index 000000000..299859e79 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/out/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency", "optional"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/out/dependency/Cargo.toml new file mode 100644 index 000000000..18041a53f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/out/dependency/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "your-face" +version = "0.1.3" + +[dependencies] +my-package = "0.1.1" +optional-dependency = { path = "../optional", optional = true } + +[features] +default = ["mouth"] +nose = [] +mouth = ["nose"] +eyes = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/out/primary/Cargo.toml new file mode 100644 index 000000000..2461d0932 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "0.1.3", path = "../dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/stderr.log new file mode 100644 index 000000000..af6747fe8 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/stderr.log @@ -0,0 +1,7 @@ + Adding your-face (local) to dependencies. + Features: + + mouth + + nose + - eyes + - optional-dependency + Updating `dummy-registry` index diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/Cargo.toml new file mode 100644 index 000000000..299859e79 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency", "optional"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/dependency/Cargo.toml new file mode 100644 index 000000000..18041a53f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/dependency/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "your-face" +version = "0.1.3" + +[dependencies] +my-package = "0.1.1" +optional-dependency = { path = "../optional", optional = true } + +[features] +default = ["mouth"] +nose = [] +mouth = ["nose"] +eyes = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/optional/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/optional/Cargo.toml new file mode 100644 index 000000000..cb61a0514 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/optional/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "optional-dependency" +version = "0.1.3" + +[dependencies] +my-package = "0.1.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/optional/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/optional/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/optional/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/primary/Cargo.toml new file mode 100644 index 000000000..5e20016d7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/mod.rs new file mode 100644 index 000000000..f520b2aca --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/mod.rs @@ -0,0 +1,30 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args([ + "your-face", + "--path", + "../dependency", + "--no-default-features", + ]) + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/out/Cargo.toml new file mode 100644 index 000000000..299859e79 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/out/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency", "optional"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/out/dependency/Cargo.toml new file mode 100644 index 000000000..18041a53f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/out/dependency/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "your-face" +version = "0.1.3" + +[dependencies] +my-package = "0.1.1" +optional-dependency = { path = "../optional", optional = true } + +[features] +default = ["mouth"] +nose = [] +mouth = ["nose"] +eyes = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/out/primary/Cargo.toml new file mode 100644 index 000000000..0b0400d51 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "0.1.3", path = "../dependency", default-features = false } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/stderr.log new file mode 100644 index 000000000..7f47a220e --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/stderr.log @@ -0,0 +1,7 @@ + Adding your-face (local) to dependencies. + Features: + - eyes + - mouth + - nose + - optional-dependency + Updating `dummy-registry` index diff --git a/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/list_features_path_no_default/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/in b/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/mod.rs new file mode 100644 index 000000000..9e3e57fe5 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package --locked") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/stderr.log new file mode 100644 index 000000000..8af168373 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package v99999.0.0 to dependencies. +error: the manifest file [ROOT]/case/Cargo.toml needs to be updated but --locked was passed to prevent this diff --git a/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_changed/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.lock b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.lock new file mode 100644 index 000000000..011b33592 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.lock @@ -0,0 +1,16 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "cargo-list-test-fixture" +version = "0.0.0" +dependencies = [ + "my-package", +] + +[[package]] +name = "my-package" +version = "99999.0.0+my-package" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62c45acf9e11d2f97f5b318143219c0b4102eafef1c22a4b545b47104691d915" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.toml new file mode 100644 index 000000000..5964c87be --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/mod.rs new file mode 100644 index 000000000..aba9918f7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package --locked") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/out/Cargo.toml new file mode 100644 index 000000000..5964c87be --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/stderr.log new file mode 100644 index 000000000..fd6b711e3 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding my-package v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/locked_unchanged/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.lock b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.lock new file mode 100644 index 000000000..d9bcc988d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.lock @@ -0,0 +1,17 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "cargo-list-test-fixture" +version = "0.0.0" +dependencies = [ + "my-package", + "unrelateed-crate", +] + +[[package]] +name = "unrelateed-crate" +version = "0.2.0+my-package" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266de4849a570b5dfda5e8e082a2aff885e9d2d4965dae8f8b6c8535e1ec731f" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.toml new file mode 100644 index 000000000..95276d7c5 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +unrelateed-crate = "0.2.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/mod.rs new file mode 100644 index 000000000..33889dffa --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.lock b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.lock new file mode 100644 index 000000000..4b5fb465f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.lock @@ -0,0 +1,23 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "cargo-list-test-fixture" +version = "0.0.0" +dependencies = [ + "my-package", + "unrelateed-crate", +] + +[[package]] +name = "my-package" +version = "99999.0.0+my-package" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62c45acf9e11d2f97f5b318143219c0b4102eafef1c22a4b545b47104691d915" + +[[package]] +name = "unrelateed-crate" +version = "0.2.0+my-package" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266de4849a570b5dfda5e8e082a2aff885e9d2d4965dae8f8b6c8535e1ec731f" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.toml new file mode 100644 index 000000000..3176a986a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package = "99999.0.0" +unrelateed-crate = "0.2.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/stderr.log new file mode 100644 index 000000000..fd6b711e3 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding my-package v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/lockfile_updated/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/Cargo.toml new file mode 100644 index 000000000..57e1f3085 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/dependency/Cargo.toml new file mode 100644 index 000000000..ca4f36d72 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/primary/Cargo.toml new file mode 100644 index 000000000..5e20016d7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/mod.rs new file mode 100644 index 000000000..008c2d33d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/mod.rs @@ -0,0 +1,31 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args([ + "--manifest-path", + "Cargo.toml", + "--package", + "cargo-list-test-fixture", + "cargo-list-test-fixture-dependency", + ]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/out/Cargo.toml new file mode 100644 index 000000000..57e1f3085 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/out/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/out/dependency/Cargo.toml new file mode 100644 index 000000000..ca4f36d72 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/out/primary/Cargo.toml new file mode 100644 index 000000000..a693df54f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { version = "0.0.0", path = "../dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/stderr.log new file mode 100644 index 000000000..8109d3cc5 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/stderr.log @@ -0,0 +1 @@ + Adding cargo-list-test-fixture-dependency (local) to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/manifest_path_package/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/Cargo.toml new file mode 100644 index 000000000..b1d9b3995 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency", features = ["merge"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/dependency/Cargo.toml new file mode 100644 index 000000000..f34d7a685 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/dependency/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "foo" +version = "0.0.0" + +[features] +default-base = [] +default-test-base = [] +default-merge-base = [] +default = ["default-base", "default-test-base", "default-merge-base"] +test-base = [] +test = ["test-base", "default-test-base"] +merge-base = [] +merge = ["merge-base", "default-merge-base"] +unrelated = []
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/primary/Cargo.toml new file mode 100644 index 000000000..a131c946d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { workspace = true, features = ["test"] }
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/mod.rs new file mode 100644 index 000000000..161783282 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/mod.rs @@ -0,0 +1,23 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "-p", "bar"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/out/Cargo.toml new file mode 100644 index 000000000..b1d9b3995 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency", features = ["merge"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/out/dependency/Cargo.toml new file mode 100644 index 000000000..f34d7a685 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/out/dependency/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "foo" +version = "0.0.0" + +[features] +default-base = [] +default-test-base = [] +default-merge-base = [] +default = ["default-base", "default-test-base", "default-merge-base"] +test-base = [] +test = ["test-base", "default-test-base"] +merge-base = [] +merge = ["merge-base", "default-merge-base"] +unrelated = []
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/out/primary/Cargo.toml new file mode 100644 index 000000000..fb4a12619 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { workspace = true, features = ["test"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/stderr.log new file mode 100644 index 000000000..02dde7a34 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/stderr.log @@ -0,0 +1,10 @@ + Adding foo (workspace) to dependencies. + Features as of v0.0.0: + + default-base + + default-merge-base + + default-test-base + + merge + + merge-base + + test + + test-base + - unrelated diff --git a/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/merge_activated_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/mod.rs new file mode 100644 index 000000000..ca58474d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/mod.rs @@ -0,0 +1,203 @@ +mod add_basic; +mod add_multiple; +mod add_normalized_name_external; +mod build; +mod build_prefer_existing_version; +mod change_rename_target; +mod cyclic_features; +mod default_features; +mod deprecated_default_features; +mod deprecated_section; +mod detect_workspace_inherit; +mod detect_workspace_inherit_features; +mod detect_workspace_inherit_optional; +mod dev; +mod dev_build_conflict; +mod dev_prefer_existing_version; +mod dry_run; +mod features; +mod features_empty; +mod features_multiple_occurrences; +mod features_preserve; +mod features_spaced_values; +mod features_unknown; +mod features_unknown_no_features; +mod git; +mod git_branch; +mod git_conflicts_namever; +mod git_dev; +mod git_inferred_name; +mod git_inferred_name_multiple; +mod git_multiple_names; +mod git_normalized_name; +mod git_registry; +mod git_rev; +mod git_tag; +mod infer_prerelease; +mod invalid_arg; +mod invalid_git_external; +mod invalid_git_name; +mod invalid_key_inherit_dependency; +mod invalid_key_overwrite_inherit_dependency; +mod invalid_key_rename_inherit_dependency; +mod invalid_manifest; +mod invalid_name_external; +mod invalid_path; +mod invalid_path_name; +mod invalid_path_self; +mod invalid_target_empty; +mod invalid_vers; +mod list_features; +mod list_features_path; +mod list_features_path_no_default; +mod locked_changed; +mod locked_unchanged; +mod lockfile_updated; +mod manifest_path_package; +mod merge_activated_features; +mod multiple_conflicts_with_features; +mod multiple_conflicts_with_rename; +mod namever; +mod no_args; +mod no_default_features; +mod no_optional; +mod offline_empty_cache; +mod optional; +mod overwrite_default_features; +mod overwrite_default_features_with_no_default_features; +mod overwrite_features; +mod overwrite_git_with_path; +mod overwrite_inherit_features_noop; +mod overwrite_inherit_noop; +mod overwrite_inherit_optional_noop; +mod overwrite_inline_features; +mod overwrite_name_dev_noop; +mod overwrite_name_noop; +mod overwrite_no_default_features; +mod overwrite_no_default_features_with_default_features; +mod overwrite_no_optional; +mod overwrite_no_optional_with_optional; +mod overwrite_optional; +mod overwrite_optional_with_no_optional; +mod overwrite_path_noop; +mod overwrite_path_with_version; +mod overwrite_preserves_inline_table; +mod overwrite_rename_with_no_rename; +mod overwrite_rename_with_rename; +mod overwrite_rename_with_rename_noop; +mod overwrite_version_with_git; +mod overwrite_version_with_path; +mod overwrite_with_rename; +mod overwrite_workspace_dep; +mod overwrite_workspace_dep_features; +mod path; +mod path_dev; +mod path_inferred_name; +mod path_inferred_name_conflicts_full_feature; +mod path_normalized_name; +mod preserve_sorted; +mod preserve_unsorted; +mod quiet; +mod registry; +mod rename; +mod require_weak; +mod sorted_table_with_dotted_item; +mod target; +mod target_cfg; +mod unknown_inherited_feature; +mod vers; +mod workspace_name; +mod workspace_path; +mod workspace_path_dev; + +fn init_registry() { + cargo_test_support::registry::init(); + add_registry_packages(false); +} + +fn init_alt_registry() { + cargo_test_support::registry::alt_init(); + add_registry_packages(true); +} + +fn add_registry_packages(alt: bool) { + for name in [ + "my-package", + "my-package1", + "my-package2", + "my-dev-package1", + "my-dev-package2", + "my-build-package1", + "my-build-package2", + "toml", + "versioned-package", + "cargo-list-test-fixture-dependency", + "unrelateed-crate", + ] { + cargo_test_support::registry::Package::new(name, "0.1.1+my-package") + .alternative(alt) + .publish(); + cargo_test_support::registry::Package::new(name, "0.2.0+my-package") + .alternative(alt) + .publish(); + cargo_test_support::registry::Package::new(name, "0.2.3+my-package") + .alternative(alt) + .publish(); + cargo_test_support::registry::Package::new(name, "0.4.1+my-package") + .alternative(alt) + .publish(); + cargo_test_support::registry::Package::new(name, "20.0.0+my-package") + .alternative(alt) + .publish(); + cargo_test_support::registry::Package::new(name, "99999.0.0+my-package") + .alternative(alt) + .publish(); + cargo_test_support::registry::Package::new(name, "99999.0.0-alpha.1+my-package") + .alternative(alt) + .publish(); + } + + cargo_test_support::registry::Package::new("prerelease_only", "0.2.0-alpha.1") + .alternative(alt) + .publish(); + cargo_test_support::registry::Package::new("test_breaking", "0.2.0") + .alternative(alt) + .publish(); + cargo_test_support::registry::Package::new("test_nonbreaking", "0.1.1") + .alternative(alt) + .publish(); + cargo_test_support::registry::Package::new("test_cyclic_features", "0.1.1") + .alternative(alt) + .feature("default", &["feature-one", "feature-two"]) + .feature("feature-one", &["feature-two"]) + .feature("feature-two", &["feature-one"]) + .publish(); + + // Normalization + cargo_test_support::registry::Package::new("linked-hash-map", "0.5.4") + .alternative(alt) + .feature("clippy", &[]) + .feature("heapsize", &[]) + .feature("heapsize_impl", &[]) + .feature("nightly", &[]) + .feature("serde", &[]) + .feature("serde_impl", &[]) + .feature("serde_test", &[]) + .publish(); + cargo_test_support::registry::Package::new("inflector", "0.11.4") + .alternative(alt) + .feature("default", &["heavyweight", "lazy_static", "regex"]) + .feature("heavyweight", &[]) + .feature("lazy_static", &[]) + .feature("regex", &[]) + .feature("unstable", &[]) + .publish(); + + cargo_test_support::registry::Package::new("your-face", "99999.0.0+my-package") + .alternative(alt) + .feature("nose", &[]) + .feature("mouth", &[]) + .feature("eyes", &[]) + .feature("ears", &[]) + .publish(); +} diff --git a/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/in b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/mod.rs new file mode 100644 index 000000000..10f824484 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 your-face --features nose") + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/stderr.log new file mode 100644 index 000000000..72fd9fc9d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/stderr.log @@ -0,0 +1 @@ +error: feature `nose` must be qualified by the dependency it's being activated for, like `my-package1/nose`, `your-face/nose` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/in b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/mod.rs new file mode 100644 index 000000000..293ed3eea --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2 --rename renamed") + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/stderr.log new file mode 100644 index 000000000..e83250e73 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/stderr.log @@ -0,0 +1 @@ +error: cannot specify multiple crates with `--rename` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/multiple_conflicts_with_rename/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/namever/in b/src/tools/cargo/tests/testsuite/cargo_add/namever/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/namever/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/namever/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/namever/mod.rs new file mode 100644 index 000000000..90fda1a9f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/namever/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1@>=0.1.1 my-package2@0.2.3 my-package") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/namever/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/namever/out/Cargo.toml new file mode 100644 index 000000000..1704d3435 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/namever/out/Cargo.toml @@ -0,0 +1,10 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package = "99999.0.0" +my-package1 = ">=0.1.1" +my-package2 = "0.2.3" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/namever/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/namever/stderr.log new file mode 100644 index 000000000..17be8f9d8 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/namever/stderr.log @@ -0,0 +1,4 @@ + Updating `dummy-registry` index + Adding my-package1 >=0.1.1 to dependencies. + Adding my-package2 v0.2.3 to dependencies. + Adding my-package v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/namever/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/namever/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/namever/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_args/in b/src/tools/cargo/tests/testsuite/cargo_add/no_args/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_args/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_args/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/no_args/mod.rs new file mode 100644 index 000000000..7eca17b56 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_args/mod.rs @@ -0,0 +1,24 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .current_dir(cwd) + .assert() + .code(1) + .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/src/tools/cargo/tests/testsuite/cargo_add/no_args/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/no_args/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_args/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_args/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/no_args/stderr.log new file mode 100644 index 000000000..0274950a5 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_args/stderr.log @@ -0,0 +1,8 @@ +error: the following required arguments were not provided: + <DEP_ID|--path <PATH>|--git <URI>> + +Usage: cargo add [OPTIONS] <DEP>[@<VERSION>] ... + cargo add [OPTIONS] --path <PATH> ... + cargo add [OPTIONS] --git <URL> ... + +For more information, try '--help'. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_args/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/no_args/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_args/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/in b/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/mod.rs new file mode 100644 index 000000000..e72ca3be2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2@0.4.1 --no-default-features") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/out/Cargo.toml new file mode 100644 index 000000000..ddd02b1f0 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { version = "99999.0.0", default-features = false } +my-package2 = { version = "0.4.1", default-features = false } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/stderr.log new file mode 100644 index 000000000..fb8d4903d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to dependencies. + Adding my-package2 v0.4.1 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_default_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_optional/in b/src/tools/cargo/tests/testsuite/cargo_add/no_optional/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_optional/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_optional/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/no_optional/mod.rs new file mode 100644 index 000000000..fdb983b21 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_optional/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2@0.4.1 --no-optional") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/no_optional/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/no_optional/out/Cargo.toml new file mode 100644 index 000000000..c5e017892 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_optional/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = "99999.0.0" +my-package2 = "0.4.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_optional/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/no_optional/stderr.log new file mode 100644 index 000000000..fb8d4903d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_optional/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to dependencies. + Adding my-package2 v0.4.1 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/no_optional/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/no_optional/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/no_optional/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/in b/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/mod.rs new file mode 100644 index 000000000..ae7485979 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("--offline my-package") + .current_dir(cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/out/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/stderr.log new file mode 100644 index 000000000..e0260b795 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/stderr.log @@ -0,0 +1 @@ +error: the crate `my-package` could not be found in registry index. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/offline_empty_cache/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/optional/in b/src/tools/cargo/tests/testsuite/cargo_add/optional/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/optional/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/optional/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/optional/mod.rs new file mode 100644 index 000000000..94d1cbf34 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/optional/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2@0.4.1 --optional") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/optional/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/optional/out/Cargo.toml new file mode 100644 index 000000000..eda5445c5 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/optional/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { version = "99999.0.0", optional = true } +my-package2 = { version = "0.4.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/optional/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/optional/stderr.log new file mode 100644 index 000000000..8cf4812cf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/optional/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to optional dependencies. + Adding my-package2 v0.4.1 to optional dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/optional/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/optional/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/optional/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/in/Cargo.toml new file mode 100644 index 000000000..c5e017892 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = "99999.0.0" +my-package2 = "0.4.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/mod.rs new file mode 100644 index 000000000..88bdd8065 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2@0.4.1 --default-features") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/out/Cargo.toml new file mode 100644 index 000000000..c5e017892 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = "99999.0.0" +my-package2 = "0.4.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/stderr.log new file mode 100644 index 000000000..fb8d4903d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to dependencies. + Adding my-package2 v0.4.1 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/in/Cargo.toml new file mode 100644 index 000000000..73f56a7a3 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { version = "99999.0.0", default-features = true } +my-package2 = { version = "0.4.1", default-features = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/mod.rs new file mode 100644 index 000000000..e72ca3be2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2@0.4.1 --no-default-features") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/out/Cargo.toml new file mode 100644 index 000000000..ddd02b1f0 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { version = "99999.0.0", default-features = false } +my-package2 = { version = "0.4.1", default-features = false } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/stderr.log new file mode 100644 index 000000000..fb8d4903d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to dependencies. + Adding my-package2 v0.4.1 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_default_features_with_no_default_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/in/Cargo.toml new file mode 100644 index 000000000..11419b203 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "99999.0.0", features = ["eyes"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/mod.rs new file mode 100644 index 000000000..0b2ab18b8 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face --features nose") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/out/Cargo.toml new file mode 100644 index 000000000..0060d24bc --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "99999.0.0", features = ["eyes", "nose"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/stderr.log new file mode 100644 index 000000000..615459052 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/stderr.log @@ -0,0 +1,7 @@ + Updating `dummy-registry` index + Adding your-face v99999.0.0 to dependencies. + Features: + + eyes + + nose + - ears + - mouth diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/primary/Cargo.toml new file mode 100644 index 000000000..6cb4d6a7d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/primary/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { git = "git://git.git", branch = "main", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/mod.rs new file mode 100644 index 000000000..ab89e3a6d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture-dependency --path ../dependency") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/out/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/out/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/out/primary/Cargo.toml new file mode 100644 index 000000000..ad1205481 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/out/primary/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { optional = true, path = "../dependency", version = "0.0.0" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/stderr.log new file mode 100644 index 000000000..98abcfc99 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/stderr.log @@ -0,0 +1 @@ + Adding cargo-list-test-fixture-dependency (local) to optional dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_git_with_path/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/Cargo.toml new file mode 100644 index 000000000..24c50556b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"}
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/dependency/Cargo.toml new file mode 100644 index 000000000..bed932047 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/dependency/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "foo" +version = "0.0.0" + +[features] +test = []
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/primary/Cargo.toml new file mode 100644 index 000000000..a131c946d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { workspace = true, features = ["test"] }
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/mod.rs new file mode 100644 index 000000000..161783282 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/mod.rs @@ -0,0 +1,23 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "-p", "bar"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/Cargo.toml new file mode 100644 index 000000000..24c50556b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"}
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/dependency/Cargo.toml new file mode 100644 index 000000000..bed932047 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/dependency/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "foo" +version = "0.0.0" + +[features] +test = []
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/primary/Cargo.toml new file mode 100644 index 000000000..fb4a12619 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { workspace = true, features = ["test"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/stderr.log new file mode 100644 index 000000000..3c7133bbc --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/stderr.log @@ -0,0 +1,3 @@ + Adding foo (workspace) to dependencies. + Features as of v0.0.0: + + test diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_features_noop/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/Cargo.toml new file mode 100644 index 000000000..24c50556b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"}
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/primary/Cargo.toml new file mode 100644 index 000000000..2ac789d55 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo.workspace = true
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/mod.rs new file mode 100644 index 000000000..065fb4f93 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "-p", "bar"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/out/Cargo.toml new file mode 100644 index 000000000..24c50556b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"}
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/out/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/out/primary/Cargo.toml new file mode 100644 index 000000000..a5740941b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo.workspace = true diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/stderr.log new file mode 100644 index 000000000..d2efcc0c0 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/stderr.log @@ -0,0 +1 @@ + Adding foo (workspace) to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_noop/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/Cargo.toml new file mode 100644 index 000000000..24c50556b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"}
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/primary/Cargo.toml new file mode 100644 index 000000000..228aef664 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { workspace = true, optional = true }
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/mod.rs new file mode 100644 index 000000000..065fb4f93 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "-p", "bar"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/Cargo.toml new file mode 100644 index 000000000..24c50556b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency"}
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/primary/Cargo.toml new file mode 100644 index 000000000..6dd7fb6d6 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { workspace = true, optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/stderr.log new file mode 100644 index 000000000..da03b11f7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/stderr.log @@ -0,0 +1 @@ + Adding foo (workspace) to optional dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inherit_optional_noop/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/in/Cargo.toml new file mode 100644 index 000000000..11419b203 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "99999.0.0", features = ["eyes"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/mod.rs new file mode 100644 index 000000000..356b4d788 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/mod.rs @@ -0,0 +1,27 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line( + "unrelateed-crate your-face --features your-face/nose,your-face/mouth -Fyour-face/ears", + ) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/out/Cargo.toml new file mode 100644 index 000000000..8e9579dc6 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +unrelateed-crate = "99999.0.0" +your-face = { version = "99999.0.0", features = ["eyes", "nose", "mouth", "ears"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/stderr.log new file mode 100644 index 000000000..a686cba55 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/stderr.log @@ -0,0 +1,8 @@ + Updating `dummy-registry` index + Adding unrelateed-crate v99999.0.0 to dependencies. + Adding your-face v99999.0.0 to dependencies. + Features: + + ears + + eyes + + mouth + + nose diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_inline_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/Cargo.toml new file mode 100644 index 000000000..b69b5d38e --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] +exclude = ["dependency"] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dev-dependencies] +your-face = { version = "0.0.0", path = "dependency", default-features = false, features = ["nose", "mouth"], registry = "alternative" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/dependency/Cargo.toml new file mode 100644 index 000000000..8243797eb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/dependency/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "your-face" +version = "0.0.0" + +[features] +mouth = [] +nose = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/mod.rs new file mode 100644 index 000000000..b418c7809 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/mod.rs @@ -0,0 +1,25 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use crate::cargo_add::init_alt_registry; +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + init_alt_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face --dev") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/out/Cargo.toml new file mode 100644 index 000000000..b69b5d38e --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] +exclude = ["dependency"] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dev-dependencies] +your-face = { version = "0.0.0", path = "dependency", default-features = false, features = ["nose", "mouth"], registry = "alternative" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/out/dependency/Cargo.toml new file mode 100644 index 000000000..8243797eb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/out/dependency/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "your-face" +version = "0.0.0" + +[features] +mouth = [] +nose = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/stderr.log new file mode 100644 index 000000000..2fe3f6a29 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/stderr.log @@ -0,0 +1,4 @@ + Adding your-face (local) to dev-dependencies. + Features: + + mouth + + nose diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_dev_noop/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/Cargo.toml new file mode 100644 index 000000000..bbaf4f552 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] +exclude = ["dependency"] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "0.0.0", path = "dependency", optional = true, default-features = false, features = ["nose", "mouth"], registry = "alternative" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/dependency/Cargo.toml new file mode 100644 index 000000000..8243797eb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/dependency/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "your-face" +version = "0.0.0" + +[features] +mouth = [] +nose = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/mod.rs new file mode 100644 index 000000000..193c5880b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/mod.rs @@ -0,0 +1,25 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use crate::cargo_add::init_alt_registry; +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + init_alt_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/out/Cargo.toml new file mode 100644 index 000000000..bbaf4f552 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] +exclude = ["dependency"] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "0.0.0", path = "dependency", optional = true, default-features = false, features = ["nose", "mouth"], registry = "alternative" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/out/dependency/Cargo.toml new file mode 100644 index 000000000..8243797eb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/out/dependency/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "your-face" +version = "0.0.0" + +[features] +mouth = [] +nose = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/stderr.log new file mode 100644 index 000000000..2f0b90de0 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/stderr.log @@ -0,0 +1,4 @@ + Adding your-face (local) to optional dependencies. + Features: + + mouth + + nose diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_name_noop/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/in/Cargo.toml new file mode 100644 index 000000000..c5e017892 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = "99999.0.0" +my-package2 = "0.4.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/mod.rs new file mode 100644 index 000000000..e72ca3be2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2@0.4.1 --no-default-features") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/out/Cargo.toml new file mode 100644 index 000000000..ddd02b1f0 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { version = "99999.0.0", default-features = false } +my-package2 = { version = "0.4.1", default-features = false } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/stderr.log new file mode 100644 index 000000000..fb8d4903d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to dependencies. + Adding my-package2 v0.4.1 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/in/Cargo.toml new file mode 100644 index 000000000..ddd02b1f0 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { version = "99999.0.0", default-features = false } +my-package2 = { version = "0.4.1", default-features = false } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/mod.rs new file mode 100644 index 000000000..88bdd8065 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2@0.4.1 --default-features") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/out/Cargo.toml new file mode 100644 index 000000000..b9e8985c6 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { version = "99999.0.0" } +my-package2 = { version = "0.4.1" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/stderr.log new file mode 100644 index 000000000..fb8d4903d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to dependencies. + Adding my-package2 v0.4.1 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_default_features_with_default_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/in/Cargo.toml new file mode 100644 index 000000000..c5e017892 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = "99999.0.0" +my-package2 = "0.4.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/mod.rs new file mode 100644 index 000000000..fdb983b21 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2@0.4.1 --no-optional") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/out/Cargo.toml new file mode 100644 index 000000000..c5e017892 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = "99999.0.0" +my-package2 = "0.4.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/stderr.log new file mode 100644 index 000000000..fb8d4903d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to dependencies. + Adding my-package2 v0.4.1 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/in/Cargo.toml new file mode 100644 index 000000000..8cd2616d4 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { version = "99999.0.0", optional = false } +my-package2 = { version = "0.4.1", optional = false } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/mod.rs new file mode 100644 index 000000000..94d1cbf34 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2@0.4.1 --optional") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/out/Cargo.toml new file mode 100644 index 000000000..eda5445c5 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { version = "99999.0.0", optional = true } +my-package2 = { version = "0.4.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/stderr.log new file mode 100644 index 000000000..8cf4812cf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to optional dependencies. + Adding my-package2 v0.4.1 to optional dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_no_optional_with_optional/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/in/Cargo.toml new file mode 100644 index 000000000..c5e017892 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = "99999.0.0" +my-package2 = "0.4.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/mod.rs new file mode 100644 index 000000000..94d1cbf34 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2@0.4.1 --optional") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/out/Cargo.toml new file mode 100644 index 000000000..eda5445c5 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { version = "99999.0.0", optional = true } +my-package2 = { version = "0.4.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/stderr.log new file mode 100644 index 000000000..8cf4812cf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to optional dependencies. + Adding my-package2 v0.4.1 to optional dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/in/Cargo.toml new file mode 100644 index 000000000..5ef953209 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/in/Cargo.toml @@ -0,0 +1,13 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[features] +default = ["your-face"] +other = ["your-face/nose"] + +[dependencies] +your-face = { version = "99999.0.0", optional = true } +my-package2 = { version = "0.4.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/mod.rs new file mode 100644 index 000000000..c34c293f9 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face my-package2@0.4.1 --no-optional") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/out/Cargo.toml new file mode 100644 index 000000000..bf6c52963 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/out/Cargo.toml @@ -0,0 +1,13 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[features] +default = [] +other = ["your-face/nose"] + +[dependencies] +your-face = { version = "99999.0.0" } +my-package2 = { version = "0.4.1" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/stderr.log new file mode 100644 index 000000000..5fe113e86 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/stderr.log @@ -0,0 +1,8 @@ + Updating `dummy-registry` index + Adding your-face v99999.0.0 to dependencies. + Features: + - ears + - eyes + - mouth + - nose + Adding my-package2 v0.4.1 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_optional_with_no_optional/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/Cargo.toml new file mode 100644 index 000000000..bbaf4f552 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] +exclude = ["dependency"] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "0.0.0", path = "dependency", optional = true, default-features = false, features = ["nose", "mouth"], registry = "alternative" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/dependency/Cargo.toml new file mode 100644 index 000000000..8243797eb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/dependency/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "your-face" +version = "0.0.0" + +[features] +mouth = [] +nose = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/mod.rs new file mode 100644 index 000000000..f04405a34 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/mod.rs @@ -0,0 +1,25 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use crate::cargo_add::init_alt_registry; +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + init_alt_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face --path ./dependency") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/out/Cargo.toml new file mode 100644 index 000000000..bbaf4f552 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] +exclude = ["dependency"] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = { version = "0.0.0", path = "dependency", optional = true, default-features = false, features = ["nose", "mouth"], registry = "alternative" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/out/dependency/Cargo.toml new file mode 100644 index 000000000..8243797eb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/out/dependency/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "your-face" +version = "0.0.0" + +[features] +mouth = [] +nose = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/stderr.log new file mode 100644 index 000000000..2f0b90de0 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/stderr.log @@ -0,0 +1,4 @@ + Adding your-face (local) to optional dependencies. + Features: + + mouth + + nose diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_noop/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/primary/Cargo.toml new file mode 100644 index 000000000..9d20b2240 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/primary/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { optional = true, path = "../dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/mod.rs new file mode 100644 index 000000000..32674e23d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture-dependency@20.0") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/out/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/out/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/out/primary/Cargo.toml new file mode 100644 index 000000000..a20f2095d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/out/primary/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { optional = true, version = "20.0" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/stderr.log new file mode 100644 index 000000000..d0b3a4cf2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding cargo-list-test-fixture-dependency v20.0 to optional dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_path_with_version/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/in/Cargo.toml new file mode 100644 index 000000000..3dddbbd10 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face={version="99999.0.0",features=["eyes"]} # Hello world diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/mod.rs new file mode 100644 index 000000000..0b2ab18b8 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face --features nose") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/out/Cargo.toml new file mode 100644 index 000000000..f204a895e --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face={ version = "99999.0.0", features = ["eyes", "nose"] } # Hello world diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/stderr.log new file mode 100644 index 000000000..615459052 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/stderr.log @@ -0,0 +1,7 @@ + Updating `dummy-registry` index + Adding your-face v99999.0.0 to dependencies. + Features: + + eyes + + nose + - ears + - mouth diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_preserves_inline_table/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/in/Cargo.toml new file mode 100644 index 000000000..450229245 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +a1 = { package = "versioned-package", version = "0.1.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/mod.rs new file mode 100644 index 000000000..a006c95fd --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("versioned-package") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/out/Cargo.toml new file mode 100644 index 000000000..9951492da --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +a1 = { package = "versioned-package", version = "0.1.1", optional = true } +versioned-package = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/stderr.log new file mode 100644 index 000000000..305b89f26 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding versioned-package v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_no_rename/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/in/Cargo.toml new file mode 100644 index 000000000..450229245 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +a1 = { package = "versioned-package", version = "0.1.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/mod.rs new file mode 100644 index 000000000..e14282bc1 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("versioned-package --rename a2") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/out/Cargo.toml new file mode 100644 index 000000000..790f6546c --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +a1 = { package = "versioned-package", version = "0.1.1", optional = true } +a2 = { version = "99999.0.0", package = "versioned-package" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/stderr.log new file mode 100644 index 000000000..305b89f26 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding versioned-package v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/in/Cargo.toml new file mode 100644 index 000000000..450229245 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +a1 = { package = "versioned-package", version = "0.1.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/mod.rs new file mode 100644 index 000000000..c0ca2e552 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("versioned-package --rename a1") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/out/Cargo.toml new file mode 100644 index 000000000..450229245 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +a1 = { package = "versioned-package", version = "0.1.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/stderr.log new file mode 100644 index 000000000..d69dc92cd --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding versioned-package v0.1.1 to optional dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_rename_with_rename_noop/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/in/Cargo.toml new file mode 100644 index 000000000..fe41f2a90 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +versioned-package = { version = "0.1.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/mod.rs new file mode 100644 index 000000000..ce7a0acb0 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/mod.rs @@ -0,0 +1,34 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + let git_dep = cargo_test_support::git::new("versioned-package", |project| { + project + .file( + "Cargo.toml", + &cargo_test_support::basic_manifest("versioned-package", "0.3.0+versioned-package"), + ) + .file("src/lib.rs", "") + }); + let git_url = git_dep.url().to_string(); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["versioned-package", "--git", &git_url]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/out/Cargo.toml new file mode 100644 index 000000000..260014024 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +versioned-package = { version = "0.3.0", optional = true, git = "[ROOTURL]/versioned-package" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/stderr.log new file mode 100644 index 000000000..1b77cbe0e --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/stderr.log @@ -0,0 +1,3 @@ + Updating git repository `[ROOTURL]/versioned-package` + Adding versioned-package (git) to optional dependencies. + Updating git repository `[ROOTURL]/versioned-package` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_git/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/primary/Cargo.toml new file mode 100644 index 000000000..063b89192 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/primary/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { version = "0.1.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/mod.rs new file mode 100644 index 000000000..ab89e3a6d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture-dependency --path ../dependency") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/out/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/out/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/out/primary/Cargo.toml new file mode 100644 index 000000000..07253670a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/out/primary/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { version = "0.0.0", optional = true, path = "../dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/stderr.log new file mode 100644 index 000000000..98abcfc99 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/stderr.log @@ -0,0 +1 @@ + Adding cargo-list-test-fixture-dependency (local) to optional dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_version_with_path/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/in/Cargo.toml new file mode 100644 index 000000000..fe41f2a90 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/in/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +versioned-package = { version = "0.1.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/mod.rs new file mode 100644 index 000000000..05cc2d109 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("versioned-package --rename renamed") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/out/Cargo.toml new file mode 100644 index 000000000..4b7485181 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +renamed = { version = "99999.0.0", package = "versioned-package" } +versioned-package = { version = "0.1.1", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/stderr.log new file mode 100644 index 000000000..305b89f26 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding versioned-package v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_with_rename/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/Cargo.toml new file mode 100644 index 000000000..a80d49949 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency" }
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/primary/Cargo.toml new file mode 100644 index 000000000..2ac789d55 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo.workspace = true
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/mod.rs new file mode 100644 index 000000000..87ed58f7f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "--path", "./dependency", "-p", "bar"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/out/Cargo.toml new file mode 100644 index 000000000..a80d49949 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency" }
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/out/dependency/Cargo.toml new file mode 100644 index 000000000..2d247d4d2 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/out/primary/Cargo.toml new file mode 100644 index 000000000..da32f4ead --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { version = "0.0.0", path = "../dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/stderr.log new file mode 100644 index 000000000..d1bc50757 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/stderr.log @@ -0,0 +1 @@ + Adding foo (local) to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/Cargo.toml new file mode 100644 index 000000000..a80d49949 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency" }
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/dependency/Cargo.toml new file mode 100644 index 000000000..ef9ec7701 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/dependency/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "foo" +version = "0.0.0" + +[features] +default-base = [] +default-test-base = [] +default-merge-base = [] +default = ["default-base", "default-test-base", "default-merge-base"] +test-base = [] +test = ["test-base", "default-test-base"] +merge-base = [] +merge = ["merge-base", "default-merge-base"] +unrelated = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/primary/Cargo.toml new file mode 100644 index 000000000..a131c946d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { workspace = true, features = ["test"] }
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/mod.rs new file mode 100644 index 000000000..87ed58f7f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "--path", "./dependency", "-p", "bar"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/Cargo.toml new file mode 100644 index 000000000..a80d49949 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency" }
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/dependency/Cargo.toml new file mode 100644 index 000000000..ef9ec7701 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/dependency/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "foo" +version = "0.0.0" + +[features] +default-base = [] +default-test-base = [] +default-merge-base = [] +default = ["default-base", "default-test-base", "default-merge-base"] +test-base = [] +test = ["test-base", "default-test-base"] +merge-base = [] +merge = ["merge-base", "default-merge-base"] +unrelated = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/primary/Cargo.toml new file mode 100644 index 000000000..6f95ded6f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { features = ["test"], path = "../dependency", version = "0.0.0" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/stderr.log new file mode 100644 index 000000000..18ed7c2d8 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/stderr.log @@ -0,0 +1,10 @@ + Adding foo (local) to dependencies. + Features: + + default-base + + default-merge-base + + default-test-base + + test + + test-base + - merge + - merge-base + - unrelated diff --git a/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/overwrite_workspace_dep_features/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path/in/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path/in/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/path/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path/in/primary/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path/in/primary/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/path/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/path/mod.rs new file mode 100644 index 000000000..ab89e3a6d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture-dependency --path ../dependency") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/path/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path/out/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path/out/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path/out/primary/Cargo.toml new file mode 100644 index 000000000..93476d743 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path/out/primary/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { version = "0.0.0", path = "../dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/path/stderr.log new file mode 100644 index 000000000..8109d3cc5 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path/stderr.log @@ -0,0 +1 @@ + Adding cargo-list-test-fixture-dependency (local) to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/path/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/primary/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/primary/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_dev/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/mod.rs new file mode 100644 index 000000000..4ae04c70a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture-dependency --path ../dependency --dev") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/path_dev/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/out/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/out/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_dev/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/out/primary/Cargo.toml new file mode 100644 index 000000000..92be59dc6 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/out/primary/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dev-dependencies] +cargo-list-test-fixture-dependency = { path = "../dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_dev/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/stderr.log new file mode 100644 index 000000000..d8093d6ae --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/stderr.log @@ -0,0 +1 @@ + Adding cargo-list-test-fixture-dependency (local) to dev-dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_dev/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_dev/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/primary/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/primary/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/mod.rs new file mode 100644 index 000000000..ab89e3a6d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture-dependency --path ../dependency") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/out/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/out/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/out/primary/Cargo.toml new file mode 100644 index 000000000..93476d743 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/out/primary/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { version = "0.0.0", path = "../dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/stderr.log new file mode 100644 index 000000000..8109d3cc5 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/stderr.log @@ -0,0 +1 @@ + Adding cargo-list-test-fixture-dependency (local) to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/Cargo.toml new file mode 100644 index 000000000..299859e79 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency", "optional"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/dependency/Cargo.toml new file mode 100644 index 000000000..34157f411 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/dependency/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "your-face" +version = "0.1.3" + +[dependencies] +toml_edit = "0.1.5" +atty = "0.2.13" +optional-dependency = { path = "../optional", optional = true } + +[features] +default = ["mouth"] +nose = [] +mouth = ["nose"] +eyes = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/optional/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/optional/Cargo.toml new file mode 100644 index 000000000..0216dba89 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/optional/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "optional-dep" +version = "0.1.3" + +[dependencies] +toml_edit = "0.1.5" +atty = "0.2.13" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/optional/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/optional/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/optional/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/primary/Cargo.toml new file mode 100644 index 000000000..5e20016d7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/mod.rs new file mode 100644 index 000000000..eadd096aa --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("--path ../dependency --features your-face/nose") + .current_dir(&cwd) + .assert() + .code(101) + .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/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/Cargo.toml new file mode 100644 index 000000000..299859e79 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency", "optional"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/dependency/Cargo.toml new file mode 100644 index 000000000..34157f411 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/dependency/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "your-face" +version = "0.1.3" + +[dependencies] +toml_edit = "0.1.5" +atty = "0.2.13" +optional-dependency = { path = "../optional", optional = true } + +[features] +default = ["mouth"] +nose = [] +mouth = ["nose"] +eyes = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/primary/Cargo.toml new file mode 100644 index 000000000..5e20016d7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/out/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/stderr.log new file mode 100644 index 000000000..791ca6008 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/stderr.log @@ -0,0 +1 @@ +error: `your-face/nose` is unsupported when inferring the crate name, use `nose` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_inferred_name_conflicts_full_feature/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/primary/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/primary/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/mod.rs new file mode 100644 index 000000000..754f2783f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo_list_test_fixture_dependency --path ../dependency") + .current_dir(&cwd) + .assert() + .failure() // Fuzzy searching for paths isn't supported at this time + .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/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/out/dependency/Cargo.toml new file mode 100644 index 000000000..cbe244113 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/out/dependency/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/out/primary/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/out/primary/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/stderr.log new file mode 100644 index 000000000..59b35e3c4 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/stderr.log @@ -0,0 +1 @@ +error: the crate `cargo_list_test_fixture_dependency@[ROOT]/case/dependency` could not be found at `[ROOT]/case/dependency` diff --git a/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/path_normalized_name/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/in/Cargo.toml new file mode 100644 index 000000000..550e41b07 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package = "0.1.1" +versioned-package = "0.1.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/mod.rs new file mode 100644 index 000000000..4dfb06ed1 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("toml") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/out/Cargo.toml new file mode 100644 index 000000000..cacd510cc --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/out/Cargo.toml @@ -0,0 +1,10 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package = "0.1.1" +toml = "99999.0.0" +versioned-package = "0.1.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/stderr.log new file mode 100644 index 000000000..7c83976f8 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding toml v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_sorted/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/in/Cargo.toml new file mode 100644 index 000000000..f803120a3 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/in/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +versioned-package = "0.1.1" +my-package = "0.1.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/mod.rs new file mode 100644 index 000000000..4dfb06ed1 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("toml") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/out/Cargo.toml new file mode 100644 index 000000000..244a06ab9 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/out/Cargo.toml @@ -0,0 +1,10 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +versioned-package = "0.1.1" +my-package = "0.1.1" +toml = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/stderr.log new file mode 100644 index 000000000..7c83976f8 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding toml v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/preserve_unsorted/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/quiet/in b/src/tools/cargo/tests/testsuite/cargo_add/quiet/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/quiet/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/quiet/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/quiet/mod.rs new file mode 100644 index 000000000..357843901 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/quiet/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("--quiet your-face") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/quiet/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/quiet/out/Cargo.toml new file mode 100644 index 000000000..79d735a12 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/quiet/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +your-face = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/quiet/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/quiet/stderr.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/quiet/stderr.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/quiet/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/quiet/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/quiet/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/registry/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/registry/in/Cargo.toml new file mode 100644 index 000000000..3ecdb6681 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/registry/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/registry/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/registry/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/registry/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/registry/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/registry/mod.rs new file mode 100644 index 000000000..d5ba9ef28 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/registry/mod.rs @@ -0,0 +1,25 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use crate::cargo_add::init_alt_registry; +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + init_alt_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2 --registry alternative") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/registry/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/registry/out/Cargo.toml new file mode 100644 index 000000000..e856bee5d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/registry/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package1 = { version = "99999.0.0", registry = "alternative" } +my-package2 = { version = "99999.0.0", registry = "alternative" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/registry/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/registry/stderr.log new file mode 100644 index 000000000..437e780af --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/registry/stderr.log @@ -0,0 +1,3 @@ + Updating `alternative` index + Adding my-package1 v99999.0.0 to dependencies. + Adding my-package2 v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/registry/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/registry/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/registry/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/rename/in b/src/tools/cargo/tests/testsuite/cargo_add/rename/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/rename/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/rename/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/rename/mod.rs new file mode 100644 index 000000000..3fefcccf3 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/rename/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package --rename renamed") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/rename/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/rename/out/Cargo.toml new file mode 100644 index 000000000..ebcfbbd99 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/rename/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +renamed = { version = "99999.0.0", package = "my-package" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/rename/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/rename/stderr.log new file mode 100644 index 000000000..fd6b711e3 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/rename/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding my-package v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/rename/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/rename/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/rename/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/require_weak/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/in/Cargo.toml new file mode 100644 index 000000000..54faf173a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/in/Cargo.toml @@ -0,0 +1,11 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[features] +eyes = ["your-face?/eyes"] + +[dependencies] +your-face = { version = "99999.0.0", optional = true } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/require_weak/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/require_weak/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/mod.rs new file mode 100644 index 000000000..d99e4482a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("your-face --no-optional") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/require_weak/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/out/Cargo.toml new file mode 100644 index 000000000..a0e4b9753 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/out/Cargo.toml @@ -0,0 +1,11 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[features] +eyes = ["your-face/eyes"] + +[dependencies] +your-face = { version = "99999.0.0" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/require_weak/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/stderr.log new file mode 100644 index 000000000..796b9601b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/stderr.log @@ -0,0 +1,7 @@ + Updating `dummy-registry` index + Adding your-face v99999.0.0 to dependencies. + Features: + - ears + - eyes + - mouth + - nose diff --git a/src/tools/cargo/tests/testsuite/cargo_add/require_weak/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/require_weak/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/in/Cargo.toml new file mode 100644 index 000000000..19aa939d9 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/in/Cargo.toml @@ -0,0 +1,13 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +toml = "0.1.1" +versioned-package = "0.1.1" + +[dependencies.my-build-package1] +version = "0.1.1" + diff --git a/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/in/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/in/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/mod.rs new file mode 100644 index 000000000..55e4c2281 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("unrelateed-crate") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/out/Cargo.toml new file mode 100644 index 000000000..008ff4f62 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/out/Cargo.toml @@ -0,0 +1,14 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +toml = "0.1.1" +unrelateed-crate = "99999.0.0" +versioned-package = "0.1.1" + +[dependencies.my-build-package1] +version = "0.1.1" + diff --git a/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/stderr.log new file mode 100644 index 000000000..be1db1c4d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding unrelateed-crate v99999.0.0 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/sorted_table_with_dotted_item/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/target/in b/src/tools/cargo/tests/testsuite/cargo_add/target/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/target/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/target/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/target/mod.rs new file mode 100644 index 000000000..e263bad36 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/target/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2 --target i686-unknown-linux-gnu") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/target/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/target/out/Cargo.toml new file mode 100644 index 000000000..9c96ede51 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/target/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[target.i686-unknown-linux-gnu.dependencies] +my-package1 = "99999.0.0" +my-package2 = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/target/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/target/stderr.log new file mode 100644 index 000000000..3413bcc1b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/target/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to dependencies for target `i686-unknown-linux-gnu`. + Adding my-package2 v99999.0.0 to dependencies for target `i686-unknown-linux-gnu`. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/target/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/target/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/target/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/in b/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/mod.rs new file mode 100644 index 000000000..43efe8e8d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package1 my-package2 --target cfg(unix)") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/out/Cargo.toml new file mode 100644 index 000000000..212ec571b --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/out/Cargo.toml @@ -0,0 +1,9 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[target."cfg(unix)".dependencies] +my-package1 = "99999.0.0" +my-package2 = "99999.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/stderr.log new file mode 100644 index 000000000..e405c8dc1 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/stderr.log @@ -0,0 +1,3 @@ + Updating `dummy-registry` index + Adding my-package1 v99999.0.0 to dependencies for target `cfg(unix)`. + Adding my-package2 v99999.0.0 to dependencies for target `cfg(unix)`. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/target_cfg/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/Cargo.toml new file mode 100644 index 000000000..b2a34c92e --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency", features = ["not_recognized"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/dependency/Cargo.toml new file mode 100644 index 000000000..9a7bc7f77 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/dependency/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "foo" +version = "0.0.0" + +[features] +default-base = [] +default-test-base = [] +default-merge-base = [] +long-feature-name-because-of-formatting-reasons = [] +default = [ + "default-base", + "default-test-base", + "default-merge-base", + "long-feature-name-because-of-formatting-reasons", +] +test-base = [] +test = ["test-base", "default-test-base"] +merge-base = [] +merge = ["merge-base", "default-merge-base"] +unrelated = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/primary/Cargo.toml new file mode 100644 index 000000000..fb4a12619 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { workspace = true, features = ["test"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/mod.rs new file mode 100644 index 000000000..8184dac8f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/mod.rs @@ -0,0 +1,23 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::Project; + +use cargo_test_support::curr_dir; + +#[cargo_test] +fn case() { + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .args(["foo", "-p", "bar"]) + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/out/Cargo.toml new file mode 100644 index 000000000..b2a34c92e --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/out/Cargo.toml @@ -0,0 +1,5 @@ +[workspace] +members = ["primary", "dependency"] + +[workspace.dependencies] +foo = { version = "0.0.0", path = "./dependency", features = ["not_recognized"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/out/dependency/Cargo.toml new file mode 100644 index 000000000..9a7bc7f77 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/out/dependency/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "foo" +version = "0.0.0" + +[features] +default-base = [] +default-test-base = [] +default-merge-base = [] +long-feature-name-because-of-formatting-reasons = [] +default = [ + "default-base", + "default-test-base", + "default-merge-base", + "long-feature-name-because-of-formatting-reasons", +] +test-base = [] +test = ["test-base", "default-test-base"] +merge-base = [] +merge = ["merge-base", "default-merge-base"] +unrelated = [] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/out/primary/Cargo.toml new file mode 100644 index 000000000..fb4a12619 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "bar" +version = "0.0.0" + +[dependencies] +foo = { workspace = true, features = ["test"] } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/stderr.log new file mode 100644 index 000000000..c5aee4dc1 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/stderr.log @@ -0,0 +1,7 @@ + Adding foo (workspace) to dependencies. +error: unrecognized feature for crate foo: not_recognized +disabled features: + merge, merge-base, unrelated +enabled features: + default-base, default-merge-base, default-test-base + long-feature-name-because-of-formatting-reasons, test, test-base diff --git a/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/unknown_inherited_feature/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/vers/in b/src/tools/cargo/tests/testsuite/cargo_add/vers/in new file mode 120000 index 000000000..6c6a27fcf --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/vers/in @@ -0,0 +1 @@ +../add-basic.in
\ No newline at end of file diff --git a/src/tools/cargo/tests/testsuite/cargo_add/vers/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/vers/mod.rs new file mode 100644 index 000000000..fb78739e9 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/vers/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("my-package@>=0.1.1") + .current_dir(cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/vers/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/vers/out/Cargo.toml new file mode 100644 index 000000000..c6ca3d67a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/vers/out/Cargo.toml @@ -0,0 +1,8 @@ +[workspace] + +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +my-package = ">=0.1.1" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/vers/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/vers/stderr.log new file mode 100644 index 000000000..7ef92d22e --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/vers/stderr.log @@ -0,0 +1,2 @@ + Updating `dummy-registry` index + Adding my-package >=0.1.1 to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/vers/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/vers/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/vers/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/Cargo.toml new file mode 100644 index 000000000..57e1f3085 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/dependency/Cargo.toml new file mode 100644 index 000000000..ca4f36d72 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/primary/Cargo.toml new file mode 100644 index 000000000..5e20016d7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/mod.rs new file mode 100644 index 000000000..ccaf850f9 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture-dependency") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/out/Cargo.toml new file mode 100644 index 000000000..57e1f3085 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/out/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/out/dependency/Cargo.toml new file mode 100644 index 000000000..ca4f36d72 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/out/primary/Cargo.toml new file mode 100644 index 000000000..a693df54f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { version = "0.0.0", path = "../dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/stderr.log new file mode 100644 index 000000000..8109d3cc5 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/stderr.log @@ -0,0 +1 @@ + Adding cargo-list-test-fixture-dependency (local) to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_name/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/Cargo.toml new file mode 100644 index 000000000..57e1f3085 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/dependency/Cargo.toml new file mode 100644 index 000000000..ca4f36d72 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/primary/Cargo.toml new file mode 100644 index 000000000..5e20016d7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/mod.rs new file mode 100644 index 000000000..ab89e3a6d --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture-dependency --path ../dependency") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/out/Cargo.toml new file mode 100644 index 000000000..57e1f3085 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/out/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/out/dependency/Cargo.toml new file mode 100644 index 000000000..ca4f36d72 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/out/primary/Cargo.toml new file mode 100644 index 000000000..a693df54f --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dependencies] +cargo-list-test-fixture-dependency = { version = "0.0.0", path = "../dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/stderr.log new file mode 100644 index 000000000..8109d3cc5 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/stderr.log @@ -0,0 +1 @@ + Adding cargo-list-test-fixture-dependency (local) to dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path/stdout.log diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/Cargo.toml new file mode 100644 index 000000000..57e1f3085 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/dependency/Cargo.toml new file mode 100644 index 000000000..ca4f36d72 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/dependency/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/dependency/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/dependency/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/primary/Cargo.toml new file mode 100644 index 000000000..5e20016d7 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/primary/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/primary/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/primary/src/lib.rs new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/in/primary/src/lib.rs diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/mod.rs new file mode 100644 index 000000000..4ae04c70a --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/mod.rs @@ -0,0 +1,25 @@ +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] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = project_root.join("primary"); + + snapbox::cmd::Command::cargo_ui() + .arg("add") + .arg_line("cargo-list-test-fixture-dependency --path ../dependency --dev") + .current_dir(&cwd) + .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/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/out/Cargo.toml new file mode 100644 index 000000000..57e1f3085 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/out/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["primary", "dependency"] diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/out/dependency/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/out/dependency/Cargo.toml new file mode 100644 index 000000000..ca4f36d72 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/out/dependency/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "cargo-list-test-fixture-dependency" +version = "0.0.0" diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/out/primary/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/out/primary/Cargo.toml new file mode 100644 index 000000000..8dfa5c218 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/out/primary/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "cargo-list-test-fixture" +version = "0.0.0" + +[dev-dependencies] +cargo-list-test-fixture-dependency = { path = "../dependency" } diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/stderr.log new file mode 100644 index 000000000..d8093d6ae --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/stderr.log @@ -0,0 +1 @@ + Adding cargo-list-test-fixture-dependency (local) to dev-dependencies. diff --git a/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/stdout.log new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/tools/cargo/tests/testsuite/cargo_add/workspace_path_dev/stdout.log |