[TEST] Introduce test-infrastructure-utils module and extract common test utilities here

This commit is contained in:
Dmitriy Novozhilov
2020-12-02 16:00:43 +03:00
parent 1c91b74ff0
commit c8f3a4802e
189 changed files with 791 additions and 630 deletions
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.ConfigurationKind
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.TestJdkKind
import org.jetbrains.kotlin.test.util.KtTestUtil
import java.io.File
import java.net.URL
import java.util.regex.Pattern
@@ -94,7 +95,7 @@ abstract class AbstractAndroidBoxTest : AbstractBlackBoxCodegenTest() {
myFiles = CodegenTestFiles.create(
myEnvironment!!.project,
ArrayUtil.toStringArray(files),
KotlinTestUtils.getHomeDirectory() + "/plugins/android-extensions/android-extensions-compiler/testData"
KtTestUtil.getHomeDirectory() + "/plugins/android-extensions/android-extensions-compiler/testData"
)
blackBox(true)
}
@@ -33,7 +33,10 @@ import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
import org.jetbrains.kotlin.codegen.*
import org.jetbrains.kotlin.codegen.ClassBuilderMode
import org.jetbrains.kotlin.codegen.CodegenTestFiles
import org.jetbrains.kotlin.codegen.GenerationUtils
import org.jetbrains.kotlin.codegen.OriginCollectingClassBuilderFactory
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
import org.jetbrains.kotlin.kapt.base.test.JavaKaptContextTest
import org.jetbrains.kotlin.kapt3.Kapt3ComponentRegistrar.KaptComponentContributor
@@ -52,6 +55,7 @@ import org.jetbrains.kotlin.resolve.jvm.extensions.PartialAnalysisHandlerExtensi
import org.jetbrains.kotlin.test.ConfigurationKind
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.TestJdkKind
import org.jetbrains.kotlin.test.util.KtTestUtil
import org.jetbrains.kotlin.test.util.trimTrailingWhitespacesAndAddNewlineAtEOF
import org.jetbrains.kotlin.utils.PathUtil
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance
@@ -85,7 +89,7 @@ abstract class AbstractKotlinKapt3Test : KotlinKapt3TestBase() {
val project = myEnvironment.project
val psiManager = PsiManager.getInstance(project)
val tmpDir = KotlinTestUtils.tmpDir("kaptTest")
val tmpDir = KtTestUtil.tmpDir("kaptTest")
val ktFiles = ArrayList<KtFile>(files.size)
for (file in files.sorted()) {
@@ -119,7 +123,7 @@ abstract class AbstractKotlinKapt3Test : KotlinKapt3TestBase() {
projectBaseDir = project.basePath?.let { File(it) }
compileClasspath.addAll(PathUtil.getJdkClassesRootsFromCurrentJre() + PathUtil.kotlinPathsForIdeaPlugin.stdlibPath)
sourcesOutputDir = KotlinTestUtils.tmpDir("kaptRunner")
sourcesOutputDir = KtTestUtil.tmpDir("kaptRunner")
classesOutputDir = sourcesOutputDir
stubsOutputDir = sourcesOutputDir
incrementalDataOutputDir = sourcesOutputDir
@@ -353,4 +357,4 @@ private fun addAnnotationProcessingRuntimeLibrary(environment: KotlinCoreEnviron
val runtimeLibrary = File(PathUtil.kotlinPathsForCompiler.libPath, "kotlin-annotation-processing-runtime.jar")
updateClasspath(listOf(JvmClasspathRoot(runtimeLibrary)))
}
}
}
@@ -18,9 +18,8 @@ package org.jetbrains.kotlin.kapt3.test
import com.intellij.openapi.application.PathManager
import com.intellij.openapi.util.SystemInfoRt
import org.jetbrains.kotlin.kapt3.base.util.isJava11OrLater
import org.jetbrains.kotlin.kapt3.base.util.isJava9OrLater
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.util.KtTestUtil
import java.io.File
import java.net.URL
import java.net.URLClassLoader
@@ -31,12 +30,12 @@ interface CustomJdkTestLauncher {
// Already under Java 9
if (isJava9OrLater()) return
doTestCustomJdk(mainClass, arg, KotlinTestUtils.getJdk9Home())
doTestCustomJdk(mainClass, arg, KtTestUtil.getJdk9Home())
}
fun doTestWithJdk11(mainClass: Class<*>, arg: String) {
if (isJava9OrLater()) return
KotlinTestUtils.getJdk11Home()?.let { doTestCustomJdk(mainClass, arg, it) }
KtTestUtil.getJdk11Home()?.let { doTestCustomJdk(mainClass, arg, it) }
}
private fun doTestCustomJdk(mainClass: Class<*>, arg: String, javaHome: File) {
@@ -79,4 +78,4 @@ interface CustomJdkTestLauncher {
else -> emptyList()
}
}
}
@@ -10,8 +10,8 @@ import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
import org.jetbrains.kotlin.codegen.CodegenTestCase
import org.jetbrains.kotlin.codegen.getClassFiles
import org.jetbrains.kotlin.parcelize.ParcelizeComponentRegistrar
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.util.KtTestUtil
import org.jetbrains.kotlin.utils.PathUtil
import org.jetbrains.org.objectweb.asm.ClassWriter
import org.jetbrains.org.objectweb.asm.ClassWriter.COMPUTE_FRAMES
@@ -178,10 +178,10 @@ abstract class AbstractParcelizeBoxTest : CodegenTestCase() {
override fun setupEnvironment(environment: KotlinCoreEnvironment) {
ParcelizeComponentRegistrar.registerParcelizeComponents(environment.project)
addParcelizeRuntimeLibrary(environment)
environment.updateClasspath(listOf(JvmClasspathRoot(KotlinTestUtils.findAndroidApiJar())))
environment.updateClasspath(listOf(JvmClasspathRoot(KtTestUtil.findAndroidApiJar())))
}
override fun updateJavaClasspath(javaClasspath: MutableList<String>) {
javaClasspath += KotlinTestUtils.findAndroidApiJar().absolutePath
javaClasspath += KtTestUtil.findAndroidApiJar().absolutePath
}
}
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.parcelize.test
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.util.KtTestUtil
import org.jetbrains.kotlin.utils.PathUtil
import java.io.File
@@ -18,5 +18,5 @@ fun addParcelizeRuntimeLibrary(environment: KotlinCoreEnvironment) {
}
fun addAndroidJarLibrary(environment: KotlinCoreEnvironment) {
environment.updateClasspath(listOf(JvmClasspathRoot(KotlinTestUtils.findAndroidApiJar())))
}
environment.updateClasspath(listOf(JvmClasspathRoot(KtTestUtil.findAndroidApiJar())))
}
@@ -7,10 +7,10 @@ package org.jetbrains.kotlin.pacelize.ide.test
import com.intellij.openapi.module.Module
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.util.KtTestUtil
fun addParcelizeLibraries(module: Module) {
val androidJar = KotlinTestUtils.findAndroidApiJar()
val androidJar = KtTestUtil.findAndroidApiJar()
ConfigLibraryUtil.addLibrary(module, "androidJar", androidJar.parentFile.absolutePath, arrayOf(androidJar.name))
ConfigLibraryUtil.addLibrary(module, "parcelizeRuntime", "dist/kotlinc/lib", arrayOf("parcelize-runtime.jar"))
ConfigLibraryUtil.addLibrary(module, "androidExtensionsRuntime", "dist/kotlinc/lib", arrayOf("android-extensions-runtime.jar"))
@@ -20,4 +20,4 @@ fun removeParcelizeLibraries(module: Module) {
ConfigLibraryUtil.removeLibrary(module, "androidJar")
ConfigLibraryUtil.removeLibrary(module, "parcelizeRuntime")
ConfigLibraryUtil.removeLibrary(module, "androidExtensionsRuntime")
}
}