From 3f2a790190da4f40ea6d8a976aa1929b2a1b002b Mon Sep 17 00:00:00 2001 From: Błażej Kardyś Date: Tue, 5 May 2020 17:45:12 +0200 Subject: Changing approach from platform-driven to source-set-driven --- testApi/src/main/kotlin/testApi/context/MockContext.kt | 12 +++++++----- .../src/main/kotlin/testApi/testRunner/DokkaTestGenerator.kt | 11 ++++++++--- testApi/src/main/kotlin/testApi/testRunner/TestRunner.kt | 10 +++++++--- 3 files changed, 22 insertions(+), 11 deletions(-) (limited to 'testApi/src') diff --git a/testApi/src/main/kotlin/testApi/context/MockContext.kt b/testApi/src/main/kotlin/testApi/context/MockContext.kt index 5236f1f4..11520280 100644 --- a/testApi/src/main/kotlin/testApi/context/MockContext.kt +++ b/testApi/src/main/kotlin/testApi/context/MockContext.kt @@ -2,7 +2,8 @@ package org.jetbrains.dokka.testApi.context import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.EnvironmentAndFacade -import org.jetbrains.dokka.pages.PlatformData +import org.jetbrains.dokka.model.SourceSetCache +import org.jetbrains.dokka.model.SourceSetData import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.DokkaPlugin import org.jetbrains.dokka.plugability.ExtensionPoint @@ -15,8 +16,9 @@ import kotlin.reflect.full.memberProperties class MockContext( vararg extensions: Pair, (DokkaContext) -> Any>, private val testConfiguration: DokkaConfiguration? = null, - private val testPlatforms: Map? = null, - private val unusedExtensionPoints: List>? = null + private val testSourceSets: Map? = null, + private val unusedExtensionPoints: List>? = null, + override val sourceSetCache: SourceSetCache ) : DokkaContext { private val extensionMap by lazy { extensions.groupBy(Pair, (DokkaContext) -> Any>::first) { @@ -39,8 +41,8 @@ class MockContext( override val configuration: DokkaConfiguration get() = testConfiguration ?: throw IllegalStateException("This mock context doesn't provide configuration") - override val platforms: Map - get() = testPlatforms ?: throw IllegalStateException("This mock context doesn't provide platforms data") + override val platforms: Map + get() = testSourceSets ?: throw IllegalStateException("This mock context doesn't provide platforms data") override val unusedPoints: Collection> get() = unusedExtensionPoints ?: throw IllegalStateException("This mock context doesn't provide unused extension points") diff --git a/testApi/src/main/kotlin/testApi/testRunner/DokkaTestGenerator.kt b/testApi/src/main/kotlin/testApi/testRunner/DokkaTestGenerator.kt index 0e77344d..802bfd93 100644 --- a/testApi/src/main/kotlin/testApi/testRunner/DokkaTestGenerator.kt +++ b/testApi/src/main/kotlin/testApi/testRunner/DokkaTestGenerator.kt @@ -3,7 +3,8 @@ package org.jetbrains.dokka.testApi.testRunner import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.DokkaGenerator import org.jetbrains.dokka.EnvironmentAndFacade -import org.jetbrains.dokka.pages.PlatformData +import org.jetbrains.dokka.model.SourceSetCache +import org.jetbrains.dokka.model.SourceSetData import org.jetbrains.dokka.plugability.DokkaPlugin import org.jetbrains.dokka.utilities.DokkaLogger @@ -16,11 +17,15 @@ internal class DokkaTestGenerator( fun generate() = with(testMethods) { val dokkaGenerator = DokkaGenerator(configuration, logger) + val sourceSetsCache = SourceSetCache() - val platforms: Map = dokkaGenerator.setUpAnalysis(configuration) + val platforms: Map = dokkaGenerator.setUpAnalysis( + configuration, + sourceSetsCache + ) analysisSetupStage(platforms) - val context = dokkaGenerator.initializePlugins(configuration, logger, platforms, pluginOverrides) + val context = dokkaGenerator.initializePlugins(configuration, logger, platforms, sourceSetsCache, pluginOverrides) pluginsSetupStage(context) val modulesFromPlatforms = dokkaGenerator.createDocumentationModels(platforms, context) diff --git a/testApi/src/main/kotlin/testApi/testRunner/TestRunner.kt b/testApi/src/main/kotlin/testApi/testRunner/TestRunner.kt index 6c132d3c..43d99dad 100644 --- a/testApi/src/main/kotlin/testApi/testRunner/TestRunner.kt +++ b/testApi/src/main/kotlin/testApi/testRunner/TestRunner.kt @@ -3,8 +3,8 @@ package org.jetbrains.dokka.testApi.testRunner import com.intellij.openapi.application.PathManager import org.jetbrains.dokka.* import org.jetbrains.dokka.model.DModule +import org.jetbrains.dokka.model.SourceSetData import org.jetbrains.dokka.pages.ModulePageNode -import org.jetbrains.dokka.pages.PlatformData import org.jetbrains.dokka.pages.RootPageNode import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.DokkaPlugin @@ -104,7 +104,7 @@ abstract class AbstractCoreTest { } protected class TestBuilder { - var analysisSetupStage: (Map) -> Unit = {} + var analysisSetupStage: (Map) -> Unit = {} var pluginsSetupStage: (DokkaContext) -> Unit = {} var documentablesCreationStage: (List) -> Unit = {} var documentablesFirstTransformationStep: (List) -> Unit = {} @@ -167,8 +167,10 @@ abstract class AbstractCoreTest { @DokkaConfigurationDsl protected class DokkaPassConfigurationBuilder( var moduleName: String = "root", + var sourceSetName: String = "main", var classpath: List = emptyList(), var sourceRoots: List = emptyList(), + var dependentSourceRoots: List = emptyList(), var samples: List = emptyList(), var includes: List = emptyList(), var includeNonPublic: Boolean = true, @@ -192,8 +194,10 @@ abstract class AbstractCoreTest { ) { fun build() = PassConfigurationImpl( moduleName = moduleName, + sourceSetName = sourceSetName, classpath = classpath, sourceRoots = sourceRoots.map { SourceRootImpl(it) }, + dependentSourceRoots = dependentSourceRoots.map { SourceRootImpl(it) }, samples = samples, includes = includes, includeNonPublic = includeNonPublic, @@ -235,7 +239,7 @@ abstract class AbstractCoreTest { } data class TestMethods( - val analysisSetupStage: (Map) -> Unit, + val analysisSetupStage: (Map) -> Unit, val pluginsSetupStage: (DokkaContext) -> Unit, val documentablesCreationStage: (List) -> Unit, val documentablesFirstTransformationStep: (List) -> Unit, -- cgit