Files
Pulse/.gitignore
rcourtman 13f4f9e58a test: add soak test with runtime instrumentation (Phase 2 Task 9d)
Add comprehensive soak testing capabilities:

**Runtime Instrumentation:**
- Periodic sampling of heap, stack, goroutines, GC count
- Sample every 10s during harness runs
- HarnessReport includes full RuntimeSamples history
- Detect memory leaks (>10% sustained growth)
- Detect goroutine leaks (>20 leaked goroutines)

**Soak Test:**
- TestAdaptiveSchedulerSoak with 15min+ duration
- Skip unless -soak flag or HARNESS_SOAK_MINUTES set
- 80 synthetic instances (60 healthy, 15 transient, 5 permanent)
- Configurable duration via env var
- Validates: heap growth <10%, goroutines stable, queue depth bounded
- Staleness threshold: 45s for long-running tests

**Wrapper Script:**
- testing-tools/run_adaptive_soak.sh for easy execution
- Accepts duration in minutes: ./run_adaptive_soak.sh 30
- Logs to tmp/adaptive_soak_<timestamp>.log
- Sets proper timeout (duration + 5min buffer)

**Test Results (2-minute validation):**
- 80 instances, 17 samples
- Heap: 2.3MB → 3.1MB (healthy)
- Goroutines: 16 → 6 (no leak, actually decreased)
- Circuit breakers: correctly blocking transient failures

Run with: go test -tags=integration ./internal/monitoring -run TestAdaptiveSchedulerSoak -soak -timeout 20m

Part of Phase 2 Task 9 (Integration/Soak Testing)
2025-10-20 15:13:38 +00:00

156 lines
2.3 KiB
Plaintext

# Binaries
/bin/
/pulse
# Logs
*.log
# OS files
.DS_Store
Thumbs.db
# Development environment files
.dev-mode
.tmux.conf
.dev-aliases
# IDE
.idea/
.vscode/
*.swp
*.swo
# Go
*.exe
*.dll
*.so
*.dylib
*.test
*.out
vendor/
pulse-test
test-pulse
# Node.js (for frontend-modern)
node_modules/
.npm/
.yarn/
frontend-modern/.vite/
# Environment
.env
.env.local
.env.*.local
# Build outputs
dist/
build/
*.tar.gz
pulse-fixes*.tar.gz
# Frontend copy for embedding (generated during build)
# Frontend build artifact for Go embedding
# This is auto-generated, DO NOT EDIT
internal/api/frontend-modern/
# AI assistant files (local development environment docs)
CLAUDE.md
.claude*
claude-*
fix-claude-*
backend
AGENTS.md
AI_DEVELOPMENT.md
.ai-coordination/
scripts/pulse-watchdog.sh
pulse-watchdog.log
.mcp-servers/
.codex/
# Release process files
CHANGELOG.md
pulse-release/
pulse-release-staging/
release/
# Development scripts
scripts/backend-watch.sh
temp/
RELEASE_CHECKLIST.md
DOCKER_PUSH_INSTRUCTIONS.md
# Testing and temporary files
testing-tools/*
!testing-tools/run_adaptive_soak.sh
manual-test*.md
verify-*.md
test-*.md
package.json
package-lock.json
*.test.js
*.test.md
screenshots/
.devdata/
test-*.js
test-*.sh
test-*.html
*.backup.*
.env.dev
.env.backup*
PMG_BACKUP_DETECTION.md
SAFE_TESTING.md
tmp/
# Master plan documents (local only)
PULSE_V4_ISSUES_MASTER_PLAN.md
FIX_SUMMARY_*.md
# Development documentation
TYPING_*.md
test-config.json
# Local test scripts
scripts/test-*.sh
!scripts/test-vm-disk.sh
scripts/run-tests.sh
scripts/TEST_*.md
# Mock mode - exclude local overrides but keep the base file
mock.env.local
mock.env.backup
# Legacy mock mode files (no longer used)
internal/monitoring/mock_integration.go
internal/monitoring/mock_stub.go
scripts/mock-dev.sh
scripts/toggle-mock-pure.sh
MOCK_MODE_GUIDE.md
# Claude Code Safety Hooks (local only)
.claudecode-settings.json
.claudecode-hooks/
# Sensitive files - DO NOT COMMIT
secrets.env
*secret*.env
# Browser/session artifacts
**/cookies.txt
**/cookies-*.txt
**/*.har
**/*.browser
# Development documentation (local only)
CLAUDE_DEV_SETUP.md
AGENT_METRICS_*.md
# Temporary scripts
tmp_*.py
tmp_*.sh
# Experimental/abandoned features (not part of main project)
scripts/agent/
docs/internal/
claude.md
/pulse-sensor-proxy