Consolidate testclusters tests into a single project (#37362)

This commit is contained in:
Alpar Torok 2019-01-24 13:47:21 +02:00 committed by GitHub
parent 2bf269e628
commit bc20142791
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 80 additions and 120 deletions

View File

@ -37,19 +37,19 @@ public class TestClustersPluginIT extends GradleIntegrationTestCase {
}
public void testUseClusterByOne() {
BuildResult result = getTestClustersRunner("user1").build();
BuildResult result = getTestClustersRunner(":user1").build();
assertTaskSuccessful(result, ":user1");
assertStartedAndStoppedOnce(result);
}
public void testUseClusterByOneWithDryRun() {
BuildResult result = getTestClustersRunner("--dry-run", "user1").build();
BuildResult result = getTestClustersRunner("--dry-run", ":user1").build();
assertNull(result.task(":user1"));
assertNotStarted(result);
}
public void testUseClusterByTwo() {
BuildResult result = getTestClustersRunner("user1", "user2").build();
BuildResult result = getTestClustersRunner(":user1", ":user2").build();
assertTaskSuccessful(result, ":user1", ":user2");
assertStartedAndStoppedOnce(result);
}
@ -57,14 +57,14 @@ public class TestClustersPluginIT extends GradleIntegrationTestCase {
public void testUseClusterByUpToDateTask() {
// Run it once, ignoring the result and again to make sure it's considered up to date.
// Gradle randomly considers tasks without inputs and outputs as as up-to-date or success on the first run
getTestClustersRunner("upToDate1", "upToDate2").build();
BuildResult result = getTestClustersRunner("upToDate1", "upToDate2").build();
getTestClustersRunner(":upToDate1", ":upToDate2").build();
BuildResult result = getTestClustersRunner(":upToDate1", ":upToDate2").build();
assertTaskUpToDate(result, ":upToDate1", ":upToDate2");
assertNotStarted(result);
}
public void testUseClusterBySkippedTask() {
BuildResult result = getTestClustersRunner("skipped1", "skipped2").build();
BuildResult result = getTestClustersRunner(":skipped1", ":skipped2").build();
assertTaskSkipped(result, ":skipped1", ":skipped2");
assertNotStarted(result);
}
@ -82,17 +82,44 @@ public class TestClustersPluginIT extends GradleIntegrationTestCase {
}
public void testMultiProject() {
BuildResult result = GradleRunner.create()
.withProjectDir(getProjectDir("testclusters_multiproject"))
.withArguments("user1", "user2", "-s", "-i", "--parallel", "-Dlocal.repo.path=" + getLocalTestRepoPath())
.withPluginClasspath()
.build();
assertTaskSuccessful(result, ":user1", ":user2");
BuildResult result = getTestClustersRunner(
"user1", "user2", "-s", "-i", "--parallel", "-Dlocal.repo.path=" + getLocalTestRepoPath()
).build();
assertTaskSuccessful(
result,
":user1", ":user2", ":alpha:user1", ":alpha:user2", ":bravo:user1", ":bravo:user2"
);
assertStartedAndStoppedOnce(result);
assertOutputOnlyOnce(
result.getOutput(),
"Starting `node{:alpha:myTestCluster}`",
"Stopping `node{::myTestCluster}`"
);
assertOutputOnlyOnce(
result.getOutput(),
"Starting `node{::myTestCluster}`",
"Stopping `node{:bravo:myTestCluster}`"
);
}
public void testIncremental() {
BuildResult result = getTestClustersRunner("clean", ":user1").build();
assertTaskSuccessful(result, ":user1");
assertStartedAndStoppedOnce(result);
result = getTestClustersRunner(":user1").build();
assertTaskSuccessful(result, ":user1");
assertStartedAndStoppedOnce(result);
result = getTestClustersRunner("clean", ":user1").build();
assertTaskSuccessful(result, ":user1");
assertStartedAndStoppedOnce(result);
assertStartedAndStoppedOnce(result);
}
public void testUseClusterByFailingOne() {
BuildResult result = getTestClustersRunner("itAlwaysFails").buildAndFail();
BuildResult result = getTestClustersRunner(":itAlwaysFails").buildAndFail();
assertTaskFailed(result, ":itAlwaysFails");
assertStartedAndStoppedOnce(result);
assertOutputContains(
@ -103,7 +130,7 @@ public class TestClustersPluginIT extends GradleIntegrationTestCase {
}
public void testUseClusterByFailingDependency() {
BuildResult result = getTestClustersRunner("dependsOnFailed").buildAndFail();
BuildResult result = getTestClustersRunner(":dependsOnFailed").buildAndFail();
assertTaskFailed(result, ":itAlwaysFails");
assertNull(result.task(":dependsOnFailed"));
assertStartedAndStoppedOnce(result);
@ -115,7 +142,7 @@ public class TestClustersPluginIT extends GradleIntegrationTestCase {
}
public void testConfigurationLocked() {
BuildResult result = getTestClustersRunner("illegalConfigAlter").buildAndFail();
BuildResult result = getTestClustersRunner(":illegalConfigAlter").buildAndFail();
assertTaskFailed(result, ":illegalConfigAlter");
assertOutputContains(
result.getOutput(),

View File

@ -1,31 +1,45 @@
plugins {
id 'elasticsearch.testclusters'
id 'base'
}
testClusters {
myTestCluster {
distribution = 'ZIP'
version = System.getProperty("test.version_under_test")
allprojects { all ->
repositories {
maven {
url System.getProperty("local.repo.path")
}
String luceneSnapshotRevision = System.getProperty("test.lucene-snapshot-revision")
if (luceneSnapshotRevision != null) {
maven {
url "http://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/" + luceneSnapshotRevision
}
}
jcenter()
}
}
repositories {
maven {
url System.getProperty("local.repo.path")
}
}
if (project == rootProject || project.name == "alpha" || project.name == "bravo") {
apply plugin: 'elasticsearch.testclusters'
task user1 {
useCluster testClusters.myTestCluster
doLast {
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
}
}
all.testClusters {
myTestCluster {
distribution = 'ZIP'
version = System.getProperty("test.version_under_test")
javaHome = file(System.getProperty('java.home'))
}
}
task user2 {
useCluster testClusters.myTestCluster
doLast {
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
task user1 {
useCluster testClusters.myTestCluster
doFirst {
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
}
}
task user2 {
useCluster testClusters.myTestCluster
doFirst {
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
}
}
}
}

View File

@ -0,0 +1,4 @@
include 'dummyPlugin'
include ':alpha'
include ':bravo'
include ':charlie'

View File

@ -1,21 +0,0 @@
plugins {
id 'elasticsearch.testclusters'
}
testClusters {
myTestCluster {
distribution = 'ZIP'
version = System.getProperty("test.version_under_test")
}
}
task user1 {
useCluster testClusters.myTestCluster
doFirst {
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
}
}
task user2 {
useCluster testClusters.myTestCluster
doFirst {
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
}
}

View File

@ -1,24 +0,0 @@
plugins {
id 'elasticsearch.testclusters'
}
testClusters {
myTestCluster {
distribution = 'ZIP'
version = System.getProperty("test.version_under_test")
}
}
task user1 {
useCluster testClusters.myTestCluster
doFirst {
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
}
}
task user2 {
useCluster testClusters.myTestCluster
doFirst {
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
}
}

View File

@ -1,32 +0,0 @@
plugins {
id 'elasticsearch.testclusters'
}
allprojects {
repositories {
maven {
url System.getProperty("local.repo.path")
}
}
}
testClusters {
myTestCluster {
distribution = 'ZIP'
version = System.getProperty("test.version_under_test")
}
}
task user1 {
useCluster testClusters.myTestCluster
doFirst {
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
}
}
task user2 {
useCluster testClusters.myTestCluster
doFirst {
println "$path: Cluster running @ ${testClusters.myTestCluster.httpSocketURI}"
}
}

View File

@ -1,5 +0,0 @@
task hello() {
doLast {
println "This task does not use the testclusters plugin. So it will have no extension."
}
}

View File

@ -1,3 +0,0 @@
include ':alpha'
include ':bravo'
include ':charlie'