-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Missing Benchmark Tests
Priority: P2 - Medium
Estimate: 2 hours
Review Reference: REVIEW.md (P2-5)
Issue
No benchmark files found. No performance baselines for:
- CIDR subnet computation
- Pool listing with large datasets
- Concurrent access patterns
Impact: Low - Unknown performance characteristics
Solution
Add *_bench_test.go files with benchmarks for hot paths:
Example Benchmarks:
// internal/http/server_bench_test.go
func BenchmarkComputeSubnets(b *testing.B) {
for i := 0; i < b.N; i++ {
_, _, _, _ = computeSubnetsIPv4Window("10.0.0.0/16", 24, 0, 100)
}
}
// internal/storage/store_bench_test.go
func BenchmarkListPools(b *testing.B) {
store := setupStoreWith1000Pools()
b.ResetTimer()
for i := 0; i < b.N; i++ {
store.ListPools(context.Background())
}
}
func BenchmarkConcurrentPoolAccess(b *testing.B) {
store := setupStore()
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
store.GetPool(context.Background(), rand.Int63n(1000))
}
})
}Acceptance Criteria
- Benchmark tests for CIDR computation
- Benchmark tests for list operations
- Benchmark tests for concurrent access
- Benchmarks run in CI (informational only)
- Baseline results documented
- Just/Make target for running benchmarks
Benefits
- Detect performance regressions
- Identify optimization opportunities
- Understand scaling characteristics
- Guide capacity planning
Validation
go test -bench=. -benchmem ./...
# Should show performance metrics for key operations