Remove :compiler:tests-common-jvm6 project and JvmTarget6OnBaseJvm tests

This commit is contained in:
Abduqodiri Qurbonzoda
2022-07-12 11:49:28 +03:00
parent de775ad728
commit cf44753aed
17 changed files with 61 additions and 432 deletions
@@ -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
}