]> git.proxmox.com Git - rustc.git/blob - tests/run-make/coverage/panic_unwind.rs
New upstream version 1.68.2+dfsg1
[rustc.git] / tests / run-make / coverage / panic_unwind.rs
1 #![allow(unused_assignments)]
2 // expect-exit-status-101
3
4 fn might_panic(should_panic: bool) {
5 if should_panic {
6 println!("panicking...");
7 panic!("panics");
8 } else {
9 println!("Don't Panic");
10 }
11 }
12
13 fn main() -> Result<(), u8> {
14 let mut countdown = 10;
15 while countdown > 0 {
16 if countdown == 1 {
17 might_panic(true);
18 } else if countdown < 5 {
19 might_panic(false);
20 }
21 countdown -= 1;
22 }
23 Ok(())
24 }
25
26 // Notes:
27 // 1. Compare this program and its coverage results to those of the similar tests `abort.rs` and
28 // `try_error_result.rs`.
29 // 2. Since the `panic_unwind.rs` test is allowed to unwind, it is also allowed to execute the
30 // normal program exit cleanup, including writing out the current values of the coverage
31 // counters.