diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/plugin/PluginBuildPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/plugin/PluginBuildPlugin.groovy index 746ac646eec4..0b0c55b53cd6 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/plugin/PluginBuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/plugin/PluginBuildPlugin.groovy @@ -25,7 +25,6 @@ import org.elasticsearch.gradle.Version import org.elasticsearch.gradle.VersionProperties import org.elasticsearch.gradle.dependencies.CompileOnlyResolvePlugin import org.elasticsearch.gradle.info.BuildParams -import org.elasticsearch.gradle.test.RestIntegTestTask import org.elasticsearch.gradle.test.RestTestBasePlugin import org.elasticsearch.gradle.testclusters.RunTask import org.elasticsearch.gradle.util.Util @@ -60,16 +59,7 @@ class PluginBuildPlugin implements Plugin { boolean isXPackModule = project.path.startsWith(':x-pack:plugin') boolean isModule = project.path.startsWith(':modules:') || isXPackModule - createIntegTestTask(project) createBundleTasks(project, extension) - project.tasks.named("integTest").configure { - it.dependsOn(project.tasks.named("bundlePlugin")) - } - if (isModule) { - project.testClusters.integTest.module(project.tasks.bundlePlugin.archiveFile) - } else { - project.testClusters.integTest.plugin(project.tasks.bundlePlugin.archiveFile) - } project.afterEvaluate { project.extensions.getByType(PluginPropertiesExtension).extendedPlugins.each { pluginName -> @@ -116,14 +106,6 @@ class PluginBuildPlugin implements Plugin { } } - //disable integTest task if project has been converted to use yaml or java rest test plugin - project.pluginManager.withPlugin("elasticsearch.yaml-rest-test") { - project.tasks.integTest.enabled = false - } - project.pluginManager.withPlugin("elasticsearch.java-rest-test") { - project.tasks.integTest.enabled = false - } - project.tasks.named('testingConventions').configure { naming.clear() naming { @@ -142,7 +124,6 @@ class PluginBuildPlugin implements Plugin { // allow running ES with this plugin in the foreground of a build project.tasks.register('run', RunTask) { dependsOn(project.tasks.bundlePlugin) - useCluster project.testClusters.integTest } } @@ -172,13 +153,6 @@ class PluginBuildPlugin implements Plugin { } } - /** Adds an integTest task which runs rest tests */ - private static void createIntegTestTask(Project project) { - RestIntegTestTask integTest = project.tasks.create('integTest', RestIntegTestTask.class) - integTest.mustRunAfter('precommit', 'test') - project.check.dependsOn(integTest) - } - /** * Adds a bundlePlugin task which builds the zip containing the plugin jars, * metadata, properties, and packaging files diff --git a/buildSrc/src/test/java/org/elasticsearch/gradle/plugin/PluginBuildPluginTests.java b/buildSrc/src/test/java/org/elasticsearch/gradle/plugin/PluginBuildPluginTests.java index bb5d3ddd6714..1ec0ad93dfa4 100644 --- a/buildSrc/src/test/java/org/elasticsearch/gradle/plugin/PluginBuildPluginTests.java +++ b/buildSrc/src/test/java/org/elasticsearch/gradle/plugin/PluginBuildPluginTests.java @@ -50,7 +50,7 @@ public class PluginBuildPluginTests extends GradleUnitTestCase { ); assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(PluginPropertiesExtension.class)); - assertNotNull("plugin created an integTest class", project.getTasks().findByName("integTest")); + assertNull("plugin should not create the integTest task", project.getTasks().findByName("integTest")); } @Ignore("https://github.com/elastic/elasticsearch/issues/47123") diff --git a/client/client-benchmark-noop-api-plugin/build.gradle b/client/client-benchmark-noop-api-plugin/build.gradle index b22a22000524..6882dc0d780f 100644 --- a/client/client-benchmark-noop-api-plugin/build.gradle +++ b/client/client-benchmark-noop-api-plugin/build.gradle @@ -35,4 +35,3 @@ dependenciesInfo.enabled = false // no unit tests test.enabled = false -integTest.enabled = false diff --git a/distribution/build.gradle b/distribution/build.gradle index 359217d73106..9c87014ba8ad 100644 --- a/distribution/build.gradle +++ b/distribution/build.gradle @@ -253,10 +253,6 @@ project.rootProject.subprojects.findAll { it.parent.path == ':modules' }.each { copyLog4jProperties(buildOssLog4jConfig, module) copyLog4jProperties(buildDefaultLog4jConfig, module) - // make sure the module's integration tests run after the integ-test-zip (ie rest tests) - module.afterEvaluate({ - module.integTest.mustRunAfter(':distribution:archives:integ-test-zip:integTest') - }) restTestExpansions['expected.modules.count'] += 1 } diff --git a/modules/lang-expression/build.gradle b/modules/lang-expression/build.gradle index 3b8c42fea93e..f46e22da6d64 100644 --- a/modules/lang-expression/build.gradle +++ b/modules/lang-expression/build.gradle @@ -37,8 +37,6 @@ restResources { } } -integTest.enabled = false - tasks.named("dependencyLicenses").configure { mapping from: /lucene-.*/, to: 'lucene' mapping from: /asm-.*/, to: 'asm' diff --git a/modules/lang-painless/build.gradle b/modules/lang-painless/build.gradle index 4f8aced4ff0c..12d18b84f773 100644 --- a/modules/lang-painless/build.gradle +++ b/modules/lang-painless/build.gradle @@ -54,8 +54,6 @@ restResources { } } -integTest.enabled = false - tasks.named("test").configure { // in WhenThingsGoWrongTests we intentionally generate an out of memory error, this prevents the heap from being dumped to disk jvmArgs '-XX:-OmitStackTraceInFastThrow', '-XX:-HeapDumpOnOutOfMemoryError' diff --git a/modules/systemd/build.gradle b/modules/systemd/build.gradle index 2863846801c3..78589ff95415 100644 --- a/modules/systemd/build.gradle +++ b/modules/systemd/build.gradle @@ -22,4 +22,3 @@ esplugin { classname 'org.elasticsearch.systemd.SystemdPlugin' } -integTest.enabled = false diff --git a/plugins/repository-hdfs/build.gradle b/plugins/repository-hdfs/build.gradle index 2b9aceb4962a..aef22833b413 100644 --- a/plugins/repository-hdfs/build.gradle +++ b/plugins/repository-hdfs/build.gradle @@ -29,6 +29,7 @@ import static org.elasticsearch.gradle.PropertyNormalization.IGNORE_VALUE apply plugin: 'elasticsearch.test.fixtures' apply plugin: 'elasticsearch.rest-resources' +apply plugin: 'elasticsearch.rest-test' esplugin { description 'The HDFS repository plugin adds support for Hadoop Distributed File-System (HDFS) repositories.' @@ -94,6 +95,14 @@ tasks.named("dependencyLicenses").configure { mapping from: /hadoop-.*/, to: 'hadoop' } +tasks.named("integTest").configure { + it.dependsOn(project.tasks.named("bundlePlugin")) +} + +testClusters.integTest { + plugin(project.tasks.bundlePlugin.archiveFile) +} + String realm = "BUILD.ELASTIC.CO" String krb5conf = project(':test:fixtures:krb5kdc-fixture').ext.krb5Conf("hdfs") diff --git a/plugins/transport-nio/build.gradle b/plugins/transport-nio/build.gradle index 464f2760876f..1cd524967462 100644 --- a/plugins/transport-nio/build.gradle +++ b/plugins/transport-nio/build.gradle @@ -26,8 +26,6 @@ esplugin { classname 'org.elasticsearch.transport.nio.NioTransportPlugin' } -// integTest have been converted to internalClusterTest -integTest.enabled = false dependencies { api project(':libs:elasticsearch-nio') diff --git a/qa/die-with-dignity/build.gradle b/qa/die-with-dignity/build.gradle index 23edc2ed8529..6c2faef27129 100644 --- a/qa/die-with-dignity/build.gradle +++ b/qa/die-with-dignity/build.gradle @@ -1,25 +1,6 @@ import org.elasticsearch.gradle.info.BuildParams -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -apply plugin: 'elasticsearch.testclusters' +apply plugin: 'elasticsearch.java-rest-test' apply plugin: 'elasticsearch.esplugin' esplugin { @@ -27,17 +8,21 @@ esplugin { classname 'org.elasticsearch.DieWithDignityPlugin' } -integTest { +dependencies { + // let the javaRestTest see the classpath of main + javaRestTestImplementation project.sourceSets.main.runtimeClasspath +} + +javaRestTest { systemProperty 'tests.security.manager', 'false' systemProperty 'tests.system_call_filter', 'false' - nonInputProperties.systemProperty 'log', "${-> testClusters.integTest.singleNode().getServerLog()}" + nonInputProperties.systemProperty 'log', "${-> testClusters.javaRestTest.singleNode().getServerLog()}" systemProperty 'runtime.java.home', BuildParams.runtimeJavaHome } -testClusters.integTest { +testClusters.javaRestTest { systemProperty "die.with.dignity.test", "whatever" } test.enabled = false -check.dependsOn integTest diff --git a/qa/die-with-dignity/src/test/java/org/elasticsearch/qa/die_with_dignity/DieWithDignityIT.java b/qa/die-with-dignity/src/javaRestTest/java/org/elasticsearch/qa/die_with_dignity/DieWithDignityIT.java similarity index 96% rename from qa/die-with-dignity/src/test/java/org/elasticsearch/qa/die_with_dignity/DieWithDignityIT.java rename to qa/die-with-dignity/src/javaRestTest/java/org/elasticsearch/qa/die_with_dignity/DieWithDignityIT.java index a6f272dbd594..9be60841c668 100644 --- a/qa/die-with-dignity/src/test/java/org/elasticsearch/qa/die_with_dignity/DieWithDignityIT.java +++ b/qa/die-with-dignity/src/javaRestTest/java/org/elasticsearch/qa/die_with_dignity/DieWithDignityIT.java @@ -7,7 +7,7 @@ * not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an @@ -63,13 +63,13 @@ public class DieWithDignityIT extends ESRestTestCase { try { while (it.hasNext() && (fatalError == false || fatalErrorInThreadExiting == false)) { final String line = it.next(); - if (containsAll(line, ".*ERROR.*", ".*ExceptionsHelper.*", ".*integTest-0.*", ".*fatal error.*")) { + if (containsAll(line, ".*ERROR.*", ".*ExceptionsHelper.*", ".*javaRestTest-0.*", ".*fatal error.*")) { fatalError = true; } else if (containsAll( line, ".*ERROR.*", ".*ElasticsearchUncaughtExceptionHandler.*", - ".*integTest-0.*", + ".*javaRestTest-0.*", ".*fatal error in thread \\[Thread-\\d+\\], exiting.*", ".*java.lang.OutOfMemoryError: die with dignity.*" )) { diff --git a/x-pack/plugin/analytics/build.gradle b/x-pack/plugin/analytics/build.gradle index b1ac9c87415e..d0998aa12d75 100644 --- a/x-pack/plugin/analytics/build.gradle +++ b/x-pack/plugin/analytics/build.gradle @@ -20,4 +20,3 @@ dependencies { api 'org.apache.commons:commons-math3:3.2' } -integTest.enabled = false diff --git a/x-pack/plugin/async-search/build.gradle b/x-pack/plugin/async-search/build.gradle index 6a2f2b1b7a92..3b7e7b05e803 100644 --- a/x-pack/plugin/async-search/build.gradle +++ b/x-pack/plugin/async-search/build.gradle @@ -29,5 +29,4 @@ dependencies { testImplementation project(path: xpackModule('async')) } -integTest.enabled = false diff --git a/x-pack/plugin/async/build.gradle b/x-pack/plugin/async/build.gradle index eb52faf0e2bd..d2c5dea29951 100644 --- a/x-pack/plugin/async/build.gradle +++ b/x-pack/plugin/async/build.gradle @@ -21,5 +21,5 @@ dependencyLicenses { tasks.named("test").configure { enabled = false } -integTest.enabled = false + diff --git a/x-pack/plugin/autoscaling/build.gradle b/x-pack/plugin/autoscaling/build.gradle index 588225fe31ed..acab0d420236 100644 --- a/x-pack/plugin/autoscaling/build.gradle +++ b/x-pack/plugin/autoscaling/build.gradle @@ -12,8 +12,6 @@ esplugin { } archivesBaseName = 'x-pack-autoscaling' -integTest.enabled = false - tasks.named('internalClusterTest').configure { if (BuildParams.isSnapshotBuild() == false) { systemProperty 'es.autoscaling_feature_flag_registered', 'true' diff --git a/x-pack/plugin/build.gradle b/x-pack/plugin/build.gradle index 6de7a6137d53..0fd91f9fb0a9 100644 --- a/x-pack/plugin/build.gradle +++ b/x-pack/plugin/build.gradle @@ -1,29 +1,35 @@ import org.elasticsearch.gradle.info.BuildParams -apply plugin: 'elasticsearch.testclusters' -apply plugin: 'elasticsearch.standalone-rest-test' -apply plugin: 'elasticsearch.rest-test' -apply plugin: 'elasticsearch.rest-resources' +apply plugin: 'elasticsearch.java-rest-test' +apply plugin: 'elasticsearch.yaml-rest-test' apply plugin: 'elasticsearch.validate-rest-spec' archivesBaseName = 'x-pack' dependencies { - testImplementation project(xpackModule('core')) // this redundant dependency is here to make IntelliJ happy - testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') + yamlRestTestImplementation project(xpackModule('core')) // this redundant dependency is here to make IntelliJ happy + yamlRestTestImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') + javaRestTestImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } configurations { testArtifacts.extendsFrom testRuntime testArtifacts.extendsFrom testImplementation + testArtifacts.extendsFrom yamlRestTestImplementation + testArtifacts.extendsFrom javaRestTestImplementation } restResources { restApi { includeCore '*' + includeXpack '*' + } + restTests { + includeXpack '*' } } +//The api and tests need to stay at src/test/... since some external tooling depends on that exact file path. artifacts { restXpackSpecs(new File(projectDir, "src/test/resources/rest-api-spec/api")) restXpackTests(new File(projectDir, "src/test/resources/rest-api-spec/test")) @@ -31,7 +37,10 @@ artifacts { def testJar = tasks.register("testJar", Jar) { appendix 'test' + duplicatesStrategy = DuplicatesStrategy.INCLUDE from sourceSets.test.output + from sourceSets.yamlRestTest.output + from sourceSets.javaRestTest.output /* * Stick the license and notice file in the jar. This isn't strictly * needed because we don't publish it but it makes our super-paranoid @@ -68,10 +77,10 @@ tasks.register("copyKeyCerts", Copy) { into keystoreDir } // Add keystores to test classpath: it expects it there -sourceSets.test.resources.srcDir(keystoreDir) -processTestResources.dependsOn("copyKeyCerts") +sourceSets.yamlRestTest.resources.srcDir(keystoreDir) +processYamlRestTestResources.dependsOn("copyKeyCerts") -integTest { +yamlRestTest { /* * We have to disable setting the number of available processors as tests in the same JVM randomize processors and will step on each * other if we allow them to set the number of available processors as it's set-once in Netty. @@ -91,7 +100,7 @@ integTest { dependsOn copyKeyCerts } -testClusters.integTest { +testClusters.all { testDistribution = 'DEFAULT' // this is important since we use the reindex module in ML setting 'xpack.ml.enabled', 'true' setting 'xpack.security.enabled', 'true' diff --git a/x-pack/plugin/ccr/build.gradle b/x-pack/plugin/ccr/build.gradle index 8481a6b18c94..82678441c48a 100644 --- a/x-pack/plugin/ccr/build.gradle +++ b/x-pack/plugin/ccr/build.gradle @@ -10,8 +10,6 @@ esplugin { } archivesBaseName = 'x-pack-ccr' -integTest.enabled = false - // Integration Test classes that cannot run with the security manager String[] noSecurityManagerITClasses = ["**/CloseFollowerIndexIT.class"] diff --git a/x-pack/plugin/data-streams/build.gradle b/x-pack/plugin/data-streams/build.gradle index a31c7a4d61b1..d4c74add727a 100644 --- a/x-pack/plugin/data-streams/build.gradle +++ b/x-pack/plugin/data-streams/build.gradle @@ -7,7 +7,6 @@ esplugin { extendedPlugins = ['x-pack-core'] } archivesBaseName = 'x-pack-data-streams' -integTest.enabled = false dependencies { compileOnly project(path: xpackModule('core'), configuration: 'default') diff --git a/x-pack/plugin/deprecation/build.gradle b/x-pack/plugin/deprecation/build.gradle index 8e5ceabd3db4..01b2b70d3c53 100644 --- a/x-pack/plugin/deprecation/build.gradle +++ b/x-pack/plugin/deprecation/build.gradle @@ -21,4 +21,3 @@ dependencies { compileOnly project(":x-pack:plugin:core") } -integTest.enabled = false diff --git a/x-pack/plugin/enrich/build.gradle b/x-pack/plugin/enrich/build.gradle index db1ed2400472..fea9a96242f4 100644 --- a/x-pack/plugin/enrich/build.gradle +++ b/x-pack/plugin/enrich/build.gradle @@ -17,9 +17,6 @@ dependencies { testImplementation project(path: xpackModule('monitoring'), configuration: 'testArtifacts') } -// No real integ tests in the module: -integTest.enabled = false - // add all sub-projects of the qa sub-project gradle.projectsEvaluated { project.subprojects diff --git a/x-pack/plugin/eql/build.gradle b/x-pack/plugin/eql/build.gradle index 0e17197f586f..f7db59047d9b 100644 --- a/x-pack/plugin/eql/build.gradle +++ b/x-pack/plugin/eql/build.gradle @@ -15,9 +15,6 @@ ext { archivesBaseName = 'x-pack-eql' -// All integration tests live in qa modules -integTest.enabled = false - dependencies { compileOnly project(path: xpackModule('core'), configuration: 'default') compileOnly(project(':modules:lang-painless')) { diff --git a/x-pack/plugin/frozen-indices/build.gradle b/x-pack/plugin/frozen-indices/build.gradle index 7e8108b6616f..afd26009e0ce 100644 --- a/x-pack/plugin/frozen-indices/build.gradle +++ b/x-pack/plugin/frozen-indices/build.gradle @@ -12,8 +12,3 @@ dependencies { compileOnly project(path: xpackModule('core'), configuration: 'default') testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } - -// xpack modules are installed in real clusters as the meta plugin, so -// installing them as individual plugins for integ tests doesn't make sense, -// so we disable integ tests -integTest.enabled = false diff --git a/x-pack/plugin/graph/build.gradle b/x-pack/plugin/graph/build.gradle index 336d6e810498..8e894d365b53 100644 --- a/x-pack/plugin/graph/build.gradle +++ b/x-pack/plugin/graph/build.gradle @@ -22,4 +22,3 @@ gradle.projectsEvaluated { .each { check.dependsOn it.check } } -integTest.enabled = false diff --git a/x-pack/plugin/identity-provider/build.gradle b/x-pack/plugin/identity-provider/build.gradle index fdda23372b28..c3d312b28860 100644 --- a/x-pack/plugin/identity-provider/build.gradle +++ b/x-pack/plugin/identity-provider/build.gradle @@ -358,11 +358,6 @@ internalClusterTest { } -// xpack modules are installed in real clusters as the meta plugin, so -// installing them as individual plugins for integ tests doesn't make sense, -// so we disable integ tests -integTest.enabled = false - // add all sub-projects of the qa sub-project gradle.projectsEvaluated { project.subprojects diff --git a/x-pack/plugin/ilm/build.gradle b/x-pack/plugin/ilm/build.gradle index e049ac7f2a2c..aa8f3902064c 100644 --- a/x-pack/plugin/ilm/build.gradle +++ b/x-pack/plugin/ilm/build.gradle @@ -25,4 +25,3 @@ gradle.projectsEvaluated { .each { check.dependsOn it.check } } -integTest.enabled = false diff --git a/x-pack/plugin/logstash/build.gradle b/x-pack/plugin/logstash/build.gradle index 344fccd59f80..3f872950c1a5 100644 --- a/x-pack/plugin/logstash/build.gradle +++ b/x-pack/plugin/logstash/build.gradle @@ -12,4 +12,3 @@ dependencies { testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } -integTest.enabled = false diff --git a/x-pack/plugin/mapper-constant-keyword/build.gradle b/x-pack/plugin/mapper-constant-keyword/build.gradle index 85109dbf0a22..b451e82e30c0 100644 --- a/x-pack/plugin/mapper-constant-keyword/build.gradle +++ b/x-pack/plugin/mapper-constant-keyword/build.gradle @@ -14,4 +14,3 @@ dependencies { internalClusterTestImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } -integTest.enabled = false diff --git a/x-pack/plugin/mapper-flattened/build.gradle b/x-pack/plugin/mapper-flattened/build.gradle index 46e83d5275cf..d24e37aa3200 100644 --- a/x-pack/plugin/mapper-flattened/build.gradle +++ b/x-pack/plugin/mapper-flattened/build.gradle @@ -14,4 +14,3 @@ dependencies { testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } -integTest.enabled = false diff --git a/x-pack/plugin/ml/build.gradle b/x-pack/plugin/ml/build.gradle index 915cc0f4e500..c104f94770db 100644 --- a/x-pack/plugin/ml/build.gradle +++ b/x-pack/plugin/ml/build.gradle @@ -97,13 +97,6 @@ project.afterEvaluate { } } -// xpack modules are installed in real clusters as the meta plugin, so -// installing them as individual plugins for integ tests doesn't make sense, -// so we disable integ tests -tasks.named("integTest").configure { - enabled = false -} - def checkTask = tasks.named("check") // add all sub-projects of the qa sub-project gradle.projectsEvaluated { diff --git a/x-pack/plugin/monitoring/build.gradle b/x-pack/plugin/monitoring/build.gradle index e7b9bad788ff..aeed0d89ffd8 100644 --- a/x-pack/plugin/monitoring/build.gradle +++ b/x-pack/plugin/monitoring/build.gradle @@ -40,8 +40,3 @@ tasks.named("dependencyLicenses").configure { mapping from: /http.*/, to: 'httpclient' // pulled in by rest client mapping from: /commons-.*/, to: 'commons' // pulled in by rest client } - -// xpack modules are installed in real clusters as the meta plugin, so -// installing them as individual plugins for integ tests doesn't make sense, -// so we disable integ tests -tasks.named("integTest").configure { enabled = false } diff --git a/x-pack/plugin/ql/build.gradle b/x-pack/plugin/ql/build.gradle index 9a3d984a2d4a..37140dda1ecf 100644 --- a/x-pack/plugin/ql/build.gradle +++ b/x-pack/plugin/ql/build.gradle @@ -29,8 +29,3 @@ artifacts { archives tasks.named("jar") testArtifacts testJar } - -// disable integration tests for now -tasks.named("integTest").configure { - enabled = false -} diff --git a/x-pack/plugin/repositories-metering-api/build.gradle b/x-pack/plugin/repositories-metering-api/build.gradle index 23c911c15c76..f0ec7269764a 100644 --- a/x-pack/plugin/repositories-metering-api/build.gradle +++ b/x-pack/plugin/repositories-metering-api/build.gradle @@ -1,5 +1,3 @@ -evaluationDependsOn(xpackModule('core')) - apply plugin: 'elasticsearch.esplugin' esplugin { name 'repositories-metering-api' @@ -14,11 +12,6 @@ dependencies { testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } -// xpack modules are installed in real clusters as the meta plugin, so -// installing them as individual plugins for integ tests doesn't make sense, -// so we disable integ tests -integTest.enabled = false - // add all sub-projects of the qa sub-project gradle.projectsEvaluated { project.subprojects @@ -41,6 +34,3 @@ task testJar(type: Jar) { artifacts { testArtifacts testJar } - -test { -} diff --git a/x-pack/plugin/rollup/build.gradle b/x-pack/plugin/rollup/build.gradle index e954533d2872..d7815ee6be71 100644 --- a/x-pack/plugin/rollup/build.gradle +++ b/x-pack/plugin/rollup/build.gradle @@ -14,4 +14,3 @@ dependencies { testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } -integTest.enabled = false diff --git a/x-pack/plugin/runtime-fields/build.gradle b/x-pack/plugin/runtime-fields/build.gradle index 1f44b5c019e5..6e1f92b11222 100644 --- a/x-pack/plugin/runtime-fields/build.gradle +++ b/x-pack/plugin/runtime-fields/build.gradle @@ -1,5 +1,3 @@ -evaluationDependsOn(xpackModule('core')) - apply plugin: 'elasticsearch.esplugin' esplugin { @@ -23,4 +21,3 @@ dependencyLicenses { ignoreSha 'x-pack-core' } -integTest.enabled = false diff --git a/x-pack/plugin/runtime-fields/qa/with-security/build.gradle b/x-pack/plugin/runtime-fields/qa/with-security/build.gradle index 8442e1aa7b0c..0f622a8c44f6 100644 --- a/x-pack/plugin/runtime-fields/qa/with-security/build.gradle +++ b/x-pack/plugin/runtime-fields/qa/with-security/build.gradle @@ -1,20 +1,18 @@ -apply plugin: 'elasticsearch.testclusters' -apply plugin: 'elasticsearch.standalone-rest-test' -apply plugin: 'elasticsearch.rest-test' +apply plugin: 'elasticsearch.java-rest-test' dependencies { - testImplementation project(path: xpackProject('plugin').path, configuration: 'testArtifacts') + javaRestTestImplementation project(path: xpackProject('plugin').path, configuration: 'testArtifacts') } def clusterCredentials = [username: System.getProperty('tests.rest.cluster.username', 'test_admin'), password: System.getProperty('tests.rest.cluster.password', 'x-pack-test-password')] -integTest { +javaRestTest { systemProperty 'tests.rest.cluster.username', clusterCredentials.username systemProperty 'tests.rest.cluster.password', clusterCredentials.password } -testClusters.integTest { +testClusters.all { testDistribution = 'DEFAULT' setting 'xpack.security.enabled', 'true' setting 'xpack.watcher.enabled', 'false' diff --git a/x-pack/plugin/runtime-fields/qa/with-security/src/test/java/org/elasticsearch/xpack/security/PermissionsIT.java b/x-pack/plugin/runtime-fields/qa/with-security/src/javaRestTest/java/org/elasticsearch/xpack/security/PermissionsIT.java similarity index 100% rename from x-pack/plugin/runtime-fields/qa/with-security/src/test/java/org/elasticsearch/xpack/security/PermissionsIT.java rename to x-pack/plugin/runtime-fields/qa/with-security/src/javaRestTest/java/org/elasticsearch/xpack/security/PermissionsIT.java diff --git a/x-pack/plugin/search-business-rules/build.gradle b/x-pack/plugin/search-business-rules/build.gradle index 4a6128c04bf2..35fabbb7f6b4 100644 --- a/x-pack/plugin/search-business-rules/build.gradle +++ b/x-pack/plugin/search-business-rules/build.gradle @@ -9,8 +9,6 @@ esplugin { } archivesBaseName = 'x-pack-searchbusinessrules' -integTest.enabled = false - dependencies { compileOnly project(path: xpackModule('core'), configuration: 'default') testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') diff --git a/x-pack/plugin/searchable-snapshots/build.gradle b/x-pack/plugin/searchable-snapshots/build.gradle index 34111a37a149..eb56c86d9066 100644 --- a/x-pack/plugin/searchable-snapshots/build.gradle +++ b/x-pack/plugin/searchable-snapshots/build.gradle @@ -15,11 +15,6 @@ dependencies { internalClusterTestImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } -// xpack modules are installed in real clusters as the meta plugin, so -// installing them as individual plugins for integ tests doesn't make sense, -// so we disable integ tests -integTest.enabled = false - // add all sub-projects of the qa sub-project gradle.projectsEvaluated { project.subprojects @@ -43,7 +38,7 @@ artifacts { testArtifacts testJar } -testClusters.integTest { +testClusters.all { if (BuildParams.isSnapshotBuild() == false) { systemProperty 'es.searchable_snapshots_feature_enabled', 'true' } diff --git a/x-pack/plugin/security/build.gradle b/x-pack/plugin/security/build.gradle index b6d750b1ea09..0edb13a9085f 100644 --- a/x-pack/plugin/security/build.gradle +++ b/x-pack/plugin/security/build.gradle @@ -484,11 +484,6 @@ internalClusterTest { systemProperty 'es.transport.buffer.size', '256k' } -// xpack modules are installed in real clusters as the meta plugin, so -// installing them as individual plugins for integ tests doesn't make sense, -// so we disable integ tests -integTest.enabled = false - // add all sub-projects of the qa sub-project gradle.projectsEvaluated { project.subprojects diff --git a/x-pack/plugin/sql/build.gradle b/x-pack/plugin/sql/build.gradle index dcabc0f403ad..1f8c39c45ccf 100644 --- a/x-pack/plugin/sql/build.gradle +++ b/x-pack/plugin/sql/build.gradle @@ -25,9 +25,6 @@ configurations { archivesBaseName = 'x-pack-sql' -// All integration tests live in qa modules -integTest.enabled = false - dependencies { compileOnly project(path: xpackModule('core'), configuration: 'default') compileOnly(project(':modules:lang-painless')) { diff --git a/x-pack/plugin/src/test/java/org/elasticsearch/xpack/test/rest/CatIndicesWithSecurityIT.java b/x-pack/plugin/src/javaRestTest/java/org/elasticsearch/xpack/test/rest/CatIndicesWithSecurityIT.java similarity index 100% rename from x-pack/plugin/src/test/java/org/elasticsearch/xpack/test/rest/CatIndicesWithSecurityIT.java rename to x-pack/plugin/src/javaRestTest/java/org/elasticsearch/xpack/test/rest/CatIndicesWithSecurityIT.java diff --git a/x-pack/plugin/src/test/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java b/x-pack/plugin/src/yamlRestTest/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java similarity index 98% rename from x-pack/plugin/src/test/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java rename to x-pack/plugin/src/yamlRestTest/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java index ec229b981023..d2474cd9bf82 100644 --- a/x-pack/plugin/src/test/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java +++ b/x-pack/plugin/src/yamlRestTest/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java @@ -65,7 +65,7 @@ public class XPackRestIT extends ESClientYamlSuiteTestCase { @ParametersFactory public static Iterable parameters() throws Exception { - return ESClientYamlSuiteTestCase.createParameters(); + return createParameters(); } @Override @@ -211,7 +211,7 @@ public class XPackRestIT extends ESClientYamlSuiteTestCase { if (isWaitForPendingTasks()) { // This waits for pending tasks to complete, so must go last (otherwise // it could be waiting for pending tasks while monitoring is still running). - ESRestTestCase.waitForPendingTasks(adminClient(), task -> { + waitForPendingTasks(adminClient(), task -> { // Don't check rollup jobs because we clear them in the superclass. return task.contains(RollupJob.NAME); }); diff --git a/x-pack/plugin/stack/build.gradle b/x-pack/plugin/stack/build.gradle index 08b51fb94af3..ae3aaa6d5357 100644 --- a/x-pack/plugin/stack/build.gradle +++ b/x-pack/plugin/stack/build.gradle @@ -24,4 +24,3 @@ gradle.projectsEvaluated { .each { check.dependsOn it.check } } -integTest.enabled = false diff --git a/x-pack/plugin/transform/build.gradle b/x-pack/plugin/transform/build.gradle index 988d1cf6e9a4..dcd4a79163d4 100644 --- a/x-pack/plugin/transform/build.gradle +++ b/x-pack/plugin/transform/build.gradle @@ -16,11 +16,6 @@ dependencies { testImplementation project(path: ':modules:aggs-matrix-stats') } -// xpack modules are installed in real clusters as the meta plugin, so -// installing them as individual plugins for integ tests doesn't make sense, -// so we disable integ tests -integTest.enabled = false - // add all sub-projects of the qa sub-project gradle.projectsEvaluated { project.subprojects diff --git a/x-pack/plugin/vectors/build.gradle b/x-pack/plugin/vectors/build.gradle index ffaf25c4945e..f5e45206d7d0 100644 --- a/x-pack/plugin/vectors/build.gradle +++ b/x-pack/plugin/vectors/build.gradle @@ -15,4 +15,3 @@ dependencies { testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } -integTest.enabled = false diff --git a/x-pack/plugin/voting-only-node/build.gradle b/x-pack/plugin/voting-only-node/build.gradle index 1bbe42bc426d..0f8082369963 100644 --- a/x-pack/plugin/voting-only-node/build.gradle +++ b/x-pack/plugin/voting-only-node/build.gradle @@ -11,8 +11,3 @@ dependencies { compileOnly project(path: xpackModule('core'), configuration: 'default') testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } - -// xpack modules are installed in real clusters as the meta plugin, so -// installing them as individual plugins for integ tests doesn't make sense, -// so we disable integ tests -integTest.enabled = false diff --git a/x-pack/plugin/watcher/build.gradle b/x-pack/plugin/watcher/build.gradle index f889821eb922..fcca3f6ba448 100644 --- a/x-pack/plugin/watcher/build.gradle +++ b/x-pack/plugin/watcher/build.gradle @@ -87,11 +87,6 @@ internalClusterTest { systemProperty 'es.set.netty.runtime.available.processors', 'false' } -// xpack modules are installed in real clusters as the meta plugin, so -// installing them as individual plugins for integ tests doesn't make sense, -// so we disable integ tests -integTest.enabled = false - // add all sub-projects of the qa sub-project gradle.projectsEvaluated { project.subprojects diff --git a/x-pack/plugin/wildcard/build.gradle b/x-pack/plugin/wildcard/build.gradle index 5565f36f166d..814615322707 100644 --- a/x-pack/plugin/wildcard/build.gradle +++ b/x-pack/plugin/wildcard/build.gradle @@ -13,4 +13,3 @@ dependencies { testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } -integTest.enabled = false diff --git a/x-pack/qa/security-example-spi-extension/build.gradle b/x-pack/qa/security-example-spi-extension/build.gradle index 4b9c9ca070a2..13a544b841df 100644 --- a/x-pack/qa/security-example-spi-extension/build.gradle +++ b/x-pack/qa/security-example-spi-extension/build.gradle @@ -1,4 +1,4 @@ -apply plugin: 'elasticsearch.testclusters' +apply plugin: 'elasticsearch.java-rest-test' apply plugin: 'elasticsearch.esplugin' esplugin { @@ -10,15 +10,14 @@ esplugin { dependencies { compileOnly project(':x-pack:plugin:core') - testImplementation project(':client:rest-high-level') + javaRestTestImplementation project(':x-pack:plugin:core') + javaRestTestImplementation project(':client:rest-high-level') + // let the javaRestTest see the classpath of main + javaRestTestImplementation project.sourceSets.main.runtimeClasspath } -integTest { - dependsOn buildZip -} - -testClusters.integTest { +testClusters.all { // This is important, so that all the modules are available too. // There are index templates that use token filters that are in analysis-module and // processors are being used that are in ingest-common module. diff --git a/x-pack/qa/security-example-spi-extension/src/test/java/org/elasticsearch/example/realm/CustomRealmIT.java b/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/realm/CustomRealmIT.java similarity index 100% rename from x-pack/qa/security-example-spi-extension/src/test/java/org/elasticsearch/example/realm/CustomRealmIT.java rename to x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/realm/CustomRealmIT.java diff --git a/x-pack/qa/security-example-spi-extension/src/test/java/org/elasticsearch/example/realm/CustomRoleMappingRealmIT.java b/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/realm/CustomRoleMappingRealmIT.java similarity index 95% rename from x-pack/qa/security-example-spi-extension/src/test/java/org/elasticsearch/example/realm/CustomRoleMappingRealmIT.java rename to x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/realm/CustomRoleMappingRealmIT.java index 4eee89d0d6ce..cd02d8770d85 100644 --- a/x-pack/qa/security-example-spi-extension/src/test/java/org/elasticsearch/example/realm/CustomRoleMappingRealmIT.java +++ b/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/realm/CustomRoleMappingRealmIT.java @@ -11,6 +11,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.test.rest.ESRestTestCase; +import org.hamcrest.Matchers; import org.junit.Before; import java.util.List; @@ -18,7 +19,6 @@ import java.util.Map; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.instanceOf; -import static org.hamcrest.Matchers.is; /** * Integration test to test authentication with the custom role-mapping realm @@ -61,7 +61,7 @@ public class CustomRoleMappingRealmIT extends ESRestTestCase { final Response response = client().performRequest(request); final Map authenticate = entityAsMap(response); - assertThat(authenticate.get("username"), is(CustomRoleMappingRealm.USERNAME)); + assertThat(authenticate.get("username"), Matchers.is(CustomRoleMappingRealm.USERNAME)); assertThat(authenticate.get("roles"), instanceOf(List.class)); assertThat(authenticate.get("roles"), equalTo(List.of(expectedRole))); } diff --git a/x-pack/qa/security-example-spi-extension/src/test/java/org/elasticsearch/example/role/CustomRolesProviderIT.java b/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/role/CustomRolesProviderIT.java similarity index 95% rename from x-pack/qa/security-example-spi-extension/src/test/java/org/elasticsearch/example/role/CustomRolesProviderIT.java rename to x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/role/CustomRolesProviderIT.java index 3aab2a36562d..a8930f42c742 100644 --- a/x-pack/qa/security-example-spi-extension/src/test/java/org/elasticsearch/example/role/CustomRolesProviderIT.java +++ b/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/role/CustomRolesProviderIT.java @@ -27,7 +27,6 @@ import java.util.List; import static org.elasticsearch.example.role.CustomInMemoryRolesProvider.INDEX; import static org.elasticsearch.example.role.CustomInMemoryRolesProvider.ROLE_A; import static org.elasticsearch.example.role.CustomInMemoryRolesProvider.ROLE_B; -import static org.elasticsearch.xpack.core.security.authc.support.UsernamePasswordToken.basicAuthHeaderValue; import static org.hamcrest.Matchers.is; /** @@ -41,7 +40,7 @@ public class CustomRolesProviderIT extends ESRestTestCase { static { RequestOptions.Builder options = RequestOptions.DEFAULT.toBuilder(); options.addHeader(UsernamePasswordToken.BASIC_AUTH_HEADER, - basicAuthHeaderValue(TEST_USER, new SecureString(TEST_PWD.toCharArray()))); + UsernamePasswordToken.basicAuthHeaderValue(TEST_USER, new SecureString(TEST_PWD.toCharArray()))); AUTH_OPTIONS = options.build(); }