Share generation attempt accounting
This commit is contained in:
@@ -144,6 +144,32 @@ func (c fixedClient) Generate(context.Context, domain.GenerateRequest) (*domain.
|
||||
return c.response, c.err
|
||||
}
|
||||
|
||||
func TestInjectedObserverRunsAfterPermitRelease(t *testing.T) {
|
||||
configured := testCoordinator(t, func(*http.Request) (*http.Response, error) { t.Fatal("unexpected HTTP request"); return nil, nil })
|
||||
coordinator := NewInjected(configured.manager, fixedClient{response: &domain.GenerateResponse{}})
|
||||
called := false
|
||||
recorder, err := observation.New(func(event domain.ExecutionEvent) {
|
||||
if event.Kind != domain.ExecutionAttempt {
|
||||
return
|
||||
}
|
||||
called = true
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||
defer cancel()
|
||||
release, err := coordinator.manager.Acquire(ctx, "limited")
|
||||
if err != nil {
|
||||
t.Errorf("observer could not acquire permit: %v", err)
|
||||
return
|
||||
}
|
||||
release()
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if _, err := coordinator.Generate(observation.WithRecorder(context.Background(), recorder), testRequest(0)); err != nil || !called {
|
||||
t.Fatalf("generation error = %v, observer called = %v", err, called)
|
||||
}
|
||||
}
|
||||
|
||||
func TestObservedInjectedUsageAndRepairGeneration(t *testing.T) {
|
||||
manager, err := capacity.NewManager(nil)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user