From d70e18af25391942110e66b26f72aca1dae55ad6 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 21 Oct 2025 11:38:19 +0100 Subject: [PATCH] Limit tests to Gradle versions supported by CycloneDX plugin See gh-47736 --- .../boot/gradle/junit/GradleCompatibility.java | 2 ++ .../boot/gradle/junit/GradleCompatibilityExtension.java | 5 +++++ .../gradle/plugin/CycloneDxPluginActionIntegrationTests.java | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibility.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibility.java index b1351eceb48..360475c9975 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibility.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibility.java @@ -50,4 +50,6 @@ public @interface GradleCompatibility { String versionsLessThan() default ""; + String versionsAtLeast() default ""; + } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibilityExtension.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibilityExtension.java index 2075f2b6712..83571a35bc6 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibilityExtension.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/junit/GradleCompatibilityExtension.java @@ -64,6 +64,11 @@ final class GradleCompatibilityExtension implements TestTemplateInvocationContex gradleVersions = gradleVersions .filter((version) -> GradleVersion.version(version).compareTo(upperExclusive) < 0); } + if (StringUtils.hasText(gradleCompatibility.versionsAtLeast())) { + GradleVersion lowerInclusive = GradleVersion.version(gradleCompatibility.versionsAtLeast()); + gradleVersions = gradleVersions + .filter((version) -> GradleVersion.version(version).compareTo(lowerInclusive) >= 0); + } return gradleVersions.flatMap((version) -> { List invocationContexts = new ArrayList<>(); BuildOutput buildOutput = new BuildOutput(testClass); diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/CycloneDxPluginActionIntegrationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/CycloneDxPluginActionIntegrationTests.java index 29d30031bc2..bdb1935e5a2 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/CycloneDxPluginActionIntegrationTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/CycloneDxPluginActionIntegrationTests.java @@ -34,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Andy Wilkinson */ -@GradleCompatibility +@GradleCompatibility(versionsAtLeast = "8.0") class CycloneDxPluginActionIntegrationTests { GradleBuild gradleBuild; @@ -50,7 +50,7 @@ class CycloneDxPluginActionIntegrationTests { } private void sbomIsIncludedInUberArchive(String taskName, String sbomLocationPrefix) throws IOException { - BuildResult result = this.gradleBuild.expectDeprecationWarningsWithAtLeastVersion("7.6.6").build(taskName); + BuildResult result = this.gradleBuild.expectDeprecationMessages("Unknown keyword deprecated").build(taskName); assertThat(result.task(":cyclonedxBom").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); File[] libs = new File(this.gradleBuild.getProjectDir(), "build/libs").listFiles(); assertThat(libs).hasSize(1);