Remove integTest task from PluginBuildPlugin (#61879)

This commit removes `integTest` task from all es-plugins.  
Most relevant projects have been converted to use yamlRestTest, javaRestTest, 
or internalClusterTest in prior PRs. 

A few projects needed to be adjusted to allow complete removal of this task
* x-pack/plugin - converted to use yamlRestTest and javaRestTest 
* plugins/repository-hdfs - kept the integTest task, but use `rest-test` plugin to define the task
* qa/die-with-dignity - convert to javaRestTest
* x-pack/qa/security-example-spi-extension - convert to javaRestTest
* multiple projects - remove the integTest.enabled = false (yay!)

related: #61802
related: #60630
related: #59444
related: #59089
related: #56841
related: #59939
related: #55896
This commit is contained in:
Jake Landis 2020-09-08 16:41:54 -05:00 committed by GitHub
parent 0684ebc425
commit 1367bd0c92
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
52 changed files with 58 additions and 190 deletions

View file

@ -25,7 +25,6 @@ import org.elasticsearch.gradle.Version
import org.elasticsearch.gradle.VersionProperties import org.elasticsearch.gradle.VersionProperties
import org.elasticsearch.gradle.dependencies.CompileOnlyResolvePlugin import org.elasticsearch.gradle.dependencies.CompileOnlyResolvePlugin
import org.elasticsearch.gradle.info.BuildParams import org.elasticsearch.gradle.info.BuildParams
import org.elasticsearch.gradle.test.RestIntegTestTask
import org.elasticsearch.gradle.test.RestTestBasePlugin import org.elasticsearch.gradle.test.RestTestBasePlugin
import org.elasticsearch.gradle.testclusters.RunTask import org.elasticsearch.gradle.testclusters.RunTask
import org.elasticsearch.gradle.util.Util import org.elasticsearch.gradle.util.Util
@ -60,16 +59,7 @@ class PluginBuildPlugin implements Plugin<Project> {
boolean isXPackModule = project.path.startsWith(':x-pack:plugin') boolean isXPackModule = project.path.startsWith(':x-pack:plugin')
boolean isModule = project.path.startsWith(':modules:') || isXPackModule boolean isModule = project.path.startsWith(':modules:') || isXPackModule
createIntegTestTask(project)
createBundleTasks(project, extension) 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.afterEvaluate {
project.extensions.getByType(PluginPropertiesExtension).extendedPlugins.each { pluginName -> project.extensions.getByType(PluginPropertiesExtension).extendedPlugins.each { pluginName ->
@ -116,14 +106,6 @@ class PluginBuildPlugin implements Plugin<Project> {
} }
} }
//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 { project.tasks.named('testingConventions').configure {
naming.clear() naming.clear()
naming { naming {
@ -142,7 +124,6 @@ class PluginBuildPlugin implements Plugin<Project> {
// allow running ES with this plugin in the foreground of a build // allow running ES with this plugin in the foreground of a build
project.tasks.register('run', RunTask) { project.tasks.register('run', RunTask) {
dependsOn(project.tasks.bundlePlugin) dependsOn(project.tasks.bundlePlugin)
useCluster project.testClusters.integTest
} }
} }
@ -172,13 +153,6 @@ class PluginBuildPlugin implements Plugin<Project> {
} }
} }
/** 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, * Adds a bundlePlugin task which builds the zip containing the plugin jars,
* metadata, properties, and packaging files * metadata, properties, and packaging files

View file

@ -50,7 +50,7 @@ public class PluginBuildPluginTests extends GradleUnitTestCase {
); );
assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(PluginPropertiesExtension.class)); 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") @Ignore("https://github.com/elastic/elasticsearch/issues/47123")

View file

@ -35,4 +35,3 @@ dependenciesInfo.enabled = false
// no unit tests // no unit tests
test.enabled = false test.enabled = false
integTest.enabled = false

View file

@ -253,10 +253,6 @@ project.rootProject.subprojects.findAll { it.parent.path == ':modules' }.each {
copyLog4jProperties(buildOssLog4jConfig, module) copyLog4jProperties(buildOssLog4jConfig, module)
copyLog4jProperties(buildDefaultLog4jConfig, 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 restTestExpansions['expected.modules.count'] += 1
} }

View file

@ -37,8 +37,6 @@ restResources {
} }
} }
integTest.enabled = false
tasks.named("dependencyLicenses").configure { tasks.named("dependencyLicenses").configure {
mapping from: /lucene-.*/, to: 'lucene' mapping from: /lucene-.*/, to: 'lucene'
mapping from: /asm-.*/, to: 'asm' mapping from: /asm-.*/, to: 'asm'

