diff --git a/buildSrc/src/test/java/org/elasticsearch/gradle/testclusters/TestClustersPluginIT.java b/buildSrc/src/test/java/org/elasticsearch/gradle/testclusters/TestClustersPluginIT.java index ee366ac7b7c..9b7c5686e81 100644 --- a/buildSrc/src/test/java/org/elasticsearch/gradle/testclusters/TestClustersPluginIT.java +++ b/buildSrc/src/test/java/org/elasticsearch/gradle/testclusters/TestClustersPluginIT.java @@ -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(), diff --git a/buildSrc/src/testKit/testclusters/build.gradle b/buildSrc/src/testKit/testclusters/build.gradle index 67c9afdbc82..d02240c0ad2 100644 --- a/buildSrc/src/testKit/testclusters/build.gradle +++ b/buildSrc/src/testKit/testclusters/build.gradle @@ -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}" + } + } } } diff --git a/buildSrc/src/testKit/testclusters/settings.gradle b/buildSrc/src/testKit/testclusters/settings.gradle index e69de29bb2d..6549a93801b 100644 --- a/buildSrc/src/testKit/testclusters/settings.gradle +++ b/buildSrc/src/testKit/testclusters/settings.gradle @@ -0,0 +1,4 @@ +include 'dummyPlugin' +include ':alpha' +include ':bravo' +include ':charlie' \ No newline at end of file diff --git a/buildSrc/src/testKit/testclusters_multiproject/alpha/build.gradle b/buildSrc/src/testKit/testclusters_multiproject/alpha/build.gradle deleted file mode 100644 index 783e6d9a80e..00000000000 --- a/buildSrc/src/testKit/testclusters_multiproject/alpha/build.gradle +++ /dev/null @@ -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}" - } -} diff --git a/buildSrc/src/testKit/testclusters_multiproject/bravo/build.gradle b/buildSrc/src/testKit/testclusters_multiproject/bravo/build.gradle deleted file mode 100644 index d13cab6eaa9..00000000000 --- a/buildSrc/src/testKit/testclusters_multiproject/bravo/build.gradle +++ /dev/null @@ -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}" - } -} diff --git a/buildSrc/src/testKit/testclusters_multiproject/build.gradle b/buildSrc/src/testKit/testclusters_multiproject/build.gradle deleted file mode 100644 index 18f7b277d01..00000000000 --- a/buildSrc/src/testKit/testclusters_multiproject/build.gradle +++ /dev/null @@ -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}" - } -} \ No newline at end of file diff --git a/buildSrc/src/testKit/testclusters_multiproject/charlie/build.gradle b/buildSrc/src/testKit/testclusters_multiproject/charlie/build.gradle deleted file mode 100644 index f63a77aaea4..00000000000 --- a/buildSrc/src/testKit/testclusters_multiproject/charlie/build.gradle +++ /dev/null @@ -1,5 +0,0 @@ -task hello() { - doLast { - println "This task does not use the testclusters plugin. So it will have no extension." - } -} \ No newline at end of file diff --git a/buildSrc/src/testKit/testclusters_multiproject/settings.gradle b/buildSrc/src/testKit/testclusters_multiproject/settings.gradle deleted file mode 100644 index aa919489201..00000000000 --- a/buildSrc/src/testKit/testclusters_multiproject/settings.gradle +++ /dev/null @@ -1,3 +0,0 @@ -include ':alpha' -include ':bravo' -include ':charlie' \ No newline at end of file