/*
 * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
 * or more contributor license agreements. Licensed under the Elastic License
 * 2.0; you may not use this file except in compliance with the Elastic License
 * 2.0.
 */

import org.elasticsearch.gradle.Version
import org.elasticsearch.gradle.VersionProperties
import org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask

apply plugin: 'elasticsearch.internal-java-rest-test'
apply plugin: 'elasticsearch.bwc-test'
apply plugin: 'elasticsearch.bc-upgrade-test'

dependencies {
  javaRestTestImplementation project(':x-pack:qa')
  javaRestTestImplementation(project(xpackModule('ql:test-fixtures')))
  javaRestTestImplementation project(xpackModule('sql'))
  javaRestTestImplementation project(xpackModule('sql:qa:server'))
}

// A bug (https://github.com/elastic/elasticsearch/issues/68439) limits us to perform tests with versions from 7.10.3 onwards
def supportedVersion = bwcVersion -> {
  return bwcVersion.onOrAfter(Version.fromString("7.10.3")) && bwcVersion != VersionProperties.elasticsearchVersion
}

buildParams.bwcVersions.withWireCompatible(supportedVersion) { bwcVersion, baseName ->
  tasks.register("v${bwcVersion}#javaRestTest", StandaloneRestIntegTestTask) {
    usesBwcDistribution(bwcVersion)
    systemProperty("tests.old_cluster_version", bwcVersion)
    maxParallelForks = 1
  }

  tasks.register(bwcTaskName(bwcVersion)) {
    dependsOn "v${bwcVersion}#javaRestTest"
  }
}

tasks.named("javaRestTest") {
  enabled = false
}
