004db4728b
We compile each test file to LLVM IR assembly, and then pass that IR to a dedicated program that can decode LLVM coverage maps and print them in a more human-readable format. We can then check that output against known-good snapshots. This test suite has some advantages over the existing `run-coverage` tests: - We can test coverage instrumentation without needing to run target binaries. - We can observe subtle improvements/regressions in the underlying coverage mappings that don't make a visible difference to coverage reports.
16 lines
656 B
Plaintext
16 lines
656 B
Plaintext
Function name: if::main
|
|
Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 03, 01, 02, 0c, 05, 02, 0d, 02, 06, 02, 02, 06, 00, 07, 07, 01, 05, 01, 02]
|
|
Number of files: 1
|
|
- file 0 => global file 1
|
|
Number of expressions: 2
|
|
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
|
|
- expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub)
|
|
Number of file 0 mappings: 4
|
|
- Code(Counter(0)) at (prev + 3, 1) to (start + 2, 12)
|
|
- Code(Counter(1)) at (prev + 2, 13) to (start + 2, 6)
|
|
- Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7)
|
|
= (c0 - c1)
|
|
- Code(Expression(1, Add)) at (prev + 1, 5) to (start + 1, 2)
|
|
= (c1 + (c0 - c1))
|
|
|