11package datadog.gradle.plugin.testJvmConstraints
22
33import datadog.gradle.plugin.testJvmConstraints.TestJvmConstraintsExtension.Companion.TEST_JVM_CONSTRAINTS
4+ import me.champeau.jmh.JmhParameters
45import org.assertj.core.api.Assertions.assertThat
6+ import org.gradle.api.JavaVersion
57import org.gradle.api.tasks.testing.Test as GradleTest
68import org.gradle.testfixtures.ProjectBuilder
79import org.gradle.testing.jacoco.plugins.JacocoTaskExtension
@@ -21,6 +23,31 @@ class TestJvmConstraintsPluginTest {
2123 assertThat(testTask.extensions.findByName(TEST_JVM_CONSTRAINTS )).isInstanceOf(TestJvmConstraintsExtension ::class .java)
2224 }
2325
26+ @Test
27+ fun `plugin configures jmh to use the test jvm` () {
28+ val propertyName = " org.gradle.project.${TestJvmSpec .TEST_JVM } "
29+ val previousValue = System .setProperty(propertyName, JavaVersion .current().majorVersion)
30+
31+ try {
32+ val project = ProjectBuilder .builder().build()
33+
34+ project.pluginManager.apply (" dd-trace-java.test-jvm-constraints" )
35+ assertThat(project.extensions.findByName(" jmh" )).isNull()
36+
37+ project.pluginManager.apply (" me.champeau.jmh" )
38+
39+ val jmh = project.extensions.getByType(JmhParameters ::class .java)
40+ val expectedExecutable = TestJvmSpec (project).javaTestLauncher.get().executablePath.asFile.absolutePath
41+ assertThat(jmh.jvm.get()).isEqualTo(expectedExecutable)
42+ } finally {
43+ if (previousValue == null ) {
44+ System .clearProperty(propertyName)
45+ } else {
46+ System .setProperty(propertyName, previousValue)
47+ }
48+ }
49+ }
50+
2451 @Test
2552 fun `jacoco is disabled for additional test jvm when coverage is not checked` () {
2653 val testTask = testTaskWithJacoco()
0 commit comments