Skip to content

Commit 250eea8

Browse files
fix(ci): force tarpaulin LLVM engine to end the recurring coverage segfault (#163)
## Summary Fixes the **recurring `rust-ci / Coverage (tarpaulin + codecov)` red** (failed on #161, #162, …) with a **locally-verified** repo-side change. **Root cause:** the standards rust-ci reusable runs `cargo tarpaulin --out Xml` with the default **ptrace** engine, which **segfaults** on the CI runners while instrumenting the property-test binary (`"Failed to run tests: A segfault occurred while executing tests"`). It's a tarpaulin instrumentation flake — the suite passes under `cargo test`, and the ptrace engine doesn't even reproduce the segfault locally. **Fix:** `tarpaulin.toml` selecting the **LLVM (source-based) engine**, which avoids ptrace entirely. The reusable's `cargo tarpaulin --out Xml` reads this `[default]` profile, so **no standards-reusable change is needed**. **Verified locally** (I installed tarpaulin and reproduced the setup): - default engine locally → passes (segfault is CI-runner-specific); - `[default] engine = "Llvm"` + `cargo tarpaulin --out Xml` → activates `LLVM_PROFILE_FILE` coverage across 26 test binaries, exits 0, writes a valid `cobertura.xml`. - Note: the value must be capitalized `"Llvm"` — serde is case-sensitive; lowercase silently falls back to ptrace. This clears the last **repo-side-fixable** CI red. Remaining reds are genuinely external: `governance / Validate Hypatia Baseline` is pre-existing **#41 debt** (needs the hypatia CLI, out of session scope, or a baseline-regen decision), which the owner has merged past. ## FLAGS (unchanged) - `gossamer` + `conative-gating` still 403-blocked → **#83 / #103 staged** until added to the environment's repo scope. - OPEN proof obligations 1.1 / 1.2 (formal) / 3.2 remain honestly staged. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh --- _Generated by [Claude Code](https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 986a0ad commit 250eea8

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

tarpaulin.toml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# cargo-tarpaulin configuration.
3+
#
4+
# Force the LLVM (source-based) coverage engine. The default ptrace engine
5+
# segfaults on the CI runners while instrumenting the property-test binary
6+
# ("Failed to run tests: A segfault occurred while executing tests") — a known
7+
# cargo-tarpaulin ptrace flake, not a real test failure (the suite passes under
8+
# `cargo test`, and the ptrace engine does not even reproduce the segfault
9+
# locally). The LLVM engine avoids ptrace entirely.
10+
#
11+
# The standards rust-ci reusable runs `cargo tarpaulin --out Xml`, which reads
12+
# this [default] profile, so the engine switch needs no reusable change. Verified
13+
# locally: `cargo tarpaulin --out Xml` then activates LLVM_PROFILE_FILE coverage
14+
# and produces cobertura.xml cleanly (exit 0).
15+
[default]
16+
engine = "Llvm"

0 commit comments

Comments
 (0)