From f94a2d688d71e0221ee65ef70988df9dac01c7ad Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Mon, 19 Mar 2018 01:06:15 +0300 Subject: [PATCH] Report correct source to output mapping for kjsm files Now IC can correctly remove kjsm files when source files are changed Original commit: 2584143e92fe89d4a849b768cfa3cf9294d91da5 --- .../kotlin/jps/build/KotlinJpsBuildTest.kt | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt index e64d0cd9af3..c9131cc476d 100644 --- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt +++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt @@ -94,16 +94,6 @@ open class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { private val PATH_TO_KOTLIN_JS_LIBRARY = AbstractKotlinJpsBuildTestCase.TEST_DATA_PATH + "general/KotlinJavaScriptProjectWithDirectoryAsLibrary/" + KOTLIN_JS_LIBRARY private val KOTLIN_JS_LIBRARY_JAR = "$KOTLIN_JS_LIBRARY.jar" - private fun k2jsOutput(vararg moduleNames: String): Array { - val list = arrayListOf() - for (moduleName in moduleNames) { - val outputDir = File("out/production/$moduleName") - list.add(toSystemIndependentName(JpsJsModuleUtils.getOutputFile(outputDir, moduleName, false).path)) - list.add(toSystemIndependentName(JpsJsModuleUtils.getOutputMetaFile(outputDir, moduleName, false).path)) - } - return list.toTypedArray() - } - private fun getMethodsOfClass(classFile: File): Set { val result = TreeSet() ClassReader(FileUtil.loadFileBytes(classFile)).accept(object : ClassVisitor(Opcodes.ASM5) { @@ -257,6 +247,21 @@ open class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { checkWhen(touch("src/test1.kt"), null, k2jsOutput(PROJECT_NAME)) } + private fun k2jsOutput(vararg moduleNames: String): Array { + val list = arrayListOf() + for (moduleName in moduleNames) { + val outputDir = File("out/production/$moduleName") + list.add(toSystemIndependentName(JpsJsModuleUtils.getOutputFile(outputDir, moduleName, false).path)) + list.add(toSystemIndependentName(JpsJsModuleUtils.getOutputMetaFile(outputDir, moduleName, false).path)) + + val kjsmFiles = File(workDir, outputDir.path).walk() + .filter { it.isFile && it.extension.equals("kjsm", ignoreCase = true) } + list.addAll(kjsmFiles.map { toSystemIndependentName(it.relativeTo(workDir).path) }) + + } + return list.toTypedArray() + } + fun testKotlinJavaScriptProjectWithSourceMap() { initProject(JS_STDLIB) buildAllModules().assertSuccessful()