From 6c83bda6081ca3b0a7f90110fa0718bb14a50bb6 Mon Sep 17 00:00:00 2001 From: Jeremie Fraeys Date: Wed, 18 Feb 2026 12:45:40 -0500 Subject: [PATCH] test(benchmarks): add tolerance to response packet regression test Add 5% tolerance for timing noise to prevent flaky failures from nanosecond-level benchmark variations --- tests/benchmarks/response_packet_regression_test.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/benchmarks/response_packet_regression_test.go b/tests/benchmarks/response_packet_regression_test.go index faff35f..72f8bcf 100644 --- a/tests/benchmarks/response_packet_regression_test.go +++ b/tests/benchmarks/response_packet_regression_test.go @@ -20,8 +20,10 @@ func TestResponsePacketSerializationRegression(t *testing.T) { benchmarkLegacySerializePacket(b, variant.packet) }) - if current.NsPerOp() > legacy.NsPerOp() { - t.Fatalf("current serialize slower than legacy: current=%dns legacy=%dns", current.NsPerOp(), legacy.NsPerOp()) + // Allow 5% tolerance for timing noise - single nanosecond differences are within measurement error + tolerance := int64(float64(legacy.NsPerOp()) * 0.05) + if current.NsPerOp() > legacy.NsPerOp()+tolerance { + t.Fatalf("current serialize slower than legacy: current=%dns legacy=%dns (tolerance=%dns)", current.NsPerOp(), legacy.NsPerOp(), tolerance) } if ceil, ok := packetAllocCeil[variant.name]; ok && current.AllocsPerOp() > ceil {