#![allow(unused_assignments)]
// expect-exit-status-101

fn might_fail_assert(one_plus_one: u32) {
    println!("does 1 + 1 = {}?", one_plus_one);
    assert_eq!(1 + 1, one_plus_one, "the argument was wrong");
}

fn main() -> Result<(),u8> {
    let mut countdown = 10;
    while countdown > 0 {
        if countdown == 1 {
            might_fail_assert(3);
        } else if countdown < 5 {
            might_fail_assert(2);
        }
        countdown -= 1;
    }
    Ok(())
}

// Notes:
//   1. Compare this program and its coverage results to those of the very similar test
//      `panic_unwind.rs`, and similar tests `abort.rs` and `try_error_result.rs`.
//   2. This test confirms the coverage generated when a program passes or fails an `assert!()` or
//      related `assert_*!()` macro.
//   3. Notably, the `assert` macros *do not* generate `TerminatorKind::Assert`. The macros produce
//      conditional expressions, `TerminatorKind::SwitchInt` branches, and a possible call to
//      `begin_panic_fmt()` (that begins a panic unwind, if the assertion test fails).
//   4. `TerminatoKind::Assert` is, however, also present in the MIR generated for this test
//      (and in many other coverage tests). The `Assert` terminator is typically generated by the
//      Rust compiler to check for runtime failures, such as numeric overflows.
