about summary refs log tree commit diff
path: root/tests/coverage/conditions.coverage
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-11-08 03:00:14 +0000
committerbors <bors@rust-lang.org>2023-11-08 03:00:14 +0000
commit91cfcb021935853caa06698b759c293c09d1e96a (patch)
treed5dd983288727ef2905faaea5636e416ac86766e /tests/coverage/conditions.coverage
parent0d5ec963bb9f3e481bca1d0149d26f1688784341 (diff)
parent4e6f438d2ace2f5297cea2d3e331c6dccd4e18c2 (diff)
downloadrust-91cfcb021935853caa06698b759c293c09d1e96a.tar.gz
rust-91cfcb021935853caa06698b759c293c09d1e96a.zip
Auto merge of #117484 - Zalathar:tests, r=cjgillot
coverage: Unify `tests/coverage-map` and `tests/run-coverage` into `tests/coverage`

Ever since the introduction of the `coverage-map` suite, it's been awkward to have to manage two separate coverage test directories containing dozens of mostly-identical files.

However, those two suites were separate for good reasons. They have very different requirements (since only one of them requires actually running the test program), running only one suite is noticeably faster than running both, and having separate suites allows them to be blessed separately if desired. So while unifying them was an obvious idea, actually doing so was non-trivial.

---

Nevertheless, this PR finds a way to merge the two suites into one directory while retaining almost all of the developer-experience benefits of having two suites. This required non-trivial implementations of `Step`, but the end result works very smoothly.

---

The first 5 commits are a copy of #117340, which has been closed in favour of this PR.
Diffstat (limited to 'tests/coverage/conditions.coverage')
-rw-r--r--tests/coverage/conditions.coverage93
1 files changed, 93 insertions, 0 deletions
diff --git a/tests/coverage/conditions.coverage b/tests/coverage/conditions.coverage
new file mode 100644
index 00000000000..473335ff641
--- /dev/null
+++ b/tests/coverage/conditions.coverage
@@ -0,0 +1,93 @@
+   LL|       |#![allow(unused_assignments, unused_variables)]
+   LL|       |
+   LL|      1|fn main() {
+   LL|      1|    let mut countdown = 0;
+   LL|      1|    if true {
+   LL|      1|        countdown = 10;
+   LL|      1|    }
+                   ^0
+   LL|       |
+   LL|       |    const B: u32 = 100;
+   LL|      1|    let x = if countdown > 7 {
+   LL|      1|        countdown -= 4;
+   LL|      1|        B
+   LL|      0|    } else if countdown > 2 {
+   LL|      0|        if countdown < 1 || countdown > 5 || countdown != 9 {
+   LL|      0|            countdown = 0;
+   LL|      0|        }
+   LL|      0|        countdown -= 5;
+   LL|      0|        countdown
+   LL|       |    } else {
+   LL|      0|        return;
+   LL|       |    };
+   LL|       |
+   LL|      1|    let mut countdown = 0;
+   LL|      1|    if true {
+   LL|      1|        countdown = 10;
+   LL|      1|    }
+                   ^0
+   LL|       |
+   LL|      1|    if countdown > 7 {
+   LL|      1|        countdown -= 4;
+   LL|      1|    } else if countdown > 2 {
+                            ^0
+   LL|      0|        if countdown < 1 || countdown > 5 || countdown != 9 {
+   LL|      0|            countdown = 0;
+   LL|      0|        }
+   LL|      0|        countdown -= 5;
+   LL|       |    } else {
+   LL|      0|        return;
+   LL|       |    }
+   LL|       |
+   LL|      1|    if true {
+   LL|      1|        let mut countdown = 0;
+   LL|      1|        if true {
+   LL|      1|            countdown = 10;
+   LL|      1|        }
+                       ^0
+   LL|       |
+   LL|      1|        if countdown > 7 {
+   LL|      1|            countdown -= 4;
+   LL|      1|        }
+   LL|      0|        else if countdown > 2 {
+   LL|      0|            if countdown < 1 || countdown > 5 || countdown != 9 {
+   LL|      0|                countdown = 0;
+   LL|      0|            }
+   LL|      0|            countdown -= 5;
+   LL|       |        } else {
+   LL|      0|            return;
+   LL|       |        }
+   LL|      0|    }
+   LL|       |
+   LL|      1|    let mut countdown = 0;
+   LL|      1|    if true {
+   LL|      1|        countdown = 1;
+   LL|      1|    }
+                   ^0
+   LL|       |
+   LL|      1|    let z = if countdown > 7 {
+                      ^0
+   LL|      0|        countdown -= 4;
+   LL|      1|    } else if countdown > 2 {
+   LL|      0|        if countdown < 1 || countdown > 5 || countdown != 9 {
+   LL|      0|            countdown = 0;
+   LL|      0|        }
+   LL|      0|        countdown -= 5;
+   LL|       |    } else {
+   LL|      1|        let should_be_reachable = countdown;
+   LL|      1|        println!("reached");
+   LL|      1|        return;
+   LL|       |    };
+   LL|       |
+   LL|      0|    let w = if countdown > 7 {
+   LL|      0|        countdown -= 4;
+   LL|      0|    } else if countdown > 2 {
+   LL|      0|        if countdown < 1 || countdown > 5 || countdown != 9 {
+   LL|      0|            countdown = 0;
+   LL|      0|        }
+   LL|      0|        countdown -= 5;
+   LL|       |    } else {
+   LL|      0|        return;
+   LL|       |    };
+   LL|      1|}
+