Skip to content

Commit e3bd43f

Browse files
committed
Consolidate testclusters tests into a single project (#37362)
1 parent 9409706 commit e3bd43f

File tree

8 files changed

+80
-120
lines changed

8 files changed

+80
-120
lines changed

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

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,34 +37,34 @@ public void testListClusters() {
3737
}
3838

3939
public void testUseClusterByOne() {
40-
BuildResult result = getTestClustersRunner("user1").build();
40+
BuildResult result = getTestClustersRunner(":user1").build();
4141
assertTaskSuccessful(result, ":user1");
4242
assertStartedAndStoppedOnce(result);
4343
}
4444

4545
public void testUseClusterByOneWithDryRun() {
46-
BuildResult result = getTestClustersRunner("--dry-run", "user1").build();
46+
BuildResult result = getTestClustersRunner("--dry-run", ":user1").build();
4747
assertNull(result.task(":user1"));
4848
assertNotStarted(result);
4949
}
5050

5151
public void testUseClusterByTwo() {
52-
BuildResult result = getTestClustersRunner("user1", "user2").build();
52+
BuildResult result = getTestClustersRunner(":user1", ":user2").build();
5353
assertTaskSuccessful(result, ":user1", ":user2");
5454
assertStartedAndStoppedOnce(result);
5555
}
5656

5757
public void testUseClusterByUpToDateTask() {
5858
// Run it once, ignoring the result and again to make sure it's considered up to date.
5959
// Gradle randomly considers tasks without inputs and outputs as as up-to-date or success on the first run
60-
getTestClustersRunner("upToDate1", "upToDate2").build();
61-
BuildResult result = getTestClustersRunner("upToDate1", "upToDate2").build();
60+
getTestClustersRunner(":upToDate1", ":upToDate2").build();
61+
BuildResult result = getTestClustersRunner(":upToDate1", ":upToDate2").build();
6262
assertTaskUpToDate(result, ":upToDate1", ":upToDate2");
6363
assertNotStarted(result);
6464
}
6565

6666
public void testUseClusterBySkippedTask() {
67-
BuildResult result = getTestClustersRunner("skipped1", "skipped2").build();
67+
BuildResult result = getTestClustersRunner(":skipped1", ":skipped2").build();
6868
assertTaskSkipped(result, ":skipped1", ":skipped2");
6969
assertNotStarted(result);
7070
}
@@ -82,17 +82,44 @@ public void testUseClusterBySkippedAndWorkingTask() {
8282
}
8383

8484
public void testMultiProject() {
85-
BuildResult result = GradleRunner.create()
86-
.withProjectDir(getProjectDir("testclusters_multiproject"))
87-
.withArguments("user1", "user2", "-s", "-i", "--parallel", "-Dlocal.repo.path=" + getLocalTestRepoPath())
88-
.withPluginClasspath()
89-
.build();
90-
assertTaskSuccessful(result, ":user1", ":user2");
85+
BuildResult result = getTestClustersRunner(
86+
"user1", "user2", "-s", "-i", "--parallel", "-Dlocal.repo.path=" + getLocalTestRepoPath()
87+
).build();
88+
89+
assertTaskSuccessful(
90+
result,
91+
":user1", ":user2", ":alpha:user1", ":alpha:user2", ":bravo:user1", ":bravo:user2"
92+
);
93+
assertStartedAndStoppedOnce(result);
94+
assertOutputOnlyOnce(
95+
result.getOutput(),
96+
"Starting `node{:alpha:myTestCluster}`",
97+
"Stopping `node{::myTestCluster}`"
98+
);
99+
assertOutputOnlyOnce(
100+
result.getOutput(),
101+
"Starting `node{::myTestCluster}`",
102+
"Stopping `node{:bravo:myTestCluster}`"
103+
);
104+
}
105+
106+
public void testIncremental() {
107+
BuildResult result = getTestClustersRunner("clean", ":user1").build();
108+
assertTaskSuccessful(result, ":user1");
109+
assertStartedAndStoppedOnce(result);
110+
111+
result = getTestClustersRunner(":user1").build();
112+
assertTaskSuccessful(result, ":user1");
113+
assertStartedAndStoppedOnce(result);
114+
115+
result = getTestClustersRunner("clean", ":user1").build();
116+
assertTaskSuccessful(result, ":user1");
117+
assertStartedAndStoppedOnce(result);
91118
assertStartedAndStoppedOnce(result);
92119
}
93120

94121
public void testUseClusterByFailingOne() {
95-
BuildResult result = getTestClustersRunner("itAlwaysFails").buildAndFail();
122+
BuildResult result = getTestClustersRunner(":itAlwaysFails").buildAndFail();
96123
assertTaskFailed(result, ":itAlwaysFails");
97124
assertStartedAndStoppedOnce(result);
98125
assertOutputContains(
@@ -103,7 +130,7 @@ public void testUseClusterByFailingOne() {
103130
}
104131

105132
public void testUseClusterByFailingDependency() {
106-
BuildResult result = getTestClustersRunner("dependsOnFailed").buildAndFail();
133+
BuildResult result = getTestClustersRunner(":dependsOnFailed").buildAndFail();
107134
assertTaskFailed(result, ":itAlwaysFails");
108135
assertNull(result.task(":dependsOnFailed"));
109136
assertStartedAndStoppedOnce(result);
@@ -115,7 +142,7 @@ public void testUseClusterByFailingDependency() {
115142
}
116143

117144
public void testConfigurationLocked() {
118-
BuildResult result = getTestClustersRunner("illegalConfigAlter").buildAndFail();
145+
BuildResult result = getTestClustersRunner(":illegalConfigAlter").buildAndFail();
119146
assertTaskFailed(result, ":illegalConfigAlter");
120147
assertOutputContains(
121148
result.getOutput(),

buildSrc/src/testKit/testclusters/build.gradle

Lines changed: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,45 @@
11
plugins {
22
id 'elasticsearch.testclusters'
3+
id 'base'
34
}
45

5-
testClusters {
6-
myTestCluster {
7-
distribution = 'ZIP'
8-
version = System.getProperty("test.version_under_test")
6+
allprojects { all ->
7+
repositories {
8+
maven {
9+
url System.getProperty("local.repo.path")
10+
}
11+
String luceneSnapshotRevision = System.getProperty("test.lucene-snapshot-revision")
12+
if (luceneSnapshotRevision != null) {
13+
maven {
14+
url "http://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/" + luceneSnapshotRevision
15+
}
16+
}
17+
jcenter()
918
}
10-
}
1119

12-
repositories {
13-
maven {
14-
url System.getProperty("local.repo.path")
15-
}
16-
}
20+
if (project == rootProject || project.name == "alpha" || project.name == "bravo") {
21+
apply plugin: 'elasticsearch.testclusters'
1722

18-
task user1 {
19-
useCluster testClusters.myTestCluster
20-
doLast {
21-
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
22-
}
23-
}
23+
all.testClusters {
24+
myTestCluster {
25+
distribution = 'ZIP'
26+
version = System.getProperty("test.version_under_test")
27+
javaHome = file(System.getProperty('java.home'))
28+
}
29+
}
2430

25-
task user2 {
26-
useCluster testClusters.myTestCluster
27-
doLast {
28-
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
31+
task user1 {
32+
useCluster testClusters.myTestCluster
33+
doFirst {
34+
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
35+
}
36+
}
37+
task user2 {
38+
useCluster testClusters.myTestCluster
39+
doFirst {
40+
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
41+
}
42+
}
2943
}
3044
}
3145

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
include 'dummyPlugin'
2+
include ':alpha'
3+
include ':bravo'
4+
include ':charlie'

buildSrc/src/testKit/testclusters_multiproject/alpha/build.gradle

Lines changed: 0 additions & 21 deletions
This file was deleted.

buildSrc/src/testKit/testclusters_multiproject/bravo/build.gradle

Lines changed: 0 additions & 24 deletions
This file was deleted.

buildSrc/src/testKit/testclusters_multiproject/build.gradle

Lines changed: 0 additions & 32 deletions
This file was deleted.

buildSrc/src/testKit/testclusters_multiproject/charlie/build.gradle

Lines changed: 0 additions & 5 deletions
This file was deleted.

buildSrc/src/testKit/testclusters_multiproject/settings.gradle

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)