test: Add a test for cargo tree --duplicates with a proc-macro

This commit is contained in:
Jordan Rose 2023-04-27 10:49:22 -07:00
parent 284fd3f0f1
commit 747a5924a0

View File

@ -1085,6 +1085,66 @@ fn duplicates_with_target() {
p.cargo("tree -d --target=all").with_stdout("").run();
}
#[cargo_test]
fn duplicates_with_proc_macro() {
Package::new("dupe-dep", "1.0.0").publish();
Package::new("dupe-dep", "2.0.0").publish();
Package::new("proc", "1.0.0")
.proc_macro(true)
.dep("dupe-dep", "1.0")
.publish();
let p = project()
.file(
"Cargo.toml",
r#"
[package]
name = "foo"
version = "0.1.0"
[dependencies]
proc = "1.0"
dupe-dep = "2.0"
"#,
)
.file("src/lib.rs", "")
.build();
p.cargo("tree")
.with_stdout(
"\
foo v0.1.0 ([..]/foo)
dupe-dep v2.0.0
proc v1.0.0 (proc-macro)
dupe-dep v1.0.0
",
)
.run();
p.cargo("tree --duplicates")
.with_stdout(
"\
dupe-dep v1.0.0
proc v1.0.0 (proc-macro)
foo v0.1.0 ([..]/foo)
dupe-dep v2.0.0
foo v0.1.0 ([..]/foo)
",
)
.run();
p.cargo("tree --duplicates --edges no-proc-macro")
.with_stdout(
"\
dupe-dep v1.0.0
dupe-dep v2.0.0
foo v0.1.0 ([..]/foo)
",
)
.run();
}
#[cargo_test]
fn charset() {
let p = make_simple_proj();