]> git.proxmox.com Git - rustc.git/blame - src/test/run-make-fulldeps/coverage/no_cov_crate.rs
New upstream version 1.63.0+dfsg1
[rustc.git] / src / test / run-make-fulldeps / coverage / no_cov_crate.rs
CommitLineData
cdc7bbd5
XL
1// Enables `no_coverage` on the entire crate
2#![feature(no_coverage)]
3
4#[no_coverage]
5fn do_not_add_coverage_1() {
6 println!("called but not covered");
7}
8
cdc7bbd5 9fn do_not_add_coverage_2() {
5099ac24 10 #![no_coverage]
cdc7bbd5
XL
11 println!("called but not covered");
12}
13
17df50a5
XL
14#[no_coverage]
15fn do_not_add_coverage_not_called() {
16 println!("not called and not covered");
17}
18
19fn add_coverage_1() {
20 println!("called and covered");
21}
22
23fn add_coverage_2() {
24 println!("called and covered");
25}
26
27fn add_coverage_not_called() {
28 println!("not called but covered");
29}
30
5099ac24
FG
31// FIXME: These test-cases illustrate confusing results of nested functions.
32// See https://github.com/rust-lang/rust/issues/93319
33mod nested_fns {
34 #[no_coverage]
35 pub fn outer_not_covered(is_true: bool) {
36 fn inner(is_true: bool) {
37 if is_true {
38 println!("called and covered");
39 } else {
40 println!("absolutely not covered");
41 }
42 }
43 println!("called but not covered");
44 inner(is_true);
45 }
46
47 pub fn outer(is_true: bool) {
48 println!("called and covered");
49 inner_not_covered(is_true);
50
51 #[no_coverage]
52 fn inner_not_covered(is_true: bool) {
53 if is_true {
54 println!("called but not covered");
55 } else {
56 println!("absolutely not covered");
57 }
58 }
59 }
60
61 pub fn outer_both_covered(is_true: bool) {
62 println!("called and covered");
63 inner(is_true);
64
65 fn inner(is_true: bool) {
66 if is_true {
67 println!("called and covered");
68 } else {
69 println!("absolutely not covered");
70 }
71 }
72 }
73}
74
cdc7bbd5 75fn main() {
5099ac24
FG
76 let is_true = std::env::args().len() == 1;
77
cdc7bbd5
XL
78 do_not_add_coverage_1();
79 do_not_add_coverage_2();
17df50a5
XL
80 add_coverage_1();
81 add_coverage_2();
5099ac24
FG
82
83 nested_fns::outer_not_covered(is_true);
84 nested_fns::outer(is_true);
85 nested_fns::outer_both_covered(is_true);
cdc7bbd5 86}