[Test] Unify work with KLIB artifact paths and dependencies
Unify functions from `JsEnvironmentConfigurator` and `WasmEnvironmentConfigurator` that do the same logic. Make this logic also be available for `NativeEnvironmentConfigurator`: - get*ArtifactSimpleName() - get*KlibArtifactPath() - get*KlibOutputDir() - getAllRecursiveLibrariesFor() - getAllRecursiveDependenciesFor() - getAllDependenciesMappingFor() - getKlibDependencies() This would allow to have the same logic in one place, and also reuse it in `IrBackendFacade`s to be implemented for Native. ^KT-65117
This commit is contained in:
committed by
Space Team
parent
7e9e064748
commit
f204293e4d
@@ -29,7 +29,6 @@ import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.*
|
||||
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
import java.io.File
|
||||
|
||||
class FirJsKlibBackendFacade(
|
||||
testServices: TestServices,
|
||||
@@ -51,7 +50,7 @@ class FirJsKlibBackendFacade(
|
||||
}
|
||||
|
||||
val configuration = testServices.compilerConfigurationProvider.getCompilerConfiguration(module)
|
||||
val outputFile = JsEnvironmentConfigurator.getJsKlibArtifactPath(testServices, module.name)
|
||||
val outputFile = JsEnvironmentConfigurator.getKlibArtifactFile(testServices, module.name)
|
||||
|
||||
// TODO: consider avoiding repeated libraries resolution
|
||||
val libraries = resolveLibraries(configuration, getAllJsDependenciesPaths(module, testServices))
|
||||
@@ -62,7 +61,7 @@ class FirJsKlibBackendFacade(
|
||||
configuration,
|
||||
inputArtifact.diagnosticReporter,
|
||||
inputArtifact.metadataSerializer,
|
||||
klibPath = outputFile,
|
||||
klibPath = outputFile.path,
|
||||
libraries.map { it.library },
|
||||
inputArtifact.irModuleFragment,
|
||||
cleanFiles = inputArtifact.icData,
|
||||
@@ -76,7 +75,7 @@ class FirJsKlibBackendFacade(
|
||||
|
||||
// TODO: consider avoiding repeated libraries resolution
|
||||
val lib = CommonKLibResolver.resolve(
|
||||
getAllJsDependenciesPaths(module, testServices) + listOf(outputFile),
|
||||
getAllJsDependenciesPaths(module, testServices) + listOf(outputFile.path),
|
||||
configuration.getLogger(treatWarningsAsErrors = true)
|
||||
).getFullResolvedList().last().library
|
||||
|
||||
@@ -97,8 +96,8 @@ class FirJsKlibBackendFacade(
|
||||
if (JsEnvironmentConfigurator.incrementalEnabled(testServices)) {
|
||||
testServices.jsIrIncrementalDataProvider.recordIncrementalData(module, lib)
|
||||
}
|
||||
testServices.libraryProvider.setDescriptorAndLibraryByName(outputFile, moduleDescriptor, lib)
|
||||
testServices.libraryProvider.setDescriptorAndLibraryByName(outputFile.path, moduleDescriptor, lib)
|
||||
|
||||
return BinaryArtifacts.KLib(File(outputFile), inputArtifact.diagnosticReporter)
|
||||
return BinaryArtifacts.KLib(outputFile, inputArtifact.diagnosticReporter)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ import org.jetbrains.kotlin.test.model.*
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.compilerConfigurationProvider
|
||||
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator.Companion.getJsArtifactSimpleName
|
||||
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator.Companion.getJsModuleArtifactName
|
||||
import org.jetbrains.kotlin.test.services.configuration.getDependencies
|
||||
import org.jetbrains.kotlin.test.services.libraryProvider
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
|
||||
@@ -127,7 +127,7 @@ class JsIrBackendFacade(
|
||||
val phaseConfig = if (debugMode >= DebugMode.SUPER_DEBUG) {
|
||||
val dumpOutputDir = File(
|
||||
JsEnvironmentConfigurator.getJsArtifactsOutputDir(testServices),
|
||||
JsEnvironmentConfigurator.getJsArtifactSimpleName(testServices, module.name) + "-irdump"
|
||||
JsEnvironmentConfigurator.getKlibArtifactSimpleName(testServices, module.name) + "-irdump"
|
||||
)
|
||||
PhaseConfig(
|
||||
jsPhases,
|
||||
@@ -181,7 +181,7 @@ class JsIrBackendFacade(
|
||||
loweredIr.context,
|
||||
moduleToName = runIf(isEsModules) {
|
||||
loweredIr.allModules.associateWith {
|
||||
"./${getJsArtifactSimpleName(testServices, it.safeName)}_v5".minifyIfNeed()
|
||||
"./${getJsModuleArtifactName(testServices, it.safeName)}".minifyIfNeed()
|
||||
}
|
||||
} ?: emptyMap(),
|
||||
shouldReferMainFunction,
|
||||
|
||||
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.test.model.BinaryArtifacts
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.*
|
||||
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
|
||||
import java.io.File
|
||||
|
||||
class JsKlibBackendFacade(
|
||||
testServices: TestServices,
|
||||
@@ -44,7 +43,7 @@ class JsKlibBackendFacade(
|
||||
}
|
||||
|
||||
val configuration = testServices.compilerConfigurationProvider.getCompilerConfiguration(module)
|
||||
val outputFile = JsEnvironmentConfigurator.getJsKlibArtifactPath(testServices, module.name)
|
||||
val outputFile = JsEnvironmentConfigurator.getKlibArtifactFile(testServices, module.name)
|
||||
|
||||
if (firstTimeCompilation) {
|
||||
serializeModuleIntoKlib(
|
||||
@@ -52,7 +51,7 @@ class JsKlibBackendFacade(
|
||||
configuration,
|
||||
inputArtifact.diagnosticReporter,
|
||||
inputArtifact.metadataSerializer,
|
||||
klibPath = outputFile,
|
||||
klibPath = outputFile.path,
|
||||
JsEnvironmentConfigurator.getAllRecursiveLibrariesFor(module, testServices).keys.toList(),
|
||||
inputArtifact.irModuleFragment,
|
||||
cleanFiles = inputArtifact.icData,
|
||||
@@ -66,7 +65,7 @@ class JsKlibBackendFacade(
|
||||
|
||||
val dependencies = JsEnvironmentConfigurator.getAllRecursiveDependenciesFor(module, testServices).toList()
|
||||
val lib = CommonKLibResolver.resolve(
|
||||
dependencies.map { testServices.libraryProvider.getPathByDescriptor(it) } + listOf(outputFile),
|
||||
dependencies.map { testServices.libraryProvider.getPathByDescriptor(it) } + listOf(outputFile.path),
|
||||
configuration.getLogger(treatWarningsAsErrors = true)
|
||||
).getFullResolvedList().last().library
|
||||
|
||||
@@ -84,8 +83,8 @@ class JsKlibBackendFacade(
|
||||
if (JsEnvironmentConfigurator.incrementalEnabled(testServices)) {
|
||||
testServices.jsIrIncrementalDataProvider.recordIncrementalData(module, lib)
|
||||
}
|
||||
testServices.libraryProvider.setDescriptorAndLibraryByName(outputFile, moduleDescriptor, lib)
|
||||
testServices.libraryProvider.setDescriptorAndLibraryByName(outputFile.path, moduleDescriptor, lib)
|
||||
|
||||
return BinaryArtifacts.KLib(File(outputFile), inputArtifact.diagnosticReporter)
|
||||
return BinaryArtifacts.KLib(outputFile, inputArtifact.diagnosticReporter)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,8 +57,8 @@ class JsIrIncrementalDataProvider(private val testServices: TestServices) : Test
|
||||
fun getCaches() = icCache.map { it.value.fetchArtifacts() }
|
||||
|
||||
fun getCacheForModule(module: TestModule): Map<String, ByteArray> {
|
||||
val path = JsEnvironmentConfigurator.getJsKlibArtifactPath(testServices, module.name)
|
||||
val canonicalPath = File(path).canonicalPath
|
||||
val path = JsEnvironmentConfigurator.getKlibArtifactFile(testServices, module.name)
|
||||
val canonicalPath = path.canonicalPath
|
||||
val moduleCache = icCache[canonicalPath] ?: error("No cache found for $path")
|
||||
|
||||
val oldBinaryAsts = mutableMapOf<String, ByteArray>()
|
||||
@@ -94,7 +94,7 @@ class JsIrIncrementalDataProvider(private val testServices: TestServices) : Test
|
||||
recordIncrementalDataForRuntimeKlib(module)
|
||||
|
||||
val dirtyFiles = module.files.map { "/${it.relativePath}" }
|
||||
val path = JsEnvironmentConfigurator.getJsKlibArtifactPath(testServices, module.name)
|
||||
val path = JsEnvironmentConfigurator.getKlibArtifactFile(testServices, module.name).path
|
||||
val configuration = testServices.compilerConfigurationProvider.getCompilerConfiguration(module)
|
||||
|
||||
val mainArguments = JsEnvironmentConfigurator.getMainCallParametersForModule(module)
|
||||
|
||||
@@ -33,7 +33,7 @@ import java.io.File
|
||||
const val MODULE_EMULATION_FILE = "${JsEnvironmentConfigurator.TEST_DATA_DIR_PATH}/moduleEmulation.js"
|
||||
|
||||
fun TestModule.getNameFor(filePath: String, testServices: TestServices): String {
|
||||
return JsEnvironmentConfigurator.getJsArtifactSimpleName(testServices, name) + "-js-" + filePath
|
||||
return JsEnvironmentConfigurator.getKlibArtifactSimpleName(testServices, name) + "-js-" + filePath
|
||||
}
|
||||
|
||||
fun TestModule.getNameFor(file: TestFile, testServices: TestServices): String {
|
||||
|
||||
Reference in New Issue
Block a user