146 lines
5.3 KiB
Groovy
146 lines
5.3 KiB
Groovy
import org.elasticsearch.gradle.Version
|
|
import org.elasticsearch.gradle.testclusters.RestTestRunnerTask
|
|
|
|
|
|
apply plugin: 'elasticsearch.testclusters'
|
|
apply plugin: 'elasticsearch.standalone-test'
|
|
|
|
dependencies {
|
|
// TODO: Remove core dependency and change tests to not use builders that are part of xpack-core.
|
|
// Currently needed for ml tests are using the building for datafeed and job config)
|
|
testCompile project(path: xpackModule('core'), configuration: 'testArtifacts')
|
|
|
|
testCompile project(path: ':qa:full-cluster-restart', configuration: 'testArtifacts')
|
|
testCompile project(':x-pack:qa')
|
|
}
|
|
|
|
licenseHeaders {
|
|
approvedLicenses << 'Apache'
|
|
}
|
|
|
|
forbiddenPatterns {
|
|
exclude '**/system_key'
|
|
}
|
|
|
|
String outputDir = "${buildDir}/generated-resources/${project.name}"
|
|
|
|
tasks.register("bwcTest") {
|
|
description = 'Runs backwards compatibility tests.'
|
|
group = 'verification'
|
|
}
|
|
|
|
tasks.register("copyTestNodeKeyMaterial", Copy) {
|
|
from project(':x-pack:plugin:core')
|
|
.files(
|
|
'src/test/resources/org/elasticsearch/xpack/security/transport/ssl/certs/simple/testnode.pem',
|
|
'src/test/resources/org/elasticsearch/xpack/security/transport/ssl/certs/simple/testnode.crt'
|
|
)
|
|
into outputDir
|
|
}
|
|
|
|
configurations {
|
|
restSpec
|
|
}
|
|
|
|
dependencies {
|
|
restSpec project(':rest-api-spec')
|
|
}
|
|
|
|
processTestResources {
|
|
dependsOn configurations.restSpec
|
|
from ({ zipTree(configurations.restSpec.singleFile) }) {
|
|
include 'rest-api-spec/api/**'
|
|
}
|
|
from (project(xpackModule('core')).sourceSets.test.resources) {
|
|
include 'rest-api-spec/api/**'
|
|
}
|
|
}
|
|
|
|
for (Version bwcVersion : bwcVersions.indexCompatible) {
|
|
String baseName = "v${bwcVersion}"
|
|
|
|
testClusters {
|
|
"${baseName}" {
|
|
testDistribution = "DEFAULT"
|
|
versions = [bwcVersion.toString(), project.version]
|
|
numberOfNodes = 2
|
|
setting 'path.repo', "${buildDir}/cluster/shared/repo/${baseName}"
|
|
javaHome = project.file(project.ext.runtimeJavaHome)
|
|
user username: "test_user", password: "x-pack-test-password"
|
|
|
|
setting 'path.repo', "${buildDir}/cluster/shared/repo/${baseName}"
|
|
// some tests rely on the translog not being flushed
|
|
setting 'indices.memory.shard_inactive_time', '20m'
|
|
setting 'xpack.security.enabled', 'true'
|
|
setting 'xpack.security.transport.ssl.enabled', 'true'
|
|
setting 'xpack.license.self_generated.type', 'trial'
|
|
|
|
extraConfigFile 'testnode.pem', file("${outputDir}/testnode.pem")
|
|
extraConfigFile 'testnode.crt', file("${outputDir}/testnode.crt")
|
|
|
|
keystore 'xpack.watcher.encryption_key', file("${project.projectDir}/src/test/resources/system_key")
|
|
setting 'xpack.watcher.encrypt_sensitive_data', 'true'
|
|
|
|
setting 'xpack.security.transport.ssl.key', 'testnode.pem'
|
|
setting 'xpack.security.transport.ssl.certificate', 'testnode.crt'
|
|
keystore 'xpack.security.transport.ssl.secure_key_passphrase', 'testnode'
|
|
}
|
|
}
|
|
|
|
tasks.register("${baseName}#oldClusterTest", RestTestRunnerTask) {
|
|
mustRunAfter(precommit)
|
|
useCluster testClusters."${baseName}"
|
|
dependsOn copyTestNodeKeyMaterial
|
|
doFirst {
|
|
project.delete("${buildDir}/cluster/shared/repo/${baseName}")
|
|
}
|
|
systemProperty 'tests.is_old_cluster', 'true'
|
|
systemProperty 'tests.old_cluster_version', version.toString().minus("-SNAPSHOT")
|
|
exclude 'org/elasticsearch/upgrades/FullClusterRestartIT.class'
|
|
exclude 'org/elasticsearch/upgrades/FullClusterRestartSettingsUpgradeIT.class'
|
|
exclude 'org/elasticsearch/upgrades/QueryBuilderBWCIT.class'
|
|
}
|
|
|
|
|
|
tasks.register("${baseName}#upgradedClusterTest", RestTestRunnerTask) {
|
|
mustRunAfter(precommit)
|
|
useCluster testClusters."${baseName}"
|
|
dependsOn "${baseName}#oldClusterTest"
|
|
doFirst {
|
|
testClusters."${baseName}".goToNextVersion()
|
|
}
|
|
systemProperty 'tests.is_old_cluster', 'false'
|
|
systemProperty 'tests.old_cluster_version', version.toString().minus("-SNAPSHOT")
|
|
exclude 'org/elasticsearch/upgrades/FullClusterRestartIT.class'
|
|
exclude 'org/elasticsearch/upgrades/FullClusterRestartSettingsUpgradeIT.class'
|
|
exclude 'org/elasticsearch/upgrades/QueryBuilderBWCIT.class'
|
|
}
|
|
|
|
tasks.matching { it.name.startsWith(baseName) && it.name.endsWith("ClusterTest") }.configureEach {
|
|
it.systemProperty 'tests.old_cluster_version', bwcVersion.toString().minus("-SNAPSHOT")
|
|
it.systemProperty 'tests.path.repo', "${buildDir}/cluster/shared/repo/${baseName}"
|
|
it.nonInputProperties.systemProperty('tests.rest.cluster', "${-> testClusters."${baseName}".allHttpSocketURI.join(",") }")
|
|
it.nonInputProperties.systemProperty('tests.clustername', "${-> testClusters."${baseName}".getName() }")
|
|
}
|
|
|
|
tasks.register("${baseName}#bwcTest") {
|
|
dependsOn "${baseName}#upgradedClusterTest"
|
|
}
|
|
|
|
if (project.bwc_tests_enabled) {
|
|
bwcTest.dependsOn("${baseName}#bwcTest")
|
|
}
|
|
}
|
|
|
|
task bwcTestSnapshots {
|
|
if (project.bwc_tests_enabled) {
|
|
for (final def version : bwcVersions.unreleasedIndexCompatible) {
|
|
dependsOn "v${version}#bwcTest"
|
|
}
|
|
}
|
|
}
|
|
|
|
check.dependsOn(bwcTestSnapshots)
|
|
|
|
test.enabled = false
|