[JS] Fix compile kotlin against custom binaries
This commit is contained in:
committed by
Space Team
parent
b6803b2400
commit
a6d461dbe8
+10
-9
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
|
||||
import org.jetbrains.kotlin.cli.metadata.K2MetadataCompiler
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.test.TestCaseWithTmpdir
|
||||
import org.jetbrains.kotlin.utils.PathUtil
|
||||
import java.io.File
|
||||
import java.util.jar.JarOutputStream
|
||||
import java.util.jar.Manifest
|
||||
@@ -105,12 +106,12 @@ abstract class AbstractKotlinCompilerIntegrationTest : TestCaseWithTmpdir() {
|
||||
additionalOptions: List<String> = emptyList(),
|
||||
checkKotlinOutput: (String) -> Unit = { actual -> assertEquals(normalizeOutput("" to ExitCode.OK), actual) }
|
||||
): File {
|
||||
val destination = File(tmpdir, "$libraryName.js")
|
||||
val destination = File(tmpdir, libraryName)
|
||||
val output = compileKotlin(
|
||||
libraryName, destination, compiler = K2JSCompiler(), additionalOptions = additionalOptions, expectedFileName = null
|
||||
)
|
||||
checkKotlinOutput(normalizeOutput(output))
|
||||
return File(tmpdir, "$libraryName.meta.js")
|
||||
return destination
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -164,14 +165,14 @@ abstract class AbstractKotlinCompilerIntegrationTest : TestCaseWithTmpdir() {
|
||||
additionalSources.mapTo(args) { File(testDataDirectory, it).path }
|
||||
|
||||
if (compiler is K2JSCompiler) {
|
||||
if (classpath.isNotEmpty()) {
|
||||
args.add("-libraries")
|
||||
args.add(classpath.joinToString(File.pathSeparator))
|
||||
}
|
||||
args.add("-Xforce-deprecated-legacy-compiler-usage")
|
||||
args.add("-output")
|
||||
args.add("-libraries")
|
||||
args.add((classpath + PathUtil.kotlinPathsForCompiler.jsStdLibJarPath).joinToString(File.pathSeparator))
|
||||
args.add("-Xir-produce-klib-dir")
|
||||
args.add("-Xir-only")
|
||||
args.add("-ir-output-dir")
|
||||
args.add(output.path)
|
||||
args.add("-meta-info")
|
||||
args.add("-ir-output-name")
|
||||
args.add("out")
|
||||
} else if (compiler is K2JVMCompiler || compiler is K2MetadataCompiler) {
|
||||
if (classpath.isNotEmpty()) {
|
||||
args.add("-classpath")
|
||||
|
||||
-19
@@ -101,17 +101,6 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration
|
||||
compileKotlin("source.kt", tmpdir, listOf(library), K2JVMCompiler(), additionalOptions.toList())
|
||||
}
|
||||
|
||||
private fun doTestKotlinLibraryWithWrongMetadataVersionJs(libraryName: String, vararg additionalOptions: String) {
|
||||
val library = compileJsLibrary(libraryName, additionalOptions = listOf("-Xmetadata-version=42.0.0"))
|
||||
compileKotlin(
|
||||
"source.kt",
|
||||
File(tmpdir, "usage.js"),
|
||||
listOf(library),
|
||||
K2JSCompiler(),
|
||||
additionalOptions.toList()
|
||||
)
|
||||
}
|
||||
|
||||
private fun doTestPreReleaseKotlinLibrary(
|
||||
compiler: CLICompiler<*>,
|
||||
libraryName: String,
|
||||
@@ -320,10 +309,6 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration
|
||||
doTestKotlinLibraryWithWrongMetadataVersion("library", null)
|
||||
}
|
||||
|
||||
fun testWrongMetadataVersionJs() {
|
||||
doTestKotlinLibraryWithWrongMetadataVersionJs("library")
|
||||
}
|
||||
|
||||
fun testWrongMetadataVersionBadMetadata() {
|
||||
doTestKotlinLibraryWithWrongMetadataVersion("library", { name, value ->
|
||||
if (JvmAnnotationNames.METADATA_DATA_FIELD_NAME == name) {
|
||||
@@ -346,10 +331,6 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration
|
||||
doTestKotlinLibraryWithWrongMetadataVersion("library", null, "-Xskip-metadata-version-check")
|
||||
}
|
||||
|
||||
fun testWrongMetadataVersionJsSkipVersionCheck() {
|
||||
doTestKotlinLibraryWithWrongMetadataVersionJs("library", "-Xskip-metadata-version-check")
|
||||
}
|
||||
|
||||
fun testWrongMetadataVersionSkipPrereleaseCheckHasNoEffect() {
|
||||
doTestKotlinLibraryWithWrongMetadataVersion("library", null, "-Xskip-prerelease-check")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user