test-fix
Test Fix
Systematic approach to diagnosing and fixing failing tests.
Process
Step 1: Identify Failing Tests
cargo test --all
cargo test test_name -- --exact --nocapture
Step 2: Reproduce Locally
# With debug logging
RUST_LOG=debug cargo test test_name
# Force single-threaded for race conditions
cargo test test_name -- --test-threads=1
Step 3: Diagnose Root Cause
| Pattern | Symptom | Fix |
|---|---|---|
| Async/Await | "future cannot be sent" | Add .await, use Arc |
| Database | "connection refused" | Check env vars, use test DB |
| Race | Intermittent assertion failure | Add Mutex, sequential execution |
| Type | "expected X, found Y" | Update signatures, add conversions |
| Lifetime | "borrowed value" | Clone data, adjust lifetimes |
Step 4: Verify Fix
# Run multiple times
for i in {1..10}; do cargo test test_name -- --exact || break; done
# Run full suite
cargo test --all
Step 5: Regression Prevention
Add test for the specific bug that was fixed.
Debugging Checklist
- Run failing test in isolation
- Check environment variables
- Review recent changes
- Check for missing
.await - Verify database connections
- Look for race conditions
- Check type compatibility
Tools
# Debug logging
RUST_LOG=debug cargo test
# Full backtrace
RUST_BACKTRACE=full cargo test
# Specific module
RUST_LOG=memory_core=debug cargo test
When to Skip vs Fix
Skip (temporarily):
- External service down
- Platform-specific issue
- Known upstream bug
Fix immediately:
- Logic error
- Incorrect assertion
- Missing error handling
More from d-o-hub/rust-self-learning-memory
loop-agent
Execute workflow agents iteratively for refinement and progressive improvement until quality criteria are met. Use when tasks require repetitive refinement, multi-iteration improvements, progressive optimization, or feedback loops until convergence.
51web-search-researcher
Research topics using web search and content fetching to find accurate, current information. Use when you need modern information, official documentation, best practices, technical solutions, or comparisons beyond your training data.
46perplexity-researcher-reasoning-pro
Highest level of research and reasoning capabilities for complex decision-making with significant consequences, strategic planning, technical architecture decisions, multi-stakeholder problems, or high-complexity troubleshooting requiring expert-level judgment and sophisticated reasoning chains. Prioritizes actively maintained repositories and validates website sources for 2025 relevance.
44context-retrieval
Retrieve relevant episodic context from memory for informed decision-making. Use when you need past episodes, patterns, or solutions to similar tasks.
44rust-code-quality
Perform comprehensive Rust code quality reviews against best practices for async Rust, error handling, testing, and project structure
43codebase-analyzer
Analyze implementation details, trace data flow, explain technical workings, locate files, and consolidate codebases. Use when you need to understand HOW code works, find file locations, or assess technical debt.
40