diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-02-14 15:09:02 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-02-14 15:09:02 +0100 |
commit | 867d3a3373495cf5a007a3dbc13534f1f887a5ee (patch) | |
tree | 204edd775228d55783a05bf9fcc8936cdeba8949 /messagebus/src/test/java/com/yahoo | |
parent | 28f9beb798831c3f964d648e5507b897b798e5db (diff) |
Use a more agile retry policy with quick start and exponetial backoff.
Diffstat (limited to 'messagebus/src/test/java/com/yahoo')
-rwxr-xr-x | messagebus/src/test/java/com/yahoo/messagebus/routing/ResenderTestCase.java | 8 | ||||
-rw-r--r-- | messagebus/src/test/java/com/yahoo/messagebus/routing/RetryPolicyTestCase.java | 29 |
2 files changed, 19 insertions, 18 deletions
diff --git a/messagebus/src/test/java/com/yahoo/messagebus/routing/ResenderTestCase.java b/messagebus/src/test/java/com/yahoo/messagebus/routing/ResenderTestCase.java index 1e3764d8e4e..2973ea11278 100755 --- a/messagebus/src/test/java/com/yahoo/messagebus/routing/ResenderTestCase.java +++ b/messagebus/src/test/java/com/yahoo/messagebus/routing/ResenderTestCase.java @@ -155,11 +155,11 @@ public class ResenderTestCase { assertNull(((Receptor)dstSession.getMessageHandler()).getMessage(0)); String trace = reply.getTrace().toString(); - assertTrue(trace.contains("retry 1 in 0.01")); + assertTrue(trace.contains("retry 1 in 0.0")); assertTrue(trace.contains("retry 2 in 0.02")); - assertTrue(trace.contains("retry 3 in 0.03")); - assertTrue(trace.contains("retry 4 in 0.04")); - assertTrue(trace.contains("retry 5 in 0.05")); + assertTrue(trace.contains("retry 3 in 0.04")); + assertTrue(trace.contains("retry 4 in 0.08")); + assertTrue(trace.contains("retry 5 in 0.16")); } @Test diff --git a/messagebus/src/test/java/com/yahoo/messagebus/routing/RetryPolicyTestCase.java b/messagebus/src/test/java/com/yahoo/messagebus/routing/RetryPolicyTestCase.java index 95a6eabf6f1..522c4ba909c 100644 --- a/messagebus/src/test/java/com/yahoo/messagebus/routing/RetryPolicyTestCase.java +++ b/messagebus/src/test/java/com/yahoo/messagebus/routing/RetryPolicyTestCase.java @@ -12,26 +12,27 @@ import static org.junit.Assert.assertTrue; * @author Simon Thoresen Hult */ public class RetryPolicyTestCase { + private static final double SMALL = 0.00000000000000000001; @Test public void testSimpleRetryPolicy() { RetryTransientErrorsPolicy policy = new RetryTransientErrorsPolicy(); - for (int i = 0; i < 5; ++i) { - double delay = i / 3.0; - policy.setBaseDelay(delay); - for (int j = 0; j < 5; ++j) { - assertEquals((int)(j * delay), (int)policy.getRetryDelay(j)); - } - for (int j = ErrorCode.NONE; j < ErrorCode.ERROR_LIMIT; ++j) { - policy.setEnabled(true); - if (j < ErrorCode.FATAL_ERROR) { - assertTrue(policy.canRetry(j)); - } else { - assertFalse(policy.canRetry(j)); - } - policy.setEnabled(false); + assertEquals(0.0, policy.getRetryDelay(0), SMALL); + assertEquals(0.0, policy.getRetryDelay(1), SMALL); + for (int i = 2; i < 15; i++) { + assertEquals(0.001*(1 << (i-1)), policy.getRetryDelay(i), SMALL); + } + assertEquals(10.0, policy.getRetryDelay(15), SMALL); + assertEquals(10.0, policy.getRetryDelay(20), SMALL); + for (int j = ErrorCode.NONE; j < ErrorCode.ERROR_LIMIT; ++j) { + policy.setEnabled(true); + if (j < ErrorCode.FATAL_ERROR) { + assertTrue(policy.canRetry(j)); + } else { assertFalse(policy.canRetry(j)); } + policy.setEnabled(false); + assertFalse(policy.canRetry(j)); } } |