Skip to content

Commit b256255

Browse files
Abduqodiri Qurbonzodaqurbonzoda
authored andcommitted
Run integration tests with jvmToolchain(8)
1 parent df229c8 commit b256255

File tree

6 files changed

+37
-12
lines changed

6 files changed

+37
-12
lines changed

integration/src/main/kotlin/kotlinx/benchmark/integration/ProjectBuilder.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ class ProjectBuilder {
55
private val targets = mutableMapOf<String, BenchmarkTarget>()
66

77
var kotlinVersion: String = System.getProperty("kotlin_version")
8+
var jvmToolchain: Int = 8
89

910
fun configuration(name: String, configuration: BenchmarkConfiguration.() -> Unit = {}) {
1011
configurations[name] = BenchmarkConfiguration().apply(configuration)
@@ -27,15 +28,15 @@ benchmark {
2728
}
2829
""".trimIndent()
2930

30-
return generateBuildScript(kotlinVersion) + "\n\n" + original + "\n\n" + script
31+
return generateBuildScript(kotlinVersion, jvmToolchain) + "\n\n" + original + "\n\n" + script
3132
}
3233
}
3334

3435
private val kotlin_repo = System.getProperty("kotlin_repo_url").let {
3536
if (it.isNullOrBlank()) "" else "maven { url '$it' }"
3637
}
3738

38-
private fun generateBuildScript(kotlinVersion: String) =
39+
private fun generateBuildScript(kotlinVersion: String, jvmToolchain: Int) =
3940
"""
4041
buildscript {
4142
repositories {
@@ -57,4 +58,8 @@ private fun generateBuildScript(kotlinVersion: String) =
5758
maven { url '${System.getProperty("runtime_repo_url")}' }
5859
mavenCentral()
5960
}
61+
62+
kotlin {
63+
jvmToolchain($jvmToolchain)
64+
}
6065
""".trimIndent()

integration/src/test/kotlin/kotlinx/benchmark/integration/GradleTest.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,14 @@ abstract class GradleTest {
2222
print: Boolean = false,
2323
gradleVersion: GradleTestVersion? = null,
2424
kotlinVersion: String? = null,
25+
jvmToolchain: Int? = null,
2526
build: ProjectBuilder.() -> Unit = {}
2627
): Runner {
2728
val builder = ProjectBuilder().apply {
2829
kotlinVersion?.let { this.kotlinVersion = it }
30+
jvmToolchain?.let { this.jvmToolchain = it }
2931
}.apply(build)
32+
rootProjectDir.deleteRecursively()
3033
templates.resolve(name).copyRecursively(rootProjectDir)
3134
file("build.gradle").modify(builder::build)
3235
val settingsFile = file("settings.gradle")

integration/src/test/kotlin/kotlinx/benchmark/integration/JvmToolchainsTest.kt

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@ import kotlin.test.assertEquals
77
class JvmToolchainsTest : GradleTest() {
88
@Test
99
fun testHigherVersionThanInGradle() {
10-
val runner = project("kmp-with-toolchain/higher-version-than-in-gradle", true, GradleTestVersion.v8_0)
10+
val runner = project(
11+
"kmp-with-toolchain/higher-version-than-in-gradle",
12+
print = true,
13+
GradleTestVersion.v8_0,
14+
jvmToolchain = 21
15+
)
1116
runner.runAndSucceed("benchmark") {
1217
assertEquals(TaskOutcome.SUCCESS, task(":jvmBenchmark")!!.outcome)
1318
assertOutputDoesNotContain("<failure>")
@@ -16,10 +21,16 @@ class JvmToolchainsTest : GradleTest() {
1621

1722
@Test
1823
fun testMinSupportedVersion() {
19-
val runner = project("kmp-with-toolchain/min-supported-version", true)
20-
runner.runAndSucceed("benchmark") {
21-
assertEquals(TaskOutcome.SUCCESS, task(":jvmBenchmark")!!.outcome)
22-
assertOutputDoesNotContain("<failure>")
24+
for (jvmToolchain in listOf(8, 11, 17, 21)) {
25+
val runner = project(
26+
"kmp-with-toolchain/min-supported-version",
27+
print = true,
28+
jvmToolchain = jvmToolchain
29+
)
30+
runner.runAndSucceed("benchmark") {
31+
assertEquals(TaskOutcome.SUCCESS, task(":jvmBenchmark")!!.outcome)
32+
assertOutputDoesNotContain("<failure>")
33+
}
2334
}
2435
}
2536
}

integration/src/test/resources/templates/kmp-with-toolchain/higher-version-than-in-gradle/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
kotlin {
2-
jvmToolchain(21)
32
jvm {}
43

54
sourceSets {
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
package test
22

33
import kotlinx.benchmark.*
4-
import kotlin.math.*
54

65
// Don't really need to measure anything here, just check that the benchmark works
76
@State(Scope.Benchmark)
87
@Warmup(iterations = 0)
98
@Measurement(iterations = 1, time = 100, timeUnit = BenchmarkTimeUnit.MILLISECONDS)
109
@OutputTimeUnit(BenchmarkTimeUnit.MILLISECONDS)
1110
@BenchmarkMode(Mode.Throughput)
12-
open class CommonBenchmark {
11+
open class JvmBenchmark {
12+
private val arrayList = java.util.ArrayList<Int>()
13+
14+
@Setup
15+
fun setup() {
16+
// Methods from JDK21
17+
arrayList.addFirst(0)
18+
arrayList.addLast(1)
19+
}
20+
1321
@Benchmark
14-
open fun mathBenchmark() = 3.14
22+
open fun benchmark() = arrayList.size
1523
}

integration/src/test/resources/templates/kmp-with-toolchain/min-supported-version/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
kotlin {
2-
jvmToolchain(8)
32
jvm {}
43

54
sourceSets {

0 commit comments

Comments
 (0)