about summary refs log tree commit diff
path: root/tests/coverage/coverage_attr_closure.rs
diff options
context:
space:
mode:
authorZalathar <Zalathar@users.noreply.github.com>2024-01-20 18:23:49 +1100
committerZalathar <Zalathar@users.noreply.github.com>2024-02-05 10:07:19 +1100
commit8dd2b37462a2017207d4ecb01d3123881d8ec2f2 (patch)
tree21613594a540920a1a2a1666a9cf2918ecd8513c /tests/coverage/coverage_attr_closure.rs
parentfe420dc46ecf988eb13c34526feea18fd8daef6b (diff)
downloadrust-8dd2b37462a2017207d4ecb01d3123881d8ec2f2.tar.gz
rust-8dd2b37462a2017207d4ecb01d3123881d8ec2f2.zip
coverage: Add a test for `#[coverage(..)]` on closures
Diffstat (limited to 'tests/coverage/coverage_attr_closure.rs')
-rw-r--r--tests/coverage/coverage_attr_closure.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/coverage/coverage_attr_closure.rs b/tests/coverage/coverage_attr_closure.rs
new file mode 100644
index 00000000000..1904c89c920
--- /dev/null
+++ b/tests/coverage/coverage_attr_closure.rs
@@ -0,0 +1,42 @@
+#![feature(coverage_attribute, stmt_expr_attributes)]
+#![allow(dead_code)]
+// edition: 2021
+
+static GLOBAL_CLOSURE_ON: fn(&str) = #[coverage(on)]
+|input: &str| {
+    println!("{input}");
+};
+static GLOBAL_CLOSURE_OFF: fn(&str) = #[coverage(off)]
+|input: &str| {
+    println!("{input}");
+};
+
+#[coverage(on)]
+fn contains_closures_on() {
+    let _local_closure_on = #[coverage(on)]
+    |input: &str| {
+        println!("{input}");
+    };
+    let _local_closure_off = #[coverage(off)]
+    |input: &str| {
+        println!("{input}");
+    };
+}
+
+#[coverage(off)]
+fn contains_closures_off() {
+    let _local_closure_on = #[coverage(on)]
+    |input: &str| {
+        println!("{input}");
+    };
+    let _local_closure_off = #[coverage(off)]
+    |input: &str| {
+        println!("{input}");
+    };
+}
+
+#[coverage(off)]
+fn main() {
+    contains_closures_on();
+    contains_closures_off();
+}