summaryrefslogtreecommitdiffstats
path: root/src/tools/cargo/tests/testsuite/cargo_add
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/cargo/tests/testsuite/cargo_add')
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/in/Cargo.toml5
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/in/src/lib.rs0
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/mod.rs38
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/out/Cargo.toml8
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/stderr.log5
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/stdout.log0
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/in/Cargo.toml5
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/in/src/lib.rs0
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/mod.rs38
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/out/Cargo.toml8
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/stderr.log34
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/stdout.log0
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/help/stdout.log2
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/stderr.log3
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/mod.rs2
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/rust_version_ignore/mod.rs2
-rw-r--r--src/tools/cargo/tests/testsuite/cargo_add/rust_version_ignore/stderr.log5
17 files changed, 150 insertions, 5 deletions
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/in/Cargo.toml
new file mode 100644
index 000000000..3ecdb6681
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/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/features_activated_over_limit/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/in/src/lib.rs
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/in/src/lib.rs
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/mod.rs
new file mode 100644
index 000000000..467e9a681
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/mod.rs
@@ -0,0 +1,38 @@
+use cargo_test_support::compare::assert_ui;
+use cargo_test_support::prelude::*;
+use cargo_test_support::Project;
+use itertools::Itertools;
+
+use cargo_test_support::curr_dir;
+
+#[cargo_test]
+fn case() {
+ const MANY_FEATURES_COUNT: usize = 200;
+ const ACTIVATED_FEATURES_COUNT: usize = 100;
+
+ cargo_test_support::registry::init();
+ let mut test_package =
+ cargo_test_support::registry::Package::new("your-face", "99999.0.0+my-package");
+ for i in 0..MANY_FEATURES_COUNT {
+ test_package.feature(format!("eyes{i:03}").as_str(), &[]);
+ }
+ test_package.publish();
+
+ let project = Project::from_template(curr_dir!().join("in"));
+ let project_root = project.root();
+ let cwd = &project_root;
+
+ let features = (0..ACTIVATED_FEATURES_COUNT)
+ .map(|i| format!("eyes{i:03}"))
+ .join(",");
+ snapbox::cmd::Command::cargo_ui()
+ .arg("add")
+ .arg_line(format!("your-face --features {features}").as_str())
+ .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_activated_over_limit/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/out/Cargo.toml
new file mode 100644
index 000000000..6c8c7e5a3
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/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 = ["eyes000", "eyes001", "eyes002", "eyes003", "eyes004", "eyes005", "eyes006", "eyes007", "eyes008", "eyes009", "eyes010", "eyes011", "eyes012", "eyes013", "eyes014", "eyes015", "eyes016", "eyes017", "eyes018", "eyes019", "eyes020", "eyes021", "eyes022", "eyes023", "eyes024", "eyes025", "eyes026", "eyes027", "eyes028", "eyes029", "eyes030", "eyes031", "eyes032", "eyes033", "eyes034", "eyes035", "eyes036", "eyes037", "eyes038", "eyes039", "eyes040", "eyes041", "eyes042", "eyes043", "eyes044", "eyes045", "eyes046", "eyes047", "eyes048", "eyes049", "eyes050", "eyes051", "eyes052", "eyes053", "eyes054", "eyes055", "eyes056", "eyes057", "eyes058", "eyes059", "eyes060", "eyes061", "eyes062", "eyes063", "eyes064", "eyes065", "eyes066", "eyes067", "eyes068", "eyes069", "eyes070", "eyes071", "eyes072", "eyes073", "eyes074", "eyes075", "eyes076", "eyes077", "eyes078", "eyes079", "eyes080", "eyes081", "eyes082", "eyes083", "eyes084", "eyes085", "eyes086", "eyes087", "eyes088", "eyes089", "eyes090", "eyes091", "eyes092", "eyes093", "eyes094", "eyes095", "eyes096", "eyes097", "eyes098", "eyes099"] }
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/stderr.log
new file mode 100644
index 000000000..9288319aa
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/stderr.log
@@ -0,0 +1,5 @@
+ Updating `dummy-registry` index
+ Adding your-face v99999.0.0 to dependencies.
+ Features:
+ 100 activated features
+ 100 deactivated features
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/stdout.log
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_activated_over_limit/stdout.log
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/in/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/in/Cargo.toml
new file mode 100644
index 000000000..3ecdb6681
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/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/features_deactivated_over_limit/in/src/lib.rs b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/in/src/lib.rs
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/in/src/lib.rs
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/mod.rs
new file mode 100644
index 000000000..b2ed6f87d
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/mod.rs
@@ -0,0 +1,38 @@
+use cargo_test_support::compare::assert_ui;
+use cargo_test_support::prelude::*;
+use cargo_test_support::Project;
+use itertools::Itertools;
+
+use cargo_test_support::curr_dir;
+
+#[cargo_test]
+fn case() {
+ const MANY_FEATURES_COUNT: usize = 200;
+ const ACTIVATED_FEATURES_COUNT: usize = 30;
+
+ cargo_test_support::registry::init();
+ let mut test_package =
+ cargo_test_support::registry::Package::new("your-face", "99999.0.0+my-package");
+ for i in 0..MANY_FEATURES_COUNT {
+ test_package.feature(format!("eyes{i:03}").as_str(), &[]);
+ }
+ test_package.publish();
+
+ let project = Project::from_template(curr_dir!().join("in"));
+ let project_root = project.root();
+ let cwd = &project_root;
+
+ let features = (0..ACTIVATED_FEATURES_COUNT)
+ .map(|i| format!("eyes{i:03}"))
+ .join(",");
+ snapbox::cmd::Command::cargo_ui()
+ .arg("add")
+ .arg_line(format!("your-face --features {features}").as_str())
+ .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_deactivated_over_limit/out/Cargo.toml b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/out/Cargo.toml
new file mode 100644
index 000000000..b94cde668
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/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 = ["eyes000", "eyes001", "eyes002", "eyes003", "eyes004", "eyes005", "eyes006", "eyes007", "eyes008", "eyes009", "eyes010", "eyes011", "eyes012", "eyes013", "eyes014", "eyes015", "eyes016", "eyes017", "eyes018", "eyes019", "eyes020", "eyes021", "eyes022", "eyes023", "eyes024", "eyes025", "eyes026", "eyes027", "eyes028", "eyes029"] }
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/stderr.log
new file mode 100644
index 000000000..7f74e6bf0
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/stderr.log
@@ -0,0 +1,34 @@
+ Updating `dummy-registry` index
+ Adding your-face v99999.0.0 to dependencies.
+ Features:
+ + eyes000
+ + eyes001
+ + eyes002
+ + eyes003
+ + eyes004
+ + eyes005
+ + eyes006
+ + eyes007
+ + eyes008
+ + eyes009
+ + eyes010
+ + eyes011
+ + eyes012
+ + eyes013
+ + eyes014
+ + eyes015
+ + eyes016
+ + eyes017
+ + eyes018
+ + eyes019
+ + eyes020
+ + eyes021
+ + eyes022
+ + eyes023
+ + eyes024
+ + eyes025
+ + eyes026
+ + eyes027
+ + eyes028
+ + eyes029
+ 170 deactivated features
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/stdout.log
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/cargo_add/features_deactivated_over_limit/stdout.log
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/help/stdout.log b/src/tools/cargo/tests/testsuite/cargo_add/help/stdout.log
index 0daba1a94..cf2a91313 100644
--- a/src/tools/cargo/tests/testsuite/cargo_add/help/stdout.log
+++ b/src/tools/cargo/tests/testsuite/cargo_add/help/stdout.log
@@ -42,7 +42,7 @@ Options:
--ignore-rust-version
Ignore `rust-version` specification in packages (unstable)
- --dry-run
+ -n, --dry-run
Don't actually write the manifest
-q, --quiet
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
index 3dabde349..9a8a93b5e 100644
--- a/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/stderr.log
+++ b/src/tools/cargo/tests/testsuite/cargo_add/invalid_manifest/stderr.log
@@ -1,9 +1,6 @@
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
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/mod.rs
index de93afbc1..8c03b30dc 100644
--- a/src/tools/cargo/tests/testsuite/cargo_add/mod.rs
+++ b/src/tools/cargo/tests/testsuite/cargo_add/mod.rs
@@ -18,6 +18,8 @@ mod dev_prefer_existing_version;
mod dry_run;
mod empty_dep_table;
mod features;
+mod features_activated_over_limit;
+mod features_deactivated_over_limit;
mod features_empty;
mod features_multiple_occurrences;
mod features_preserve;
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/rust_version_ignore/mod.rs b/src/tools/cargo/tests/testsuite/cargo_add/rust_version_ignore/mod.rs
index a382d95f1..f8aac0ad8 100644
--- a/src/tools/cargo/tests/testsuite/cargo_add/rust_version_ignore/mod.rs
+++ b/src/tools/cargo/tests/testsuite/cargo_add/rust_version_ignore/mod.rs
@@ -26,7 +26,7 @@ fn case() {
.current_dir(cwd)
.masquerade_as_nightly_cargo(&["msrv-policy"])
.assert()
- .success()
+ .code(101)
.stdout_matches_path(curr_dir!().join("stdout.log"))
.stderr_matches_path(curr_dir!().join("stderr.log"));
diff --git a/src/tools/cargo/tests/testsuite/cargo_add/rust_version_ignore/stderr.log b/src/tools/cargo/tests/testsuite/cargo_add/rust_version_ignore/stderr.log
index 430abe31b..96bcbddc2 100644
--- a/src/tools/cargo/tests/testsuite/cargo_add/rust_version_ignore/stderr.log
+++ b/src/tools/cargo/tests/testsuite/cargo_add/rust_version_ignore/stderr.log
@@ -1,2 +1,7 @@
Updating `dummy-registry` index
Adding rust-version-user v0.2.1 to dependencies.
+error: failed to select a version for the requirement `rust-version-user = "^0.2.1"`
+candidate versions found which didn't match: 0.2.1, 0.1.0
+location searched: `dummy-registry` index (which is replacing registry `crates-io`)
+required by package `cargo-list-test-fixture v0.0.0 ([ROOT]/case)`
+perhaps a crate was updated and forgotten to be re-vendored?