fetch_ml/tests/benchmarks/native_queue_basic_test.go
Jeremie Fraeys be67cb77d3
test(benchmarks): update benchmark tests with job cleanup and improvements
**Payload Performance Test:**
- Add job cleanup after each iteration using DeleteJob()
- Ensure isolated memory measurements between test runs

**All Benchmark Tests:**
- General improvements and maintenance updates
2026-02-23 18:03:54 -05:00

39 lines
726 B
Go

package benchmarks
import (
"testing"
"github.com/jfraeys/fetch_ml/internal/queue"
)
// BenchmarkNativeQueueBasic tests basic native queue operations
func BenchmarkNativeQueueBasic(b *testing.B) {
tmpDir := b.TempDir()
// Only run if native libs available
if !queue.UseNativeQueue {
b.Skip("Native queue not enabled (build with -tags native_libs)")
}
q, err := queue.NewNativeQueue(tmpDir)
if err != nil {
b.Fatal(err)
}
defer q.Close()
// Test single add
task := &queue.Task{
ID: "test-1",
JobName: "test-job",
Priority: 100,
}
b.ReportAllocs()
for i := 0; b.Loop(); i++ {
task.ID = "test-" + string(rune('0'+i%10))
if err := q.AddTask(task); err != nil {
b.Fatal(err)
}
}
}