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