Skip to content

Commit dc6fb01

Browse files
authored
Merge pull request #6 from avast/fix_default_units
fix default unit
2 parents a203817 + 0a80bef commit dc6fb01

File tree

4 files changed

+24
-7
lines changed

4 files changed

+24
-7
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ nonintuitive interface (for me)
6969
* `retry.Retry` function are changed to `retry.Do` function
7070

7171
* `retry.RetryCustom` (OnRetry) and `retry.RetryCustomWithOpts` functions are
72-
now implement via functions produces Options (aka `retry.OnRetryFunction`)
72+
now implement via functions produces Options (aka `retry.OnRetry`)
7373

7474
## Usage
7575

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.0.0
1+
1.0.1

retry.go

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ func Do(retryableFunc RetryableFunc, opts ...Option) error {
7171
config := &config{
7272
attempts: 10,
7373
delay: 1e5,
74+
units: time.Microsecond,
7475
onRetry: func(n uint, err error) {},
7576
retryIf: func(err error) bool { return true },
7677
}

retry_test.go

+21-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"github.com/stretchr/testify/assert"
99
)
1010

11-
func TestDo(t *testing.T) {
11+
func TestDoAllFailed(t *testing.T) {
1212
var retrySum uint
1313
err := Do(
1414
func() error { return errors.New("test") },
@@ -30,17 +30,22 @@ func TestDo(t *testing.T) {
3030
#10: test`
3131
assert.Equal(t, expectedErrorFormat, err.Error(), "retry error format")
3232
assert.Equal(t, uint(45), retrySum, "right count of retry")
33+
}
3334

34-
retrySum = 0
35-
err = Do(
35+
func TestDoFirstOk(t *testing.T) {
36+
var retrySum uint
37+
err := Do(
3638
func() error { return nil },
3739
OnRetry(func(n uint, err error) { retrySum += n }),
3840
)
3941
assert.NoError(t, err)
4042
assert.Equal(t, uint(0), retrySum, "no retry")
4143

44+
}
45+
46+
func TestRetryIf(t *testing.T) {
4247
var retryCount uint
43-
err = Do(
48+
err := Do(
4449
func() error {
4550
if retryCount >= 2 {
4651
return errors.New("special")
@@ -56,11 +61,22 @@ func TestDo(t *testing.T) {
5661
)
5762
assert.Error(t, err)
5863

59-
expectedErrorFormat = `All attempts fail:
64+
expectedErrorFormat := `All attempts fail:
6065
#1: test
6166
#2: test
6267
#3: special`
6368
assert.Equal(t, expectedErrorFormat, err.Error(), "retry error format")
6469
assert.Equal(t, uint(3), retryCount, "right count of retry")
6570

6671
}
72+
73+
func TestDefaultSleep(t *testing.T) {
74+
start := time.Now()
75+
err := Do(
76+
func() error { return errors.New("test") },
77+
Attempts(3),
78+
)
79+
dur := time.Since(start)
80+
assert.Error(t, err)
81+
assert.True(t, dur > 10*time.Millisecond, "3 times default retry is longer then 10ms")
82+
}

0 commit comments

Comments
 (0)