<< All versions
Skill v1.0.0
currentTrusted Publisher100/100microsoft/duroxide/duroxide-code-coverage
──Details
PublishedJune 18, 2026 at 11:16 AM
Content Hashsha256:78e0507e3aeb2433...
Git SHA
──Files
Files (1 file, 2.7 KB)
SKILL.md2.7 KBactive
SKILL.md · 95 lines · 2.7 KB
version: "1.0.0" name: duroxide-code-coverage description: Measure and improve code coverage in the Duroxide durable execution runtime. Use when asked about coverage, testing coverage, running llvm-cov, or improving test coverage percentages. license: Apache-2.0 metadata: author: duroxide version: "1.0"
Duroxide Code Coverage
Guidance for measuring and improving code coverage in the Duroxide codebase.
Quick Commands
bash
# Summary (recommended for quick checks)cargo llvm-cov nextest -p duroxide --all-features --summary-only# Detailed per-file reportcargo llvm-cov nextest -p duroxide --all-features# HTML report (opens in browser)cargo llvm-cov nextest -p duroxide --all-features --html --open# Install llvm-cov if neededcargo install cargo-llvm-cov
Coverage Targets
| Metric | Target | Notes | |
|---|---|---|---|
| Lines | >90% | Primary metric | |
| Regions | >85% | Branch coverage | |
| Functions | >80% | Often lower due to unused helpers |
Priority Files
When coverage drops, focus on these files:
- src/providers/error.rs - Target 100%, error classification
- src/runtime/observability.rs - Target 90%, metrics correctness
- src/providers/sqlite.rs - Target 85%, reference implementation
- src/providers/instrumented.rs - Target 75%, observability wrapper
- src/providers/management.rs - Note: default trait impls inflate gaps
Adding Tests
| Gap Type | Location | |
|---|---|---|
| Management API | tests/coverage_improvement_tests.rs | |
| Provider validation | tests/sqlite_provider_validations.rs | |
| Observability | tests/observability_tests.rs | |
| SQLite edge cases | src/providers/sqlite.rs (inline tests) |
Test Patterns
Management API
rust
#[tokio::test]async fn test_management() {let store = Arc::new(SqliteProvider::new_in_memory().await.unwrap());let mgmt = store.as_management_capability().unwrap();assert!(mgmt.list_instances().await.is_ok());}
Metrics
rust
#[tokio::test]async fn test_metrics() {use duroxide::runtime::observability::{MetricsProvider, ObservabilityConfig};let metrics = MetricsProvider::new(&ObservabilityConfig::default()).unwrap();metrics.record_orchestration_failure("Orch", "1.0", "app_error", "cat");assert_eq!(metrics.snapshot().orch_application_errors, 1);}
Provider Errors
rust
#[tokio::test]async fn test_error() {let err = ProviderError::retryable("op", "msg");assert!(err.is_retryable());}
Troubleshooting
- "no such command: llvm-cov" →
cargo install cargo-llvm-cov - Coverage seems low → Use
-p duroxide(not--workspace) - Stale data →
cargo llvm-cov clean --workspace