From 747a5924a09451007e5cbfe3628b5368354156d5 Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Thu, 27 Apr 2023 10:49:22 -0700 Subject: [PATCH] test: Add a test for `cargo tree --duplicates` with a proc-macro --- tests/testsuite/tree.rs | 60 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/tests/testsuite/tree.rs b/tests/testsuite/tree.rs index c3c1ca6d3..cdd9f1e29 100644 --- a/tests/testsuite/tree.rs +++ b/tests/testsuite/tree.rs @@ -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();