Skip to content

ci(coverage): run tarpaulin with the llvm engine to fit the job budget - #227

Merged
jsam merged 1 commit into
mainfrom
fm/il-fix-coverage-timeout
Oct 4, 2026
Merged

jsam merged 1 commit into
mainfrom
fm/il-fix-coverage-timeout

Conversation

@jsam

@jsam jsam commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

The full-suite checkpoint on 4cd1aff (run 37183925560) cancelled Coverage at its 45-minute timeout.

Cause: tarpaulin's default ptrace engine. The CI log shows about 30–37 s of overhead between one test binary finishing and the next one launching, regardless of how long the tests take. With ~75 binaries, that overhead alone is close to the whole budget. The oracle was simply the binary running when the clock ran out.

Fix: make coverage now passes --engine llvm (source-based instrumentation, no ptrace). No test binaries are excluded and the timeout is unchanged.

Local measurement (32 cores, cargo-tarpaulin 0.37.5, same flags as make coverage):

  • Full run including the instrumented build: 15m15s wall time (2m16s build). Every binary passed. Coverage: 83.70% (22607/27010 lines).
  • differential_oracle alone: 19 s of tests with llvm vs 74 s with ptrace.

The run averaged only 268% CPU because binaries run one after another, so the test phase should be roughly the same on the 4-vCPU runner. The build will take longer there. The next full-suite run will confirm the CI time.

@jsam
jsam merged commit 4adce1e into main Oct 4, 2026
16 checks passed
@jsam
jsam deleted the fm/il-fix-coverage-timeout branch October 4, 2026 08:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant