apiserver: fix apf watch test

the assert to verify that 'atomicReadOnlyExecuting' is zero
should be executed if the apf handler panics, all apf
bookkeeping must be completed before the handler returns

Kubernetes-commit: 0c8632de57075191e6c4e34897fb7871034c7081
This commit is contained in:
Abu Kashem 2024-09-05 11:57:47 -04:00 committed by Kubernetes Publisher
parent 60d1ca6725
commit a785076ef7
1 changed files with 15 additions and 5 deletions

View File

@ -177,11 +177,21 @@ func newApfHandlerWithFilter(t *testing.T, flowControlFilter utilflowcontrol.Int
r = r.WithContext(apirequest.WithUser(r.Context(), &user.DefaultInfo{
Groups: []string{user.AllUnauthenticated},
}))
apfHandler.ServeHTTP(w, r)
postExecute()
func() {
// the APF handler completes its run, either normally or
// with a panic, in either case, all APF book keeping must
// be completed by now. Also, whether the request is
// executed or rejected, we expect the counter to be zero.
// TODO: all test(s) using this filter must run
// serially to each other
defer func() {
if atomicReadOnlyExecuting != 0 {
t.Errorf("Wanted %d requests executing, got %d", 0, atomicReadOnlyExecuting)
}
}()
apfHandler.ServeHTTP(w, r)
postExecute()
}()
}), requestInfoFactory)
return handler