From 867e39f73cb2888c628246a66000a028e2e354c0 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Thu, 18 Apr 2019 14:33:49 +0200 Subject: [PATCH] Parallelize idea-gradle tests --- .../kotlin/test/JUnitWithIdeaConfigurationRunner.kt | 10 ++++++++++ idea/idea-gradle/build.gradle.kts | 2 +- .../kotlin/gradle/GradleMultiplatformWizardTest.kt | 11 +++-------- .../codeInsight/gradle/GradleImportingTestCase.kt | 3 ++- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/JUnitWithIdeaConfigurationRunner.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/test/JUnitWithIdeaConfigurationRunner.kt index ab4e6a41a1d..c0be1f68c47 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/JUnitWithIdeaConfigurationRunner.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/JUnitWithIdeaConfigurationRunner.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.test import org.junit.internal.runners.JUnit38ClassRunner import org.junit.runners.BlockJUnit4ClassRunner +import org.junit.runners.Parameterized class JUnit3WithIdeaConfigurationRunner(klass: Class<*>?) : JUnit38ClassRunner(klass) { @@ -19,6 +20,15 @@ class JUnit3WithIdeaConfigurationRunner(klass: Class<*>?) : JUnit38ClassRunner(k class JUnit4WithIdeaConfigurationRunner(klass: Class<*>?) : BlockJUnit4ClassRunner(klass) { + companion object { + init { + IdeaSystemPropertiesForParallelRunConfigurator.setProperties() + } + } +} + +class JUnitParameterizedWithIdeaConfigurationRunner(klass: Class<*>?) : Parameterized(klass) { + companion object { init { IdeaSystemPropertiesForParallelRunConfigurator.setProperties() diff --git a/idea/idea-gradle/build.gradle.kts b/idea/idea-gradle/build.gradle.kts index e59735c82e9..ed04700aedb 100644 --- a/idea/idea-gradle/build.gradle.kts +++ b/idea/idea-gradle/build.gradle.kts @@ -68,7 +68,7 @@ sourceSets { testsJar() -projectTest(parallel = false) { +projectTest(parallel = true) { workingDir = rootDir useAndroidSdk() } diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/GradleMultiplatformWizardTest.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/GradleMultiplatformWizardTest.kt index 08eb3b911b1..2d816568afb 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/GradleMultiplatformWizardTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/GradleMultiplatformWizardTest.kt @@ -12,8 +12,10 @@ import org.jetbrains.kotlin.idea.configuration.KotlinGradleSharedMultiplatformMo import org.jetbrains.kotlin.idea.configuration.KotlinGradleWebMultiplatformModuleBuilder import org.jetbrains.kotlin.idea.test.KotlinSdkCreationChecker import org.jetbrains.kotlin.konan.target.HostManager -import org.junit.Test +import org.jetbrains.kotlin.test.JUnit3WithIdeaConfigurationRunner +import org.junit.runner.RunWith +@RunWith(JUnit3WithIdeaConfigurationRunner::class) class GradleMultiplatformWizardTest : AbstractGradleMultiplatformWizardTest() { lateinit var sdkCreationChecker: KotlinSdkCreationChecker @@ -28,13 +30,11 @@ class GradleMultiplatformWizardTest : AbstractGradleMultiplatformWizardTest() { super.tearDown() } - @Test fun testMobile() { // TODO: add import & tests here when we will be able to locate Android SDK automatically (see KT-27635) testImportFromBuilder(KotlinGradleMobileMultiplatformModuleBuilder(), performImport = false) } - @Test fun testMobileShared() { val builder = KotlinGradleMobileSharedMultiplatformModuleBuilder() val project = testImportFromBuilder(builder, "SampleTests", "SampleTestsJVM", metadataInside = true) @@ -44,29 +44,24 @@ class GradleMultiplatformWizardTest : AbstractGradleMultiplatformWizardTest() { } } - @Test fun testNative() { val builder = KotlinGradleNativeMultiplatformModuleBuilder() val project = testImportFromBuilder(builder) runTaskInProject(project, builder.nativeTestName) } - @Test fun testShared() { val builder = KotlinGradleSharedMultiplatformModuleBuilder() val project = testImportFromBuilder(builder, "SampleTests", "SampleTestsJVM", "SampleTestsNative", metadataInside = true) runTaskInProject(project, builder.nativeTestName) } - @Test fun testSharedWithQualifiedName() { val builder = KotlinGradleSharedMultiplatformModuleBuilder() val project = testImportFromBuilder(builder, "SampleTests", "SampleTestsJVM", "SampleTestsNative", metadataInside = true, useQualifiedModuleNames = true) runTaskInProject(project, builder.nativeTestName) } - - @Test fun testWeb() { testImportFromBuilder(KotlinGradleWebMultiplatformModuleBuilder(), "SampleTests", "SampleTestsJVM") } diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleImportingTestCase.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleImportingTestCase.kt index b7e5b50be2a..d1c578233c7 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleImportingTestCase.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleImportingTestCase.kt @@ -45,6 +45,7 @@ import org.intellij.lang.annotations.Language import org.jetbrains.annotations.NonNls import org.jetbrains.kotlin.idea.test.KotlinSdkCreationChecker import org.jetbrains.kotlin.idea.test.PluginTestCaseBase +import org.jetbrains.kotlin.test.JUnitParameterizedWithIdeaConfigurationRunner import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.plugins.gradle.settings.DistributionType import org.jetbrains.plugins.gradle.settings.GradleProjectSettings @@ -66,7 +67,7 @@ import org.junit.AfterClass import org.junit.Assume.assumeTrue // part of org.jetbrains.plugins.gradle.importing.GradleImportingTestCase -@RunWith(value = Parameterized::class) +@RunWith(value = JUnitParameterizedWithIdeaConfigurationRunner::class) abstract class GradleImportingTestCase : ExternalSystemImportingTestCase() { protected var sdkCreationChecker : KotlinSdkCreationChecker? = null