summaryrefslogtreecommitdiffstats
path: root/src/tools/cargo/tests/testsuite/shell_quoting.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/cargo/tests/testsuite/shell_quoting.rs')
-rw-r--r--src/tools/cargo/tests/testsuite/shell_quoting.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/tools/cargo/tests/testsuite/shell_quoting.rs b/src/tools/cargo/tests/testsuite/shell_quoting.rs
new file mode 100644
index 000000000..bff333389
--- /dev/null
+++ b/src/tools/cargo/tests/testsuite/shell_quoting.rs
@@ -0,0 +1,37 @@
+//! This file tests that when the commands being run are shown
+//! in the output, their arguments are quoted properly
+//! so that the command can be run in a terminal.
+
+use cargo_test_support::project;
+
+#[cargo_test]
+fn features_are_quoted() {
+ let p = project()
+ .file(
+ "Cargo.toml",
+ r#"
+ [package]
+ name = "foo"
+ version = "0.1.0"
+ authors = ["mikeyhew@example.com"]
+
+ [features]
+ some_feature = []
+ default = ["some_feature"]
+ "#,
+ )
+ .file("src/main.rs", "fn main() {error}")
+ .build();
+
+ p.cargo("check -v")
+ .env("MSYSTEM", "1")
+ .with_status(101)
+ .with_stderr_contains(
+ r#"[RUNNING] `rustc [..] --cfg 'feature="default"' --cfg 'feature="some_feature"' [..]`"#
+ ).with_stderr_contains(
+ r#"
+Caused by:
+ process didn't exit successfully: [..] --cfg 'feature="default"' --cfg 'feature="some_feature"' [..]"#
+ )
+ .run();
+}