From 58eb7e8d6ad4cc2136ef2c95dd3573e87d9c746b Mon Sep 17 00:00:00 2001 From: Kristoffer Dalby Date: Tue, 20 Oct 2026 12:18:52 +0000 Subject: [PATCH] servertest: fail step checks that never hold A match on the last sample before the deadline no longer passes. --- hscontrol/servertest/lifecycle_compat_test.go | 5 +++++ hscontrol/servertest/via_ha_compat_test.go | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/hscontrol/servertest/lifecycle_compat_test.go b/hscontrol/servertest/lifecycle_compat_test.go index 148d6ee49..0f88c8760 100644 --- a/hscontrol/servertest/lifecycle_compat_test.go +++ b/hscontrol/servertest/lifecycle_compat_test.go @@ -349,6 +349,11 @@ func holdChecks( } } + // A last-sample match is not a settled one. + if held < holdTicks { + t.Errorf("%s: checks still changing at the deadline", strings.TrimSuffix(prefix, "/")) + } + for i, c := range checks { key := prefix + c.name evaluated[key] = true diff --git a/hscontrol/servertest/via_ha_compat_test.go b/hscontrol/servertest/via_ha_compat_test.go index d7d7bdd9c..f69642af3 100644 --- a/hscontrol/servertest/via_ha_compat_test.go +++ b/hscontrol/servertest/via_ha_compat_test.go @@ -871,7 +871,9 @@ func (r *stepReplay) apply(t *testing.T, step testcapture.Step) map[string]error } case "wait": - // SaaS settle time. + // SaaS settle time. The test server runs no scheduled tasks + // (expiry, HA probes), so passing time alone changes nothing + // but ephemeral collection, which its consumers shorten. default: t.Fatalf("%s: no replay for action %q", step.Name, a.Kind)