diff options
| author | Zalathar <Zalathar@users.noreply.github.com> | 2023-11-01 21:26:53 +1100 |
|---|---|---|
| committer | Zalathar <Zalathar@users.noreply.github.com> | 2023-11-07 11:15:19 +1100 |
| commit | e9d04c5e2444526ffde83662f2d57fa35c772891 (patch) | |
| tree | 6dbc04c3253992f8968d5914d7b1c631db528892 /tests/coverage/lazy_boolean.rs | |
| parent | aea7c27eae5e34b11c64ec6d11c75627ef24f8b1 (diff) | |
| download | rust-e9d04c5e2444526ffde83662f2d57fa35c772891.tar.gz rust-e9d04c5e2444526ffde83662f2d57fa35c772891.zip | |
coverage: Migrate `tests/run-coverage` into `tests/coverage`
Diffstat (limited to 'tests/coverage/lazy_boolean.rs')
| -rw-r--r-- | tests/coverage/lazy_boolean.rs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/coverage/lazy_boolean.rs b/tests/coverage/lazy_boolean.rs new file mode 100644 index 00000000000..bb6219e851c --- /dev/null +++ b/tests/coverage/lazy_boolean.rs @@ -0,0 +1,61 @@ +#![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; + } +} |
