rust/tests/coverage-map/status-quo/lazy_boolean.rs
Zalathar 3141177995 Copy most of tests/run-coverage into tests/coverage-map/status-quo
The output of these tests is too complicated to comfortably verify by hand, but
we can still use them to observe changes to the underlying mappings produced by
codegen/LLVM.

If these tests fail due to non-coverage changes (e.g. in HIR-to-MIR lowering or
MIR optimizations), it should usually be OK to just `--bless` them, as long as
the `run-coverage` test suite still works.
2023-09-05 11:55:34 +10:00

62 lines
975 B
Rust

#![allow(unused_assignments, unused_variables)]
fn main() {
// Initialize test constants in a way that cannot be determined at compile time, to ensure
// rustc and LLVM cannot optimize out statements (or coverage counters) downstream from
// dependent conditions.
let is_true = std::env::args().len() == 1;
let (mut a, mut b, mut c) = (0, 0, 0);
if is_true {
a = 1;
b = 10;
c = 100;
}
let
somebool
=
a < b
||
b < c
;
let
somebool
=
b < a
||
b < c
;
let somebool = a < b && b < c;
let somebool = b < a && b < c;
if
!
is_true
{
a = 2
;
}
if
is_true
{
b = 30
;
}
else
{
c = 400
;
}
if !is_true {
a = 2;
}
if is_true {
b = 30;
} else {
c = 400;
}
}