[JS IR] Pass friend dependencies to compiler in test runner

This commit is contained in:
Roman Artemev
2021-10-05 12:36:32 +03:00
committed by teamcityserver
parent 5d2739e6f0
commit 9138425a3d
@@ -220,11 +220,16 @@ abstract class BasicIrBoxTest(
val runtimeKlibs = if (needsFullIrRuntime) listOf(fullRuntimeKlib, kotlinTestKLib) else listOf(defaultRuntimeKlib) val runtimeKlibs = if (needsFullIrRuntime) listOf(fullRuntimeKlib, kotlinTestKLib) else listOf(defaultRuntimeKlib)
val transitiveLibraries = config.configuration[JSConfigurationKeys.TRANSITIVE_LIBRARIES]!!.map { File(it).name } val transitiveLibraries = config.configuration[JSConfigurationKeys.TRANSITIVE_LIBRARIES]!!.map { File(it).name }
val friendsLibraries = (config.configuration[JSConfigurationKeys.FRIEND_PATHS] ?: emptyList()).map { File(it).name }
val allKlibPaths = (runtimeKlibs + transitiveLibraries.map { val allKlibPaths = (runtimeKlibs + transitiveLibraries.map {
compilationCache[it] ?: error("Can't find compiled module for dependency $it") compilationCache[it] ?: error("Can't find compiled module for dependency $it")
}).map { File(it).absolutePath }.toMutableList() }).map { File(it).absolutePath }.toMutableList()
val friendPaths = friendsLibraries.map { compilationCache[it] ?: error("Can't find compiled module for friend dep $it") }.map {
File(it).canonicalPath
}
val klibPath = outputFile.canonicalPath.replace("_v5.js", "") val klibPath = outputFile.canonicalPath.replace("_v5.js", "")
val actualOutputFile = outputFile.canonicalPath.let { val actualOutputFile = outputFile.canonicalPath.let {
@@ -241,7 +246,7 @@ abstract class BasicIrBoxTest(
filesToCompile, filesToCompile,
config.configuration, config.configuration,
allKlibPaths, allKlibPaths,
emptyList(), friendPaths,
AnalyzerWithCompilerReport(config.configuration), AnalyzerWithCompilerReport(config.configuration),
) )
generateKLib( generateKLib(
@@ -288,7 +293,7 @@ abstract class BasicIrBoxTest(
MainModule.Klib(klibPath), MainModule.Klib(klibPath),
config.configuration, config.configuration,
allKlibPaths + klibCannonPath, allKlibPaths + klibCannonPath,
emptyList(), friendPaths,
icUseGlobalSignatures = runIcMode, icUseGlobalSignatures = runIcMode,
icUseStdlibCache = runIcMode, icUseStdlibCache = runIcMode,
icCache = emptyMap() icCache = emptyMap()