Skip to content

Commit e27035a

Browse files
authored
Use spearate testkit dir for each run (#42013)
Gradle Testkit reuses the teskit dir by default between tests. With this change we use a temporary one for each run hoping it will fix #41431
1 parent 6f8dfeb commit e27035a

File tree

4 files changed

+38
-31
lines changed

4 files changed

+38
-31
lines changed

buildSrc/src/test/java/org/elasticsearch/gradle/ExportElasticsearchBuildResourcesTaskIT.java

+12-22
Original file line numberDiff line numberDiff line change
@@ -21,44 +21,35 @@
2121

2222
import org.elasticsearch.gradle.test.GradleIntegrationTestCase;
2323
import org.gradle.testkit.runner.BuildResult;
24-
import org.gradle.testkit.runner.GradleRunner;
2524

2625

2726
public class ExportElasticsearchBuildResourcesTaskIT extends GradleIntegrationTestCase {
2827

2928
public static final String PROJECT_NAME = "elasticsearch-build-resources";
3029

3130
public void testUpToDateWithSourcesConfigured() {
32-
GradleRunner.create()
33-
.withProjectDir(getProjectDir(PROJECT_NAME))
31+
getGradleRunner(PROJECT_NAME)
3432
.withArguments("clean", "-s")
35-
.withPluginClasspath()
3633
.build();
3734

38-
BuildResult result = GradleRunner.create()
39-
.withProjectDir(getProjectDir(PROJECT_NAME))
35+
BuildResult result = getGradleRunner(PROJECT_NAME)
4036
.withArguments("buildResources", "-s", "-i")
41-
.withPluginClasspath()
4237
.build();
4338
assertTaskSuccessful(result, ":buildResources");
4439
assertBuildFileExists(result, PROJECT_NAME, "build-tools-exported/checkstyle.xml");
4540
assertBuildFileExists(result, PROJECT_NAME, "build-tools-exported/checkstyle_suppressions.xml");
4641

47-
result = GradleRunner.create()
48-
.withProjectDir(getProjectDir(PROJECT_NAME))
42+
result = getGradleRunner(PROJECT_NAME)
4943
.withArguments("buildResources", "-s", "-i")
50-
.withPluginClasspath()
5144
.build();
5245
assertTaskUpToDate(result, ":buildResources");
5346
assertBuildFileExists(result, PROJECT_NAME, "build-tools-exported/checkstyle.xml");
5447
assertBuildFileExists(result, PROJECT_NAME, "build-tools-exported/checkstyle_suppressions.xml");
5548
}
5649

5750
public void testImplicitTaskDependencyCopy() {
58-
BuildResult result = GradleRunner.create()
59-
.withProjectDir(getProjectDir(PROJECT_NAME))
51+
BuildResult result = getGradleRunner(PROJECT_NAME)
6052
.withArguments("clean", "sampleCopyAll", "-s", "-i")
61-
.withPluginClasspath()
6253
.build();
6354

6455
assertTaskSuccessful(result, ":buildResources");
@@ -69,10 +60,8 @@ public void testImplicitTaskDependencyCopy() {
6960
}
7061

7162
public void testImplicitTaskDependencyInputFileOfOther() {
72-
BuildResult result = GradleRunner.create()
73-
.withProjectDir(getProjectDir(PROJECT_NAME))
63+
BuildResult result = getGradleRunner(PROJECT_NAME)
7464
.withArguments("clean", "sample", "-s", "-i")
75-
.withPluginClasspath()
7665
.build();
7766

7867
assertTaskSuccessful(result, ":sample");
@@ -81,11 +70,12 @@ public void testImplicitTaskDependencyInputFileOfOther() {
8170
}
8271

8372
public void testIncorrectUsage() {
84-
BuildResult result = GradleRunner.create()
85-
.withProjectDir(getProjectDir(PROJECT_NAME))
86-
.withArguments("noConfigAfterExecution", "-s", "-i")
87-
.withPluginClasspath()
88-
.buildAndFail();
89-
assertOutputContains("buildResources can't be configured after the task ran");
73+
assertOutputContains(
74+
getGradleRunner(PROJECT_NAME)
75+
.withArguments("noConfigAfterExecution", "-s", "-i")
76+
.buildAndFail()
77+
.getOutput(),
78+
"buildResources can't be configured after the task ran"
79+
);
9080
}
9181
}

buildSrc/src/test/java/org/elasticsearch/gradle/precommit/JarHellTaskIT.java

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

33
import org.elasticsearch.gradle.test.GradleIntegrationTestCase;
44
import org.gradle.testkit.runner.BuildResult;
5-
import org.gradle.testkit.runner.GradleRunner;
65

76
/*
87
* Licensed to Elasticsearch under one or more contributor
@@ -25,10 +24,8 @@
2524
public class JarHellTaskIT extends GradleIntegrationTestCase {
2625

2726
public void testJarHellDetected() {
28-
BuildResult result = GradleRunner.create()
29-
.withProjectDir(getProjectDir("jarHell"))
27+
BuildResult result = getGradleRunner("jarHell")
3028
.withArguments("clean", "precommit", "-s", "-Dlocal.repo.path=" + getLocalTestRepoPath())
31-
.withPluginClasspath()
3229
.buildAndFail();
3330

3431
assertTaskFailed(result, ":jarHell");

buildSrc/src/test/java/org/elasticsearch/gradle/test/GradleIntegrationTestCase.java

+15-1
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@
44
import org.gradle.testkit.runner.BuildTask;
55
import org.gradle.testkit.runner.GradleRunner;
66
import org.gradle.testkit.runner.TaskOutcome;
7+
import org.junit.Rule;
8+
import org.junit.rules.TemporaryFolder;
79

810
import java.io.File;
11+
import java.io.IOException;
12+
import java.io.UncheckedIOException;
913
import java.nio.file.Files;
1014
import java.nio.file.Path;
1115
import java.util.List;
@@ -16,6 +20,9 @@
1620

1721
public abstract class GradleIntegrationTestCase extends GradleUnitTestCase {
1822

23+
@Rule
24+
public TemporaryFolder testkitTmpDir = new TemporaryFolder();
25+
1926
protected File getProjectDir(String name) {
2027
File root = new File("src/testKit/");
2128
if (root.exists() == false) {
@@ -26,9 +33,16 @@ protected File getProjectDir(String name) {
2633
}
2734

2835
protected GradleRunner getGradleRunner(String sampleProject) {
36+
File testkit;
37+
try {
38+
testkit = testkitTmpDir.newFolder();
39+
} catch (IOException e) {
40+
throw new UncheckedIOException(e);
41+
}
2942
return GradleRunner.create()
3043
.withProjectDir(getProjectDir(sampleProject))
31-
.withPluginClasspath();
44+
.withPluginClasspath()
45+
.withTestKitDir(testkit);
3246
}
3347

3448
protected File getBuildDir(String name) {

buildSrc/src/test/java/org/elasticsearch/gradle/testclusters/TestClustersPluginIT.java

+10-4
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,21 @@
2121
import org.elasticsearch.gradle.test.GradleIntegrationTestCase;
2222
import org.gradle.testkit.runner.BuildResult;
2323
import org.gradle.testkit.runner.GradleRunner;
24+
import org.junit.Before;
2425
import org.junit.Ignore;
2526

27+
2628
import java.util.Arrays;
2729

2830
public class TestClustersPluginIT extends GradleIntegrationTestCase {
2931

32+
private GradleRunner runner;
33+
34+
@Before
35+
public void setUp() throws Exception {
36+
runner = getGradleRunner("testclusters");
37+
}
38+
3039
public void testListClusters() {
3140
BuildResult result = getTestClustersRunner("listTestClusters").build();
3241

@@ -190,10 +199,7 @@ private GradleRunner getTestClustersRunner(String... tasks) {
190199
arguments[tasks.length] = "-s";
191200
arguments[tasks.length + 1] = "-i";
192201
arguments[tasks.length + 2] = "-Dlocal.repo.path=" + getLocalTestRepoPath();
193-
return GradleRunner.create()
194-
.withProjectDir(getProjectDir("testclusters"))
195-
.withArguments(arguments)
196-
.withPluginClasspath();
202+
return runner.withArguments(arguments);
197203
}
198204

199205
private void assertStartedAndStoppedOnce(BuildResult result, String nodeName) {

0 commit comments

Comments
 (0)