rust/tests/coverage/no_cov_crate.coverage
Zalathar 87c2f9a5be Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser"
This reverts commit 1d35638dc38dbfbf1cc2a9823135dfcf3c650169, reversing
changes made to f23a80a4c2fbca593b64e70f5970368824b4c5e9.
2024-12-23 12:30:37 +11:00

92 lines
3.3 KiB
Plaintext

LL| |#![feature(coverage_attribute)]
LL| |// Enables `coverage(off)` on the entire crate
LL| |//@ reference: attributes.coverage.intro
LL| |//@ reference: attributes.coverage.nesting
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| | fn inner(is_true: bool) {
LL| | if is_true {
LL| | println!("called and covered");
LL| | } else {
LL| | println!("absolutely not covered");
LL| | }
LL| | }
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| |
LL| | #[coverage(off)]
LL| | fn inner_not_covered(is_true: bool) {
LL| | if is_true {
LL| | println!("called but not covered");
LL| | } else {
LL| | println!("absolutely not covered");
LL| | }
LL| | }
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| |
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|}