summaryrefslogtreecommitdiffstats
path: root/messagebus/src/test/java/com/yahoo
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-02-14 15:09:02 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2019-02-14 15:09:02 +0100
commit867d3a3373495cf5a007a3dbc13534f1f887a5ee (patch)
tree204edd775228d55783a05bf9fcc8936cdeba8949 /messagebus/src/test/java/com/yahoo
parent28f9beb798831c3f964d648e5507b897b798e5db (diff)
Use a more agile retry policy with quick start and exponetial backoff.
Diffstat (limited to 'messagebus/src/test/java/com/yahoo')
-rwxr-xr-xmessagebus/src/test/java/com/yahoo/messagebus/routing/ResenderTestCase.java8
-rw-r--r--messagebus/src/test/java/com/yahoo/messagebus/routing/RetryPolicyTestCase.java29
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));
}
}