Skip to content

Commit a3c034b

Browse files
committed
fix: fingerprint test JVM platform
1 parent 361b6f0 commit a3c034b

4 files changed

Lines changed: 13 additions & 4 deletions

File tree

‎buildSrc/src/main/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsPlugin.kt‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ class TestJvmConstraintsPlugin : Plugin<Project> {
3636
"vendor" to vendor,
3737
"runtimeVersion" to javaRuntimeVersion,
3838
"vmVersion" to jvmVersion,
39+
"operatingSystem" to System.getProperty("os.name"),
40+
"architecture" to System.getProperty("os.arch"),
3941
)
4042
}
4143
})

‎buildSrc/src/test/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmCacheInputsTest.kt‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import org.junit.jupiter.params.provider.ValueSource
1010

1111
class TestJvmCacheInputsTest : GradleFixture() {
1212
@ParameterizedTest
13-
@ValueSource(strings = ["vendor", "runtimeVersion", "vmVersion"])
13+
@ValueSource(strings = ["vendor", "runtimeVersion", "vmVersion", "os.name", "os.arch"])
1414
fun `test cache follows the selected launcher identity`(changedField: String) {
1515
writeSettings(
1616
"""
@@ -50,10 +50,15 @@ class TestJvmCacheInputsTest : GradleFixture() {
5050
}
5151
5252
val launcher = javaToolchains.launcherFor {}
53-
val changedField = providers.gradleProperty("changedJvmField").orElse("")
53+
val changedField = providers.gradleProperty("changedJvmField").orNull
54+
if (changedField?.startsWith("os.") == true) {
55+
val original = System.getProperty(changedField)
56+
System.setProperty(changedField, "different-platform")
57+
gradle.buildFinished { System.setProperty(changedField, original) }
58+
}
5459
tasks.test {
5560
useJUnitPlatform()
56-
javaLauncher.set(launcher.map { SelectedLauncher(it, changedField.get()) })
61+
javaLauncher.set(launcher.map { SelectedLauncher(it, changedField ?: "") })
5762
}
5863
"""
5964
)

‎buildSrc/src/test/kotlin/datadog/gradle/plugin/testJvmConstraints/TestJvmConstraintsPluginTest.kt‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ class TestJvmConstraintsPluginTest {
4646
"vendor" to metadata.vendor,
4747
"runtimeVersion" to metadata.javaRuntimeVersion,
4848
"vmVersion" to metadata.jvmVersion,
49+
"operatingSystem" to System.getProperty("os.name"),
50+
"architecture" to System.getProperty("os.arch"),
4951
))
5052
}
5153

‎docs/how_to_work_with_gradle.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -951,7 +951,7 @@ This project provides several custom Gradle extensions to manage multi-JVM testi
951951

952952
Controls which JVM versions are allowed to run tests. Applied via the `dd-trace-java.test-jvm-constraints` plugin.
953953

954-
Each `Test` task also tracks its selected JVM's vendor, full runtime version and VM version as inputs.
954+
Each `Test` task also tracks its selected JVM's vendor, full runtime version, VM version, operating system, and architecture as inputs.
955955
Changing these values invalidates up-to-date checks and build-cache entries, even when the Java major version stays the same.
956956

957957
```Gradle Kotlin DSL

0 commit comments

Comments
 (0)