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
This commit is contained in:
Abu Kashem 2024-09-05 11:57:47 -04:00
parent c89205f7d6
commit 0c8632de57
No known key found for this signature in database
GPG Key ID: E5ECC1124B5F9C68

View File

@ -177,11 +177,21 @@ func newApfHandlerWithFilter(t *testing.T, flowControlFilter utilflowcontrol.Int
r = r.WithContext(apirequest.WithUser(r.Context(), &user.DefaultInfo{ r = r.WithContext(apirequest.WithUser(r.Context(), &user.DefaultInfo{
Groups: []string{user.AllUnauthenticated}, Groups: []string{user.AllUnauthenticated},
})) }))
apfHandler.ServeHTTP(w, r) func() {
postExecute() // the APF handler completes its run, either normally or
if atomicReadOnlyExecuting != 0 { // with a panic, in either case, all APF book keeping must
t.Errorf("Wanted %d requests executing, got %d", 0, atomicReadOnlyExecuting) // 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) }), requestInfoFactory)
return handler return handler