diff options
Diffstat (limited to 'src/tools/cargo/tests/testsuite/cargo_add')
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? |