tree: b76825968041ab09a734c8751af1e3b858494b5e [path history] [tgz]
  1. auxiliary/
  2. abort.cov-map
  3. abort.coverage
  4. abort.rs
  5. assert.cov-map
  6. assert.coverage
  7. assert.rs
  8. async.cov-map
  9. async.coverage
  10. async.rs
  11. async2.cov-map
  12. async2.coverage
  13. async2.rs
  14. bad_counter_ids.cov-map
  15. bad_counter_ids.coverage
  16. bad_counter_ids.rs
  17. closure.cov-map
  18. closure.coverage
  19. closure.rs
  20. closure_bug.cov-map
  21. closure_bug.coverage
  22. closure_bug.rs
  23. closure_macro.cov-map
  24. closure_macro.coverage
  25. closure_macro.rs
  26. closure_macro_async.cov-map
  27. closure_macro_async.coverage
  28. closure_macro_async.rs
  29. conditions.cov-map
  30. conditions.coverage
  31. conditions.rs
  32. continue.cov-map
  33. continue.coverage
  34. continue.rs
  35. coroutine.cov-map
  36. coroutine.coverage
  37. coroutine.rs
  38. dead_code.cov-map
  39. dead_code.coverage
  40. dead_code.rs
  41. drop_trait.cov-map
  42. drop_trait.coverage
  43. drop_trait.rs
  44. fn_sig_into_try.cov-map
  45. fn_sig_into_try.coverage
  46. fn_sig_into_try.rs
  47. generics.cov-map
  48. generics.coverage
  49. generics.rs
  50. if.cov-map
  51. if.coverage
  52. if.rs
  53. if_else.cov-map
  54. if_else.coverage
  55. if_else.rs
  56. inline-dead.cov-map
  57. inline-dead.coverage
  58. inline-dead.rs
  59. inline.cov-map
  60. inline.coverage
  61. inline.rs
  62. inner_items.cov-map
  63. inner_items.coverage
  64. inner_items.rs
  65. issue-83601.cov-map
  66. issue-83601.coverage
  67. issue-83601.rs
  68. issue-84561.cov-map
  69. issue-84561.coverage
  70. issue-84561.rs
  71. issue-85461.cov-map
  72. issue-85461.coverage
  73. issue-85461.rs
  74. issue-93054.cov-map
  75. issue-93054.coverage
  76. issue-93054.rs
  77. lazy_boolean.cov-map
  78. lazy_boolean.coverage
  79. lazy_boolean.rs
  80. long_and_wide.cov-map
  81. long_and_wide.coverage
  82. long_and_wide.rs
  83. loop_break_value.cov-map
  84. loop_break_value.coverage
  85. loop_break_value.rs
  86. loops_branches.cov-map
  87. loops_branches.coverage
  88. loops_branches.rs
  89. macro_name_span.cov-map
  90. macro_name_span.coverage
  91. macro_name_span.rs
  92. match_or_pattern.cov-map
  93. match_or_pattern.coverage
  94. match_or_pattern.rs
  95. nested_loops.cov-map
  96. nested_loops.coverage
  97. nested_loops.rs
  98. no_cov_crate.cov-map
  99. no_cov_crate.coverage
  100. no_cov_crate.rs
  101. overflow.cov-map
  102. overflow.coverage
  103. overflow.rs
  104. panic_unwind.cov-map
  105. panic_unwind.coverage
  106. panic_unwind.rs
  107. partial_eq.cov-map
  108. partial_eq.coverage
  109. partial_eq.rs
  110. README.md
  111. simple_loop.cov-map
  112. simple_loop.coverage
  113. simple_loop.rs
  114. simple_match.cov-map
  115. simple_match.coverage
  116. simple_match.rs
  117. sort_groups.cov-map
  118. sort_groups.coverage
  119. sort_groups.rs
  120. test_harness.cov-map
  121. test_harness.coverage
  122. test_harness.rs
  123. tight_inf_loop.cov-map
  124. tight_inf_loop.coverage
  125. tight_inf_loop.rs
  126. trivial.cov-map
  127. trivial.coverage
  128. trivial.rs
  129. try_error_result.cov-map
  130. try_error_result.coverage
  131. try_error_result.rs
  132. unreachable.cov-map
  133. unreachable.coverage
  134. unreachable.rs
  135. unused.cov-map
  136. unused.coverage
  137. unused.rs
  138. unused_mod.cov-map
  139. unused_mod.coverage
  140. unused_mod.rs
  141. uses_crate.cov-map
  142. uses_crate.coverage
  143. uses_crate.rs
  144. uses_inline_crate.cov-map
  145. uses_inline_crate.coverage
  146. uses_inline_crate.rs
  147. while.cov-map
  148. while.coverage
  149. while.rs
  150. while_early_ret.cov-map
  151. while_early_ret.coverage
  152. while_early_ret.rs
  153. yield.cov-map
  154. yield.coverage
  155. yield.rs
tests/coverage/README.md

The tests in this directory are shared by two different test modes, and can be run in multiple different ways:

  • ./x.py test coverage-map (compiles to LLVM IR and checks coverage mappings)
  • ./x.py test coverage-run (runs a test binary and checks its coverage report)
  • ./x.py test coverage (runs both coverage-map and coverage-run)

Maintenance note

These tests can be sensitive to small changes in MIR spans or MIR control flow, especially in HIR-to-MIR lowering or MIR optimizations.

If you haven't touched the coverage code directly, and the tests still pass in coverage-run mode, then it should usually be OK to just re-bless the mappings as necessary with ./x.py test coverage-map --bless, without worrying too much about the exact changes.