ref:e91ed44f8884c03e5b694c2844e8d178614a1674

fix(ci): use tarpaulin LLVM engine so coverage runs without disabling ASLR (#21)

The coverage step ran cargo tarpaulin with its default ptrace engine, which calls personality(ADDR_NO_RANDOMIZE) to disable ASLR before launching the test binary. On self-hosted runners whose container seccomp blocks personality() and/or whose host kernel is hardened, that returns EPERM and the job fails: cargo_tarpaulin: Failed to run tests: ASLR disable failed: EPERM: Operation not permitted Switch to tarpaulin's LLVM source-based engine (--engine llvm), which instruments via -C instrument-coverage and never ptraces or disables ASLR, so it works under a locked-down sandbox. Add 'rustup component add llvm-tools-preview' so the engine has llvm-profdata/llvm-cov. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SHA: e91ed44f8884c03e5b694c2844e8d178614a1674
Author: CI <ci@anvil.test>
Date: 2026-06-01 15:31
Parents: eb314bc
1 files changed +2 -1
Type
.anvil.yml +2 −1
@@ -20,8 +20,9 @@
- name: coverage
timeout_seconds: 1800
run: |
rustup component add llvm-tools-preview
cargo install cargo-tarpaulin --version 0.32.7 2>&1
cargo tarpaulin --engine llvm --out lcov --output-dir coverage/ 2>&1
cargo tarpaulin --out lcov --output-dir coverage/ 2>&1
depends_on: [check]
cache:
key: Cargo.lock