Skip to content

Commit 41c8368

Browse files
committed
Improve tests for --no-private
1 parent d4ee4a8 commit 41c8368

File tree

13 files changed

+196
-32
lines changed

13 files changed

+196
-32
lines changed
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[package]
2+
name = "real"
3+
version = "0.0.0"
4+
5+
[workspace]
6+
members = [
7+
"member1",
8+
"member2",
9+
"member3",
10+
".",
11+
]
12+
13+
[features]
14+
default = []
15+
a = []
16+
b = []
17+
c = []
18+
19+
[dependencies]
20+
member1 = { path = "member1", optional = true }
21+
22+
[dev-dependencies]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[package]
2+
name = "member1"
3+
version = "0.0.0"
4+
5+
[features]
6+
default = []
7+
a = []
8+
b = []
9+
c = []
10+
11+
[dependencies]
12+
13+
[dev-dependencies]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
fn main() {
2+
println!("hello!");
3+
#[cfg(feature = "default")]
4+
println!("default");
5+
#[cfg(feature = "a")]
6+
println!("a");
7+
#[cfg(feature = "b")]
8+
println!("b");
9+
#[cfg(feature = "c")]
10+
println!("c");
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[package]
2+
name = "member2"
3+
version = "0.0.0"
4+
publish = false
5+
6+
[features]
7+
default = []
8+
a = []
9+
b = []
10+
c = []
11+
12+
[dependencies]
13+
14+
[dev-dependencies]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
fn main() {
2+
println!("hello!");
3+
#[cfg(feature = "default")]
4+
println!("default");
5+
#[cfg(feature = "a")]
6+
println!("a");
7+
#[cfg(feature = "b")]
8+
println!("b");
9+
#[cfg(feature = "c")]
10+
println!("c");
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[package]
2+
name = "member3"
3+
version = "0.0.0"
4+
publish = true
5+
6+
[features]
7+
default = ["a"]
8+
a = []
9+
b = []
10+
c = []
11+
12+
[dependencies]
13+
member2 = { path = "../member2" }
14+
15+
[dev-dependencies]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
fn main() {
2+
println!("hello!");
3+
#[cfg(feature = "default")]
4+
println!("default");
5+
#[cfg(feature = "a")]
6+
println!("a");
7+
#[cfg(feature = "b")]
8+
println!("b");
9+
#[cfg(feature = "c")]
10+
println!("c");
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
fn main() {
2+
println!("hello!");
3+
#[cfg(feature = "default")]
4+
println!("default");
5+
#[cfg(feature = "a")]
6+
println!("a");
7+
#[cfg(feature = "b")]
8+
println!("b");
9+
#[cfg(feature = "c")]
10+
println!("c");
11+
}
12+
13+
#[cfg(test)]
14+
mod tests {
15+
#[test]
16+
fn test() {}
17+
18+
#[ignore]
19+
#[test]
20+
fn test_ignored() {}
21+
}

tests/test.rs

+74-32
Original file line numberDiff line numberDiff line change
@@ -147,39 +147,81 @@ fn virtual_all_in_subcrate() {
147147

148148
#[test]
149149
fn real_ignore_private() {
150-
// --no-private is not supported yet with workspace with private root crate
151-
let flag = "--ignore-private";
152-
cargo_hack(["check", flag])
153-
.assert_success("real")
154-
.stderr_not_contains(
155-
"
156-
running `cargo check` on member1
157-
skipped running on private package `member1`
158-
running `cargo check` on member2
159-
skipped running on private package `member2`
160-
running `cargo check` on real
161-
",
162-
)
163-
.stderr_contains("skipped running on private package `real`");
150+
for flag in ["--ignore-private", "--no-private"] {
151+
if flag == "--no-private" {
152+
// --no-private is not supported yet with workspace with private root crate
153+
cargo_hack(["check", flag]).assert_failure("real").stderr_contains(
154+
"--no-private is not supported yet with workspace with private root crate",
155+
);
156+
cargo_hack(["check", "--all", flag]).assert_failure("real").stderr_contains(
157+
"--no-private is not supported yet with workspace with private root crate",
158+
);
159+
} else {
160+
cargo_hack(["check", flag])
161+
.assert_success("real")
162+
.stderr_contains("skipped running on private package `real`")
163+
.stderr_not_contains(
164+
"
165+
running `cargo check` on member1
166+
skipped running on private package `member1`
167+
running `cargo check` on member2
168+
skipped running on private package `member2`
169+
running `cargo check` on real
170+
",
171+
);
172+
173+
cargo_hack(["check", "--all", flag])
174+
.assert_success("real")
175+
.stderr_contains(
176+
"
177+
running `cargo check` on member1
178+
skipped running on private package `member2`
179+
running `cargo check` on member3
180+
skipped running on private package `real`
181+
",
182+
)
183+
.stderr_not_contains(
184+
"
185+
skipped running on private package `member1`
186+
running `cargo check` on member2
187+
skipped running on private package `member3`
188+
running `cargo check` on real
189+
",
190+
);
191+
}
164192

165-
cargo_hack(["check", "--all", flag])
166-
.assert_success("real")
167-
.stderr_contains(
168-
"
169-
running `cargo check` on member1
170-
skipped running on private package `member2`
171-
running `cargo check` on member3
172-
skipped running on private package `real`
173-
",
174-
)
175-
.stderr_not_contains(
176-
"
177-
skipped running on private package `member1`
178-
running `cargo check` on member2
179-
skipped running on private package `member3`
180-
running `cargo check` on real
181-
",
182-
);
193+
cargo_hack(["check", flag])
194+
.assert_success("real_root_public")
195+
.stderr_contains("running `cargo check` on real")
196+
.stderr_not_contains(
197+
"
198+
running `cargo check` on member1
199+
skipped running on private package `member1`
200+
running `cargo check` on member2
201+
skipped running on private package `member2`
202+
skipped running on private package `real`
203+
",
204+
);
205+
206+
cargo_hack(["check", "--all", flag])
207+
.assert_success("real_root_public")
208+
.stderr_contains(
209+
"
210+
running `cargo check` on member1
211+
skipped running on private package `member2`
212+
running `cargo check` on member3
213+
running `cargo check` on real
214+
",
215+
)
216+
.stderr_not_contains(
217+
"
218+
skipped running on private package `member1`
219+
running `cargo check` on member2
220+
skipped running on private package `member3`
221+
skipped running on private package `real`
222+
",
223+
);
224+
}
183225
}
184226

185227
#[test]

0 commit comments

Comments
 (0)