1 // Enables `no_coverage` on the entire crate
2 #![feature(no_coverage)]
5 fn do_not_add_coverage_1() {
6 println!("called but not covered");
9 fn do_not_add_coverage_2() {
11 println!("called but not covered");
15 fn do_not_add_coverage_not_called() {
16 println!("not called and not covered");
20 println!("called and covered");
24 println!("called and covered");
27 fn add_coverage_not_called() {
28 println!("not called but covered");
31 // FIXME: These test-cases illustrate confusing results of nested functions.
32 // See https://github.com/rust-lang/rust/issues/93319
35 pub fn outer_not_covered(is_true: bool) {
36 fn inner(is_true: bool) {
38 println!("called and covered");
40 println!("absolutely not covered");
43 println!("called but not covered");
47 pub fn outer(is_true: bool) {
48 println!("called and covered");
49 inner_not_covered(is_true);
52 fn inner_not_covered(is_true: bool) {
54 println!("called but not covered");
56 println!("absolutely not covered");
61 pub fn outer_both_covered(is_true: bool) {
62 println!("called and covered");
65 fn inner(is_true: bool) {
67 println!("called and covered");
69 println!("absolutely not covered");
76 let is_true = std::env::args().len() == 1;
78 do_not_add_coverage_1();
79 do_not_add_coverage_2();
83 nested_fns::outer_not_covered(is_true);
84 nested_fns::outer(is_true);
85 nested_fns::outer_both_covered(is_true);