Fix "go test -count=2 ./pkg/proxy/iptables"

If you run the tests multiple times, the "partial restore failures"
metric didn't get reset in between.
This commit is contained in:
Dan Winship 2023-11-08 07:29:16 -05:00
parent e4b74dd12f
commit 2017fb2ec5

View File

@ -40,6 +40,7 @@ import (
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
utilfeature "k8s.io/apiserver/pkg/util/feature" utilfeature "k8s.io/apiserver/pkg/util/feature"
featuregatetesting "k8s.io/component-base/featuregate/testing" featuregatetesting "k8s.io/component-base/featuregate/testing"
"k8s.io/component-base/metrics/legacyregistry"
"k8s.io/component-base/metrics/testutil" "k8s.io/component-base/metrics/testutil"
"k8s.io/klog/v2" "k8s.io/klog/v2"
"k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/features"
@ -6150,6 +6151,7 @@ func TestSyncProxyRulesRepeated(t *testing.T) {
ipt := iptablestest.NewFake() ipt := iptablestest.NewFake()
fp := NewFakeProxier(ipt) fp := NewFakeProxier(ipt)
metrics.RegisterMetrics() metrics.RegisterMetrics()
defer legacyregistry.Reset()
// Create initial state // Create initial state
var svc2 *v1.Service var svc2 *v1.Service
@ -6677,11 +6679,11 @@ func TestSyncProxyRulesRepeated(t *testing.T) {
if fp.needFullSync { if fp.needFullSync {
t.Fatalf("Proxier unexpectedly already needs a full sync?") t.Fatalf("Proxier unexpectedly already needs a full sync?")
} }
prFailures, err := testutil.GetCounterMetricValue(metrics.IptablesPartialRestoreFailuresTotal) partialRestoreFailures, err := testutil.GetCounterMetricValue(metrics.IptablesPartialRestoreFailuresTotal)
if err != nil { if err != nil {
t.Fatalf("Could not get partial restore failures metric: %v", err) t.Fatalf("Could not get partial restore failures metric: %v", err)
} }
if prFailures != 0.0 { if partialRestoreFailures != 0.0 {
t.Errorf("Already did a partial resync? Something failed earlier!") t.Errorf("Already did a partial resync? Something failed earlier!")
} }
@ -6711,12 +6713,12 @@ func TestSyncProxyRulesRepeated(t *testing.T) {
if !fp.needFullSync { if !fp.needFullSync {
t.Errorf("Proxier did not fail on previous partial resync?") t.Errorf("Proxier did not fail on previous partial resync?")
} }
updatedPRFailures, err := testutil.GetCounterMetricValue(metrics.IptablesPartialRestoreFailuresTotal) updatedPartialRestoreFailures, err := testutil.GetCounterMetricValue(metrics.IptablesPartialRestoreFailuresTotal)
if err != nil { if err != nil {
t.Errorf("Could not get partial restore failures metric: %v", err) t.Errorf("Could not get partial restore failures metric: %v", err)
} }
if updatedPRFailures != prFailures+1.0 { if updatedPartialRestoreFailures != partialRestoreFailures+1.0 {
t.Errorf("Partial restore failures metric was not incremented after failed partial resync (expected %.02f, got %.02f)", prFailures+1.0, updatedPRFailures) t.Errorf("Partial restore failures metric was not incremented after failed partial resync (expected %.02f, got %.02f)", partialRestoreFailures+1.0, updatedPartialRestoreFailures)
} }
// On retry we should do a full resync, which should succeed (and delete svc4) // On retry we should do a full resync, which should succeed (and delete svc4)