From 5db6158b47468b26cf8bb9d1b1d1a43811149c7c Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Fri, 31 Mar 2023 23:51:57 +0200 Subject: [PATCH] [PL][tests] Mark K/N tests that should be executed without PL or with always some predefined mode #KT-57378 --- .../AbstractNativeKlibContentsTest.kt | 2 ++ .../AbstractNativeKlibEvolutionTest.kt | 10 ++++----- .../AbstractNativePartialLinkageTest.kt | 22 +++++++++---------- .../blackboxtest/K1KotlinTestLibraryTest.kt | 3 +++ .../kotlin/konan/blackboxtest/StdlibTest.kt | 3 +++ 5 files changed, 23 insertions(+), 17 deletions(-) diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativeKlibContentsTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativeKlibContentsTest.kt index 70b74a49795..8acb85553ae 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativeKlibContentsTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativeKlibContentsTest.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.konan.blackboxtest.support.* import org.jetbrains.kotlin.konan.blackboxtest.support.compilation.* import org.jetbrains.kotlin.konan.blackboxtest.support.compilation.TestCompilationArtifact.* import org.jetbrains.kotlin.konan.blackboxtest.support.compilation.TestCompilationResult.Companion.assertSuccess +import org.jetbrains.kotlin.konan.blackboxtest.support.group.UsePartialLinkage import org.jetbrains.kotlin.konan.blackboxtest.support.runner.* import org.jetbrains.kotlin.konan.blackboxtest.support.settings.* import org.jetbrains.kotlin.konan.blackboxtest.support.util.* @@ -20,6 +21,7 @@ import org.junit.jupiter.api.Tag import java.io.File @Tag("klib-contents") +@UsePartialLinkage(UsePartialLinkage.Mode.DISABLED) abstract class AbstractNativeKlibContentsTest : AbstractNativeSimpleTest() { protected fun runTest(@TestDataFile testPath: String) { diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativeKlibEvolutionTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativeKlibEvolutionTest.kt index 834b43052a5..d4e457e4c01 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativeKlibEvolutionTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativeKlibEvolutionTest.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.konan.blackboxtest.support.compilation.* import org.jetbrains.kotlin.konan.blackboxtest.support.compilation.TestCompilationArtifact.KLIB import org.jetbrains.kotlin.konan.blackboxtest.support.compilation.TestCompilationArtifact.KLIBStaticCache import org.jetbrains.kotlin.konan.blackboxtest.support.compilation.TestCompilationResult.Companion.assertSuccess +import org.jetbrains.kotlin.konan.blackboxtest.support.group.UsePartialLinkage import org.jetbrains.kotlin.konan.blackboxtest.support.runner.TestExecutable import org.jetbrains.kotlin.konan.blackboxtest.support.runner.TestRunChecks import org.jetbrains.kotlin.konan.blackboxtest.support.settings.CacheMode @@ -31,6 +32,7 @@ import org.jetbrains.kotlin.compatibility.binary.TestFile as TFile import org.jetbrains.kotlin.compatibility.binary.TestModule as TModule @Tag("klib-evolution") +@UsePartialLinkage(UsePartialLinkage.Mode.DISABLED) abstract class AbstractNativeKlibEvolutionTest : AbstractNativeSimpleTest() { // Const evaluation tests muted for FIR because FIR does const propagation. private fun isIgnoredTest(filePath: String): Boolean { @@ -98,7 +100,7 @@ abstract class AbstractNativeKlibEvolutionTest : AbstractNativeSimpleTest() { ) val executableArtifact = TestCompilationArtifact.Executable(executableFile) - val cachedDependencies: List> = if (staticCacheRequiredForEveryLibrary) { + val cachedDependencies: List> = if (useStaticCacheForUserLibraries) { latestDependencies.map { (module, deps) -> val testModule = module.module @@ -282,10 +284,8 @@ abstract class AbstractNativeKlibEvolutionTest : AbstractNativeSimpleTest() { initialize(null, null) } - private val buildDir: File - get() = testRunSettings.get().testBuildDir - private val staticCacheRequiredForEveryLibrary: Boolean - get() = testRunSettings.get().staticCacheRequiredForEveryLibrary + private val buildDir: File get() = testRunSettings.get().testBuildDir + private val useStaticCacheForUserLibraries: Boolean get() = testRunSettings.get().useStaticCacheForUserLibraries companion object { private val COMPILER_ARGS_FOR_KLIB = TestCompilerArgs.EMPTY diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativePartialLinkageTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativePartialLinkageTest.kt index 7fdda656fbf..13c8820c2a0 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativePartialLinkageTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativePartialLinkageTest.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.konan.blackboxtest.support.compilation.* import org.jetbrains.kotlin.konan.blackboxtest.support.compilation.TestCompilationArtifact.* import org.jetbrains.kotlin.konan.blackboxtest.support.compilation.TestCompilationDependencyType.* import org.jetbrains.kotlin.konan.blackboxtest.support.compilation.TestCompilationResult.Companion.assertSuccess +import org.jetbrains.kotlin.konan.blackboxtest.support.group.UsePartialLinkage import org.jetbrains.kotlin.konan.blackboxtest.support.runner.TestExecutable import org.jetbrains.kotlin.konan.blackboxtest.support.runner.TestRunChecks import org.jetbrains.kotlin.konan.blackboxtest.support.settings.* @@ -25,6 +26,7 @@ import org.opentest4j.TestAbortedException import java.io.File @Tag("partial-linkage") +@UsePartialLinkage(UsePartialLinkage.Mode.ENABLED_WITH_WARNING) abstract class AbstractNativePartialLinkageTest : AbstractNativeSimpleTest() { private inner class NativeTestConfiguration(testPath: String) : PartialLinkageTestUtils.TestConfiguration { override val testDir = getAbsoluteFile(testPath) @@ -33,8 +35,8 @@ abstract class AbstractNativePartialLinkageTest : AbstractNativeSimpleTest() { override val testModeName = with(testRunSettings.get()) { val cacheModeAlias = when { - staticCacheRootDir == null -> CacheMode.Alias.NO - !staticCacheRequiredForEveryLibrary -> CacheMode.Alias.STATIC_ONLY_DIST + !useStaticCacheForDistributionLibraries -> CacheMode.Alias.NO + !useStaticCacheForUserLibraries -> CacheMode.Alias.STATIC_ONLY_DIST else -> CacheMode.Alias.STATIC_EVERYWHERE } @@ -86,7 +88,7 @@ abstract class AbstractNativePartialLinkageTest : AbstractNativeSimpleTest() { private fun buildKlib(moduleName: String, moduleSourceDir: File, dependencies: Dependencies, klibFile: File) { val klibArtifact = KLIB(klibFile) - val testCase = createTestCase(moduleName, moduleSourceDir, COMPILER_ARGS_FOR_KLIB) + val testCase = createTestCase(moduleName, moduleSourceDir, COMPILER_ARGS) val compilation = LibraryCompilation( settings = testRunSettings, @@ -102,7 +104,7 @@ abstract class AbstractNativePartialLinkageTest : AbstractNativeSimpleTest() { } private fun buildBinaryAndRun(allDependencies: Dependencies) { - val cacheDependencies = if (staticCacheRequiredForEveryLibrary) { + val cacheDependencies = if (useStaticCacheForUserLibraries) { producedKlibs.map { producedKlib -> buildCacheForKlib(producedKlib) producedKlib.klibArtifact.toStaticCacheArtifact().toDependency() @@ -113,7 +115,7 @@ abstract class AbstractNativePartialLinkageTest : AbstractNativeSimpleTest() { val testCase = createTestCase( moduleName = LAUNCHER_MODULE_NAME, moduleSourceDir = null, // No sources. - compilerArgs = COMPILER_ARGS_FOR_STATIC_CACHE_AND_EXECUTABLE + compilerArgs = COMPILER_ARGS ) val compilation = ExecutableCompilation( @@ -134,7 +136,7 @@ abstract class AbstractNativePartialLinkageTest : AbstractNativeSimpleTest() { private fun buildCacheForKlib(producedKlib: ProducedKlib) { val compilation = StaticCacheCompilation( settings = testRunSettings, - freeCompilerArgs = COMPILER_ARGS_FOR_STATIC_CACHE_AND_EXECUTABLE, + freeCompilerArgs = COMPILER_ARGS, options = if (producedKlib.moduleName == MAIN_MODULE_NAME) StaticCacheCompilation.Options.ForIncludedLibraryWithTests(executableArtifact, DEFAULT_EXTRAS) else @@ -203,17 +205,13 @@ abstract class AbstractNativePartialLinkageTest : AbstractNativeSimpleTest() { private val buildDir: File get() = testRunSettings.get().testBuildDir private val stdlibFile: File get() = testRunSettings.get().stdlibFile - private val staticCacheRequiredForEveryLibrary: Boolean get() = testRunSettings.get().staticCacheRequiredForEveryLibrary + private val useStaticCacheForUserLibraries: Boolean get() = testRunSettings.get().useStaticCacheForUserLibraries companion object { - private val COMPILER_ARGS_FOR_KLIB = TestCompilerArgs( + private val COMPILER_ARGS = TestCompilerArgs( listOf("-nostdlib") // stdlib is passed explicitly. ) - private val COMPILER_ARGS_FOR_STATIC_CACHE_AND_EXECUTABLE = TestCompilerArgs( - COMPILER_ARGS_FOR_KLIB.compilerArgs + "-Xpartial-linkage=enable" - ) - private val DEFAULT_EXTRAS = WithTestRunnerExtras(TestRunnerType.DEFAULT) private const val BACKED_UP_DIRECTORY_PREFIX = "__backup-" diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/K1KotlinTestLibraryTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/K1KotlinTestLibraryTest.kt index bc924fce150..e292cd79980 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/K1KotlinTestLibraryTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/K1KotlinTestLibraryTest.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.konan.blackboxtest.support.TestCaseId import org.jetbrains.kotlin.konan.blackboxtest.support.TestRunnerType import org.jetbrains.kotlin.konan.blackboxtest.support.group.FirPipeline import org.jetbrains.kotlin.konan.blackboxtest.support.group.PredefinedTestCases +import org.jetbrains.kotlin.konan.blackboxtest.support.group.UsePartialLinkage import org.jetbrains.kotlin.konan.blackboxtest.support.group.PredefinedTestCase as TC import org.junit.jupiter.api.Tag import org.junit.jupiter.api.TestFactory @@ -29,6 +30,7 @@ import org.junit.jupiter.api.TestFactory sourceLocations = ["libraries/kotlin.test/common/src/test/kotlin/**.kt"] ) ) +@UsePartialLinkage(UsePartialLinkage.Mode.DISABLED) class K1KotlinTestLibraryTest : AbstractNativeBlackBoxTest() { @TestFactory fun default() = dynamicTestCase(TestCaseId.Named("default")) @@ -54,6 +56,7 @@ class K1KotlinTestLibraryTest : AbstractNativeBlackBoxTest() { ) ) @FirPipeline +@UsePartialLinkage(UsePartialLinkage.Mode.DISABLED) class FirKotlinTestLibraryTest : AbstractNativeBlackBoxTest() { @TestFactory fun default() = dynamicTestCase(TestCaseId.Named("default")) diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/StdlibTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/StdlibTest.kt index ce18ac9c4fc..48c5df0d9f0 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/StdlibTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/StdlibTest.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.konan.blackboxtest.support.group.FirPipeline import org.jetbrains.kotlin.konan.blackboxtest.support.group.PredefinedPaths.KOTLIN_NATIVE_DISTRIBUTION import org.jetbrains.kotlin.konan.blackboxtest.support.group.PredefinedTestCase as TC import org.jetbrains.kotlin.konan.blackboxtest.support.group.PredefinedTestCases +import org.jetbrains.kotlin.konan.blackboxtest.support.group.UsePartialLinkage import org.junit.jupiter.api.Tag import org.junit.jupiter.api.TestFactory @@ -45,6 +46,7 @@ import org.junit.jupiter.api.TestFactory ignoredTests = [DISABLED_STDLIB_TEST] ) ) +@UsePartialLinkage(UsePartialLinkage.Mode.DISABLED) class StdlibTest : AbstractNativeBlackBoxTest() { @TestFactory fun default() = dynamicTestCase(TestCaseId.Named("default")) @@ -100,6 +102,7 @@ class StdlibTest : AbstractNativeBlackBoxTest() { ) ) @FirPipeline +@UsePartialLinkage(UsePartialLinkage.Mode.DISABLED) class FirStdlibTest : AbstractNativeBlackBoxTest() { @TestFactory fun default() = dynamicTestCase(TestCaseId.Named("default"))