[K/N] Adjust moved special backend checks tests
^KT-61564
This commit is contained in:
committed by
Space Team
parent
8f12bf6cc8
commit
08bc0a6bd0
+7
-1
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.test.frontend.fir
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.CommonKLibResolver
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
@@ -12,6 +13,7 @@ import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||
import org.jetbrains.kotlin.fir.session.FirNativeSessionFactory
|
||||
import org.jetbrains.kotlin.ir.backend.js.resolverLogger
|
||||
import org.jetbrains.kotlin.test.services.configuration.NativeEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
@@ -29,7 +31,11 @@ object TestFirNativeSessionFactory {
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
registerExtraComponents: (FirSession) -> Unit = {},
|
||||
): FirSession {
|
||||
val resolvedLibraries = resolveLibraries(configuration, getAllNativeDependenciesPaths(module, testServices))
|
||||
val resolvedLibraries = CommonKLibResolver.resolve(
|
||||
getAllNativeDependenciesPaths(module, testServices),
|
||||
configuration.resolverLogger,
|
||||
knownIrProviders = listOf("kotlin.native.cinterop"), // FIXME use KonanLibraryProperResolver instead, as in production.
|
||||
).getFullResolvedList()
|
||||
|
||||
return FirNativeSessionFactory.createLibrarySession(
|
||||
mainModuleName,
|
||||
|
||||
+32
-1
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.test.services.configuration
|
||||
|
||||
import org.jetbrains.kotlin.konan.target.TargetSupportException
|
||||
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
|
||||
@@ -25,6 +26,13 @@ class NativeEnvironmentConfigurator(testServices: TestServices) : EnvironmentCon
|
||||
result += File("$nativeHome/klib/common/stdlib").absolutePath
|
||||
}
|
||||
|
||||
if (ConfigurationDirectives.WITH_PLATFORM_LIBS in module.directives) {
|
||||
// Diagnostic tests are agnostic of native target, so host is enforced to be a target.
|
||||
File("$nativeHome/klib/platform/${hostOsArch()}").listFiles()?.forEach {
|
||||
result += it.absolutePath
|
||||
}
|
||||
}
|
||||
|
||||
testServices.runtimeClasspathProviders
|
||||
.flatMap { it.runtimeClassPaths(module) }
|
||||
.mapTo(result) { it.absolutePath }
|
||||
@@ -32,4 +40,27 @@ class NativeEnvironmentConfigurator(testServices: TestServices) : EnvironmentCon
|
||||
return result
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun hostOsArch() = "${hostOs()}_${hostArch()}"
|
||||
|
||||
// `:native` module cannot be imported here, so functions are just copy/pasted here.
|
||||
// `hostOs()` and `hostArch()` are similar to functions in org.jetbrains.kotlin.konan.target.HostManager
|
||||
private fun hostOs(): String {
|
||||
val javaOsName = System.getProperty("os.name")
|
||||
return when {
|
||||
javaOsName == "Mac OS X" -> "macos"
|
||||
javaOsName == "Linux" -> "linux"
|
||||
javaOsName.startsWith("Windows") -> "mingw"
|
||||
else -> throw TargetSupportException("Unknown operating system: $javaOsName")
|
||||
}
|
||||
}
|
||||
|
||||
fun hostArch(): String =
|
||||
when (val arch = System.getProperty("os.arch")) {
|
||||
"x86_64" -> "x64"
|
||||
"amd64" -> "x64"
|
||||
"arm64" -> "arm64"
|
||||
"aarch64" -> "arm64"
|
||||
else -> throw TargetSupportException("Unknown hardware platform: $arch")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user