diff --git a/buildSrc/src/main/kotlin/tasks.kt b/buildSrc/src/main/kotlin/tasks.kt index ead88dafa8c..67d80a011b1 100644 --- a/buildSrc/src/main/kotlin/tasks.kt +++ b/buildSrc/src/main/kotlin/tasks.kt @@ -28,7 +28,7 @@ import org.gradle.kotlin.dsl.task import java.lang.Character.isLowerCase import java.lang.Character.isUpperCase -fun Project.projectTest(taskName: String = "test", body: Test.() -> Unit = {}): Test = getOrCreateTask(taskName) { +fun Project.projectTest(taskName: String = "test", parallel: Boolean = true, body: Test.() -> Unit = {}): Test = getOrCreateTask(taskName) { doFirst { val commandLineIncludePatterns = (filter as? DefaultTestFilter)?.commandLineIncludePatterns ?: emptySet() val patterns = filter.includePatterns + commandLineIncludePatterns @@ -105,6 +105,9 @@ fun Project.projectTest(taskName: String = "test", body: Test.() -> Unit = {}): systemProperty("java.io.tmpdir", it) } + if (parallel) { + maxParallelForks = Math.max(Runtime.getRuntime().availableProcessors() / 2, 1) + } body() } diff --git a/generators/build.gradle.kts b/generators/build.gradle.kts index ab74a3676f5..79902e9f9b0 100644 --- a/generators/build.gradle.kts +++ b/generators/build.gradle.kts @@ -42,7 +42,7 @@ dependencies { } -projectTest { +projectTest(parallel = true) { workingDir = rootDir } diff --git a/idea/build.gradle.kts b/idea/build.gradle.kts index d765a0be7e1..9156c7f361f 100644 --- a/idea/build.gradle.kts +++ b/idea/build.gradle.kts @@ -1,7 +1,3 @@ -tasks.withType { - maxParallelForks = Math.max(Runtime.getRuntime().availableProcessors() / 2, 1) -} - plugins { kotlin("jvm") id("jps-compatible") @@ -177,7 +173,7 @@ val performanceTest by run { } } -projectTest { +projectTest(parallel = true) { dependsOn(":dist") workingDir = rootDir } diff --git a/idea/eval4j/build.gradle.kts b/idea/eval4j/build.gradle.kts index aa96f8652f7..8e483837c75 100644 --- a/idea/eval4j/build.gradle.kts +++ b/idea/eval4j/build.gradle.kts @@ -18,7 +18,7 @@ sourceSets { "test" { projectDefault() } } -projectTest { +projectTest(parallel = true) { dependsOn(":dist") workingDir = rootDir } diff --git a/idea/idea-android/build.gradle.kts b/idea/idea-android/build.gradle.kts index a774c62b213..8f5246dab69 100644 --- a/idea/idea-android/build.gradle.kts +++ b/idea/idea-android/build.gradle.kts @@ -85,7 +85,7 @@ sourceSets { } } -projectTest { +projectTest(parallel = true) { workingDir = rootDir useAndroidSdk() } diff --git a/idea/idea-gradle-native/build.gradle.kts b/idea/idea-gradle-native/build.gradle.kts index 421906374b1..e5016fe3e65 100644 --- a/idea/idea-gradle-native/build.gradle.kts +++ b/idea/idea-gradle-native/build.gradle.kts @@ -65,7 +65,7 @@ sourceSets { testsJar() -projectTest { +projectTest(parallel = true) { workingDir = rootDir useAndroidSdk() } diff --git a/idea/idea-gradle/build.gradle.kts b/idea/idea-gradle/build.gradle.kts index fcc6229929b..614d3d4f458 100644 --- a/idea/idea-gradle/build.gradle.kts +++ b/idea/idea-gradle/build.gradle.kts @@ -69,7 +69,7 @@ sourceSets { testsJar() -projectTest { +projectTest(parallel = false) { workingDir = rootDir useAndroidSdk() } diff --git a/idea/idea-maven/build.gradle.kts b/idea/idea-maven/build.gradle.kts index 824ba241549..ed1a9b685a0 100644 --- a/idea/idea-maven/build.gradle.kts +++ b/idea/idea-maven/build.gradle.kts @@ -72,7 +72,7 @@ if (Ide.IJ()) { testsJar() -projectTest { +projectTest(parallel = true) { workingDir = rootDir } diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt index 080ce136c2c..ac94a89ea30 100644 --- a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt @@ -50,9 +50,13 @@ import org.jetbrains.kotlin.platform.impl.* import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners +import org.jetbrains.kotlin.test.JUnit3WithIdeaConfigurationRunner import org.junit.Assert +import org.junit.runner.RunWith import java.io.File +@RunWith(JUnit3WithIdeaConfigurationRunner::class) class KotlinMavenImporterTest : MavenImportingTestCase() { private val kotlinVersion = "1.1.3" diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenMigrateTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenMigrateTest.kt index cf4d8c4b570..22f320fed3f 100644 --- a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenMigrateTest.kt +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenMigrateTest.kt @@ -9,17 +9,22 @@ import com.intellij.openapi.application.runReadAction import com.intellij.openapi.application.runWriteAction import com.intellij.psi.PsiDocumentManager import com.intellij.psi.PsiManager +import com.intellij.testFramework.TestDataPath import com.intellij.util.concurrency.FutureResult import org.jetbrains.kotlin.config.ApiVersion import org.jetbrains.kotlin.config.LanguageVersion import org.jetbrains.kotlin.idea.configuration.KotlinMigrationProjectComponent import org.jetbrains.kotlin.idea.configuration.MigrationInfo +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners +import org.jetbrains.kotlin.test.JUnit3WithIdeaConfigurationRunner import org.jetbrains.kotlin.test.testFramework.runInEdtAndWait import org.junit.Assert +import org.junit.runner.RunWith import java.io.File import java.util.concurrent.TimeUnit import java.util.concurrent.TimeoutException +@RunWith(JUnit3WithIdeaConfigurationRunner::class) class MavenMigrateTest : MavenImportingTestCase() { override fun setUp() { super.setUp() diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenUpdateConfigurationQuickFixTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenUpdateConfigurationQuickFixTest.kt index 730406fbaeb..62812190e2b 100644 --- a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenUpdateConfigurationQuickFixTest.kt +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenUpdateConfigurationQuickFixTest.kt @@ -24,12 +24,16 @@ import com.intellij.openapi.vfs.VirtualFile import com.intellij.rt.execution.junit.FileComparisonFailure import com.intellij.testFramework.fixtures.CodeInsightTestFixture import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners +import org.jetbrains.kotlin.test.JUnit3WithIdeaConfigurationRunner import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.testFramework.runInEdtAndWait import org.junit.Test +import org.junit.runner.RunWith import java.io.File import kotlin.reflect.KMutableProperty0 +@RunWith(JUnit3WithIdeaConfigurationRunner::class) class MavenUpdateConfigurationQuickFixTest : MavenImportingTestCase() { private lateinit var codeInsightTestFixture: CodeInsightTestFixture diff --git a/j2k/build.gradle.kts b/j2k/build.gradle.kts index 1015632ff30..da0e8088591 100644 --- a/j2k/build.gradle.kts +++ b/j2k/build.gradle.kts @@ -68,7 +68,7 @@ sourceSets { "test" { projectDefault() } } -projectTest { +projectTest(parallel = true) { dependsOn(":dist") workingDir = rootDir } diff --git a/jps-plugin/build.gradle.kts b/jps-plugin/build.gradle.kts index 9a6416ae756..44281be3e25 100644 --- a/jps-plugin/build.gradle.kts +++ b/jps-plugin/build.gradle.kts @@ -58,7 +58,7 @@ sourceSets { } } -projectTest { +projectTest(parallel = true) { // do not replace with compile/runtime dependency, // because it forces Intellij reindexing after each compiler change dependsOn(":kotlin-compiler:dist") diff --git a/libraries/tools/kotlin-annotation-processing/build.gradle.kts b/libraries/tools/kotlin-annotation-processing/build.gradle.kts index 83d9f037784..49fdc5f094f 100644 --- a/libraries/tools/kotlin-annotation-processing/build.gradle.kts +++ b/libraries/tools/kotlin-annotation-processing/build.gradle.kts @@ -16,7 +16,7 @@ dependencies { runtime(projectRuntimeJar(":kotlin-compiler-embeddable")) } -projectTest { +projectTest(parallel = true) { workingDir = projectDir } diff --git a/plugins/allopen/allopen-cli/build.gradle.kts b/plugins/allopen/allopen-cli/build.gradle.kts index 14181b145f0..005e12f5685 100644 --- a/plugins/allopen/allopen-cli/build.gradle.kts +++ b/plugins/allopen/allopen-cli/build.gradle.kts @@ -35,6 +35,6 @@ testsJar {} dist(targetName = the().archivesBaseName.removePrefix("kotlin-") + ".jar") -projectTest { +projectTest(parallel = true) { workingDir = rootDir } diff --git a/plugins/android-extensions/android-extensions-idea/build.gradle.kts b/plugins/android-extensions/android-extensions-idea/build.gradle.kts index 7a6eab09cbb..132e407b027 100644 --- a/plugins/android-extensions/android-extensions-idea/build.gradle.kts +++ b/plugins/android-extensions/android-extensions-idea/build.gradle.kts @@ -74,7 +74,7 @@ sourceSets { testsJar {} -projectTest { +projectTest(parallel = true) { dependsOn(":kotlin-android-extensions-runtime:dist") workingDir = rootDir useAndroidSdk() diff --git a/plugins/kapt3/kapt3-compiler/build.gradle.kts b/plugins/kapt3/kapt3-compiler/build.gradle.kts index 00327977323..f28684b97fc 100644 --- a/plugins/kapt3/kapt3-compiler/build.gradle.kts +++ b/plugins/kapt3/kapt3-compiler/build.gradle.kts @@ -45,7 +45,7 @@ sourceSets { testsJar {} -projectTest { +projectTest(parallel = true) { workingDir = rootDir dependsOn(":dist") } diff --git a/plugins/kotlin-serialization/kotlin-serialization-ide/build.gradle.kts b/plugins/kotlin-serialization/kotlin-serialization-ide/build.gradle.kts index 6cf72ec2b3e..e33ca669423 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-ide/build.gradle.kts +++ b/plugins/kotlin-serialization/kotlin-serialization-ide/build.gradle.kts @@ -23,3 +23,7 @@ sourceSets { } runtimeJar() + +projectTest(parallel = true) { + +} \ No newline at end of file diff --git a/plugins/noarg/noarg-cli/build.gradle.kts b/plugins/noarg/noarg-cli/build.gradle.kts index 16ec8879e77..9b83923b5f8 100644 --- a/plugins/noarg/noarg-cli/build.gradle.kts +++ b/plugins/noarg/noarg-cli/build.gradle.kts @@ -36,6 +36,6 @@ testsJar() dist(targetName = the().archivesBaseName.removePrefix("kotlin-") + ".jar") -projectTest { +projectTest(parallel = true) { workingDir = rootDir } diff --git a/plugins/sam-with-receiver/sam-with-receiver-cli/build.gradle.kts b/plugins/sam-with-receiver/sam-with-receiver-cli/build.gradle.kts index 8dab7373317..4a236458e0e 100644 --- a/plugins/sam-with-receiver/sam-with-receiver-cli/build.gradle.kts +++ b/plugins/sam-with-receiver/sam-with-receiver-cli/build.gradle.kts @@ -34,7 +34,7 @@ dist { rename("kotlin-", "") } -projectTest { +projectTest(parallel = true) { dependsOn(":kotlin-stdlib:jvm-minimal-for-test:dist") workingDir = rootDir } diff --git a/plugins/source-sections/source-sections-compiler/build.gradle.kts b/plugins/source-sections/source-sections-compiler/build.gradle.kts index 4fae10028ee..0dc68f97000 100644 --- a/plugins/source-sections/source-sections-compiler/build.gradle.kts +++ b/plugins/source-sections/source-sections-compiler/build.gradle.kts @@ -34,7 +34,7 @@ sourceSets { "test" { projectDefault() } } -projectTest { +projectTest(parallel = true) { workingDir = rootDir } diff --git a/plugins/uast-kotlin/build.gradle.kts b/plugins/uast-kotlin/build.gradle.kts index b46311c851a..3df484e281b 100644 --- a/plugins/uast-kotlin/build.gradle.kts +++ b/plugins/uast-kotlin/build.gradle.kts @@ -59,6 +59,6 @@ sourceSets { testsJar {} -projectTest { +projectTest(parallel = false) { workingDir = rootDir }