mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-07-15 01:07:30 +08:00
Refine LoaderIntegrationTests for CI
Refine `LoaderIntegrationTests` to fix failures when CI builds are running with later JDK versions. See gh-29385
This commit is contained in:
parent
3d908079ef
commit
de8f8c3e64
@ -23,6 +23,7 @@ import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.Assume;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
@ -32,6 +33,7 @@ import org.testcontainers.images.builder.ImageFromDockerfile;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
import org.testcontainers.utility.MountableFile;
|
||||
|
||||
import org.springframework.boot.system.JavaVersion;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@ -48,6 +50,7 @@ class LoaderIntegrationTests {
|
||||
@ParameterizedTest
|
||||
@MethodSource("javaRuntimes")
|
||||
void readUrlsWithoutWarning(JavaRuntime javaRuntime) {
|
||||
javaRuntime.assumeCompatible();
|
||||
try (GenericContainer<?> container = createContainer(javaRuntime)) {
|
||||
container.start();
|
||||
System.out.println(this.output.toUtf8String());
|
||||
@ -72,34 +75,50 @@ class LoaderIntegrationTests {
|
||||
|
||||
static Stream<JavaRuntime> javaRuntimes() {
|
||||
List<JavaRuntime> javaRuntimes = new ArrayList<>();
|
||||
javaRuntimes.add(JavaRuntime.openJdk("8"));
|
||||
javaRuntimes.add(JavaRuntime.openJdk("11"));
|
||||
javaRuntimes.add(JavaRuntime.openJdk("17"));
|
||||
javaRuntimes.add(JavaRuntime.openJdk(JavaVersion.EIGHT));
|
||||
javaRuntimes.add(JavaRuntime.openJdk(JavaVersion.ELEVEN));
|
||||
javaRuntimes.add(JavaRuntime.openJdk(JavaVersion.SEVENTEEN));
|
||||
javaRuntimes.add(JavaRuntime.oracleJdk17());
|
||||
return javaRuntimes.stream();
|
||||
}
|
||||
|
||||
static final class JavaRuntime {
|
||||
|
||||
private final String name;
|
||||
|
||||
private final JavaVersion version;
|
||||
|
||||
private final Supplier<GenericContainer<?>> container;
|
||||
|
||||
private JavaRuntime(Supplier<GenericContainer<?>> container) {
|
||||
private JavaRuntime(String name, JavaVersion version, Supplier<GenericContainer<?>> container) {
|
||||
this.name = name;
|
||||
this.version = version;
|
||||
this.container = container;
|
||||
}
|
||||
|
||||
private void assumeCompatible() {
|
||||
Assume.assumeTrue(JavaVersion.getJavaVersion().isEqualOrNewerThan(this.version));
|
||||
}
|
||||
|
||||
GenericContainer<?> getContainer() {
|
||||
return this.container.get();
|
||||
}
|
||||
|
||||
static JavaRuntime openJdk(String version) {
|
||||
DockerImageName image = DockerImageName.parse("bellsoft/liberica-openjdk-debian:" + version);
|
||||
return new JavaRuntime(() -> new GenericContainer<>(image));
|
||||
@Override
|
||||
public String toString() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
static JavaRuntime openJdk(JavaVersion version) {
|
||||
String imageVersion = (version != JavaVersion.EIGHT) ? version.toString() : "8";
|
||||
DockerImageName image = DockerImageName.parse("bellsoft/liberica-openjdk-debian:" + imageVersion);
|
||||
return new JavaRuntime("OpenJDK " + imageVersion, version, () -> new GenericContainer<>(image));
|
||||
}
|
||||
|
||||
static JavaRuntime oracleJdk17() {
|
||||
ImageFromDockerfile image = new ImageFromDockerfile("spring-boot-loader/oracle-jdk-17")
|
||||
.withFileFromFile("Dockerfile", new File("src/intTest/resources/conf/oracle-jdk-17/Dockerfile"));
|
||||
return new JavaRuntime(() -> new GenericContainer<>(image));
|
||||
return new JavaRuntime("Oracle JDK 17", JavaVersion.SEVENTEEN, () -> new GenericContainer<>(image));
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user