/*
 * 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.internal-test-artifact-base'
apply plugin: 'elasticsearch.bwc-test'
apply plugin: 'elasticsearch.bc-upgrade-test'

dependencies {
  javaRestTestImplementation(testArtifact(project(xpackModule('core'))))
  javaRestTestImplementation project(path: xpackModule('inference'))
  clusterPlugins project(
    ':x-pack:plugin:inference:qa:test-service-plugin'
  )
}

// inference is available in 8.11 or later
def supportedVersion = bwcVersion -> {
  return bwcVersion.onOrAfter(Version.fromString("8.11.0")) && bwcVersion != VersionProperties.elasticsearchVersion
}

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

  tasks.register(bwcTaskName(bwcVersion)) {
    dependsOn javaRestTest
  }
}
