Skip to content

Commit 61f6248

Browse files
add test expecting failure: adding features from git repo w multiple packages
1 parent 1f70597 commit 61f6248

File tree

6 files changed

+74
-0
lines changed

6 files changed

+74
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../add-basic.in
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
use cargo_test_support::compare::assert_ui;
2+
use cargo_test_support::prelude::*;
3+
use cargo_test_support::Project;
4+
5+
use cargo_test_support::curr_dir;
6+
7+
#[cargo_test]
8+
fn case() {
9+
cargo_test_support::registry::init();
10+
11+
let main_manifest = r#"
12+
[package]
13+
name = "main-package"
14+
version = "0.1.1+main-package"
15+
authors = []
16+
17+
[workspace]
18+
members = ["package-wo-feature", "package-with-feature"]
19+
"#;
20+
21+
let manifest_feature = r#"
22+
[package]
23+
name = "package-with-feature"
24+
version = "0.1.3+package-with-feature"
25+
[features]
26+
target_feature = []
27+
"#;
28+
29+
let project = Project::from_template(curr_dir!().join("in"));
30+
let project_root = project.root();
31+
let cwd = &project_root;
32+
let git_dep = cargo_test_support::git::new("git-package", |project| {
33+
project
34+
.file("Cargo.toml", &main_manifest)
35+
.file(
36+
"package-wo-feature/Cargo.toml",
37+
&cargo_test_support::basic_manifest(
38+
"package-wo-feature",
39+
"0.1.1+package-wo-feature",
40+
),
41+
)
42+
.file("package-wo-feature/src/lib.rs", "")
43+
.file("package-with-feature/Cargo.toml", &manifest_feature)
44+
.file("package-with-feature/src/lib.rs", "")
45+
});
46+
let git_url = git_dep.url().to_string();
47+
48+
snapbox::cmd::Command::cargo_ui()
49+
.arg("add")
50+
.args([
51+
"--git",
52+
&git_url,
53+
"package-with-feature",
54+
"--features=target_feature",
55+
])
56+
.current_dir(cwd)
57+
.assert()
58+
.failure()
59+
.stdout_matches_path(curr_dir!().join("stdout.log"))
60+
.stderr_matches_path(curr_dir!().join("stderr.log"));
61+
62+
assert_ui().subset_matches(curr_dir!().join("out"), &project_root);
63+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[workspace]
2+
3+
[package]
4+
name = "cargo-list-test-fixture"
5+
version = "0.0.0"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Updating git repository `[ROOTURL]/git-package`
2+
Adding package-with-feature (git) to dependencies.
3+
error: unrecognized feature for crate package-with-feature: target_feature
4+
no features available for crate package-with-feature

tests/testsuite/cargo_add/git_multiple_packages_features/stdout.log

Whitespace-only changes.

tests/testsuite/cargo_add/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ mod git_dev;
3535
mod git_inferred_name;
3636
mod git_inferred_name_multiple;
3737
mod git_multiple_names;
38+
mod git_multiple_packages_features;
3839
mod git_normalized_name;
3940
mod git_registry;
4041
mod git_rev;

0 commit comments

Comments
 (0)