package cli import ( "bytes" "strings" "testing" "time" ) // The short version, so CI sees the gateway's overhead on every change: every // mode answers every request, and what the gateway adds is measured, not // guessed. No bound is asserted on it, as CI's machines vary; the table is // in the test's log. func TestTheGatewaysOverheadIsMeasured(t *testing.T) { steps, err := runOverhead(t.Context(), []int{50}, time.Second) if err != nil { t.Fatal(err) } if len(steps) != len(overheadModes) { t.Fatalf("%d steps for %d modes", len(steps), len(overheadModes)) } for _, s := range steps { if s.Sent == 0 || s.Failed > 0 || s.P50 <= 0 || s.P99 < s.P50 { t.Errorf("%s: sent %d failed %d p50 %s p99 %s", s.Mode, s.Sent, s.Failed, s.P50, s.P99) } } var b bytes.Buffer printOverhead(&b, steps) if !strings.Contains(b.String(), "gateway+auth+guard") { t.Errorf("table:\n%s", b.String()) } t.Logf("\n%s", b.String()) }