From 3cabf490ddd5925f380e153e9cca90a772bf5798 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Fri, 12 Apr 2019 21:33:45 +0300 Subject: [PATCH] Use fir to html in modularized test --- compiler/fir/modularized-tests/build.gradle.kts | 1 + .../fir/FirResolveModularizedTotalKotlinTest.kt | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/compiler/fir/modularized-tests/build.gradle.kts b/compiler/fir/modularized-tests/build.gradle.kts index a0fc2e5cf74..9af6698a0c4 100644 --- a/compiler/fir/modularized-tests/build.gradle.kts +++ b/compiler/fir/modularized-tests/build.gradle.kts @@ -21,6 +21,7 @@ dependencies { testRuntime(project(":kotlin-reflect")) testCompile(projectTests(":compiler:fir:resolve")) testCompile(project(":compiler:fir:resolve")) + testCompile(project(":compiler:fir:dump")) } sourceSets { diff --git a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt index a8832b25ee6..db2a7468244 100644 --- a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt +++ b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.fir.builder.RawFirBuilder import org.jetbrains.kotlin.fir.declarations.FirFile +import org.jetbrains.kotlin.fir.dump.MultiModuleHtmlFirDump import org.jetbrains.kotlin.fir.resolve.FirProvider import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer @@ -48,6 +49,7 @@ private const val FAIL_FAST = true private const val DUMP_FIR = true private const val FIR_DUMP_PATH = "tmp/firDump" +private const val FIR_HTML_DUMP_PATH = "tmp/firDump-html" private const val FIR_LOGS_PATH = "tmp/fir-logs" private data class ModuleData(val name: String, val classpath: List, val sources: List, val javaSourceRoots: List) @@ -58,6 +60,7 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() { private lateinit var bench: FirResolveBench + private lateinit var dump: MultiModuleHtmlFirDump private fun runAnalysis(moduleData: ModuleData, environment: KotlinCoreEnvironment) { val project = environment.project @@ -84,6 +87,7 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() { bench.processFiles(firFiles, totalTransformer.transformers) dumpFir(moduleData, firFiles) + dumpFirHtml(moduleData, firFiles) } private fun dumpFir(moduleData: ModuleData, firFiles: List) { @@ -96,6 +100,14 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() { } } + private fun dumpFirHtml(moduleData: ModuleData, firFiles: List) { + if (!DUMP_FIR) return + dump.module(moduleData.name) { + firFiles.forEach(dump::indexFile) + firFiles.forEach(dump::generateFile) + } + } + private fun processModule(moduleData: ModuleData) { val configurationKind = ConfigurationKind.ALL val testJdkKind = TestJdkKind.FULL_JDK @@ -153,6 +165,7 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() { private fun runTestOnce(pass: Int) { + if (DUMP_FIR) dump = MultiModuleHtmlFirDump(File(FIR_HTML_DUMP_PATH)) val testDataPath = "/Users/jetbrains/jps" val root = File(testDataPath) @@ -160,6 +173,7 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() { val modules = root.listFiles().sortedBy { it.lastModified() }.map { loadModule(it) } +// .sortedByDescending { it.name == "idea" } for (module in modules.progress(step = 0.0) { "Analyzing ${it.name}" }) { @@ -177,7 +191,8 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() { } } - fun saveReport() { + private fun saveReport() { + if (DUMP_FIR) dump.finish() val format = SimpleDateFormat("yyyy-MM-dd__hh-mm") val logDir = File(FIR_LOGS_PATH) logDir.mkdirs()