[Native][tests] Pass "free compiler args" to static cache compilations
^KT-50775
This commit is contained in:
+3
-2
@@ -76,7 +76,7 @@ abstract class AbstractNativeKlibABITest : AbstractNativeSimpleTest() {
|
|||||||
text = generateBoxFunctionLauncher("box")
|
text = generateBoxFunctionLauncher("box")
|
||||||
)
|
)
|
||||||
|
|
||||||
val testCase = createTestCase(module, COMPILER_ARGS_FOR_EXECUTABLE)
|
val testCase = createTestCase(module, COMPILER_ARGS_FOR_STATIC_CACHE_AND_EXECUTABLE)
|
||||||
|
|
||||||
val compilation = ExecutableCompilation(
|
val compilation = ExecutableCompilation(
|
||||||
settings = testRunSettings,
|
settings = testRunSettings,
|
||||||
@@ -96,6 +96,7 @@ abstract class AbstractNativeKlibABITest : AbstractNativeSimpleTest() {
|
|||||||
private fun buildCacheForKlib(moduleDependencies: Collection<File>, klibArtifact: KLIB) {
|
private fun buildCacheForKlib(moduleDependencies: Collection<File>, klibArtifact: KLIB) {
|
||||||
val compilation = StaticCacheCompilation(
|
val compilation = StaticCacheCompilation(
|
||||||
settings = testRunSettings,
|
settings = testRunSettings,
|
||||||
|
freeCompilerArgs = COMPILER_ARGS_FOR_STATIC_CACHE_AND_EXECUTABLE,
|
||||||
dependencies = createLibraryCacheDependencies(moduleDependencies) + klibArtifact.toDependency(),
|
dependencies = createLibraryCacheDependencies(moduleDependencies) + klibArtifact.toDependency(),
|
||||||
expectedArtifact = klibArtifact.toStaticCacheArtifact()
|
expectedArtifact = klibArtifact.toStaticCacheArtifact()
|
||||||
)
|
)
|
||||||
@@ -145,7 +146,7 @@ abstract class AbstractNativeKlibABITest : AbstractNativeSimpleTest() {
|
|||||||
listOf("-nostdlib") // stdlib is passed explicitly.
|
listOf("-nostdlib") // stdlib is passed explicitly.
|
||||||
)
|
)
|
||||||
|
|
||||||
private val COMPILER_ARGS_FOR_EXECUTABLE = TestCompilerArgs(
|
private val COMPILER_ARGS_FOR_STATIC_CACHE_AND_EXECUTABLE = TestCompilerArgs(
|
||||||
COMPILER_ARGS_FOR_KLIB.compilerArgs + "-Xpartial-linkage"
|
COMPILER_ARGS_FOR_KLIB.compilerArgs + "-Xpartial-linkage"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+5
-3
@@ -28,11 +28,11 @@ internal abstract class BasicCompilation<A : TestCompilationArtifact>(
|
|||||||
protected val home: KotlinNativeHome,
|
protected val home: KotlinNativeHome,
|
||||||
private val classLoader: KotlinNativeClassLoader,
|
private val classLoader: KotlinNativeClassLoader,
|
||||||
private val optimizationMode: OptimizationMode,
|
private val optimizationMode: OptimizationMode,
|
||||||
|
protected val freeCompilerArgs: TestCompilerArgs,
|
||||||
protected val dependencies: Iterable<TestCompilationDependency<*>>,
|
protected val dependencies: Iterable<TestCompilationDependency<*>>,
|
||||||
protected val expectedArtifact: A
|
protected val expectedArtifact: A
|
||||||
) : TestCompilation<A>() {
|
) : TestCompilation<A>() {
|
||||||
protected abstract val sourceModules: Collection<TestModule>
|
protected abstract val sourceModules: Collection<TestModule>
|
||||||
protected abstract val freeCompilerArgs: TestCompilerArgs
|
|
||||||
|
|
||||||
// Runs the compiler and memorizes the result on property access.
|
// Runs the compiler and memorizes the result on property access.
|
||||||
final override val result: TestCompilationResult<out A> by lazy {
|
final override val result: TestCompilationResult<out A> by lazy {
|
||||||
@@ -143,7 +143,7 @@ internal abstract class SourceBasedCompilation<A : TestCompilationArtifact>(
|
|||||||
private val memoryModel: MemoryModel,
|
private val memoryModel: MemoryModel,
|
||||||
private val threadStateChecker: ThreadStateChecker,
|
private val threadStateChecker: ThreadStateChecker,
|
||||||
private val gcType: GCType,
|
private val gcType: GCType,
|
||||||
override val freeCompilerArgs: TestCompilerArgs,
|
freeCompilerArgs: TestCompilerArgs,
|
||||||
override val sourceModules: Collection<TestModule>,
|
override val sourceModules: Collection<TestModule>,
|
||||||
dependencies: Iterable<TestCompilationDependency<*>>,
|
dependencies: Iterable<TestCompilationDependency<*>>,
|
||||||
expectedArtifact: A
|
expectedArtifact: A
|
||||||
@@ -152,6 +152,7 @@ internal abstract class SourceBasedCompilation<A : TestCompilationArtifact>(
|
|||||||
home = home,
|
home = home,
|
||||||
classLoader = classLoader,
|
classLoader = classLoader,
|
||||||
optimizationMode = optimizationMode,
|
optimizationMode = optimizationMode,
|
||||||
|
freeCompilerArgs = freeCompilerArgs,
|
||||||
dependencies = dependencies,
|
dependencies = dependencies,
|
||||||
expectedArtifact = expectedArtifact
|
expectedArtifact = expectedArtifact
|
||||||
) {
|
) {
|
||||||
@@ -255,6 +256,7 @@ internal class ExecutableCompilation(
|
|||||||
|
|
||||||
internal class StaticCacheCompilation(
|
internal class StaticCacheCompilation(
|
||||||
settings: Settings,
|
settings: Settings,
|
||||||
|
freeCompilerArgs: TestCompilerArgs,
|
||||||
dependencies: Iterable<TestCompilationDependency<*>>,
|
dependencies: Iterable<TestCompilationDependency<*>>,
|
||||||
expectedArtifact: KLIBStaticCache
|
expectedArtifact: KLIBStaticCache
|
||||||
) : BasicCompilation<KLIBStaticCache>(
|
) : BasicCompilation<KLIBStaticCache>(
|
||||||
@@ -262,11 +264,11 @@ internal class StaticCacheCompilation(
|
|||||||
home = settings.get(),
|
home = settings.get(),
|
||||||
classLoader = settings.get(),
|
classLoader = settings.get(),
|
||||||
optimizationMode = settings.get(),
|
optimizationMode = settings.get(),
|
||||||
|
freeCompilerArgs = freeCompilerArgs,
|
||||||
dependencies = dependencies,
|
dependencies = dependencies,
|
||||||
expectedArtifact = expectedArtifact
|
expectedArtifact = expectedArtifact
|
||||||
) {
|
) {
|
||||||
override val sourceModules get() = emptyList<TestModule>()
|
override val sourceModules get() = emptyList<TestModule>()
|
||||||
override val freeCompilerArgs get() = TestCompilerArgs.EMPTY
|
|
||||||
|
|
||||||
private val cacheRootDir: File = run {
|
private val cacheRootDir: File = run {
|
||||||
val cacheKind = settings.get<CacheKind>()
|
val cacheKind = settings.get<CacheKind>()
|
||||||
|
|||||||
+1
@@ -94,6 +94,7 @@ internal class TestCompilationFactory {
|
|||||||
val staticCacheCompilation: StaticCacheCompilation? = if (staticCacheArtifact != null) {
|
val staticCacheCompilation: StaticCacheCompilation? = if (staticCacheArtifact != null) {
|
||||||
StaticCacheCompilation(
|
StaticCacheCompilation(
|
||||||
settings = settings,
|
settings = settings,
|
||||||
|
freeCompilerArgs = freeCompilerArgs,
|
||||||
dependencies = dependencies.staticCacheDependenciesWith(klibCompilation.asKlibDependency(type = /* does not matter in fact*/ Library)),
|
dependencies = dependencies.staticCacheDependenciesWith(klibCompilation.asKlibDependency(type = /* does not matter in fact*/ Library)),
|
||||||
expectedArtifact = staticCacheArtifact
|
expectedArtifact = staticCacheArtifact
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user