diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/CompilerTestUtil.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/test/CompilerTestUtil.kt index 66482c0cd62..38206c3b802 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/CompilerTestUtil.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/CompilerTestUtil.kt @@ -18,7 +18,9 @@ package org.jetbrains.kotlin.test import org.jetbrains.kotlin.cli.common.CLITool import org.jetbrains.kotlin.cli.common.ExitCode +import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler import java.io.ByteArrayOutputStream +import java.io.File import java.io.PrintStream import kotlin.test.assertEquals @@ -42,4 +44,27 @@ object CompilerTestUtil { System.setErr(origErr) } } + + @JvmStatic + @JvmOverloads + fun compileJvmLibrary( + src: File, + libraryName: String = "library", + extraOptions: List = emptyList(), + extraClasspath: List = emptyList() + ): File { + val destination = File(KotlinTestUtils.tmpDir("testLibrary"), "$libraryName.jar") + val args = mutableListOf().apply { + add(src.path) + add("-d") + add(destination.path) + if (extraClasspath.isNotEmpty()) { + add("-cp") + add(extraClasspath.joinToString(":") { it.path }) + } + addAll(extraOptions) + } + executeCompilerAssertSuccessful(K2JVMCompiler(), args) + return destination + } } diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt b/compiler/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt index 702f757c01c..d8b8a673f0c 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt @@ -40,7 +40,7 @@ abstract class AbstractForeignAnnotationsTest : AbstractDiagnosticsTest() { } protected fun compileTestAnnotations(extraClassPath: List): List = - listOf(MockLibraryUtil.compileJvmLibraryToJar( + listOf(MockLibraryUtil.compileJavaFilesLibraryToJar( TEST_ANNOTATIONS_SOURCE_PATH, "test-foreign-annotations", extraOptions = listOf("-Xallow-kotlin-package"), @@ -48,7 +48,7 @@ abstract class AbstractForeignAnnotationsTest : AbstractDiagnosticsTest() { )) protected fun createJarWithForeignAnnotations(): List = listOf( - MockLibraryUtil.compileJvmLibraryToJar(annotationsPath, "foreign-annotations"), + MockLibraryUtil.compileJavaFilesLibraryToJar(annotationsPath, "foreign-annotations"), ForTestCompileRuntime.jvmAnnotationsForTests() ) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractTopLevelMembersInvocationTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/AbstractTopLevelMembersInvocationTest.java similarity index 94% rename from compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractTopLevelMembersInvocationTest.java rename to compiler/tests/org/jetbrains/kotlin/codegen/AbstractTopLevelMembersInvocationTest.java index c9fa018bb83..4e936028ee8 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractTopLevelMembersInvocationTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/AbstractTopLevelMembersInvocationTest.java @@ -22,9 +22,9 @@ import kotlin.collections.CollectionsKt; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; +import org.jetbrains.kotlin.test.CompilerTestUtil; import org.jetbrains.kotlin.test.ConfigurationKind; import org.jetbrains.kotlin.test.KotlinTestUtils; -import org.jetbrains.kotlin.test.MockLibraryUtil; import org.jetbrains.kotlin.test.TestJdkKind; import java.io.File; @@ -52,7 +52,7 @@ public abstract class AbstractTopLevelMembersInvocationTest extends AbstractByte File library = new File(root, LIBRARY); List classPath = library.exists() - ? Collections.singletonList(MockLibraryUtil.compileJvmLibraryToJar(library.getPath(), LIBRARY)) + ? Collections.singletonList(CompilerTestUtil.compileJvmLibrary(library)) : Collections.emptyList(); assert !sourceFiles.isEmpty() : getTestName(true) + " should contain at least one .kt file";