[Test] Add ability to explicitly declare default binary kind for test
This commit is contained in:
committed by
TeamCityServer
parent
a2ae618185
commit
5ae5f660f6
@@ -16,6 +16,7 @@ data class TestModule(
|
|||||||
val targetPlatform: TargetPlatform,
|
val targetPlatform: TargetPlatform,
|
||||||
val targetBackend: TargetBackend?,
|
val targetBackend: TargetBackend?,
|
||||||
val frontendKind: FrontendKind<*>,
|
val frontendKind: FrontendKind<*>,
|
||||||
|
val binaryKind: BinaryKind<*>,
|
||||||
val files: List<TestFile>,
|
val files: List<TestFile>,
|
||||||
val dependencies: List<DependencyDescription>,
|
val dependencies: List<DependencyDescription>,
|
||||||
val friends: List<DependencyDescription>,
|
val friends: List<DependencyDescription>,
|
||||||
|
|||||||
+3
@@ -9,8 +9,10 @@ import org.jetbrains.kotlin.config.LanguageVersionSettings
|
|||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
import org.jetbrains.kotlin.test.TargetBackend
|
import org.jetbrains.kotlin.test.TargetBackend
|
||||||
import org.jetbrains.kotlin.test.builders.LanguageVersionSettingsBuilder
|
import org.jetbrains.kotlin.test.builders.LanguageVersionSettingsBuilder
|
||||||
|
import org.jetbrains.kotlin.test.model.BinaryKind
|
||||||
import org.jetbrains.kotlin.test.model.DependencyKind
|
import org.jetbrains.kotlin.test.model.DependencyKind
|
||||||
import org.jetbrains.kotlin.test.model.FrontendKind
|
import org.jetbrains.kotlin.test.model.FrontendKind
|
||||||
|
import org.jetbrains.kotlin.test.model.TestArtifactKind
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO:
|
* TODO:
|
||||||
@@ -22,6 +24,7 @@ class DefaultsProvider(
|
|||||||
val defaultLanguageSettings: LanguageVersionSettings,
|
val defaultLanguageSettings: LanguageVersionSettings,
|
||||||
private val defaultLanguageSettingsBuilder: LanguageVersionSettingsBuilder,
|
private val defaultLanguageSettingsBuilder: LanguageVersionSettingsBuilder,
|
||||||
val defaultPlatform: TargetPlatform,
|
val defaultPlatform: TargetPlatform,
|
||||||
|
val defaultArtifactKind: BinaryKind<*>?,
|
||||||
val defaultTargetBackend: TargetBackend?,
|
val defaultTargetBackend: TargetBackend?,
|
||||||
val defaultDependencyKind: DependencyKind
|
val defaultDependencyKind: DependencyKind
|
||||||
) : TestService {
|
) : TestService {
|
||||||
|
|||||||
+4
@@ -12,16 +12,19 @@ import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
|||||||
import org.jetbrains.kotlin.fir.PrivateForInline
|
import org.jetbrains.kotlin.fir.PrivateForInline
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
import org.jetbrains.kotlin.test.TargetBackend
|
import org.jetbrains.kotlin.test.TargetBackend
|
||||||
|
import org.jetbrains.kotlin.test.model.BinaryKind
|
||||||
import org.jetbrains.kotlin.test.services.DefaultsDsl
|
import org.jetbrains.kotlin.test.services.DefaultsDsl
|
||||||
import org.jetbrains.kotlin.test.services.DefaultsProvider
|
import org.jetbrains.kotlin.test.services.DefaultsProvider
|
||||||
import org.jetbrains.kotlin.test.model.DependencyKind
|
import org.jetbrains.kotlin.test.model.DependencyKind
|
||||||
import org.jetbrains.kotlin.test.model.FrontendKind
|
import org.jetbrains.kotlin.test.model.FrontendKind
|
||||||
|
import org.jetbrains.kotlin.test.model.TestArtifactKind
|
||||||
|
|
||||||
@DefaultsDsl
|
@DefaultsDsl
|
||||||
class DefaultsProviderBuilder {
|
class DefaultsProviderBuilder {
|
||||||
lateinit var frontend: FrontendKind<*>
|
lateinit var frontend: FrontendKind<*>
|
||||||
var targetBackend: TargetBackend? = null
|
var targetBackend: TargetBackend? = null
|
||||||
lateinit var targetPlatform: TargetPlatform
|
lateinit var targetPlatform: TargetPlatform
|
||||||
|
var artifactKind: BinaryKind<*>? = null
|
||||||
lateinit var dependencyKind: DependencyKind
|
lateinit var dependencyKind: DependencyKind
|
||||||
|
|
||||||
@PrivateForInline
|
@PrivateForInline
|
||||||
@@ -44,6 +47,7 @@ class DefaultsProviderBuilder {
|
|||||||
languageVersionSettings ?: LanguageVersionSettingsImpl(LanguageVersion.LATEST_STABLE, ApiVersion.LATEST_STABLE),
|
languageVersionSettings ?: LanguageVersionSettingsImpl(LanguageVersion.LATEST_STABLE, ApiVersion.LATEST_STABLE),
|
||||||
languageVersionSettingsBuilder ?: LanguageVersionSettingsBuilder(),
|
languageVersionSettingsBuilder ?: LanguageVersionSettingsBuilder(),
|
||||||
targetPlatform,
|
targetPlatform,
|
||||||
|
artifactKind,
|
||||||
targetBackend,
|
targetBackend,
|
||||||
dependencyKind
|
dependencyKind
|
||||||
)
|
)
|
||||||
|
|||||||
+4
-1
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
|
|||||||
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
|
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
|
||||||
import org.jetbrains.kotlin.test.model.*
|
import org.jetbrains.kotlin.test.model.*
|
||||||
import org.jetbrains.kotlin.test.services.*
|
import org.jetbrains.kotlin.test.services.*
|
||||||
|
import org.jetbrains.kotlin.test.services.impl.TestModuleStructureImpl.Companion.toArtifactKind
|
||||||
import org.jetbrains.kotlin.test.util.joinToArrayString
|
import org.jetbrains.kotlin.test.util.joinToArrayString
|
||||||
import org.jetbrains.kotlin.utils.DFS
|
import org.jetbrains.kotlin.utils.DFS
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -275,11 +276,13 @@ class ModuleStructureExtractorImpl(
|
|||||||
|
|
||||||
currentModuleLanguageVersionSettingsBuilder.configureUsingDirectives(moduleDirectives, environmentConfigurators)
|
currentModuleLanguageVersionSettingsBuilder.configureUsingDirectives(moduleDirectives, environmentConfigurators)
|
||||||
val moduleName = currentModuleName ?: defaultModuleName
|
val moduleName = currentModuleName ?: defaultModuleName
|
||||||
|
val targetPlatform = currentModuleTargetPlatform ?: parseModulePlatformByName(moduleName) ?: defaultsProvider.defaultPlatform
|
||||||
val testModule = TestModule(
|
val testModule = TestModule(
|
||||||
name = moduleName,
|
name = moduleName,
|
||||||
targetPlatform = currentModuleTargetPlatform ?: parseModulePlatformByName(moduleName) ?: defaultsProvider.defaultPlatform,
|
targetPlatform = targetPlatform,
|
||||||
targetBackend = currentModuleTargetBackend ?: defaultsProvider.defaultTargetBackend,
|
targetBackend = currentModuleTargetBackend ?: defaultsProvider.defaultTargetBackend,
|
||||||
frontendKind = currentModuleFrontendKind ?: defaultsProvider.defaultFrontend,
|
frontendKind = currentModuleFrontendKind ?: defaultsProvider.defaultFrontend,
|
||||||
|
binaryKind = defaultsProvider.defaultArtifactKind ?: targetPlatform.toArtifactKind(),
|
||||||
files = filesOfCurrentModule,
|
files = filesOfCurrentModule,
|
||||||
dependencies = dependenciesOfCurrentModule,
|
dependencies = dependenciesOfCurrentModule,
|
||||||
friends = friendsOfCurrentModule,
|
friends = friendsOfCurrentModule,
|
||||||
|
|||||||
+3
-3
@@ -33,7 +33,7 @@ class TestModuleStructureImpl(
|
|||||||
result += ArtifactKinds.KLib
|
result += ArtifactKinds.KLib
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
module.targetPlatform.toArtifactKind()?.let { result += it }
|
result += module.binaryKind
|
||||||
put(module.name, result)
|
put(module.name, result)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -52,11 +52,11 @@ class TestModuleStructureImpl(
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private fun TargetPlatform.toArtifactKind(): BinaryKind<*>? = when (this) {
|
fun TargetPlatform.toArtifactKind(): BinaryKind<*> = when (this) {
|
||||||
in JvmPlatforms.allJvmPlatforms -> ArtifactKinds.Jvm
|
in JvmPlatforms.allJvmPlatforms -> ArtifactKinds.Jvm
|
||||||
in JsPlatforms.allJsPlatforms -> ArtifactKinds.Js
|
in JsPlatforms.allJsPlatforms -> ArtifactKinds.Js
|
||||||
in NativePlatforms.allNativePlatforms -> ArtifactKinds.Native
|
in NativePlatforms.allNativePlatforms -> ArtifactKinds.Native
|
||||||
else -> null
|
else -> BinaryKind.NoArtifact
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user