-
Notifications
You must be signed in to change notification settings - Fork 47
/
normal-dev-build.rs
85 lines (74 loc) · 2.14 KB
/
normal-dev-build.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
mod runner;
use cargo::CargoResult;
use pretty_assertions::assert_eq;
use crate::runner::Runner;
static CARGO_TOML: &str = r#"[workspace]
[package]
name = "normal_dev_build"
version = "0.0.1"
edition = "2018"
publish = false
[dependencies]
if_chain = "1.0.0"
[dev-dependencies]
maplit = "1.0.2"
[build-dependencies]
matches = "0.1.8"
"#;
static LIB_RS: &str = "";
static BUILD_RS: &str = "fn main() {}\n";
#[test]
fn without_all_targets() -> CargoResult<()> {
let (code, stdout_masked) =
Runner::new("cargo_udeps_test_normal_dev_build_without_all_targets")?
.cargo_toml(CARGO_TOML)?
.dir("./src")?
.file("./src/lib.rs", LIB_RS)?
.file("./build.rs", BUILD_RS)?
.run()?;
assert_eq!(1, code);
assert_eq!(
r#"unused dependencies:
`normal_dev_build v0.0.1 (██████████)`
├─── dependencies
│ └─── "if_chain"
└─── build-dependencies
└─── "matches"
Note: These dependencies might be used by other targets.
To find dependencies that are not used by any target, enable `--all-targets`.
Note: They might be false-positive.
For example, `cargo-udeps` cannot detect usage of crates that are only used in doc-tests.
To ignore some dependencies, write `package.metadata.cargo-udeps.ignore` in Cargo.toml.
"#,
stdout_masked,
);
Ok(())
}
#[test]
fn with_all_targets() -> CargoResult<()> {
let (code, stdout_masked) =
Runner::new("cargo_udeps_test_normal_dev_build_with_all_targets")?
.cargo_toml(CARGO_TOML)?
.dir("./src")?
.file("./src/lib.rs", LIB_RS)?
.file("./build.rs", BUILD_RS)?
.arg("--all-targets")
.run()?;
assert_eq!(1, code);
assert_eq!(
r#"unused dependencies:
`normal_dev_build v0.0.1 (██████████)`
├─── dependencies
│ └─── "if_chain"
├─── dev-dependencies
│ └─── "maplit"
└─── build-dependencies
└─── "matches"
Note: They might be false-positive.
For example, `cargo-udeps` cannot detect usage of crates that are only used in doc-tests.
To ignore some dependencies, write `package.metadata.cargo-udeps.ignore` in Cargo.toml.
"#,
stdout_masked,
);
Ok(())
}