Remove :compiler:tests-common-jvm6 project and JvmTarget6OnBaseJvm tests
This commit is contained in:
+2
-2
@@ -22,8 +22,8 @@ import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
|
||||
import static org.jetbrains.kotlin.test.KotlinTestUtils.assertEqualsToFile;
|
||||
import static org.jetbrains.kotlin.test.clientserver.TestProcessServerKt.getBoxMethodOrNull;
|
||||
import static org.jetbrains.kotlin.test.clientserver.TestProcessServerKt.getGeneratedClass;
|
||||
import static org.jetbrains.kotlin.codegen.CodegenTestUtilsKt.getBoxMethodOrNull;
|
||||
import static org.jetbrains.kotlin.codegen.CodegenTestUtilsKt.getGeneratedClass;
|
||||
|
||||
@ObsoleteTestInfrastructure(replacer = "org.jetbrains.kotlin.test.runners.codegen.AbstractBlackBoxCodegenTest")
|
||||
public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase {
|
||||
|
||||
@@ -19,12 +19,10 @@ import org.jetbrains.kotlin.TestsCompilerError;
|
||||
import org.jetbrains.kotlin.TestsCompiletimeError;
|
||||
import org.jetbrains.kotlin.backend.common.output.SimpleOutputFileCollection;
|
||||
import org.jetbrains.kotlin.checkers.utils.CheckerTestUtil;
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys;
|
||||
import org.jetbrains.kotlin.cli.common.output.OutputUtilsKt;
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace;
|
||||
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot;
|
||||
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime;
|
||||
import org.jetbrains.kotlin.codegen.state.GenerationState;
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
||||
@@ -54,7 +52,7 @@ import java.util.stream.Collectors;
|
||||
import static org.jetbrains.kotlin.cli.common.output.OutputUtilsKt.writeAllTo;
|
||||
import static org.jetbrains.kotlin.codegen.CodegenTestUtil.*;
|
||||
import static org.jetbrains.kotlin.codegen.TestUtilsKt.extractUrls;
|
||||
import static org.jetbrains.kotlin.test.clientserver.TestProcessServerKt.*;
|
||||
import static org.jetbrains.kotlin.codegen.CodegenTestUtilsKt.*;
|
||||
import static org.jetbrains.kotlin.test.util.KtTestUtil.getAnnotationsJar;
|
||||
|
||||
public abstract class CodegenTestCase extends KotlinBaseTest<KotlinBaseTest.TestFile> {
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.codegen
|
||||
|
||||
import java.lang.reflect.Method
|
||||
|
||||
private fun ClassLoader.loadClassOrNull(name: String): Class<*>? =
|
||||
try {
|
||||
loadClass(name)
|
||||
} catch (e: ClassNotFoundException) {
|
||||
null
|
||||
}
|
||||
|
||||
private fun Class<*>.getMethodOrNull(name: String, vararg parameterTypes: Class<*>): Method? =
|
||||
try {
|
||||
getMethod(name, *parameterTypes)
|
||||
} catch (e: NoSuchMethodException) {
|
||||
null
|
||||
}
|
||||
|
||||
fun getGeneratedClass(classLoader: ClassLoader, className: String): Class<*> =
|
||||
classLoader.loadClassOrNull(className) ?: error("No class file was generated for: $className")
|
||||
|
||||
fun getBoxMethodOrNull(aClass: Class<*>): Method? =
|
||||
aClass.getMethodOrNull("box")
|
||||
?: aClass.classLoader.loadClassOrNull("kotlin.coroutines.Continuation")?.let { aClass.getMethodOrNull("box", it) }
|
||||
?: aClass.classLoader.loadClassOrNull("kotlin.coroutines.experimental.Continuation")?.let { aClass.getMethodOrNull("box", it) }
|
||||
|
||||
fun runBoxMethod(method: Method): String? {
|
||||
if (method.parameterTypes.isEmpty()) {
|
||||
return method.invoke(null) as? String
|
||||
}
|
||||
val emptyContinuationClass = method.declaringClass.classLoader.loadClass("helpers.ResultContinuation")
|
||||
val emptyContinuation = emptyContinuationClass.declaredConstructors.single().newInstance()
|
||||
val result = method.invoke(null, emptyContinuation)
|
||||
val resultAfterSuspend = emptyContinuationClass.getField("result").get(emptyContinuation)
|
||||
return (resultAfterSuspend ?: result) as? String
|
||||
}
|
||||
Reference in New Issue
Block a user