mun-lang / mun

Source code for the Mun language and runtime.
https://mun-lang.org
Other
1.83k stars 72 forks source link

feat: use llvm-cov for coverage #478

Closed baszalmstra closed 1 year ago

baszalmstra commented 1 year ago

Use llvm-cov instead of tarpauling to compute coverage. LLVM-cov uses recently stabilized code coverage metrics emitted by the rust compiler. This also then works on Windows and MacOS and can be collected while running the regular tests.

I did have to change some tests to no longer use the name of the thread that is executing the tests. This is because that behavior (which was unstable in the first place) doesn't work with llvm-cov.

codecov[bot] commented 1 year ago

Codecov Report

Merging #478 (5cf727d) into main (b475164) will increase coverage by 7.85%. The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #478      +/-   ##
==========================================
+ Coverage   79.31%   87.16%   +7.85%     
==========================================
  Files         256      271      +15     
  Lines       13496    29356   +15860     
==========================================
+ Hits        10704    25588   +14884     
- Misses       2792     3768     +976     
Impacted Files Coverage Δ
crates/mun_codegen/src/test.rs 99.58% <100.00%> (ø)
crates/mun_project/src/project_manifest.rs 70.73% <0.00%> (-29.27%) :arrow_down:
crates/mun_hir/src/ty/primitives.rs 44.29% <0.00%> (-24.46%) :arrow_down:
crates/mun_memory/src/type/ffi/struct.rs 76.79% <0.00%> (-15.35%) :arrow_down:
crates/mun_memory/src/gc.rs 85.71% <0.00%> (-14.29%) :arrow_down:
crates/mun_diagnostics/src/lib.rs 86.66% <0.00%> (-13.34%) :arrow_down:
crates/mun_hir/src/diagnostics.rs 65.13% <0.00%> (-11.60%) :arrow_down:
crates/mun_language_server/src/config.rs 88.88% <0.00%> (-11.12%) :arrow_down:
crates/mun_syntax/src/syntax_node.rs 77.50% <0.00%> (-10.00%) :arrow_down:
crates/mun_compiler/src/driver/config.rs 91.66% <0.00%> (-8.34%) :arrow_down:
... and 269 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

baszalmstra commented 1 year ago

Looks like its working properly! Except on windows. I figured that llvm-cov is using another cargo profile which I have to make sure is also used during doctesting, otherwise the build will take much longer and disc space will run out.

Wodann commented 1 year ago

The dreaded out of storage issue is back 😢

Did you still have options to try to reduce storage usage? Can we split main tests vs example tests?

baszalmstra commented 1 year ago

The dreaded out of storage issue is back 😢

Did you still have options to try to reduce storage usage? Can we split main tests vs example tests?

Yeah! I already have an idea as outlined in the comment above!

baszalmstra commented 1 year ago

@Wodann It works! Finally!