Skip to content

Commit 5548303

Browse files
update RunNTimes logic for success on all retries
1 parent 9ecb70d commit 5548303

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/execution/Regular.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import datadog.trace.api.civisibility.execution.TestExecutionPolicy;
44
import datadog.trace.api.civisibility.telemetry.tag.RetryReason;
5-
import org.jetbrains.annotations.Nullable;
5+
import javax.annotation.Nullable;
66

77
/** Regular test case execution with no alterations. */
88
public class Regular implements TestExecutionPolicy {

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/execution/RetryUntilSuccessful.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import datadog.trace.api.civisibility.execution.TestExecutionPolicy;
44
import datadog.trace.api.civisibility.telemetry.tag.RetryReason;
55
import java.util.concurrent.atomic.AtomicInteger;
6-
import org.jetbrains.annotations.Nullable;
6+
import javax.annotation.Nullable;
77

88
/** Retries a test case if it failed, up to a maximum number of times. */
99
public class RetryUntilSuccessful implements TestExecutionPolicy {

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/execution/RunNTimes.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@
44
import datadog.trace.api.civisibility.telemetry.tag.RetryReason;
55
import datadog.trace.civisibility.config.ExecutionsByDuration;
66
import java.util.List;
7-
import org.jetbrains.annotations.Nullable;
7+
import javax.annotation.Nullable;
88

99
/** Runs a test case N times (N depends on test duration) regardless of success or failure. */
1010
public class RunNTimes implements TestExecutionPolicy {
1111

1212
private final boolean suppressFailures;
13-
private int executions;
1413
private final List<ExecutionsByDuration> executionsByDuration;
14+
private int executions;
1515
private int maxExecutions;
16+
private int totalExecutionsSeen;
1617
private int successfulExecutionsSeen;
1718
private final RetryReason retryReason;
1819

@@ -21,9 +22,11 @@ public RunNTimes(
2122
boolean suppressFailures,
2223
RetryReason retryReason) {
2324
this.suppressFailures = suppressFailures;
24-
this.executions = 0;
2525
this.executionsByDuration = executionsByDuration;
26+
this.executions = 0;
2627
this.maxExecutions = getExecutions(0);
28+
this.totalExecutionsSeen = 0;
29+
this.successfulExecutionsSeen = 0;
2730
this.retryReason = retryReason;
2831
}
2932

@@ -52,6 +55,7 @@ private int getExecutions(long durationMillis) {
5255

5356
@Override
5457
public boolean retry(boolean successful, long durationMillis) {
58+
++totalExecutionsSeen;
5559
if (successful) {
5660
++successfulExecutionsSeen;
5761
}
@@ -77,6 +81,6 @@ public boolean hasFailedAllRetries() {
7781

7882
@Override
7983
public boolean hasSucceededAllRetries() {
80-
return currentExecutionIsLast() && successfulExecutionsSeen == maxExecutions - 1;
84+
return currentExecutionIsLast() && successfulExecutionsSeen == totalExecutionsSeen;
8185
}
8286
}

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/execution/RunOnceIgnoreOutcome.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import datadog.trace.api.civisibility.execution.TestExecutionPolicy;
44
import datadog.trace.api.civisibility.telemetry.tag.RetryReason;
5-
import org.jetbrains.annotations.Nullable;
5+
import javax.annotation.Nullable;
66

77
/**
88
* Runs a test case once. If it fails - suppresses the failure so that the build status is not

0 commit comments

Comments
 (0)