blob: 789490d6546b19b145cdd02eb6626c6639e0739f [file] [log] [blame] [edit]
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm")
id("jps-compatible")
}
val testJvm6ServerRuntime by configurations.creating
dependencies {
testCompile(projectTests(":compiler"))
testCompile(projectTests(":compiler:tests-common"))
testCompileOnly(intellijCoreDep()) { includeJars("intellij-core") }
testRuntime(project(":kotlin-reflect"))
testRuntime(intellijDep())
testRuntime(intellijDep())
testJvm6ServerRuntime(projectTests(":compiler:tests-common-jvm6"))
}
sourceSets {
"main" {}
"test" { projectDefault() }
}
fun Project.codegenTest(
target: Int, jvm: Int,
jdk: String = "JDK_${if (jvm <= 8) "1" else ""}$jvm",
body: Test.() -> Unit
) {
codegenTest(target, jvm.toString(), jdk, body = body)
}
fun Project.codegenTest(
target: Int, jvm: String, jdk: String,
targetInTestClass: String = "$target",
body: Test.() -> Unit
): TaskProvider<Test> = projectTest("codegenTarget${targetInTestClass}Jvm${jvm}Test") {
dependsOn(":dist")
workingDir = rootDir
filter.includeTestsMatching("org.jetbrains.kotlin.codegen.jdk.JvmTarget${targetInTestClass}OnJvm${jvm}")
systemProperty("kotlin.test.default.jvm.target", "${if (target <= 8) "1." else ""}$target")
body()
doFirst {
val jdkPath = project.findProperty(jdk) ?: error("$jdk is not optional to run this test")
executable = "$jdkPath/bin/java"
println("Running tests with $target target and $executable")
}
group = "verification"
}
codegenTest(target = 6, jvm = 6, jdk = "JDK_18") {
dependsOn(testJvm6ServerRuntime)
doFirst {
systemProperty("kotlin.test.default.jvm.target", "1.6")
systemProperty("kotlin.test.java.compilation.target", "1.6")
val port = project.findProperty("kotlin.compiler.codegen.tests.port") ?: "5100"
systemProperty("kotlin.test.box.in.separate.process.port", port)
systemProperty("kotlin.test.box.in.separate.process.server.classpath", testJvm6ServerRuntime.asPath)
}
}
codegenTest(target = 8, jvm = 8) {}
// Switch TC builds to...
codegenTest(target = 6, jvm = 11) {}
codegenTest(target = 8, jvm = 11) {}
codegenTest(target = 11, jvm = 11) {}
//...and delete old tasks..
codegenTest(target = 6, jvm = 9) {}
codegenTest(target = 8, jvm = 9) {}
codegenTest(target = 9, jvm = 9) {}
//..also add this two tasks to build after adding fresh jdks to build agents
val mostRecentJdk = JdkMajorVersion.values().last().name
codegenTest(target = 6, jvm = "Last", jdk = mostRecentJdk) {
jvmArgs!!.add( "-XX:-FailOverToOldVerifier")
}
codegenTest(target = 8, jvm = "Last", jdk = mostRecentJdk) {
jvmArgs!!.add( "-XX:-FailOverToOldVerifier")
}
codegenTest(
mostRecentJdk.substringAfter('_').toInt(),
targetInTestClass = "Last",
jvm = "Last",
jdk = mostRecentJdk
) {}
testsJar()