[K/N] Enable test muted because of wrong test infra setup
^KT-61773
This commit is contained in:
committed by
Space Team
parent
c820e82db3
commit
4175a0d258
+30
-8
@@ -17,16 +17,17 @@ import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.LibraryCompi
|
|||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilationArtifact
|
import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilationArtifact
|
||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilationResult
|
import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilationResult
|
||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilationResult.Companion.assertSuccess
|
import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilationResult.Companion.assertSuccess
|
||||||
|
import org.jetbrains.kotlin.konan.test.blackbox.support.group.FirPipeline
|
||||||
|
import org.jetbrains.kotlin.konan.test.blackbox.support.settings.PipelineType
|
||||||
|
import org.jetbrains.kotlin.konan.test.blackbox.support.settings.Settings
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
|
import org.junit.jupiter.api.Tag
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@TestDataPath("\$PROJECT_ROOT")
|
abstract class CompilerOutputTestBase : AbstractNativeSimpleTest() {
|
||||||
@EnforcedProperty(ClassLevelProperty.COMPILER_OUTPUT_INTERCEPTOR, "NONE")
|
|
||||||
@EnforcedProperty(ClassLevelProperty.PIPELINE_TYPE, "DEFAULT")
|
|
||||||
class CompilerOutputTest : AbstractNativeSimpleTest() {
|
|
||||||
@Test
|
@Test
|
||||||
fun testReleaseCompilerAgainstPreReleaseLibrary() = muteForK2(isK2 = true) { // TODO: unmute after fix of KT-61773
|
fun testReleaseCompilerAgainstPreReleaseLibrary() {
|
||||||
// We intentionally use JS testdata, because the compilers should behave the same way in such a test.
|
// We intentionally use JS testdata, because the compilers should behave the same way in such a test.
|
||||||
// To be refactored later, after CompileKotlinAgainstCustomBinariesTest.testReleaseCompilerAgainstPreReleaseLibraryJs is fixed.
|
// To be refactored later, after CompileKotlinAgainstCustomBinariesTest.testReleaseCompilerAgainstPreReleaseLibraryJs is fixed.
|
||||||
val rootDir = File("compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibraryJs")
|
val rootDir = File("compiler/testData/compileKotlinAgainstCustomBinaries/releaseCompilerAgainstPreReleaseLibraryJs")
|
||||||
@@ -54,28 +55,39 @@ class CompilerOutputTest : AbstractNativeSimpleTest() {
|
|||||||
"-Xsuppress-version-warnings"
|
"-Xsuppress-version-warnings"
|
||||||
)
|
)
|
||||||
val library = compileLibrary(
|
val library = compileLibrary(
|
||||||
|
settings = object : Settings(testRunSettings, listOf(PipelineType.DEFAULT)) {},
|
||||||
source = rootDir.resolve("library"),
|
source = rootDir.resolve("library"),
|
||||||
freeCompilerArgs = libraryOptions,
|
freeCompilerArgs = libraryOptions,
|
||||||
dependencies = emptyList()
|
dependencies = emptyList()
|
||||||
).assertSuccess().resultingArtifact
|
).assertSuccess().resultingArtifact
|
||||||
|
|
||||||
|
val pipelineType: PipelineType = testRunSettings.get()
|
||||||
|
|
||||||
val compilationResult = compileLibrary(
|
val compilationResult = compileLibrary(
|
||||||
|
testRunSettings,
|
||||||
source = rootDir.resolve("source.kt"),
|
source = rootDir.resolve("source.kt"),
|
||||||
freeCompilerArgs = additionalOptions + listOf("-language-version", LanguageVersion.LATEST_STABLE.versionString),
|
freeCompilerArgs = additionalOptions + pipelineType.compilerFlags,
|
||||||
dependencies = listOf(library)
|
dependencies = listOf(library)
|
||||||
)
|
)
|
||||||
|
|
||||||
KotlinTestUtils.assertEqualsToFile(rootDir.resolve("output.txt"), compilationResult.toOutput())
|
val goldenData = when (pipelineType) {
|
||||||
|
PipelineType.K2 -> rootDir.resolve("output.fir.txt").takeIf { it.exists() } ?: rootDir.resolve("output.txt")
|
||||||
|
PipelineType.K1 -> rootDir.resolve("output.txt")
|
||||||
|
PipelineType.DEFAULT -> rootDir.resolve("output.fir.txt").takeIf { it.exists() && LanguageVersion.LATEST_STABLE.usesK2 } ?: rootDir.resolve("output.txt")
|
||||||
|
}
|
||||||
|
|
||||||
|
KotlinTestUtils.assertEqualsToFile(goldenData, compilationResult.toOutput())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun compileLibrary(
|
private fun compileLibrary(
|
||||||
|
settings: Settings,
|
||||||
source: File,
|
source: File,
|
||||||
freeCompilerArgs: List<String>,
|
freeCompilerArgs: List<String>,
|
||||||
dependencies: List<TestCompilationArtifact.KLIB>
|
dependencies: List<TestCompilationArtifact.KLIB>
|
||||||
): TestCompilationResult<out TestCompilationArtifact.KLIB> {
|
): TestCompilationResult<out TestCompilationArtifact.KLIB> {
|
||||||
val testCase = generateTestCaseWithSingleModule(source, TestCompilerArgs(freeCompilerArgs))
|
val testCase = generateTestCaseWithSingleModule(source, TestCompilerArgs(freeCompilerArgs))
|
||||||
val compilation = LibraryCompilation(
|
val compilation = LibraryCompilation(
|
||||||
settings = testRunSettings,
|
settings = settings,
|
||||||
freeCompilerArgs = testCase.freeCompilerArgs,
|
freeCompilerArgs = testCase.freeCompilerArgs,
|
||||||
sourceModules = testCase.modules,
|
sourceModules = testCase.modules,
|
||||||
dependencies = dependencies.map { it.asLibraryDependency() },
|
dependencies = dependencies.map { it.asLibraryDependency() },
|
||||||
@@ -101,3 +113,13 @@ class CompilerOutputTest : AbstractNativeSimpleTest() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestDataPath("\$PROJECT_ROOT")
|
||||||
|
@EnforcedProperty(ClassLevelProperty.COMPILER_OUTPUT_INTERCEPTOR, "NONE")
|
||||||
|
class ClassicCompilerOutputTest : CompilerOutputTestBase()
|
||||||
|
|
||||||
|
@FirPipeline
|
||||||
|
@Tag("frontend-fir")
|
||||||
|
@TestDataPath("\$PROJECT_ROOT")
|
||||||
|
@EnforcedProperty(ClassLevelProperty.COMPILER_OUTPUT_INTERCEPTOR, "NONE")
|
||||||
|
class FirCompilerOutputTest : CompilerOutputTestBase()
|
||||||
Reference in New Issue
Block a user