|
|
|
@ -26,7 +26,9 @@ import org.gradle.api.attributes.LibraryElements; |
|
|
|
import org.gradle.api.attributes.Usage; |
|
|
|
import org.gradle.api.attributes.Usage; |
|
|
|
import org.gradle.api.attributes.java.TargetJvmVersion; |
|
|
|
import org.gradle.api.attributes.java.TargetJvmVersion; |
|
|
|
import org.gradle.api.plugins.JavaPlugin; |
|
|
|
import org.gradle.api.plugins.JavaPlugin; |
|
|
|
|
|
|
|
import org.gradle.api.plugins.jvm.JvmTestSuite; |
|
|
|
import org.gradle.api.tasks.testing.Test; |
|
|
|
import org.gradle.api.tasks.testing.Test; |
|
|
|
|
|
|
|
import org.gradle.testing.base.TestingExtension; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.Collections; |
|
|
|
import java.util.Collections; |
|
|
|
|
|
|
|
|
|
|
|
@ -47,6 +49,8 @@ public class RuntimeHintsAgentPlugin implements Plugin<Project> { |
|
|
|
public void apply(Project project) { |
|
|
|
public void apply(Project project) { |
|
|
|
|
|
|
|
|
|
|
|
project.getPlugins().withType(JavaPlugin.class, javaPlugin -> { |
|
|
|
project.getPlugins().withType(JavaPlugin.class, javaPlugin -> { |
|
|
|
|
|
|
|
TestingExtension testing = project.getExtensions().getByType(TestingExtension.class); |
|
|
|
|
|
|
|
JvmTestSuite jvmTestSuite = (JvmTestSuite) testing.getSuites().getByName("test"); |
|
|
|
RuntimeHintsAgentExtension agentExtension = createRuntimeHintsAgentExtension(project); |
|
|
|
RuntimeHintsAgentExtension agentExtension = createRuntimeHintsAgentExtension(project); |
|
|
|
Test agentTest = project.getTasks().create(RUNTIMEHINTS_TEST_TASK, Test.class, test -> { |
|
|
|
Test agentTest = project.getTasks().create(RUNTIMEHINTS_TEST_TASK, Test.class, test -> { |
|
|
|
test.useJUnitPlatform(options -> { |
|
|
|
test.useJUnitPlatform(options -> { |
|
|
|
@ -55,6 +59,8 @@ public class RuntimeHintsAgentPlugin implements Plugin<Project> { |
|
|
|
test.include("**/*Tests.class", "**/*Test.class"); |
|
|
|
test.include("**/*Tests.class", "**/*Test.class"); |
|
|
|
test.systemProperty("java.awt.headless", "true"); |
|
|
|
test.systemProperty("java.awt.headless", "true"); |
|
|
|
test.systemProperty("org.graalvm.nativeimage.imagecode", "runtime"); |
|
|
|
test.systemProperty("org.graalvm.nativeimage.imagecode", "runtime"); |
|
|
|
|
|
|
|
test.setTestClassesDirs(jvmTestSuite.getSources().getOutput().getClassesDirs()); |
|
|
|
|
|
|
|
test.setClasspath(jvmTestSuite.getSources().getRuntimeClasspath()); |
|
|
|
test.getJvmArgumentProviders().add(createRuntimeHintsAgentArgumentProvider(project, agentExtension)); |
|
|
|
test.getJvmArgumentProviders().add(createRuntimeHintsAgentArgumentProvider(project, agentExtension)); |
|
|
|
}); |
|
|
|
}); |
|
|
|
project.getTasks().getByName("check", task -> task.dependsOn(agentTest)); |
|
|
|
project.getTasks().getByName("check", task -> task.dependsOn(agentTest)); |
|
|
|
|