From 10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 14:41:41 +0200 Subject: Merging upstream version 1.70.0+dfsg2. Signed-off-by: Daniel Baumann --- src/tools/cargo/tests/testsuite/locate_project.rs | 76 +++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/tools/cargo/tests/testsuite/locate_project.rs (limited to 'src/tools/cargo/tests/testsuite/locate_project.rs') diff --git a/src/tools/cargo/tests/testsuite/locate_project.rs b/src/tools/cargo/tests/testsuite/locate_project.rs new file mode 100644 index 000000000..7e8ceb4c6 --- /dev/null +++ b/src/tools/cargo/tests/testsuite/locate_project.rs @@ -0,0 +1,76 @@ +//! Tests for the `cargo locate-project` command. + +use cargo_test_support::project; + +#[cargo_test] +fn simple() { + let p = project().build(); + + p.cargo("locate-project") + .with_json(r#"{"root": "[ROOT]/foo/Cargo.toml"}"#) + .run(); +} + +#[cargo_test] +fn message_format() { + let p = project().build(); + + p.cargo("locate-project --message-format plain") + .with_stdout("[ROOT]/foo/Cargo.toml") + .run(); + + p.cargo("locate-project --message-format json") + .with_json(r#"{"root": "[ROOT]/foo/Cargo.toml"}"#) + .run(); + + p.cargo("locate-project --message-format cryptic") + .with_stderr("error: invalid message format specifier: `cryptic`") + .with_status(101) + .run(); +} + +#[cargo_test] +fn workspace() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "outer" + version = "0.0.0" + + [workspace] + members = ["inner"] + "#, + ) + .file("src/main.rs", "fn main() {}") + .file( + "inner/Cargo.toml", + r#" + [package] + name = "inner" + version = "0.0.0" + "#, + ) + .file("inner/src/lib.rs", "") + .build(); + + let outer_manifest = r#"{"root": "[ROOT]/foo/Cargo.toml"}"#; + let inner_manifest = r#"{"root": "[ROOT]/foo/inner/Cargo.toml"}"#; + + p.cargo("locate-project").with_json(outer_manifest).run(); + + p.cargo("locate-project") + .cwd("inner") + .with_json(inner_manifest) + .run(); + + p.cargo("locate-project --workspace") + .with_json(outer_manifest) + .run(); + + p.cargo("locate-project --workspace") + .cwd("inner") + .with_json(outer_manifest) + .run(); +} -- cgit v1.2.3