Report correct source to output mapping for kjsm files
Now IC can correctly remove kjsm files when source files are changed
Original commit: 2584143e92
This commit is contained in:
+15
-10
@@ -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 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 val KOTLIN_JS_LIBRARY_JAR = "$KOTLIN_JS_LIBRARY.jar"
|
||||||
|
|
||||||
private fun k2jsOutput(vararg moduleNames: String): Array<String> {
|
|
||||||
val list = arrayListOf<String>()
|
|
||||||
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<String> {
|
private fun getMethodsOfClass(classFile: File): Set<String> {
|
||||||
val result = TreeSet<String>()
|
val result = TreeSet<String>()
|
||||||
ClassReader(FileUtil.loadFileBytes(classFile)).accept(object : ClassVisitor(Opcodes.ASM5) {
|
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))
|
checkWhen(touch("src/test1.kt"), null, k2jsOutput(PROJECT_NAME))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun k2jsOutput(vararg moduleNames: String): Array<String> {
|
||||||
|
val list = arrayListOf<String>()
|
||||||
|
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() {
|
fun testKotlinJavaScriptProjectWithSourceMap() {
|
||||||
initProject(JS_STDLIB)
|
initProject(JS_STDLIB)
|
||||||
buildAllModules().assertSuccessful()
|
buildAllModules().assertSuccessful()
|
||||||
|
|||||||
Reference in New Issue
Block a user