Skip to content

Commit 78427e9

Browse files
authored
Removing floor for polling frequency when running tests (#18204)
The floor adds unnecessary delays when executing unit tests and can decrease end-to-end test execution time by 3x.
1 parent 29a8ee6 commit 78427e9

File tree

3 files changed

+24
-21
lines changed

3 files changed

+24
-21
lines changed

sdk/azcore/CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
### Bugs Fixed
1010

1111
### Other Changes
12+
* The one-second floor for `Frequency` when calling `PollUntilDone()` has been removed when running tests.
1213

1314
## 1.0.0 (2022-05-12)
1415

sdk/azcore/runtime/poller.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"context"
1111
"encoding/json"
1212
"errors"
13+
"flag"
1314
"fmt"
1415
"net/http"
1516
"time"
@@ -210,7 +211,8 @@ func (p *Poller[T]) PollUntilDone(ctx context.Context, options *PollUntilDoneOpt
210211
cp.Frequency = 30 * time.Second
211212
}
212213

213-
if cp.Frequency < time.Second {
214+
// skip the floor check when executing tests so they don't take so long
215+
if isTest := flag.Lookup("test.v"); isTest == nil && cp.Frequency < time.Second {
214216
return *new(T), errors.New("polling frequency minimum is one second")
215217
}
216218

sdk/azcore/runtime/poller_test.go

+20-20
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ func TestLocPollerSimple(t *testing.T) {
102102
}
103103
var respFromCtx *http.Response
104104
ctxWithResp := WithCaptureResponse(context.Background(), &respFromCtx)
105-
_, err = lro.PollUntilDone(ctxWithResp, &PollUntilDoneOptions{Frequency: time.Second})
105+
_, err = lro.PollUntilDone(ctxWithResp, &PollUntilDoneOptions{Frequency: time.Millisecond})
106106
if err != nil {
107107
t.Fatal(err)
108108
}
@@ -135,7 +135,7 @@ func TestLocPollerWithWidget(t *testing.T) {
135135
if !closed() {
136136
t.Fatal("initial response body wasn't closed")
137137
}
138-
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
138+
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
139139
if err != nil {
140140
t.Fatal(err)
141141
}
@@ -168,7 +168,7 @@ func TestLocPollerCancelled(t *testing.T) {
168168
if !closed() {
169169
t.Fatal("initial response body wasn't closed")
170170
}
171-
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
171+
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
172172
if err == nil {
173173
t.Fatal("unexpected nil error")
174174
}
@@ -214,7 +214,7 @@ func TestLocPollerWithError(t *testing.T) {
214214
if !closed() {
215215
t.Fatal("initial response body wasn't closed")
216216
}
217-
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
217+
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
218218
if err == nil {
219219
t.Fatal("unexpected nil error")
220220
}
@@ -272,7 +272,7 @@ func TestLocPollerWithResumeToken(t *testing.T) {
272272
if err != nil {
273273
t.Fatal(err)
274274
}
275-
_, err = lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
275+
_, err = lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
276276
if err != nil {
277277
t.Fatal(err)
278278
}
@@ -302,7 +302,7 @@ func TestLocPollerWithTimeout(t *testing.T) {
302302
t.Fatal("initial response body wasn't closed")
303303
}
304304
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
305-
_, err = lro.PollUntilDone(ctx, &PollUntilDoneOptions{Frequency: time.Second})
305+
_, err = lro.PollUntilDone(ctx, &PollUntilDoneOptions{Frequency: time.Millisecond})
306306
cancel()
307307
if err == nil {
308308
t.Fatal("unexpected nil error")
@@ -341,7 +341,7 @@ func TestOpPollerSimple(t *testing.T) {
341341
if !closed() {
342342
t.Fatal("initial response body wasn't closed")
343343
}
344-
_, err = lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
344+
_, err = lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
345345
if err != nil {
346346
t.Fatal(err)
347347
}
@@ -381,7 +381,7 @@ func TestOpPollerWithWidgetPUT(t *testing.T) {
381381
if !closed() {
382382
t.Fatal("initial response body wasn't closed")
383383
}
384-
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
384+
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
385385
if err != nil {
386386
t.Fatal(err)
387387
}
@@ -487,7 +487,7 @@ func TestOpPollerWithWidgetPOSTLocation(t *testing.T) {
487487
if !closed() {
488488
t.Fatal("initial response body wasn't closed")
489489
}
490-
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
490+
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
491491
if err != nil {
492492
t.Fatal(err)
493493
}
@@ -529,7 +529,7 @@ func TestOpPollerWithWidgetPOST(t *testing.T) {
529529
if !closed() {
530530
t.Fatal("initial response body wasn't closed")
531531
}
532-
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
532+
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
533533
if err != nil {
534534
t.Fatal(err)
535535
}
@@ -574,7 +574,7 @@ func TestOpPollerWithWidgetResourceLocation(t *testing.T) {
574574
if !closed() {
575575
t.Fatal("initial response body wasn't closed")
576576
}
577-
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
577+
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
578578
if err != nil {
579579
t.Fatal(err)
580580
}
@@ -637,7 +637,7 @@ func TestOpPollerWithResumeToken(t *testing.T) {
637637
if err != nil {
638638
t.Fatal(err)
639639
}
640-
_, err = lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
640+
_, err = lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
641641
if err != nil {
642642
t.Fatal(err)
643643
}
@@ -678,7 +678,7 @@ func TestNopPoller(t *testing.T) {
678678
if resp != firstResp {
679679
t.Fatal("unexpected response")
680680
}
681-
_, err = lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
681+
_, err = lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
682682
if err != nil {
683683
t.Fatal(err)
684684
}
@@ -734,7 +734,7 @@ func TestOpPollerWithResponseType(t *testing.T) {
734734
if !closed() {
735735
t.Fatal("initial response body wasn't closed")
736736
}
737-
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
737+
w, err := lro.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
738738
if err != nil {
739739
t.Fatal(err)
740740
}
@@ -816,7 +816,7 @@ func TestNewPollerAsync(t *testing.T) {
816816
if err != nil {
817817
t.Fatal(err)
818818
}
819-
result, err := poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
819+
result, err := poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
820820
if err != nil {
821821
t.Fatal(err)
822822
}
@@ -858,7 +858,7 @@ func TestNewPollerBody(t *testing.T) {
858858
if err != nil {
859859
t.Fatal(err)
860860
}
861-
result, err := poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
861+
result, err := poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
862862
if err != nil {
863863
t.Fatal(err)
864864
}
@@ -888,7 +888,7 @@ func TestNewPollerInitialRetryAfter(t *testing.T) {
888888
if pt := typeOfOpField(poller); pt != reflect.TypeOf((*async.Poller[mockType])(nil)) {
889889
t.Fatalf("unexpected poller type %s", pt.String())
890890
}
891-
result, err := poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
891+
result, err := poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
892892
if err != nil {
893893
t.Fatal(err)
894894
}
@@ -955,7 +955,7 @@ func TestNewPollerFailedWithError(t *testing.T) {
955955
if pt := typeOfOpField(poller); pt != reflect.TypeOf((*async.Poller[mockType])(nil)) {
956956
t.Fatalf("unexpected poller type %s", pt.String())
957957
}
958-
_, err = poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
958+
_, err = poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
959959
if err == nil {
960960
t.Fatal(err)
961961
}
@@ -987,7 +987,7 @@ func TestNewPollerSuccessNoContent(t *testing.T) {
987987
if err != nil {
988988
t.Fatal(err)
989989
}
990-
result, err := poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
990+
result, err := poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
991991
if err != nil {
992992
t.Fatal(err)
993993
}
@@ -1049,7 +1049,7 @@ func TestNewPollerWithResponseType(t *testing.T) {
10491049
if err != nil {
10501050
t.Fatal(err)
10511051
}
1052-
result, err := poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Second})
1052+
result, err := poller.PollUntilDone(context.Background(), &PollUntilDoneOptions{Frequency: time.Millisecond})
10531053
if err != nil {
10541054
t.Fatal(err)
10551055
}

0 commit comments

Comments
 (0)