- Gate slow git E2E tests with testing.Short() (saves ~5s)
- Use shallow/shared clones for test repos
- Disable git hooks in test setup (major speedup)
- Reduce sync rounds from 3→1 (2 for dedup test)
- Add git speed configs (gc.auto=0, fsync=false, gpgSign=false)
Results:
- cmd/bd tests: 41s → 33s with -short (~20% faster)
- Full suite: >300s timeout → ~40s (no timeout!)
- E2E tests: 2-3s each → skipped with -short
Run full E2E tests with: go test ./...
Run fast tests with: go test -short ./...
Root cause: getBDCommand() returned .\bd.exe on Windows, but git hooks
run with sh on Git for Windows where backslashes are escape characters.
This caused .\bd.exe to become .bd.exe, breaking hook execution.
Fix: Always use forward-slash paths (./bd.exe) in shell scripts.
Forward slashes work on Windows and are sh-compatible.
- Fix Windows binary path issues (bd.exe vs bd)
- Skip scripttest on Windows (requires Unix shell)
- Skip file lock tests on Windows (platform locking differences)
- Fix registry tests to use USERPROFILE on Windows
- Fix 8 unparam lint warnings by marking unused params with _
All changes are platform-aware and maintain functionality.
Amp-Thread-ID: https://ampcode.com/threads/T-bc27021a-65db-4b64-a3f3-4e8d7bc8aa0d
Co-authored-by: Amp <amp@ampcode.com>
- Add getBDPath() helper to return bd.exe on Windows, bd on Unix
- Fixes TestHashIDs_MultiCloneConverge and TestHashIDs_IdenticalContentDedup on Windows CI