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