]> git.lizzy.rs Git - rust.git/blob - tests/run-make/coverage-reports/expected_show_coverage.assert.txt
Rollup merge of #106427 - mejrs:translation_errors, r=davidtwco
[rust.git] / tests / run-make / coverage-reports / expected_show_coverage.assert.txt
1     1|       |#![allow(unused_assignments)]
2     2|       |// expect-exit-status-101
3     3|       |
4     4|      4|fn might_fail_assert(one_plus_one: u32) {
5     5|      4|    println!("does 1 + 1 = {}?", one_plus_one);
6     6|      4|    assert_eq!(1 + 1, one_plus_one, "the argument was wrong");
7                                                   ^1
8     7|      3|}
9     8|       |
10     9|      1|fn main() -> Result<(),u8> {
11    10|      1|    let mut countdown = 10;
12    11|     11|    while countdown > 0 {
13    12|     11|        if countdown == 1 {
14    13|      1|            might_fail_assert(3);
15    14|     10|        } else if countdown < 5 {
16    15|      3|            might_fail_assert(2);
17    16|      6|        }
18    17|     10|        countdown -= 1;
19    18|       |    }
20    19|      0|    Ok(())
21    20|      0|}
22    21|       |
23    22|       |// Notes:
24    23|       |//   1. Compare this program and its coverage results to those of the very similar test
25    24|       |//      `panic_unwind.rs`, and similar tests `abort.rs` and `try_error_result.rs`.
26    25|       |//   2. This test confirms the coverage generated when a program passes or fails an `assert!()` or
27    26|       |//      related `assert_*!()` macro.
28    27|       |//   3. Notably, the `assert` macros *do not* generate `TerminatorKind::Assert`. The macros produce
29    28|       |//      conditional expressions, `TerminatorKind::SwitchInt` branches, and a possible call to
30    29|       |//      `begin_panic_fmt()` (that begins a panic unwind, if the assertion test fails).
31    30|       |//   4. `TerminatoKind::Assert` is, however, also present in the MIR generated for this test
32    31|       |//      (and in many other coverage tests). The `Assert` terminator is typically generated by the
33    32|       |//      Rust compiler to check for runtime failures, such as numeric overflows.
34