3636/**
3737 * Test SDK resiliency.
3838 */
39- public class SdkResiliencytIT extends BaseIT {
39+ public class SdkResiliencyIT extends BaseIT {
4040
4141 private static final int NUM_ITERATIONS = 35 ;
4242
4343 private static final Duration TIMEOUT = Duration .ofMillis (100 );
4444
45- private static final Duration LATENCY = TIMEOUT .dividedBy (2 );
45+ private static final Duration LATENCY = TIMEOUT .dividedBy (3 );
4646
47- private static final Duration JITTER = TIMEOUT .multipliedBy (2 );
47+ private static final Duration JITTER = TIMEOUT .multipliedBy (3 );
4848
4949 private static final int MAX_RETRIES = -1 ; // Infinity
5050
51- private static DaprRun daprRun ;
52-
5351 private static DaprClient daprClient ;
5452
5553 private static ToxiProxyRun toxiProxyRun ;
@@ -64,7 +62,7 @@ public class SdkResiliencytIT extends BaseIT {
6462
6563 @ BeforeAll
6664 public static void init () throws Exception {
67- daprRun = startDaprApp (SdkResiliencytIT .class .getSimpleName (), 5000 );
65+ DaprRun daprRun = startDaprApp (SdkResiliencyIT .class .getSimpleName (), 5000 );
6866 daprClient = new DaprClientBuilder ().build ();
6967 daprClient .waitForSidecar (8000 ).block ();
7068
@@ -113,7 +111,7 @@ public static void tearDown() throws Exception {
113111 @ Test
114112 public void retryAndTimeout () {
115113 AtomicInteger toxiClientErrorCount = new AtomicInteger ();
116- AtomicInteger retryOneClientErrorCount = new AtomicInteger ();
114+ AtomicInteger retryOnceClientErrorCount = new AtomicInteger ();
117115
118116 while (true ){
119117 for (int i = 0 ; i < NUM_ITERATIONS ; i ++) {
@@ -129,7 +127,7 @@ public void retryAndTimeout() {
129127 daprRetriesOnceClient .saveState (STATE_STORE_NAME , key , value ).block ();
130128 } catch (Exception e ) {
131129 // This call should fail sometimes. So, we count.
132- retryOneClientErrorCount .incrementAndGet ();
130+ retryOnceClientErrorCount .incrementAndGet ();
133131 }
134132
135133 // We retry forever so that the call below should always work.
@@ -140,17 +138,29 @@ public void retryAndTimeout() {
140138 }
141139
142140 // We should have at least one success per client, otherwise retry.
143- if (toxiClientErrorCount .get () < NUM_ITERATIONS && retryOneClientErrorCount .get () < NUM_ITERATIONS ){
141+ if (toxiClientErrorCount .get () < NUM_ITERATIONS && retryOnceClientErrorCount .get () < NUM_ITERATIONS ){
144142 // This assertion makes sure that toxicity is on
145- assertTrue (toxiClientErrorCount .get () > 0 );
146- assertTrue (retryOneClientErrorCount .get () > 0 );
143+ assertTrue (toxiClientErrorCount .get () > 0 , "Toxi client error count is 0" );
144+ assertTrue (retryOnceClientErrorCount .get () > 0 , "Retry once client error count is 0" );
147145 // A client without retries should have more errors than a client with one retry.
148- assertTrue (toxiClientErrorCount .get () > retryOneClientErrorCount .get ());
146+
147+ String failureMessage = formatFailureMessage (toxiClientErrorCount , retryOnceClientErrorCount );
148+ assertTrue (toxiClientErrorCount .get () > retryOnceClientErrorCount .get (), failureMessage );
149149 break ;
150150 }
151151 toxiClientErrorCount .set (0 );
152- retryOneClientErrorCount .set (0 );
152+ retryOnceClientErrorCount .set (0 );
153153 }
154+ }
154155
156+ private static String formatFailureMessage (
157+ AtomicInteger toxiClientErrorCount ,
158+ AtomicInteger retryOnceClientErrorCount
159+ ) {
160+ return String .format (
161+ "Toxi client error count: %d, Retry once client error count: %d" ,
162+ toxiClientErrorCount .get (),
163+ retryOnceClientErrorCount .get ()
164+ );
155165 }
156166}
0 commit comments