summaryrefslogtreecommitdiffstats
path: root/tests/coverage/no_cov_crate.coverage
diff options
context:
space:
mode:
Diffstat (limited to 'tests/coverage/no_cov_crate.coverage')
-rw-r--r--tests/coverage/no_cov_crate.coverage89
1 files changed, 89 insertions, 0 deletions
diff --git a/tests/coverage/no_cov_crate.coverage b/tests/coverage/no_cov_crate.coverage
new file mode 100644
index 000000000..f5a0322bf
--- /dev/null
+++ b/tests/coverage/no_cov_crate.coverage
@@ -0,0 +1,89 @@
+ LL| |// Enables `coverage(off)` on the entire crate
+ LL| |#![feature(coverage_attribute)]
+ LL| |
+ LL| |#[coverage(off)]
+ LL| |fn do_not_add_coverage_1() {
+ LL| | println!("called but not covered");
+ LL| |}
+ LL| |
+ LL| |fn do_not_add_coverage_2() {
+ LL| | #![coverage(off)]
+ LL| | println!("called but not covered");
+ LL| |}
+ LL| |
+ LL| |#[coverage(off)]
+ LL| |#[allow(dead_code)]
+ LL| |fn do_not_add_coverage_not_called() {
+ LL| | println!("not called and not covered");
+ LL| |}
+ LL| |
+ LL| 1|fn add_coverage_1() {
+ LL| 1| println!("called and covered");
+ LL| 1|}
+ LL| |
+ LL| 1|fn add_coverage_2() {
+ LL| 1| println!("called and covered");
+ LL| 1|}
+ LL| |
+ LL| |#[allow(dead_code)]
+ LL| 0|fn add_coverage_not_called() {
+ LL| 0| println!("not called but covered");
+ LL| 0|}
+ LL| |
+ LL| |// FIXME: These test-cases illustrate confusing results of nested functions.
+ LL| |// See https://github.com/rust-lang/rust/issues/93319
+ LL| |mod nested_fns {
+ LL| | #[coverage(off)]
+ LL| | pub fn outer_not_covered(is_true: bool) {
+ LL| 1| fn inner(is_true: bool) {
+ LL| 1| if is_true {
+ LL| 1| println!("called and covered");
+ LL| 1| } else {
+ LL| 0| println!("absolutely not covered");
+ LL| 0| }
+ LL| 1| }
+ LL| | println!("called but not covered");
+ LL| | inner(is_true);
+ LL| | }
+ LL| |
+ LL| 1| pub fn outer(is_true: bool) {
+ LL| 1| println!("called and covered");
+ LL| 1| inner_not_covered(is_true);
+ LL| 1|
+ LL| 1| #[coverage(off)]
+ LL| 1| fn inner_not_covered(is_true: bool) {
+ LL| 1| if is_true {
+ LL| 1| println!("called but not covered");
+ LL| 1| } else {
+ LL| 1| println!("absolutely not covered");
+ LL| 1| }
+ LL| 1| }
+ LL| 1| }
+ LL| |
+ LL| 1| pub fn outer_both_covered(is_true: bool) {
+ LL| 1| println!("called and covered");
+ LL| 1| inner(is_true);
+ LL| 1|
+ LL| 1| fn inner(is_true: bool) {
+ LL| 1| if is_true {
+ LL| 1| println!("called and covered");
+ LL| 1| } else {
+ LL| 0| println!("absolutely not covered");
+ LL| 0| }
+ LL| 1| }
+ LL| 1| }
+ LL| |}
+ LL| |
+ LL| 1|fn main() {
+ LL| 1| let is_true = std::env::args().len() == 1;
+ LL| 1|
+ LL| 1| do_not_add_coverage_1();
+ LL| 1| do_not_add_coverage_2();
+ LL| 1| add_coverage_1();
+ LL| 1| add_coverage_2();
+ LL| 1|
+ LL| 1| nested_fns::outer_not_covered(is_true);
+ LL| 1| nested_fns::outer(is_true);
+ LL| 1| nested_fns::outer_both_covered(is_true);
+ LL| 1|}
+