about summary refs log tree commit diff
path: root/tests/coverage/macro_name_span.rs
diff options
context:
space:
mode:
authorZalathar <Zalathar@users.noreply.github.com>2023-11-13 11:33:44 +1100
committerZalathar <Zalathar@users.noreply.github.com>2023-11-13 12:31:44 +1100
commit514e324c32db0790a13f52a96e230663f3fe0525 (patch)
tree6c3bc50bd8e32489eff6439bbc02c23440887e69 /tests/coverage/macro_name_span.rs
parented8298b825b8c2c5b57471cdd13dec9f94e26c03 (diff)
downloadrust-514e324c32db0790a13f52a96e230663f3fe0525.tar.gz
rust-514e324c32db0790a13f52a96e230663f3fe0525.zip
coverage: Regression test for #117788
Without the workaround applied, this test will produce malformed mappings that
cause `llvm-cov` to fail.

(And if it does emit well-formed mappings, they should be obviously incorrect.)
Diffstat (limited to 'tests/coverage/macro_name_span.rs')
-rw-r--r--tests/coverage/macro_name_span.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/coverage/macro_name_span.rs b/tests/coverage/macro_name_span.rs
new file mode 100644
index 00000000000..5d15977c498
--- /dev/null
+++ b/tests/coverage/macro_name_span.rs
@@ -0,0 +1,25 @@
+// edition: 2021
+
+// Regression test for <https://github.com/rust-lang/rust/issues/117788>.
+// Under some circumstances, the heuristics that detect macro name spans can
+// get confused and produce incorrect spans beyond the bounds of the span
+// being processed.
+
+// aux-build: macro_name_span_helper.rs
+extern crate macro_name_span_helper;
+
+fn main() {
+    affected_function();
+}
+
+macro_rules! macro_with_an_unreasonably_and_egregiously_long_name {
+    () => {
+        println!("hello");
+    };
+}
+
+macro_name_span_helper::macro_that_defines_a_function! {
+    fn affected_function() {
+        macro_with_an_unreasonably_and_egregiously_long_name!();
+    }
+}