tree: c1212bcf9f567f193c504be7efbcf11888391f25
  1. async/
  2. attr/
  3. auxiliary/
  4. branch/
  5. condition/
  6. iffy/
  7. macros/
  8. assert-ne.cov-map
  9. assert-ne.coverage
  10. assert-ne.rs
  11. assert.cov-map
  12. assert.coverage
  13. assert.rs
  14. assert_not.cov-map
  15. assert_not.coverage
  16. assert_not.rs
  17. auto-derived.auto.cov-map
  18. auto-derived.auto.coverage
  19. auto-derived.base.cov-map
  20. auto-derived.base.coverage
  21. auto-derived.on.cov-map
  22. auto-derived.on.coverage
  23. auto-derived.rs
  24. bad_counter_ids.cov-map
  25. bad_counter_ids.coverage
  26. bad_counter_ids.rs
  27. bench.cov-map
  28. bench.coverage
  29. bench.rs
  30. call-method.cov-map
  31. call-method.coverage
  32. call-method.rs
  33. closure_bug.cov-map
  34. closure_bug.coverage
  35. closure_bug.rs
  36. closure_unit_return.cov-map
  37. closure_unit_return.coverage
  38. closure_unit_return.rs
  39. color.coverage
  40. color.rs
  41. comptime.cov-map
  42. comptime.coverage
  43. comptime.rs
  44. coverage_attr_closure.cov-map
  45. coverage_attr_closure.coverage
  46. coverage_attr_closure.rs
  47. dead_code.cov-map
  48. dead_code.coverage
  49. dead_code.rs
  50. discard-all-issue-133606.coverage
  51. discard-all-issue-133606.rs
  52. fn_sig_into_try.cov-map
  53. fn_sig_into_try.coverage
  54. fn_sig_into_try.rs
  55. for.many.coverage
  56. for.one.coverage
  57. for.rs
  58. for.zero.cov-map
  59. for.zero.coverage
  60. generic-unused-impl.cov-map
  61. generic-unused-impl.coverage
  62. generic-unused-impl.rs
  63. holes.cov-map
  64. holes.coverage
  65. holes.rs
  66. if-let-chain.none.cov-map
  67. if-let-chain.none.coverage
  68. if-let-chain.one.coverage
  69. if-let-chain.rs
  70. if-let-chain.two.coverage
  71. if-tail-expr.no.cov-map
  72. if-tail-expr.no.coverage
  73. if-tail-expr.rs
  74. if-tail-expr.yes.coverage
  75. if-tail-stmt.no.cov-map
  76. if-tail-stmt.no.coverage
  77. if-tail-stmt.rs
  78. if-tail-stmt.yes.coverage
  79. if_not.cov-map
  80. if_not.coverage
  81. if_not.rs
  82. ignore_map.coverage
  83. ignore_map.rs
  84. ignore_run.cov-map
  85. ignore_run.rs
  86. inline_mixed.rs
  87. let-else.none.cov-map
  88. let-else.none.coverage
  89. let-else.rs
  90. let-else.some.coverage
  91. let_else_loop.cov-map
  92. let_else_loop.coverage
  93. let_else_loop.rs
  94. long_and_wide.cov-map
  95. long_and_wide.coverage
  96. long_and_wide.rs
  97. loop-break.cov-map
  98. loop-break.coverage
  99. loop-break.rs
  100. loop_break_value.cov-map
  101. loop_break_value.coverage
  102. loop_break_value.rs
  103. macro_in_closure.cov-map
  104. macro_in_closure.coverage
  105. macro_in_closure.rs
  106. macro_name_span.cov-map
  107. macro_name_span.coverage
  108. macro_name_span.rs
  109. match.cov-map
  110. match.coverage
  111. match.rs
  112. no-core.cov-map
  113. no-core.coverage
  114. no-core.rs
  115. no_spans.cov-map
  116. no_spans.coverage
  117. no_spans.rs
  118. no_spans_if_not.cov-map
  119. no_spans_if_not.coverage
  120. no_spans_if_not.rs
  121. README.md
  122. remap-path-prefix.rs
  123. remap-path-prefix.with_coverage_scope.cov-map
  124. remap-path-prefix.with_macro_scope.cov-map
  125. remap-path-prefix.with_macro_scope.coverage
  126. remap-path-prefix.with_object_scope.cov-map
  127. remap-path-prefix.with_remap.cov-map
  128. rustfmt-skip.cov-map
  129. rustfmt-skip.coverage
  130. rustfmt-skip.rs
  131. sort_groups.cov-map
  132. sort_groups.coverage
  133. sort_groups.rs
  134. test_harness.cov-map
  135. test_harness.coverage
  136. test_harness.rs
  137. tight_inf_loop.cov-map
  138. tight_inf_loop.coverage
  139. tight_inf_loop.rs
  140. trivial.cov-map
  141. trivial.coverage
  142. trivial.rs
  143. try-in-macro.attr.cov-map
  144. try-in-macro.attr.coverage
  145. try-in-macro.bang.cov-map
  146. try-in-macro.bang.coverage
  147. try-in-macro.derive.cov-map
  148. try-in-macro.derive.coverage
  149. try-in-macro.rs
  150. unicode.cov-map
  151. unicode.coverage
  152. unicode.rs
  153. unreachable.cov-map
  154. unreachable.coverage
  155. unreachable.rs
  156. unused.cov-map
  157. unused.coverage
  158. unused.rs
  159. unused_mod.cov-map
  160. unused_mod.coverage
  161. unused_mod.rs
  162. while.cov-map
  163. while.coverage
  164. while.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.