[Native][tests] Gradle property: MemoryModel
This commit is contained in:
@@ -49,6 +49,7 @@ enum class TestProperty(shortName: String) {
|
||||
COMPILER_CLASSPATH("compilerClasspath"),
|
||||
TEST_MODE("mode"),
|
||||
OPTIMIZATION_MODE("optimizationMode"),
|
||||
MEMORY_MODEL("memoryModel"),
|
||||
USE_CACHE("useCache"),
|
||||
EXECUTION_TIMEOUT("executionTimeout");
|
||||
|
||||
|
||||
+5
@@ -58,6 +58,7 @@ class NativeBlackBoxTestSupport : BeforeEachCallback {
|
||||
computeNativeClassLoader(),
|
||||
computeTestMode(),
|
||||
computeOptimizationMode(),
|
||||
computeMemoryModel(),
|
||||
CacheKind::class to computeCacheKind(),
|
||||
computeBaseDirs(),
|
||||
computeTimeouts()
|
||||
@@ -87,6 +88,9 @@ class NativeBlackBoxTestSupport : BeforeEachCallback {
|
||||
private fun computeOptimizationMode(): OptimizationMode =
|
||||
enumSystemProperty(OPTIMIZATION_MODE, OptimizationMode.values(), default = OptimizationMode.DEBUG)
|
||||
|
||||
private fun computeMemoryModel(): MemoryModel =
|
||||
enumSystemProperty(MEMORY_MODEL, MemoryModel.values(), default = MemoryModel.DEFAULT)
|
||||
|
||||
private fun computeCacheKind(): CacheKind {
|
||||
val useCache = systemProperty(USE_CACHE, String::toBooleanStrictOrNull, default = true)
|
||||
return if (useCache) CacheKind.WithStaticCache else CacheKind.WithoutCache
|
||||
@@ -133,6 +137,7 @@ class NativeBlackBoxTestSupport : BeforeEachCallback {
|
||||
private const val COMPILER_CLASSPATH = "kotlin.internal.native.test.compilerClasspath"
|
||||
private const val TEST_MODE = "kotlin.internal.native.test.mode"
|
||||
private const val OPTIMIZATION_MODE = "kotlin.internal.native.test.optimizationMode"
|
||||
private const val MEMORY_MODEL = "kotlin.internal.native.test.memoryModel"
|
||||
private const val USE_CACHE = "kotlin.internal.native.test.useCache"
|
||||
private const val EXECUTION_TIMEOUT = "kotlin.internal.native.test.executionTimeout"
|
||||
private const val PROJECT_BUILD_DIR = "PROJECT_BUILD_DIR"
|
||||
|
||||
+4
@@ -51,6 +51,7 @@ internal class TestCompilationFactory {
|
||||
home = settings.get(),
|
||||
classLoader = settings.get(),
|
||||
optimizationMode = settings.get(),
|
||||
memoryModel = settings.get(),
|
||||
freeCompilerArgs = freeCompilerArgs,
|
||||
sourceModules = rootModules,
|
||||
dependencies = TestCompilationDependencies(libraries = libraries, friends = friends),
|
||||
@@ -93,6 +94,7 @@ internal class TestCompilationFactory {
|
||||
home = settings.get(),
|
||||
classLoader = settings.get(),
|
||||
optimizationMode = settings.get(),
|
||||
memoryModel = settings.get(),
|
||||
freeCompilerArgs = freeCompilerArgs,
|
||||
sourceModules = sourceModules,
|
||||
dependencies = TestCompilationDependencies(libraries = libraries, friends = friends),
|
||||
@@ -242,6 +244,7 @@ private class TestCompilationImpl(
|
||||
private val home: KotlinNativeHome,
|
||||
private val classLoader: KotlinNativeClassLoader,
|
||||
private val optimizationMode: OptimizationMode,
|
||||
private val memoryModel: MemoryModel,
|
||||
private val freeCompilerArgs: TestCompilerArgs,
|
||||
private val sourceModules: Collection<TestModule>,
|
||||
private val dependencies: TestCompilationDependencies,
|
||||
@@ -268,6 +271,7 @@ private class TestCompilationImpl(
|
||||
"-Xbinary=runtimeAssertionsMode=panic"
|
||||
)
|
||||
optimizationMode.compilerFlag?.let { compilerFlag -> add(compilerFlag) }
|
||||
memoryModel.compilerFlags?.let { compilerFlags -> add(compilerFlags) }
|
||||
|
||||
addFlattened(dependencies.libraries) { library -> listOf("-l", library.resultingArtifactPath) }
|
||||
dependencies.friends.takeIf(Collection<*>::isNotEmpty)?.let { friends ->
|
||||
|
||||
+2
-1
@@ -118,7 +118,8 @@ internal class TestCompilerArgs(val compilerArgs: List<String>) {
|
||||
"-repo",
|
||||
"-target",
|
||||
"-Xinclude",
|
||||
"-g", "-opt"
|
||||
"-g", "-opt",
|
||||
"-memory-model"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -53,6 +53,13 @@ internal enum class OptimizationMode(private val description: String, val compil
|
||||
override fun toString() = description + if (compilerFlag == null) "" else " ($compilerFlag)"
|
||||
}
|
||||
|
||||
internal enum class MemoryModel(val compilerFlags: List<String>?) {
|
||||
DEFAULT(null),
|
||||
EXPERIMENTAL(listOf("-memory-model", "experimental"));
|
||||
|
||||
override fun toString() = compilerFlags?.joinToString(prefix = "(", separator = " ", postfix = ")").orEmpty()
|
||||
}
|
||||
|
||||
/**
|
||||
* Current project's directories.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user