[K/N][Tests] Improve test UX for wrong combination of OPT and CACHE modes

This commit is contained in:
Vladimir Sukharev
2024-02-23 11:31:13 +01:00
committed by Space Team
parent 3aab97eb7c
commit 425381ddf9
2 changed files with 11 additions and 1 deletions
@@ -269,7 +269,8 @@ internal object NativeTestSupport {
val cacheMode = ClassLevelProperty.CACHE_MODE.readValue(
enforcedProperties,
CacheMode.Alias.values(),
default = defaultCache
default = if (optimizationMode != OptimizationMode.OPT) defaultCache
else CacheMode.Alias.NO,
)
val useStaticCacheForUserLibraries = when (cacheMode) {
CacheMode.Alias.NO -> return CacheMode.WithoutCache
@@ -9,10 +9,12 @@ import org.jetbrains.kotlin.config.LanguageVersion
import org.jetbrains.kotlin.konan.properties.resolvablePropertyList
import org.jetbrains.kotlin.konan.target.Distribution
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.test.blackbox.support.ClassLevelProperty
import org.jetbrains.kotlin.konan.test.blackbox.support.MutedOption
import org.jetbrains.kotlin.konan.test.blackbox.support.runner.RunnerWithExecutor
import org.jetbrains.kotlin.konan.test.blackbox.support.runner.NoopTestRunner
import org.jetbrains.kotlin.konan.test.blackbox.support.runner.Runner
import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertFalse
import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertTrue
import java.io.File
import java.io.IOException
@@ -227,6 +229,13 @@ internal sealed class CacheMode {
override val makePerFileCaches: Boolean,
override val alias: Alias,
) : CacheMode() {
init {
assertFalse (optimizationMode == OptimizationMode.OPT) {
"Static caches are incompatible with `-P${ClassLevelProperty.OPTIMIZATION_MODE.propertyName}=${OptimizationMode.OPT.name}`.\n" +
"To test in ${OptimizationMode.OPT.name} mode, either don't specify `-P${ClassLevelProperty.CACHE_MODE.propertyName}`, or set it to ${Alias.NO.name}."
}
}
override val staticCacheForDistributionLibrariesRootDir: File = File(distribution.klib)
.resolve("cache")
.resolve(