Include AOT-generated classes in native test binary

Closes gh-32940
This commit is contained in:
Andy Wilkinson
2022-11-04 11:53:33 +00:00
parent 2b29a10d5b
commit 2d5a3eac51
4 changed files with 56 additions and 7 deletions

View File

@@ -101,6 +101,24 @@ class NativeImagePluginActionIntegrationTests {
assertThat(result.getOutput()).doesNotContain("commons-lang");
}
@TestTemplate
void classesGeneratedDuringAotProcessingAreOnTheNativeImageClasspath() {
BuildResult result = this.gradleBuild.build("checkNativeImageClasspath");
assertThat(result.getOutput()).contains(projectPath("build/classes/java/aot"),
projectPath("build/resources/aot"), projectPath("build/generated/aotClasses"));
}
@TestTemplate
void classesGeneratedDuringAotTestProcessingAreOnTheTestNativeImageClasspath() {
BuildResult result = this.gradleBuild.build("checkTestNativeImageClasspath");
assertThat(result.getOutput()).contains(projectPath("build/classes/java/aotTest"),
projectPath("build/resources/aotTest"), projectPath("build/generated/aotTestClasses"));
}
private String projectPath(String path) {
return new File(this.gradleBuild.getProjectDir(), path).getAbsolutePath();
}
private void writeDummySpringApplicationAotProcessorMainClass() {
File examplePackage = new File(this.gradleBuild.getProjectDir(), "src/main/java/org/springframework/boot");
examplePackage.mkdirs();