github.com/simpleiot/simpleiot@v0.18.3/client/backoff_test.go (about) 1 package client 2 3 import ( 4 "fmt" 5 "math" 6 "testing" 7 "time" 8 ) 9 10 func TestBackoffFirstAttempt(t *testing.T) { 11 fmt.Println("exp: ", math.Exp2(1)) 12 backoff := ExpBackoff(1, time.Second*6) 13 if backoff < time.Second*2 || backoff > 3*time.Second { 14 t.Error("backoff time is out of range: ", backoff) 15 16 } 17 } 18 19 func TestBackoffLargeAttempts(t *testing.T) { 20 backoff := ExpBackoff(400000, time.Second) 21 22 if backoff < time.Second { 23 t.Error("backoff time is too short: ", backoff) 24 } 25 26 if backoff > 2*time.Second { 27 t.Error("backoff time is too long: ", backoff) 28 } 29 30 } 31 32 func TestBackoff16(t *testing.T) { 33 backoff := ExpBackoff(16, time.Minute*6) 34 if backoff < time.Minute*6 || backoff > time.Minute*6+time.Second { 35 t.Error("backoff should be 6m, was: ", backoff) 36 } 37 }