tree: fab75476b141624f5f5f38415f1052e92fbf1224 [path history] [tgz]
  1. attr/
  2. auxiliary/
  3. branch/
  4. condition/
  5. mcdc/
  6. abort.cov-map
  7. abort.coverage
  8. abort.rs
  9. assert-ne.cov-map
  10. assert-ne.coverage
  11. assert-ne.rs
  12. assert.cov-map
  13. assert.coverage
  14. assert.rs
  15. assert_not.cov-map
  16. assert_not.coverage
  17. assert_not.rs
  18. async.cov-map
  19. async.coverage
  20. async.rs
  21. async2.cov-map
  22. async2.coverage
  23. async2.rs
  24. async_block.cov-map
  25. async_block.coverage
  26. async_block.rs
  27. async_closure.cov-map
  28. async_closure.coverage
  29. async_closure.rs
  30. await_ready.cov-map
  31. await_ready.coverage
  32. await_ready.rs
  33. bad_counter_ids.cov-map
  34. bad_counter_ids.coverage
  35. bad_counter_ids.rs
  36. bench.cov-map
  37. bench.coverage
  38. bench.rs
  39. closure.cov-map
  40. closure.coverage
  41. closure.rs
  42. closure_bug.cov-map
  43. closure_bug.coverage
  44. closure_bug.rs
  45. closure_macro.cov-map
  46. closure_macro.coverage
  47. closure_macro.rs
  48. closure_macro_async.cov-map
  49. closure_macro_async.coverage
  50. closure_macro_async.rs
  51. closure_unit_return.cov-map
  52. closure_unit_return.coverage
  53. closure_unit_return.rs
  54. color.coverage
  55. color.rs
  56. conditions.cov-map
  57. conditions.coverage
  58. conditions.rs
  59. continue.cov-map
  60. continue.coverage
  61. continue.rs
  62. coroutine.cov-map
  63. coroutine.coverage
  64. coroutine.rs
  65. coverage_attr_closure.cov-map
  66. coverage_attr_closure.coverage
  67. coverage_attr_closure.rs
  68. dead_code.cov-map
  69. dead_code.coverage
  70. dead_code.rs
  71. discard-all-issue-133606.coverage
  72. discard-all-issue-133606.rs
  73. drop_trait.cov-map
  74. drop_trait.coverage
  75. drop_trait.rs
  76. fn_sig_into_try.cov-map
  77. fn_sig_into_try.coverage
  78. fn_sig_into_try.rs
  79. generic-unused-impl.cov-map
  80. generic-unused-impl.coverage
  81. generic-unused-impl.rs
  82. generics.cov-map
  83. generics.coverage
  84. generics.rs
  85. holes.cov-map
  86. holes.coverage
  87. holes.rs
  88. if.cov-map
  89. if.coverage
  90. if.rs
  91. if_else.cov-map
  92. if_else.coverage
  93. if_else.rs
  94. if_not.cov-map
  95. if_not.coverage
  96. if_not.rs
  97. ignore_map.coverage
  98. ignore_map.rs
  99. ignore_run.cov-map
  100. ignore_run.rs
  101. inline-dead.cov-map
  102. inline-dead.coverage
  103. inline-dead.rs
  104. inline.cov-map
  105. inline.coverage
  106. inline.rs
  107. inline_mixed.rs
  108. inner_items.cov-map
  109. inner_items.coverage
  110. inner_items.rs
  111. issue-83601.cov-map
  112. issue-83601.coverage
  113. issue-83601.rs
  114. issue-84561.cov-map
  115. issue-84561.coverage
  116. issue-84561.rs
  117. issue-85461.cov-map
  118. issue-85461.coverage
  119. issue-85461.rs
  120. issue-93054.cov-map
  121. issue-93054.coverage
  122. issue-93054.rs
  123. lazy_boolean.cov-map
  124. lazy_boolean.coverage
  125. lazy_boolean.rs
  126. let_else_loop.cov-map
  127. let_else_loop.coverage
  128. let_else_loop.rs
  129. long_and_wide.cov-map
  130. long_and_wide.coverage
  131. long_and_wide.rs
  132. loop-break.cov-map
  133. loop-break.coverage
  134. loop-break.rs
  135. loop_break_value.cov-map
  136. loop_break_value.coverage
  137. loop_break_value.rs
  138. loops_branches.cov-map
  139. loops_branches.coverage
  140. loops_branches.rs
  141. macro_in_closure.cov-map
  142. macro_in_closure.coverage
  143. macro_in_closure.rs
  144. macro_name_span.cov-map
  145. macro_name_span.coverage
  146. macro_name_span.rs
  147. match_or_pattern.cov-map
  148. match_or_pattern.coverage
  149. match_or_pattern.rs
  150. nested_loops.cov-map
  151. nested_loops.coverage
  152. nested_loops.rs
  153. no-core.cov-map
  154. no-core.coverage
  155. no-core.rs
  156. no_cov_crate.cov-map
  157. no_cov_crate.coverage
  158. no_cov_crate.rs
  159. no_spans.cov-map
  160. no_spans.coverage
  161. no_spans.rs
  162. no_spans_if_not.cov-map
  163. no_spans_if_not.coverage
  164. no_spans_if_not.rs
  165. overflow.cov-map
  166. overflow.coverage
  167. overflow.rs
  168. panic_unwind.cov-map
  169. panic_unwind.coverage
  170. panic_unwind.rs
  171. partial_eq.cov-map
  172. partial_eq.coverage
  173. partial_eq.rs
  174. README.md
  175. simple_loop.cov-map
  176. simple_loop.coverage
  177. simple_loop.rs
  178. simple_match.cov-map
  179. simple_match.coverage
  180. simple_match.rs
  181. sort_groups.cov-map
  182. sort_groups.coverage
  183. sort_groups.rs
  184. test_harness.cov-map
  185. test_harness.coverage
  186. test_harness.rs
  187. tight_inf_loop.cov-map
  188. tight_inf_loop.coverage
  189. tight_inf_loop.rs
  190. trivial.cov-map
  191. trivial.coverage
  192. trivial.rs
  193. try_error_result.cov-map
  194. try_error_result.coverage
  195. try_error_result.rs
  196. unicode.cov-map
  197. unicode.coverage
  198. unicode.rs
  199. unreachable.cov-map
  200. unreachable.coverage
  201. unreachable.rs
  202. unused.cov-map
  203. unused.coverage
  204. unused.rs
  205. unused_mod.cov-map
  206. unused_mod.coverage
  207. unused_mod.rs
  208. uses_crate.cov-map
  209. uses_crate.coverage
  210. uses_crate.rs
  211. uses_inline_crate.cov-map
  212. uses_inline_crate.coverage
  213. uses_inline_crate.rs
  214. while.cov-map
  215. while.coverage
  216. while.rs
  217. while_early_ret.cov-map
  218. while_early_ret.coverage
  219. while_early_ret.rs
  220. yield.cov-map
  221. yield.coverage
  222. 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.