about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorUrgau <urgau@numericable.fr>2025-09-02 22:58:11 +0200
committerUrgau <urgau@numericable.fr>2025-09-03 08:01:03 +0200
commit0fa93a3434a07cfd5edd0386d3053aced16e4e9e (patch)
tree41c6ad8fb284791d684c9d62d8c68bfb6694f5bb /tests
parent94722cabf4983abcbe5088c1b8e81517ba2a7126 (diff)
downloadrust-0fa93a3434a07cfd5edd0386d3053aced16e4e9e.tar.gz
rust-0fa93a3434a07cfd5edd0386d3053aced16e4e9e.zip
Disallow frontmatter in `--cfg` and `--check-cfg` arguments
Diffstat (limited to 'tests')
-rw-r--r--tests/run-make/multiline-args-value/cfg.stderr4
-rw-r--r--tests/run-make/multiline-args-value/check-cfg.stderr7
-rw-r--r--tests/run-make/multiline-args-value/rmake.rs34
3 files changed, 45 insertions, 0 deletions
diff --git a/tests/run-make/multiline-args-value/cfg.stderr b/tests/run-make/multiline-args-value/cfg.stderr
new file mode 100644
index 00000000000..9b06f84be48
--- /dev/null
+++ b/tests/run-make/multiline-args-value/cfg.stderr
@@ -0,0 +1,4 @@
+error: invalid `--cfg` argument: `---
+       ---
+       key` (expected `key` or `key="value"`)
+
diff --git a/tests/run-make/multiline-args-value/check-cfg.stderr b/tests/run-make/multiline-args-value/check-cfg.stderr
new file mode 100644
index 00000000000..4a499cc0a1e
--- /dev/null
+++ b/tests/run-make/multiline-args-value/check-cfg.stderr
@@ -0,0 +1,7 @@
+error: invalid `--check-cfg` argument: `---
+       ---
+       cfg(key)`
+  |
+  = note: expected `cfg(name, values("value1", "value2", ... "valueN"))`
+  = note: visit <https://doc.rust-lang.org/nightly/rustc/check-cfg.html> for more details
+
diff --git a/tests/run-make/multiline-args-value/rmake.rs b/tests/run-make/multiline-args-value/rmake.rs
new file mode 100644
index 00000000000..825cbd158c0
--- /dev/null
+++ b/tests/run-make/multiline-args-value/rmake.rs
@@ -0,0 +1,34 @@
+use run_make_support::{cwd, diff, rustc};
+
+fn test_and_compare(flag: &str, val: &str) {
+    let mut cmd = rustc();
+
+    let output =
+        cmd.input("").arg("--crate-type=lib").arg(&format!("--{flag}")).arg(val).run_fail();
+
+    assert_eq!(output.stdout_utf8(), "");
+    diff()
+        .expected_file(format!("{flag}.stderr"))
+        .actual_text("output", output.stderr_utf8())
+        .run();
+}
+
+fn main() {
+    // Verify that frontmatter isn't allowed in `--cfg` arguments.
+    // https://github.com/rust-lang/rust/issues/146130
+    test_and_compare(
+        "cfg",
+        r#"---
+---
+key"#,
+    );
+
+    // Verify that frontmatter isn't allowed in `--check-cfg` arguments.
+    // https://github.com/rust-lang/rust/issues/146130
+    test_and_compare(
+        "check-cfg",
+        r#"---
+---
+cfg(key)"#,
+    );
+}