[Tests] Port KotlinKlibSerializerTest to K2
^KT-64440 Fixed
This commit is contained in:
committed by
Space Team
parent
8fe5cf2641
commit
9b4f503fbe
+50
@@ -0,0 +1,50 @@
|
||||
package test
|
||||
|
||||
public val a: kotlin.Int = 10
|
||||
public val arrayConst: kotlin.Any = {1.toByte(), 2.toByte()}
|
||||
public val b: kotlin.Int
|
||||
public val booleanConst: kotlin.Boolean = true
|
||||
public val byteConst: kotlin.Byte = 10.toByte()
|
||||
public val charConst: kotlin.Char = \u0041 ('A')
|
||||
public val doubleConst: kotlin.Double = 3.0.toDouble()
|
||||
public val enumConst: test.Weapon? = Weapon.ROCK
|
||||
public val floatConst: kotlin.Float = 2.0.toFloat()
|
||||
public val intConst: kotlin.Int = 30
|
||||
public val longConst: kotlin.Long = 40.toLong()
|
||||
public val shortConst: kotlin.Short = 20.toShort()
|
||||
public val stringConst: kotlin.String = "abcd"
|
||||
|
||||
public final class Class {
|
||||
public constructor Class()
|
||||
public final val a: kotlin.Int = 10
|
||||
public final val arrayConst: kotlin.Any = {1.toByte(), 2.toByte()}
|
||||
public final val b: kotlin.Int
|
||||
public final val booleanConst: kotlin.Boolean = true
|
||||
public final val byteConst: kotlin.Byte = 10.toByte()
|
||||
public final val charConst: kotlin.Char = \u0041 ('A')
|
||||
public final val doubleConst: kotlin.Double = 3.0.toDouble()
|
||||
public final val enumConst: test.Weapon? = Weapon.ROCK
|
||||
public final val floatConst: kotlin.Float = 2.0.toFloat()
|
||||
public final val intConst: kotlin.Int = 30
|
||||
public final val longConst: kotlin.Long = 40.toLong()
|
||||
public final val shortConst: kotlin.Short = 20.toShort()
|
||||
public final val stringConst: kotlin.String = "abcd"
|
||||
}
|
||||
|
||||
public final enum class Weapon : kotlin.Enum<test.Weapon> {
|
||||
enum entry ROCK
|
||||
|
||||
enum entry PAPER
|
||||
|
||||
enum entry SCISSORS
|
||||
|
||||
private constructor Weapon()
|
||||
@kotlin.internal.IntrinsicConstEvaluation public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: test.Weapon): kotlin.Int
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): test.Weapon
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.Weapon>
|
||||
}
|
||||
+17
-29
@@ -16,53 +16,39 @@
|
||||
|
||||
package org.jetbrains.kotlin.serialization.klib
|
||||
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoots
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS
|
||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||
import org.jetbrains.kotlin.js.config.JsConfig
|
||||
import org.jetbrains.kotlin.js.resolve.JsPlatformAnalyzerServices
|
||||
import org.jetbrains.kotlin.cli.metadata.K2MetadataCompiler
|
||||
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
|
||||
import org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.TEST_PACKAGE_FQNAME
|
||||
import org.jetbrains.kotlin.resolve.CompilerEnvironment
|
||||
import org.jetbrains.kotlin.serialization.NonStableParameterNamesSerializationTest
|
||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationConfiguration
|
||||
import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil.readModuleAsProto
|
||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
||||
import org.jetbrains.kotlin.test.CompilerTestUtil
|
||||
import org.jetbrains.kotlin.test.KlibTestUtil
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.test.TestCaseWithTmpdir
|
||||
import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator
|
||||
import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparatorAdaptor
|
||||
import org.jetbrains.kotlin.utils.JsMetadataVersion
|
||||
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
||||
import org.jetbrains.kotlin.utils.sure
|
||||
import java.io.File
|
||||
|
||||
class KotlinKlibSerializerTest : TestCaseWithTmpdir() {
|
||||
private val BASE_DIR = "compiler/testData/serialization"
|
||||
|
||||
private fun doTest(fileName: String) {
|
||||
private fun doTest(fileName: String, goldenDataExtension: String = ".txt") {
|
||||
val source = "$BASE_DIR/$fileName"
|
||||
val klibName = File(source).nameWithoutExtension
|
||||
val klibFile = File(tmpdir, "$klibName.klib")
|
||||
KlibTestUtil.compileCommonSourcesToKlib(listOf(File(source)), klibName, klibFile)
|
||||
|
||||
CompilerTestUtil.executeCompilerAssertSuccessful(K2MetadataCompiler(), listOf(
|
||||
File(source).absolutePath,
|
||||
"-d", klibFile.absolutePath,
|
||||
"-module-name", klibName,
|
||||
// support for the legacy version of kotlin-stdlib-common (JAR with .kotlin_metadata)
|
||||
"-classpath", ForTestCompileRuntime.stdlibCommonForTests().absolutePath
|
||||
)
|
||||
)
|
||||
|
||||
val module = KlibTestUtil.deserializeKlibToCommonModule(klibFile)
|
||||
|
||||
RecursiveDescriptorComparatorAdaptor.validateAndCompareDescriptorWithFile(
|
||||
module.getPackage(TEST_PACKAGE_FQNAME),
|
||||
RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT,
|
||||
File(source.replace(".kt", ".txt"))
|
||||
File(source.replace(".kt", goldenDataExtension))
|
||||
)
|
||||
}
|
||||
|
||||
@@ -75,7 +61,9 @@ class KotlinKlibSerializerTest : TestCaseWithTmpdir() {
|
||||
}
|
||||
|
||||
fun testCompileTimeConstants() {
|
||||
doTest("builtinsSerializer/compileTimeConstants.kt")
|
||||
// After implementation of https://youtrack.jetbrains.com/issue/KT-65805/Migrate-builtins-serializer-to-K2,
|
||||
// compileTimeConstants.txt will be same as compileTimeConstants.fir.txt. So, it would be worthwhile to unify them.
|
||||
doTest("builtinsSerializer/compileTimeConstants.kt", ".fir.txt")
|
||||
}
|
||||
|
||||
fun testAnnotationTargets() {
|
||||
|
||||
Reference in New Issue
Block a user