Fix lint findings in the new tests

Return a snapshot struct from the test execution recorder.
Move the apply-configuration test table into a helper function.
This commit is contained in:
Veer Singh
2026-07-20 23:58:14 -07:00
parent 798cc3bd1d
commit bc34f45c3a
2 changed files with 31 additions and 16 deletions
@@ -130,7 +130,14 @@ func (r *executionRecorder) run(rule cpmtypes.CustomRule) (cpmtypes.Status, stri
return cpmtypes.OK, rule.Path
}
func (r *executionRecorder) snapshot() (map[string]int, map[string]int, int, int) {
type executionSnapshot struct {
counts map[string]int
maxActive map[string]int
activeTotal int
highWater int
}
func (r *executionRecorder) snapshot() executionSnapshot {
r.mu.Lock()
defer r.mu.Unlock()
counts := make(map[string]int, len(r.counts))
@@ -141,7 +148,12 @@ func (r *executionRecorder) snapshot() (map[string]int, map[string]int, int, int
for rule, count := range r.maxActive {
maxActive[rule] = count
}
return counts, maxActive, r.activeTotal, r.highWater
return executionSnapshot{
counts: counts,
maxActive: maxActive,
activeTotal: r.activeTotal,
highWater: r.highWater,
}
}
func schedulerRule(name string, interval *time.Duration) *cpmtypes.CustomRule {
@@ -247,7 +259,7 @@ func stepClock(t *testing.T, fakeClock *recordingClock, duration time.Duration)
func assertCounts(t *testing.T, recorder *executionRecorder, wanted map[string]int) {
t.Helper()
got, _, _, _ := recorder.snapshot()
got := recorder.snapshot().counts
if !reflect.DeepEqual(got, wanted) {
t.Fatalf("Invocation counts differ: got %v, wanted %v", got, wanted)
}
@@ -432,15 +444,14 @@ func TestPluginSchedulerConcurrencyReachesLimit(t *testing.T) {
}
stepClock(t, fakeClock, 10*time.Second)
waitInvocations(t, recorder, 2)
_, _, active, highWater := recorder.snapshot()
if active != 2 || highWater != 2 {
t.Fatalf("Concurrency state is active=%d high-water=%d; wanted 2 and 2", active, highWater)
snapshot := recorder.snapshot()
if snapshot.activeTotal != 2 || snapshot.highWater != 2 {
t.Fatalf("Concurrency state is active=%d high-water=%d; wanted 2 and 2", snapshot.activeTotal, snapshot.highWater)
}
close(release)
waitInvocations(t, recorder, 2)
waitResults(t, p, 4)
_, _, _, highWater = recorder.snapshot()
if highWater != 2 {
if highWater := recorder.snapshot().highWater; highWater != 2 {
t.Fatalf("Concurrency high-water is %d; wanted 2", highWater)
}
stopPlugin(t, p)
@@ -468,7 +479,7 @@ func TestPluginSchedulerRuleNeverOverlapsAndOverrunCatchesUpOnce(t *testing.T) {
waitInvocations(t, recorder, 1)
waitResults(t, p, 1)
assertCounts(t, recorder, map[string]int{"rule": 3})
_, maxActive, _, _ := recorder.snapshot()
maxActive := recorder.snapshot().maxActive
if maxActive["rule"] != 1 {
t.Fatalf("Rule concurrency high-water is %d; wanted 1", maxActive["rule"])
}
+11 -7
View File
@@ -26,7 +26,13 @@ import (
"k8s.io/node-problem-detector/pkg/types"
)
func TestCustomPluginConfigApplyConfiguration(t *testing.T) {
type applyConfigurationTestCase struct {
Orig CustomPluginConfig
Wanted CustomPluginConfig
ErrorMessageStart string
}
func applyConfigurationTestCases() map[string]applyConfigurationTestCase {
globalTimeout := 6 * time.Second
globalTimeoutString := globalTimeout.String()
invokeInterval := 31 * time.Second
@@ -43,11 +49,7 @@ func TestCustomPluginConfigApplyConfiguration(t *testing.T) {
ruleInvokeIntervalString := ruleInvokeInterval.String()
invalidRuleInvokeIntervalString := "invalid"
utMetas := map[string]struct {
Orig CustomPluginConfig
Wanted CustomPluginConfig
ErrorMessageStart string
}{
return map[string]applyConfigurationTestCase{
"global default settings": {
Orig: CustomPluginConfig{
Rules: []*CustomRule{
@@ -268,8 +270,10 @@ func TestCustomPluginConfigApplyConfiguration(t *testing.T) {
},
},
}
}
for desp, utMeta := range utMetas {
func TestCustomPluginConfigApplyConfiguration(t *testing.T) {
for desp, utMeta := range applyConfigurationTestCases() {
err := (&utMeta.Orig).ApplyConfiguration()
if utMeta.ErrorMessageStart != "" {
if err == nil {