Skip to content
This repository has been archived by the owner on Jun 28, 2022. It is now read-only.

Commit

Permalink
chore: fix showcase timeout-backoff test
Browse files Browse the repository at this point in the history
  • Loading branch information
noahdietz committed Sep 28, 2020
1 parent 4c3a097 commit 7d94ad8
Showing 1 changed file with 23 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -279,36 +279,52 @@ public void block() {
}

@Test
public void attemptSequenceTimeoutBackoff() {
public void attemptSequenceTimeoutBackoff() throws Exception {
// Recreate client with smaller timeout-backoff settings.
SequenceServiceSettings.Builder builder = seqClient.getSettings().toBuilder();
builder
.attemptSequenceSettings()
.setInitialRpcTimeout(org.threeten.bp.Duration.ofSeconds(2L))
.setMaxRpcTimeout(org.threeten.bp.Duration.ofSeconds(2L))
.build();
SequenceServiceClient s = SequenceServiceClient.create(builder.build());

long backendDelaySeconds = 1L;
Sequence toCreate =
Sequence.newBuilder()
.addResponses(
Sequence.Response.newBuilder()
.setDelay(Duration.newBuilder().setSeconds(2L))
.setDelay(Duration.newBuilder().setSeconds(backendDelaySeconds))
.setStatus(Status.newBuilder().setCode(Code.UNAVAILABLE_VALUE)))
.addResponses(
Sequence.Response.newBuilder()
.setDelay(Duration.newBuilder().setSeconds(2L))
.setDelay(Duration.newBuilder().setSeconds(backendDelaySeconds))
.setStatus(Status.newBuilder().setCode(Code.UNAVAILABLE_VALUE)))
.addResponses(
Sequence.Response.newBuilder()
.setStatus(Status.newBuilder().setCode(Code.OK_VALUE)))
.build();
Sequence sequence = seqClient.createSequence(toCreate);
Sequence sequence = s.createSequence(toCreate);
assertThat(sequence.getName()).isNotNull();

seqClient.attemptSequence(
AttemptSequenceRequest.newBuilder().setName(sequence.getName()).build());
s.attemptSequence(AttemptSequenceRequest.newBuilder().setName(sequence.getName()).build());

SequenceReport report = seqClient.getSequenceReport(sequence.getName() + "/sequenceReport");
SequenceReport report = s.getSequenceReport(sequence.getName() + "/sequenceReport");
assertThat(report.getAttemptsList()).isNotNull();
assertThat(report.getAttemptsList().size()).isEqualTo(3);
for (int i = 1; i < report.getAttemptsList().size(); i++) {
SequenceReport.Attempt cur = report.getAttempts(i);
SequenceReport.Attempt prev = report.getAttempts(i - 1);
long secondsDiff =
Math.abs(cur.getAttemptDeadline().getSeconds() - prev.getAttemptDeadline().getSeconds());

// The difference in the perceived deadline should be equal to
// the time it took the server to respond, because a new deadline is set
// with each attempt based on the *attempt start time*.
assertThat(secondsDiff).isGreaterThan(0);
assertThat(secondsDiff).isEqualTo(backendDelaySeconds);
}
// clean up extra client
s.shutdownNow();
}
}

0 comments on commit 7d94ad8

Please sign in to comment.