FIR modularized test: use qualified module names

This commit is contained in:
Simon Ogorodnik
2019-04-12 21:38:11 +03:00
committed by Mikhail Glukhikh
parent 3cabf490dd
commit 9c04751572
@@ -52,7 +52,13 @@ private const val FIR_DUMP_PATH = "tmp/firDump"
private const val FIR_HTML_DUMP_PATH = "tmp/firDump-html" private const val FIR_HTML_DUMP_PATH = "tmp/firDump-html"
private const val FIR_LOGS_PATH = "tmp/fir-logs" private const val FIR_LOGS_PATH = "tmp/fir-logs"
private data class ModuleData(val name: String, val classpath: List<File>, val sources: List<File>, val javaSourceRoots: List<File>) private data class ModuleData(
val name: String,
val qualifiedName: String,
val classpath: List<File>,
val sources: List<File>,
val javaSourceRoots: List<File>
)
private const val PASSES = 1 private const val PASSES = 1
@@ -92,7 +98,7 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() {
private fun dumpFir(moduleData: ModuleData, firFiles: List<FirFile>) { private fun dumpFir(moduleData: ModuleData, firFiles: List<FirFile>) {
if (!DUMP_FIR) return if (!DUMP_FIR) return
val dumpRoot = File(FIR_DUMP_PATH).resolve(moduleData.name) val dumpRoot = File(FIR_DUMP_PATH).resolve(moduleData.qualifiedName)
firFiles.forEach { firFiles.forEach {
val directory = it.packageFqName.pathSegments().fold(dumpRoot) { file, name -> file.resolve(name.asString()) } val directory = it.packageFqName.pathSegments().fold(dumpRoot) { file, name -> file.resolve(name.asString()) }
directory.mkdirs() directory.mkdirs()
@@ -102,7 +108,7 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() {
private fun dumpFirHtml(moduleData: ModuleData, firFiles: List<FirFile>) { private fun dumpFirHtml(moduleData: ModuleData, firFiles: List<FirFile>) {
if (!DUMP_FIR) return if (!DUMP_FIR) return
dump.module(moduleData.name) { dump.module(moduleData.qualifiedName) {
firFiles.forEach(dump::indexFile) firFiles.forEach(dump::indexFile)
firFiles.forEach(dump::generateFile) firFiles.forEach(dump::generateFile)
} }
@@ -142,6 +148,8 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() {
val document = builder.parse(file) val document = builder.parse(file)
val moduleElement = document.childNodes.item(0).childNodesList.first { it.nodeType == Node.ELEMENT_NODE } val moduleElement = document.childNodes.item(0).childNodesList.first { it.nodeType == Node.ELEMENT_NODE }
val moduleName = moduleElement.attributes.getNamedItem("name").nodeValue val moduleName = moduleElement.attributes.getNamedItem("name").nodeValue
val outputDir = moduleElement.attributes.getNamedItem("outputDir").nodeValue
val qualifiedModuleName = outputDir.substringAfterLast("/")
val javaSourceRoots = mutableListOf<File>() val javaSourceRoots = mutableListOf<File>()
val classpath = mutableListOf<File>() val classpath = mutableListOf<File>()
val sources = mutableListOf<File>() val sources = mutableListOf<File>()
@@ -160,7 +168,7 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() {
} }
} }
return ModuleData(moduleName, classpath, sources, javaSourceRoots) return ModuleData(moduleName, qualifiedModuleName, classpath, sources, javaSourceRoots)
} }
@@ -176,7 +184,7 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() {
// .sortedByDescending { it.name == "idea" } // .sortedByDescending { it.name == "idea" }
for (module in modules.progress(step = 0.0) { "Analyzing ${it.name}" }) { for (module in modules.progress(step = 0.0) { "Analyzing ${it.qualifiedName}" }) {
processModule(module) processModule(module)
if (bench.hasFiles && FAIL_FAST) { if (bench.hasFiles && FAIL_FAST) {
break break