View file

@ -54,8 +54,6 @@ restResources {
} }
} }
integTest.enabled = false
tasks.named("test").configure { tasks.named("test").configure {
// in WhenThingsGoWrongTests we intentionally generate an out of memory error, this prevents the heap from being dumped to disk // in WhenThingsGoWrongTests we intentionally generate an out of memory error, this prevents the heap from being dumped to disk
jvmArgs '-XX:-OmitStackTraceInFastThrow', '-XX:-HeapDumpOnOutOfMemoryError' jvmArgs '-XX:-OmitStackTraceInFastThrow', '-XX:-HeapDumpOnOutOfMemoryError'

View file

@ -22,4 +22,3 @@ esplugin {
classname 'org.elasticsearch.systemd.SystemdPlugin' classname 'org.elasticsearch.systemd.SystemdPlugin'
} }
integTest.enabled = false

View file

@ -29,6 +29,7 @@ import static org.elasticsearch.gradle.PropertyNormalization.IGNORE_VALUE
apply plugin: 'elasticsearch.test.fixtures' apply plugin: 'elasticsearch.test.fixtures'
apply plugin: 'elasticsearch.rest-resources' apply plugin: 'elasticsearch.rest-resources'
apply plugin: 'elasticsearch.rest-test'
esplugin { esplugin {
description 'The HDFS repository plugin adds support for Hadoop Distributed File-System (HDFS) repositories.' 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' 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 realm = "BUILD.ELASTIC.CO"
String krb5conf = project(':test:fixtures:krb5kdc-fixture').ext.krb5Conf("hdfs") String krb5conf = project(':test:fixtures:krb5kdc-fixture').ext.krb5Conf("hdfs")

View file

@ -26,8 +26,6 @@ esplugin {
classname 'org.elasticsearch.transport.nio.NioTransportPlugin' classname 'org.elasticsearch.transport.nio.NioTransportPlugin'
} }
// integTest have been converted to internalClusterTest
integTest.enabled = false
dependencies { dependencies {
api project(':libs:elasticsearch-nio') api project(':libs:elasticsearch-nio')

View file

@ -1,25 +1,6 @@
import org.elasticsearch.gradle.info.BuildParams import org.elasticsearch.gradle.info.BuildParams
/* apply plugin: 'elasticsearch.java-rest-test'
* 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.esplugin' apply plugin: 'elasticsearch.esplugin'
esplugin { esplugin {
@ -27,17 +8,21 @@ esplugin {
classname 'org.elasticsearch.DieWithDignityPlugin' 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.security.manager', 'false'
systemProperty 'tests.system_call_filter', '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 systemProperty 'runtime.java.home', BuildParams.runtimeJavaHome
} }
testClusters.integTest { testClusters.javaRestTest {
systemProperty "die.with.dignity.test", "whatever" systemProperty "die.with.dignity.test", "whatever"
} }
test.enabled = false test.enabled = false
check.dependsOn integTest

View file

@ -7,7 +7,7 @@
* not use this file except in compliance with the License. * not use this file except in compliance with the License.
* You may obtain a copy of the License at * 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, * Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an * software distributed under the License is distributed on an
@ -63,13 +63,13 @@ public class DieWithDignityIT extends ESRestTestCase {
try { try {
while (it.hasNext() && (fatalError == false || fatalErrorInThreadExiting == false)) { while (it.hasNext() && (fatalError == false || fatalErrorInThreadExiting == false)) {
final String line = it.next(); 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; fatalError = true;
} else if (containsAll( } else if (containsAll(
line, line,
".*ERROR.*", ".*ERROR.*",
".*ElasticsearchUncaughtExceptionHandler.*", ".*ElasticsearchUncaughtExceptionHandler.*",
".*integTest-0.*", ".*javaRestTest-0.*",
".*fatal error in thread \\[Thread-\\d+\\], exiting.*", ".*fatal error in thread \\[Thread-\\d+\\], exiting.*",
".*java.lang.OutOfMemoryError: die with dignity.*" ".*java.lang.OutOfMemoryError: die with dignity.*"
)) { )) {

View file

@ -20,4 +20,3 @@ dependencies {
api 'org.apache.commons:commons-math3:3.2' api 'org.apache.commons:commons-math3:3.2'
} }
integTest.enabled = false

View file

@ -29,5 +29,4 @@ dependencies {
testImplementation project(path: xpackModule('async')) testImplementation project(path: xpackModule('async'))
} }
integTest.enabled = false

View file

@ -21,5 +21,5 @@ dependencyLicenses {
tasks.named("test").configure { tasks.named("test").configure {
enabled = false enabled = false
} }
integTest.enabled = false

View file

@ -12,8 +12,6 @@ esplugin {
} }
archivesBaseName = 'x-pack-autoscaling' archivesBaseName = 'x-pack-autoscaling'
integTest.enabled = false
tasks.named('internalClusterTest').configure { tasks.named('internalClusterTest').configure {
if (BuildParams.isSnapshotBuild() == false) { if (BuildParams.isSnapshotBuild() == false) {
systemProperty 'es.autoscaling_feature_flag_registered', 'true' systemProperty 'es.autoscaling_feature_flag_registered', 'true'

View file

@ -1,29 +1,35 @@
import org.elasticsearch.gradle.info.BuildParams import org.elasticsearch.gradle.info.BuildParams
apply plugin: 'elasticsearch.testclusters' apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.standalone-rest-test' apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.rest-test'
apply plugin: 'elasticsearch.rest-resources'
apply plugin: 'elasticsearch.validate-rest-spec' apply plugin: 'elasticsearch.validate-rest-spec'
archivesBaseName = 'x-pack' archivesBaseName = 'x-pack'
dependencies { dependencies {
testImplementation project(xpackModule('core')) // this redundant dependency is here to make IntelliJ happy yamlRestTestImplementation project(xpackModule('core')) // this redundant dependency is here to make IntelliJ happy
testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') yamlRestTestImplementation project(path: xpackModule('core'), configuration: 'testArtifacts')
javaRestTestImplementation project(path: xpackModule('core'), configuration: 'testArtifacts')
} }
configurations { configurations {
testArtifacts.extendsFrom testRuntime testArtifacts.extendsFrom testRuntime
testArtifacts.extendsFrom testImplementation testArtifacts.extendsFrom testImplementation
testArtifacts.extendsFrom yamlRestTestImplementation
testArtifacts.extendsFrom javaRestTestImplementation
} }
restResources { restResources {
restApi { restApi {
includeCore '*' 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 { artifacts {
restXpackSpecs(new File(projectDir, "src/test/resources/rest-api-spec/api")) restXpackSpecs(new File(projectDir, "src/test/resources/rest-api-spec/api"))
restXpackTests(new File(projectDir, "src/test/resources/rest-api-spec/test")) restXpackTests(new File(projectDir, "src/test/resources/rest-api-spec/test"))
@ -31,7 +37,10 @@ artifacts {
def testJar = tasks.register("testJar", Jar) { def testJar = tasks.register("testJar", Jar) {
appendix 'test' appendix 'test'
duplicatesStrategy = DuplicatesStrategy.INCLUDE
from sourceSets.test.output 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 * 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 * needed because we don't publish it but it makes our super-paranoid
@ -68,10 +77,10 @@ tasks.register("copyKeyCerts", Copy) {
into keystoreDir into keystoreDir
} }
// Add keystores to test classpath: it expects it there // Add keystores to test classpath: it expects it there
sourceSets.test.resources.srcDir(keystoreDir) sourceSets.yamlRestTest.resources.srcDir(keystoreDir)
processTestResources.dependsOn("copyKeyCerts") 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 * 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. * 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 dependsOn copyKeyCerts
} }
testClusters.integTest { testClusters.all {
testDistribution = 'DEFAULT' // this is important since we use the reindex module in ML testDistribution = 'DEFAULT' // this is important since we use the reindex module in ML
setting 'xpack.ml.enabled', 'true' setting 'xpack.ml.enabled', 'true'
setting 'xpack.security.enabled', 'true' setting 'xpack.security.enabled', 'true'

View file

@ -10,8 +10,6 @@ esplugin {
} }
archivesBaseName = 'x-pack-ccr' archivesBaseName = 'x-pack-ccr'
integTest.enabled = false
// Integration Test classes that cannot run with the security manager // Integration Test classes that cannot run with the security manager
String[] noSecurityManagerITClasses = ["**/CloseFollowerIndexIT.class"] String[] noSecurityManagerITClasses = ["**/CloseFollowerIndexIT.class"]

View file

@ -7,7 +7,6 @@ esplugin {
extendedPlugins = ['x-pack-core'] extendedPlugins = ['x-pack-core']
} }
archivesBaseName = 'x-pack-data-streams' archivesBaseName = 'x-pack-data-streams'
integTest.enabled = false
dependencies { dependencies {
compileOnly project(path: xpackModule('core'), configuration: 'default') compileOnly project(path: xpackModule('core'), configuration: 'default')

View file

@ -21,4 +21,3 @@ dependencies {
compileOnly project(":x-pack:plugin:core") compileOnly project(":x-pack:plugin:core")
} }
integTest.enabled = false

View file

@ -17,9 +17,6 @@ dependencies {
testImplementation project(path: xpackModule('monitoring'), configuration: 'testArtifacts') 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 // add all sub-projects of the qa sub-project
gradle.projectsEvaluated { gradle.projectsEvaluated {
project.subprojects project.subprojects

View file

@ -15,9 +15,6 @@ ext {
archivesBaseName = 'x-pack-eql' archivesBaseName = 'x-pack-eql'
// All integration tests live in qa modules
integTest.enabled = false
dependencies { dependencies {
compileOnly project(path: xpackModule('core'), configuration: 'default') compileOnly project(path: xpackModule('core'), configuration: 'default')
compileOnly(project(':modules:lang-painless')) { compileOnly(project(':modules:lang-painless')) {

View file

@ -12,8 +12,3 @@ dependencies {
compileOnly project(path: xpackModule('core'), configuration: 'default') compileOnly project(path: xpackModule('core'), configuration: 'default')
testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') 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

View file

@ -22,4 +22,3 @@ gradle.projectsEvaluated {
.each { check.dependsOn it.check } .each { check.dependsOn it.check }
} }
integTest.enabled = false

View file

@ -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 // add all sub-projects of the qa sub-project
gradle.projectsEvaluated { gradle.projectsEvaluated {
project.subprojects project.subprojects

View file

@ -25,4 +25,3 @@ gradle.projectsEvaluated {
.each { check.dependsOn it.check } .each { check.dependsOn it.check }
} }
integTest.enabled = false

View file

@ -12,4 +12,3 @@ dependencies {
testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts')
} }
integTest.enabled = false

View file

@ -14,4 +14,3 @@ dependencies {
internalClusterTestImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') internalClusterTestImplementation project(path: xpackModule('core'), configuration: 'testArtifacts')
} }
integTest.enabled = false

View file

@ -14,4 +14,3 @@ dependencies {
testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts')
} }
integTest.enabled = false

View file

@ -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") def checkTask = tasks.named("check")
// add all sub-projects of the qa sub-project // add all sub-projects of the qa sub-project
gradle.projectsEvaluated { gradle.projectsEvaluated {

View file

@ -40,8 +40,3 @@ tasks.named("dependencyLicenses").configure {
mapping from: /http.*/, to: 'httpclient' // pulled in by rest client mapping from: /http.*/, to: 'httpclient' // pulled in by rest client
mapping from: /commons-.*/, to: 'commons' // 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 }

View file

@ -29,8 +29,3 @@ artifacts {
archives tasks.named("jar") archives tasks.named("jar")
testArtifacts testJar testArtifacts testJar
} }
// disable integration tests for now
tasks.named("integTest").configure {
enabled = false
}

View file

@ -1,5 +1,3 @@
evaluationDependsOn(xpackModule('core'))
apply plugin: 'elasticsearch.esplugin' apply plugin: 'elasticsearch.esplugin'
esplugin { esplugin {
name 'repositories-metering-api' name 'repositories-metering-api'
@ -14,11 +12,6 @@ dependencies {
testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') 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 // add all sub-projects of the qa sub-project
gradle.projectsEvaluated { gradle.projectsEvaluated {
project.subprojects project.subprojects
@ -41,6 +34,3 @@ task testJar(type: Jar) {
artifacts { artifacts {
testArtifacts testJar testArtifacts testJar
} }
test {
}

View file

@ -14,4 +14,3 @@ dependencies {
testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts')
} }
integTest.enabled = false

View file

@ -1,5 +1,3 @@
evaluationDependsOn(xpackModule('core'))
apply plugin: 'elasticsearch.esplugin' apply plugin: 'elasticsearch.esplugin'
esplugin { esplugin {
@ -23,4 +21,3 @@ dependencyLicenses {
ignoreSha 'x-pack-core' ignoreSha 'x-pack-core'
} }
integTest.enabled = false

View file

@ -1,20 +1,18 @@
apply plugin: 'elasticsearch.testclusters' apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.standalone-rest-test'
apply plugin: 'elasticsearch.rest-test'
dependencies { 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'), def clusterCredentials = [username: System.getProperty('tests.rest.cluster.username', 'test_admin'),
password: System.getProperty('tests.rest.cluster.password', 'x-pack-test-password')] password: System.getProperty('tests.rest.cluster.password', 'x-pack-test-password')]
integTest { javaRestTest {
systemProperty 'tests.rest.cluster.username', clusterCredentials.username systemProperty 'tests.rest.cluster.username', clusterCredentials.username
systemProperty 'tests.rest.cluster.password', clusterCredentials.password systemProperty 'tests.rest.cluster.password', clusterCredentials.password
} }
testClusters.integTest { testClusters.all {
testDistribution = 'DEFAULT' testDistribution = 'DEFAULT'
setting 'xpack.security.enabled', 'true' setting 'xpack.security.enabled', 'true'
setting 'xpack.watcher.enabled', 'false' setting 'xpack.watcher.enabled', 'false'

View file

@ -9,8 +9,6 @@ esplugin {
} }
archivesBaseName = 'x-pack-searchbusinessrules' archivesBaseName = 'x-pack-searchbusinessrules'
integTest.enabled = false
dependencies { dependencies {
compileOnly project(path: xpackModule('core'), configuration: 'default') compileOnly project(path: xpackModule('core'), configuration: 'default')
testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts')

View file

@ -15,11 +15,6 @@ dependencies {
internalClusterTestImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') 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 // add all sub-projects of the qa sub-project
gradle.projectsEvaluated { gradle.projectsEvaluated {
project.subprojects project.subprojects
@ -43,7 +38,7 @@ artifacts {
testArtifacts testJar testArtifacts testJar
} }
testClusters.integTest { testClusters.all {
if (BuildParams.isSnapshotBuild() == false) { if (BuildParams.isSnapshotBuild() == false) {
systemProperty 'es.searchable_snapshots_feature_enabled', 'true' systemProperty 'es.searchable_snapshots_feature_enabled', 'true'
} }

View file

@ -484,11 +484,6 @@ internalClusterTest {
systemProperty 'es.transport.buffer.size', '256k' 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 // add all sub-projects of the qa sub-project
gradle.projectsEvaluated { gradle.projectsEvaluated {
project.subprojects project.subprojects

View file

@ -25,9 +25,6 @@ configurations {
archivesBaseName = 'x-pack-sql' archivesBaseName = 'x-pack-sql'
// All integration tests live in qa modules
integTest.enabled = false
dependencies { dependencies {
compileOnly project(path: xpackModule('core'), configuration: 'default') compileOnly project(path: xpackModule('core'), configuration: 'default')
compileOnly(project(':modules:lang-painless')) { compileOnly(project(':modules:lang-painless')) {

View file

@ -65,7 +65,7 @@ public class XPackRestIT extends ESClientYamlSuiteTestCase {
@ParametersFactory @ParametersFactory
public static Iterable<Object[]> parameters() throws Exception { public static Iterable<Object[]> parameters() throws Exception {
return ESClientYamlSuiteTestCase.createParameters(); return createParameters();
} }
@Override @Override
@ -211,7 +211,7 @@ public class XPackRestIT extends ESClientYamlSuiteTestCase {
if (isWaitForPendingTasks()) { if (isWaitForPendingTasks()) {
// This waits for pending tasks to complete, so must go last (otherwise // This waits for pending tasks to complete, so must go last (otherwise
// it could be waiting for pending tasks while monitoring is still running). // 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. // Don't check rollup jobs because we clear them in the superclass.
return task.contains(RollupJob.NAME); return task.contains(RollupJob.NAME);
}); });

View file

@ -24,4 +24,3 @@ gradle.projectsEvaluated {
.each { check.dependsOn it.check } .each { check.dependsOn it.check }
} }
integTest.enabled = false

View file

@ -16,11 +16,6 @@ dependencies {
testImplementation project(path: ':modules:aggs-matrix-stats') 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 // add all sub-projects of the qa sub-project
gradle.projectsEvaluated { gradle.projectsEvaluated {
project.subprojects project.subprojects

View file

@ -15,4 +15,3 @@ dependencies {
testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts')
} }
integTest.enabled = false

View file

@ -11,8 +11,3 @@ dependencies {
compileOnly project(path: xpackModule('core'), configuration: 'default') compileOnly project(path: xpackModule('core'), configuration: 'default')
testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') 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

View file

@ -87,11 +87,6 @@ internalClusterTest {
systemProperty 'es.set.netty.runtime.available.processors', 'false' 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 // add all sub-projects of the qa sub-project
gradle.projectsEvaluated { gradle.projectsEvaluated {
project.subprojects project.subprojects

View file

@ -13,4 +13,3 @@ dependencies {
testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts')
} }
integTest.enabled = false

View file

@ -1,4 +1,4 @@
apply plugin: 'elasticsearch.testclusters' apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.esplugin' apply plugin: 'elasticsearch.esplugin'
esplugin { esplugin {
@ -10,15 +10,14 @@ esplugin {
dependencies { dependencies {
compileOnly project(':x-pack:plugin:core') 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 { testClusters.all {
dependsOn buildZip
}
testClusters.integTest {
// This is important, so that all the modules are available too. // 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 // There are index templates that use token filters that are in analysis-module and
// processors are being used that are in ingest-common module. // processors are being used that are in ingest-common module.

View file

@ -11,6 +11,7 @@ import org.elasticsearch.client.Response;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.common.util.concurrent.ThreadContext;
import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.test.rest.ESRestTestCase;
import org.hamcrest.Matchers;
import org.junit.Before; import org.junit.Before;
import java.util.List; import java.util.List;
@ -18,7 +19,6 @@ import java.util.Map;
import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is;
/** /**
* Integration test to test authentication with the custom role-mapping realm * 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 Response response = client().performRequest(request);
final Map<String, Object> authenticate = entityAsMap(response); final Map<String, Object> 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"), instanceOf(List.class));
assertThat(authenticate.get("roles"), equalTo(List.of(expectedRole))); assertThat(authenticate.get("roles"), equalTo(List.of(expectedRole)));
} }

View file

@ -27,7 +27,6 @@ import java.util.List;
import static org.elasticsearch.example.role.CustomInMemoryRolesProvider.INDEX; 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_A;
import static org.elasticsearch.example.role.CustomInMemoryRolesProvider.ROLE_B; 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; import static org.hamcrest.Matchers.is;
/** /**
@ -41,7 +40,7 @@ public class CustomRolesProviderIT extends ESRestTestCase {
static { static {
RequestOptions.Builder options = RequestOptions.DEFAULT.toBuilder(); RequestOptions.Builder options = RequestOptions.DEFAULT.toBuilder();
options.addHeader(UsernamePasswordToken.BASIC_AUTH_HEADER, 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(); AUTH_OPTIONS = options.build();
} }