Skip to content

Commit 377b7e4

Browse files
committed
Fix handling of non existing test history
1 parent b8756a4 commit 377b7e4

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rerun/RerunPlugin.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void apply(Project project) {
4848
spec.getParameters().getInfoPath().set(settingsRoot);
4949
});
5050

51-
project.getTasks().withType(Test.class).configureEach(task -> configureTestTask(task, retryTestsProvider, objectFactory));
51+
project.getTasks().withType(Test.class).configureEach(task -> configureTestTask(task, retryTestsProvider));
5252

5353
}
5454

@@ -62,17 +62,15 @@ interface Params extends BuildServiceParameters {
6262

6363
public RetryTestsBuildService() {
6464
File failedTestsJsonFile = new File(getParameters().getInfoPath().getAsFile().get(), "failed-tests.json");
65-
6665
if (failedTestsJsonFile.exists()) {
67-
System.out.println("RetryTestsBuildService.RetryTestsBuildService");
6866
try {
6967
ObjectMapper objectMapper = new ObjectMapper();
7068
this.failureReport = objectMapper.readValue(failedTestsJsonFile, FailedTestsReport.class);
7169
} catch (IOException e) {
7270
throw new RuntimeException("Failed to parse retry-tests.json", e);
7371
}
7472
} else {
75-
this.failureReport = new FailedTestsReport();
73+
this.failureReport = null;
7674
}
7775
}
7876

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rerun/TestTaskConfigurer.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
import com.fasterxml.jackson.databind.ObjectMapper;
1313
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
1414

15+
import org.elasticsearch.gradle.internal.test.rerun.model.FailedTestsReport;
1516
import org.elasticsearch.gradle.internal.test.rerun.model.TestCase;
1617
import org.elasticsearch.gradle.internal.test.rerun.model.WorkUnit;
1718
import org.gradle.api.file.Directory;
18-
import org.gradle.api.model.ObjectFactory;
1919
import org.gradle.api.provider.Provider;
2020
import org.gradle.api.tasks.testing.Test;
2121
import org.gradle.api.tasks.testing.TestDescriptor;
@@ -33,12 +33,13 @@ public final class TestTaskConfigurer {
3333

3434
private TestTaskConfigurer() {}
3535

36-
public static void configureTestTask(
37-
Test test,
38-
Provider<RerunPlugin.RetryTestsBuildService> testsBuildServiceProvider,
39-
ObjectFactory objectFactory
40-
) {
41-
List<WorkUnit> workUnits = testsBuildServiceProvider.get().getFailureReport().getWorkUnits();
36+
public static void configureTestTask(Test test, Provider<RerunPlugin.RetryTestsBuildService> testsBuildServiceProvider) {
37+
FailedTestsReport failureReport = testsBuildServiceProvider.get().getFailureReport();
38+
if (failureReport == null) {
39+
// no historical test failures found
40+
return;
41+
}
42+
List<WorkUnit> workUnits = failureReport.getWorkUnits();
4243
Optional<WorkUnit> first = workUnits.stream().filter(workunit -> workunit.getName().equals(test.getPath())).findFirst();
4344
if (first.isPresent()) {
4445
test.filter(testFilter -> {

0 commit comments

Comments
 (0)