Skip to content

Commit 3820ef8

Browse files
committed
Consolidate testclusters tests into a single project
1 parent ed2b5e8 commit 3820ef8

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
@@ -39,34 +39,34 @@ public void testListClusters() {
3939
}
4040

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

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

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

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

6868
public void testUseClusterBySkippedTask() {
69-
BuildResult result = getTestClustersRunner("skipped1", "skipped2").build();
69+
BuildResult result = getTestClustersRunner(":skipped1", ":skipped2").build();
7070
assertTaskSkipped(result, ":skipped1", ":skipped2");
7171
assertNotStarted(result);
7272
}
@@ -84,17 +84,44 @@ public void testUseClusterBySkippedAndWorkingTask() {
8484
}
8585

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

96123
public void testUseClusterByFailingOne() {
97-
BuildResult result = getTestClustersRunner("itAlwaysFails").buildAndFail();
124+
BuildResult result = getTestClustersRunner(":itAlwaysFails").buildAndFail();
98125
assertTaskFailed(result, ":itAlwaysFails");
99126
assertStartedAndStoppedOnce(result);
100127
assertOutputContains(
@@ -105,7 +132,7 @@ public void testUseClusterByFailingOne() {
105132
}
106133

107134
public void testUseClusterByFailingDependency() {
108-
BuildResult result = getTestClustersRunner("dependsOnFailed").buildAndFail();
135+
BuildResult result = getTestClustersRunner(":dependsOnFailed").buildAndFail();
109136
assertTaskFailed(result, ":itAlwaysFails");
110137
assertNull(result.task(":dependsOnFailed"));
111138
assertStartedAndStoppedOnce(result);
@@ -117,7 +144,7 @@ public void testUseClusterByFailingDependency() {
117144
}
118145

119146
public void testConfigurationLocked() {
120-
BuildResult result = getTestClustersRunner("illegalConfigAlter").buildAndFail();
147+
BuildResult result = getTestClustersRunner(":illegalConfigAlter").buildAndFail();
121148
assertTaskFailed(result, ":illegalConfigAlter");
122149
assertOutputContains(
123150
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)