Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
/*
* 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", the "GNU Affero General Public License v3.0 only", and the "Server Side
* Public License v 1"; you may not use this file except in compliance with, at
* your election, the "Elastic License 2.0", the "GNU Affero General Public
* License v3.0 only", or the "Server Side Public License, v 1".
*/

package org.elasticsearch.gradle.internal.transport

import org.gradle.testkit.runner.BuildResult
import org.gradle.testkit.runner.GradleRunner
import org.gradle.testkit.runner.TaskOutcome

class ResolveTransportVersionConflictFuncTest extends AbstractTransportVersionFuncTest {

GradleRunner runResolveAndValidateTask() {
List<String> args = List.of(":myserver:validateTransportVersionResources", ":myserver:resolveTransportVersionConflict")
return gradleRunner(args.toArray())
}

void assertResolveAndValidateSuccess(BuildResult result) {
assert result.task(":myserver:resolveTransportVersionConflict").outcome == TaskOutcome.SUCCESS
assert result.task(":myserver:validateTransportVersionResources").outcome == TaskOutcome.SUCCESS
}

def "update flag works with current"() {
given:
referableAndReferencedTransportVersion("new_tv", "8123000")
file("myserver/src/main/resources/transport/latest/9.2.csv").text =
"""
<<<<<<< HEAD
existing_92,8123000
=======
new_tv,8123000
>>>>>> name
""".strip()

when:
def result = runResolveAndValidateTask().build()

then:
assertResolveAndValidateSuccess(result)
assertReferableDefinition("existing_92", "8123000,8012001")
assertReferableDefinition("new_tv", "8124000")
assertUpperBound("9.2", "new_tv,8124000")
}

def "update flag works with multiple branches"() {
given:
referableAndReferencedTransportVersion("new_tv", "8123000,8012001,7123001")
file("myserver/src/main/resources/transport/latest/9.2.csv").text =
"""
<<<<<<< HEAD
existing_92,8123000
=======
new_tv,8123000
>>>>>> name
""".strip()
file("myserver/src/main/resources/transport/latest/9.1.csv").text =
"""
<<<<<<< HEAD
existing_92,8012001
=======
new_tv,8012001
>>>>>> name
""".strip()
file("myserver/src/main/resources/transport/latest/8.19.csv").text =
"""
<<<<<<< HEAD
initial_8.19.7,7123001
=======
new_tv,7123001
>>>>>> name
""".strip()

when:
def result = runResolveAndValidateTask().build()

then:
assertResolveAndValidateSuccess(result)
assertReferableDefinition("existing_92", "8123000,8012001")
assertUnreferableDefinition("initial_8.19.7", "7123001")
assertReferableDefinition("new_tv", "8124000,8012002,7123002")
assertUpperBound("9.2", "new_tv,8124000")
assertUpperBound("9.1", "new_tv,8012002")
assertUpperBound("8.19", "new_tv,7123002")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
List<String> args = new ArrayList<>()
args.add(":myserver:validateTransportVersionResources")
args.add(":myserver:generateTransportVersion")
args.addAll(additionalArgs);
args.addAll(additionalArgs)
return gradleRunner(args.toArray())
}

def runGenerateTask(String... additionalArgs) {
List<String> args = new ArrayList<>()
args.add(":myserver:generateTransportVersion")
args.addAll(additionalArgs);
args.addAll(additionalArgs)
return gradleRunner(args.toArray())
}

Expand Down Expand Up @@ -283,77 +283,6 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
assertUpperBound("9.2", "second_tv,8124000")
}

def "update flag works with current"() {
given:
referableAndReferencedTransportVersion("new_tv", "8123000")
file("myserver/src/main/resources/transport/latest/9.2.csv").text =
"""
<<<<<<< HEAD
existing_92,8123000
=======
new_tv,8123000
>>>>>> name
""".strip()

when:
def result = runGenerateAndValidateTask("--resolve-conflict").build()

then:
assertGenerateAndValidateSuccess(result)
assertReferableDefinition("existing_92", "8123000,8012001")
assertReferableDefinition("new_tv", "8124000")
assertUpperBound("9.2", "new_tv,8124000")
}

def "update flag works with multiple branches"() {
given:
referableAndReferencedTransportVersion("new_tv", "8123000,8012001,7123001")
file("myserver/src/main/resources/transport/latest/9.2.csv").text =
"""
<<<<<<< HEAD
existing_92,8123000
=======
new_tv,8123000
>>>>>> name
""".strip()
file("myserver/src/main/resources/transport/latest/9.1.csv").text =
"""
<<<<<<< HEAD
existing_92,8012001
=======
new_tv,8012001
>>>>>> name
""".strip()
file("myserver/src/main/resources/transport/latest/8.19.csv").text =
"""
<<<<<<< HEAD
initial_8.19.7,7123001
=======
new_tv,7123001
>>>>>> name
""".strip()

when:
def result = runGenerateAndValidateTask("--resolve-conflict").build()

then:
assertGenerateAndValidateSuccess(result)
assertReferableDefinition("existing_92", "8123000,8012001")
assertUnreferableDefinition("initial_8.19.7", "7123001")
assertReferableDefinition("new_tv", "8124000,8012002,7123002")
assertUpperBound("9.2", "new_tv,8124000")
assertUpperBound("9.1", "new_tv,8012002")
assertUpperBound("8.19", "new_tv,7123002")
}

def "update flag cannot be used with backport branches"() {
when:
def result = runGenerateTask("--resolve-conflict", "--backport-branches=9.1").buildAndFail()

then:
assertGenerateFailure(result, "Cannot use --resolve-conflict with --backport-branches")
}

def "branches param order does not matter"() {
given:
referencedTransportVersion("test_tv")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,7 @@ public abstract class GenerateTransportVersionDefinitionTask extends DefaultTask

@Input
@Optional
@Option(
option = "resolve-conflict",
description = "Regenerate the transport version currently being added to upstream to resolve a merge conflict"
)
public abstract Property<Boolean> getResolveConflict();
abstract Property<Boolean> getResolveConflict();

/**
* The name of the upper bounds file which will be used at runtime on the current branch. Normally
Expand Down
Loading