@@ -11,9 +11,12 @@ package org.elasticsearch.gradle.internal.transport
1111
1212import org.elasticsearch.gradle.Version
1313import org.elasticsearch.gradle.VersionProperties
14+ import org.elasticsearch.gradle.fixtures.WiremockFixture
1415import org.gradle.testkit.runner.BuildResult
1516import org.gradle.testkit.runner.TaskOutcome
1617
18+ import java.nio.charset.StandardCharsets
19+
1720class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTest {
1821
1922 def runGenerateAndValidateTask (String ... additionalArgs ) {
@@ -24,6 +27,11 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
2427 return gradleRunner(args. toArray())
2528 }
2629
30+ def runGenerateAndValidateWithLabels (String ... labels ) {
31+ String labelsStr = String . join(System . lineSeparator(), List . of(labels));
32+ return runGenerateAndValidateTask(). withEnvironment(Map . of(" PULL_REQUEST_LABELS" , labelsStr));
33+ }
34+
2735 def runGenerateTask (String ... additionalArgs ) {
2836 List<String > args = new ArrayList<> ()
2937 args. add(" :myserver:generateTransportVersionDefinition" )
@@ -402,4 +410,57 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
402410 assertReferableDefinition(" new_tv" , " 9001000" )
403411 assertUpperBound(releaseBranch, " new_tv,9001000" )
404412 }
413+
414+ def " branch from pr targeting main" () {
415+ given :
416+ referencedTransportVersion(" new_tv" )
417+
418+ when :
419+ def result = runGenerateAndValidateWithLabels(" v9.2.0" ). build()
420+
421+ then :
422+ assertGenerateAndValidateSuccess(result)
423+ assertReferableDefinition(" new_tv" , " 8124000" )
424+ assertUpperBound(" 9.2" , " new_tv,8124000" )
425+ }
426+
427+ def " branch from pr for backport" () {
428+ given :
429+ referencedTransportVersion(" new_tv" )
430+
431+ when :
432+ def result = runGenerateAndValidateWithLabels(" v9.2.0" , " v9.1.2" ). build()
433+
434+ then :
435+ assertGenerateAndValidateSuccess(result)
436+ assertReferableDefinition(" new_tv" , " 8124000,8012002" )
437+ assertUpperBound(" 9.2" , " new_tv,8124000" )
438+ assertUpperBound(" 9.1" , " new_tv,8012002" )
439+ }
440+
441+ def " branch from pr with other labels" () {
442+ given :
443+ referencedTransportVersion(" new_tv" )
444+
445+ when :
446+ def result = runGenerateAndValidateWithLabels(" >test" , " v9.2.0" , " :Core/Infra/Core" ). build()
447+
448+ then :
449+ assertGenerateAndValidateSuccess(result)
450+ assertReferableDefinition(" new_tv" , " 8124000" )
451+ assertUpperBound(" 9.2" , " new_tv,8124000" )
452+ }
453+
454+ def " branch from pr default to main" () {
455+ given :
456+ referencedTransportVersion(" new_tv" )
457+
458+ when :
459+ def result = runGenerateAndValidateWithLabels(" >test" , " :Core/Infra/Core" ). build()
460+
461+ then :
462+ assertGenerateAndValidateSuccess(result)
463+ assertReferableDefinition(" new_tv" , " 8124000" )
464+ assertUpperBound(" 9.2" , " new_tv,8124000" )
465+ }
405466}
0 commit comments