[FIR] Setup FIR tests configuration
This commit is contained in:
+43
-2
@@ -14,11 +14,11 @@ val intellijUltimateEnabled: Boolean by rootProject.extra
|
|||||||
val ideaUltimatePluginDir: File by rootProject.extra
|
val ideaUltimatePluginDir: File by rootProject.extra
|
||||||
val ideaUltimateSandboxDir: File by rootProject.extra
|
val ideaUltimateSandboxDir: File by rootProject.extra
|
||||||
|
|
||||||
fun JUnit.configureForKotlin() {
|
fun JUnit.configureForKotlin(xmx: String = "1600m") {
|
||||||
vmParameters = listOf(
|
vmParameters = listOf(
|
||||||
"-ea",
|
"-ea",
|
||||||
"-XX:+HeapDumpOnOutOfMemoryError",
|
"-XX:+HeapDumpOnOutOfMemoryError",
|
||||||
"-Xmx1600m",
|
"-Xmx$xmx",
|
||||||
"-XX:+UseCodeCacheFlushing",
|
"-XX:+UseCodeCacheFlushing",
|
||||||
"-XX:ReservedCodeCacheSize=128m",
|
"-XX:ReservedCodeCacheSize=128m",
|
||||||
"-Djna.nosys=true",
|
"-Djna.nosys=true",
|
||||||
@@ -36,6 +36,44 @@ fun JUnit.configureForKotlin() {
|
|||||||
workingDirectory = rootDir.toString()
|
workingDirectory = rootDir.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Needed because of idea.ext plugin doesn't allow to set TEST_SEARCH_SCOPE = moduleWithDependencies
|
||||||
|
fun setupFirRunConfiguration() {
|
||||||
|
|
||||||
|
val junit = JUnit("_stub").apply { configureForKotlin("2048m") }
|
||||||
|
junit.moduleName = "kotlin.compiler.test"
|
||||||
|
junit.pattern = "^(org\\.jetbrains\\.kotlin\\.fir((?!\\.lightTree\\.benchmark)(\\.\\w+)*)\\.((?!(TreesCompareTest|TotalKotlinTest|RawFirBuilderTotalKotlinTestCase))\\w+)|org\\.jetbrains\\.kotlin\\.codegen\\.ir\\.FirBlackBoxCodegenTestGenerated)\$"
|
||||||
|
junit.vmParameters = junit.vmParameters.replace(rootDir.absolutePath, "\$PROJECT_DIR\$")
|
||||||
|
junit.workingDirectory = junit.workingDirectory.replace(rootDir.absolutePath, "\$PROJECT_DIR\$")
|
||||||
|
|
||||||
|
rootDir.resolve(".idea/runConfigurations/JPS__Fast_FIR_tests.xml").writeText(
|
||||||
|
"""
|
||||||
|
|<component name="ProjectRunConfigurationManager">
|
||||||
|
| <configuration default="false" name="[JPS] Fast FIR tests" type="JUnit" factoryName="JUnit">
|
||||||
|
| <module name="${junit.moduleName}" />
|
||||||
|
| <option name="MAIN_CLASS_NAME" value="" />
|
||||||
|
| <option name="METHOD_NAME" value="" />
|
||||||
|
| <option name="TEST_OBJECT" value="pattern" />
|
||||||
|
| <option name="VM_PARAMETERS" value="${junit.vmParameters}" />
|
||||||
|
| <option name="PARAMETERS" value="" />
|
||||||
|
| <option name="WORKING_DIRECTORY" value="${junit.workingDirectory}" />
|
||||||
|
| <option name="TEST_SEARCH_SCOPE">
|
||||||
|
| <value defaultName="moduleWithDependencies" />
|
||||||
|
| </option>
|
||||||
|
| <envs>
|
||||||
|
${junit.envs.entries.joinToString("\n") { (name, value) -> "| <env name=\"$name\" value=\"$value\" />" }}
|
||||||
|
| </envs>
|
||||||
|
| <patterns>
|
||||||
|
| <pattern testClass="${junit.pattern}" />
|
||||||
|
| </patterns>
|
||||||
|
| <method v="2">
|
||||||
|
| <option name="Make" enabled="true" />
|
||||||
|
| </method>
|
||||||
|
| </configuration>
|
||||||
|
|</component>
|
||||||
|
""".trimMargin()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
||||||
allprojects {
|
allprojects {
|
||||||
apply(mapOf("plugin" to "idea"))
|
apply(mapOf("plugin" to "idea"))
|
||||||
@@ -62,6 +100,9 @@ if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
rootProject.afterEvaluate {
|
rootProject.afterEvaluate {
|
||||||
|
|
||||||
|
setupFirRunConfiguration()
|
||||||
|
|
||||||
rootProject.allprojects {
|
rootProject.allprojects {
|
||||||
idea {
|
idea {
|
||||||
module {
|
module {
|
||||||
|
|||||||
Reference in New Issue
Block a user