|
|
@ -42,7 +42,7 @@ public class BootRunIntegrationTests {
|
|
|
|
|
|
|
|
|
|
|
|
@TestTemplate
|
|
|
|
@TestTemplate
|
|
|
|
public void basicExecution() throws IOException {
|
|
|
|
public void basicExecution() throws IOException {
|
|
|
|
copyApplication();
|
|
|
|
copyClasspathApplication();
|
|
|
|
new File(this.gradleBuild.getProjectDir(), "src/main/resources").mkdirs();
|
|
|
|
new File(this.gradleBuild.getProjectDir(), "src/main/resources").mkdirs();
|
|
|
|
BuildResult result = this.gradleBuild.build("bootRun");
|
|
|
|
BuildResult result = this.gradleBuild.build("bootRun");
|
|
|
|
assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
|
|
|
assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
|
|
@ -56,7 +56,7 @@ public class BootRunIntegrationTests {
|
|
|
|
|
|
|
|
|
|
|
|
@TestTemplate
|
|
|
|
@TestTemplate
|
|
|
|
public void sourceResourcesCanBeUsed() throws IOException {
|
|
|
|
public void sourceResourcesCanBeUsed() throws IOException {
|
|
|
|
copyApplication();
|
|
|
|
copyClasspathApplication();
|
|
|
|
BuildResult result = this.gradleBuild.build("bootRun");
|
|
|
|
BuildResult result = this.gradleBuild.build("bootRun");
|
|
|
|
assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
|
|
|
assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
|
|
|
assertThat(result.getOutput())
|
|
|
|
assertThat(result.getOutput())
|
|
|
@ -87,28 +87,56 @@ public class BootRunIntegrationTests {
|
|
|
|
|
|
|
|
|
|
|
|
@TestTemplate
|
|
|
|
@TestTemplate
|
|
|
|
public void applicationPluginMainClassNameIsNotUsedWhenItIsNull() throws IOException {
|
|
|
|
public void applicationPluginMainClassNameIsNotUsedWhenItIsNull() throws IOException {
|
|
|
|
copyApplication();
|
|
|
|
copyClasspathApplication();
|
|
|
|
BuildResult result = this.gradleBuild.build("echoMainClassName");
|
|
|
|
BuildResult result = this.gradleBuild.build("echoMainClassName");
|
|
|
|
assertThat(result.task(":echoMainClassName").getOutcome())
|
|
|
|
assertThat(result.task(":echoMainClassName").getOutcome())
|
|
|
|
.isEqualTo(TaskOutcome.SUCCESS);
|
|
|
|
.isEqualTo(TaskOutcome.SUCCESS);
|
|
|
|
assertThat(result.getOutput())
|
|
|
|
assertThat(result.getOutput()).contains(
|
|
|
|
.contains("Main class name = com.example.BootRunApplication");
|
|
|
|
"Main class name = com.example.classpath.BootRunClasspathApplication");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@TestTemplate
|
|
|
|
|
|
|
|
public void defaultJvmArgs() throws IOException {
|
|
|
|
|
|
|
|
copyJvmArgsApplication();
|
|
|
|
|
|
|
|
BuildResult result = this.gradleBuild.build("bootRun");
|
|
|
|
|
|
|
|
assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
|
|
|
|
|
|
|
assertThat(result.getOutput()).contains("1. -Xverify:none")
|
|
|
|
|
|
|
|
.contains("2. -XX:TieredStopAtLevel=1");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@TestTemplate
|
|
|
|
|
|
|
|
public void optimizedLaunchDisabledJvmArgs() throws IOException {
|
|
|
|
|
|
|
|
copyJvmArgsApplication();
|
|
|
|
|
|
|
|
BuildResult result = this.gradleBuild.build("bootRun");
|
|
|
|
|
|
|
|
assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
|
|
|
|
|
|
|
assertThat(result.getOutput()).doesNotContain("-Xverify:none")
|
|
|
|
|
|
|
|
.doesNotContain("-XX:TieredStopAtLevel=1");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@TestTemplate
|
|
|
|
@TestTemplate
|
|
|
|
public void applicationPluginJvmArgumentsAreUsed() throws IOException {
|
|
|
|
public void applicationPluginJvmArgumentsAreUsed() throws IOException {
|
|
|
|
BuildResult result = this.gradleBuild.build("echoJvmArguments");
|
|
|
|
copyJvmArgsApplication();
|
|
|
|
assertThat(result.task(":echoJvmArguments").getOutcome())
|
|
|
|
BuildResult result = this.gradleBuild.build("bootRun");
|
|
|
|
.isEqualTo(TaskOutcome.UP_TO_DATE);
|
|
|
|
assertThat(result.task(":bootRun").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
|
|
|
assertThat(result.getOutput())
|
|
|
|
assertThat(result.getOutput()).contains("1. -Dcom.bar=baz")
|
|
|
|
.contains("JVM arguments = [-Dcom.foo=bar, -Dcom.bar=baz]");
|
|
|
|
.contains("2. -Dcom.foo=bar").contains("3. -Xverify:none")
|
|
|
|
|
|
|
|
.contains("4. -XX:TieredStopAtLevel=1");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void copyClasspathApplication() throws IOException {
|
|
|
|
|
|
|
|
copyApplication("classpath");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void copyJvmArgsApplication() throws IOException {
|
|
|
|
|
|
|
|
copyApplication("jvmargs");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void copyApplication() throws IOException {
|
|
|
|
private void copyApplication(String name) throws IOException {
|
|
|
|
File output = new File(this.gradleBuild.getProjectDir(),
|
|
|
|
File output = new File(this.gradleBuild.getProjectDir(),
|
|
|
|
"src/main/java/com/example");
|
|
|
|
"src/main/java/com/example/" + name);
|
|
|
|
output.mkdirs();
|
|
|
|
output.mkdirs();
|
|
|
|
FileSystemUtils.copyRecursively(new File("src/test/java/com/example"), output);
|
|
|
|
FileSystemUtils.copyRecursively(new File("src/test/java/com/example/" + name),
|
|
|
|
|
|
|
|
output);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private String canonicalPathOf(String path) throws IOException {
|
|
|
|
private String canonicalPathOf(String path) throws IOException {
|
|
|
|