github.com/vmg/backoff@v1.0.0/retry_test.go (about) 1 package backoff 2 3 import ( 4 "errors" 5 "log" 6 "testing" 7 ) 8 9 func TestRetry(t *testing.T) { 10 const successOn = 3 11 var i = 0 12 13 // This function is successfull on "successOn" calls. 14 f := func() error { 15 i++ 16 log.Printf("function is called %d. time\n", i) 17 18 if i == successOn { 19 log.Println("OK") 20 return nil 21 } 22 23 log.Println("error") 24 return errors.New("error") 25 } 26 27 err := Retry(f, NewExponentialBackOff()) 28 if err != nil { 29 t.Errorf("unexpected error: %s", err.Error()) 30 } 31 if i != successOn { 32 t.Errorf("invalid number of retries: %d", i) 33 } 34 }