From d58384ced07580fc668a36f8febd297b4dfe44bc Mon Sep 17 00:00:00 2001 From: V2Ray Date: Tue, 3 Nov 2015 00:12:25 +0100 Subject: [PATCH] One more test case for retry --- common/retry/retry_test.go | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/common/retry/retry_test.go b/common/retry/retry_test.go index afe8ae38..ed824973 100644 --- a/common/retry/retry_test.go +++ b/common/retry/retry_test.go @@ -16,11 +16,12 @@ func TestNoRetry(t *testing.T) { assert := unit.Assert(t) startTime := time.Now().Unix() - Timed(10, 100000).On(func() error { + err := Timed(10, 100000).On(func() error { return nil }) endTime := time.Now().Unix() + assert.Error(err).IsNil() assert.Int64(endTime - startTime).AtLeast(0) } @@ -29,7 +30,7 @@ func TestRetryOnce(t *testing.T) { startTime := time.Now() called := 0 - Timed(10, 1000).On(func() error { + err := Timed(10, 1000).On(func() error { if called == 0 { called++ return TestError @@ -38,6 +39,7 @@ func TestRetryOnce(t *testing.T) { }) duration := time.Since(startTime) + assert.Error(err).IsNil() assert.Int64(int64(duration / time.Millisecond)).AtLeast(900) } @@ -46,7 +48,7 @@ func TestRetryMultiple(t *testing.T) { startTime := time.Now() called := 0 - Timed(10, 1000).On(func() error { + err := Timed(10, 1000).On(func() error { if called < 5 { called++ return TestError @@ -55,5 +57,24 @@ func TestRetryMultiple(t *testing.T) { }) duration := time.Since(startTime) + assert.Error(err).IsNil() assert.Int64(int64(duration / time.Millisecond)).AtLeast(4900) } + +func TestRetryExhausted(t *testing.T) { + assert := unit.Assert(t) + + startTime := time.Now() + called := 0 + err := Timed(2, 1000).On(func() error { + if called < 5 { + called++ + return TestError + } + return nil + }) + duration := time.Since(startTime) + + assert.Error(err).Equals(RetryFailed) + assert.Int64(int64(duration / time.Millisecond)).AtLeast(1900) +}