[Tests] All tests correct generation
This commit is contained in:
+1
-1
@@ -18907,7 +18907,7 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
@Test
|
||||
@TestMetadata("boxResultInlineClassOfConstructorCall.kt")
|
||||
public void testBoxResultInlineClassOfConstructorCall() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxResultInlineClassOfConstructorCall.kt");
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxResultInlineClassOfConstructorCall.kt", s -> s.replaceAll("OPTIONAL_JVM_INLINE_ANNOTATION", "@kotlin.jvm.JvmInline"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
+7
-4
@@ -5,11 +5,12 @@
|
||||
|
||||
package org.jetbrains.kotlin.generators.impl
|
||||
|
||||
import org.jetbrains.kotlin.generators.model.MethodModel
|
||||
import org.jetbrains.kotlin.generators.MethodGenerator
|
||||
import org.jetbrains.kotlin.generators.model.MethodModel
|
||||
import org.jetbrains.kotlin.generators.model.RunTestMethodModel
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
import org.jetbrains.kotlin.utils.Printer
|
||||
import java.util.function.Function
|
||||
|
||||
object RunTestMethodGenerator : MethodGenerator<RunTestMethodModel>() {
|
||||
override val kind: MethodModel.Kind
|
||||
@@ -17,19 +18,21 @@ object RunTestMethodGenerator : MethodGenerator<RunTestMethodModel>() {
|
||||
|
||||
override fun generateBody(method: RunTestMethodModel, p: Printer) {
|
||||
with(method) {
|
||||
val transformerPostfix = if (method.withTransformer) ", transformer" else ""
|
||||
if (!isWithTargetBackend()) {
|
||||
p.println("KotlinTestUtils.${method.testRunnerMethodName}(this::$testMethodName, this, testDataFilePath);")
|
||||
p.println("KotlinTestUtils.${method.testRunnerMethodName}(this::$testMethodName, this, testDataFilePath$transformerPostfix);")
|
||||
} else {
|
||||
val className = TargetBackend::class.java.simpleName
|
||||
val additionalArguments = if (additionalRunnerArguments.isNotEmpty())
|
||||
additionalRunnerArguments.joinToString(separator = ", ", prefix = ", ")
|
||||
else ""
|
||||
p.println("KotlinTestUtils.$testRunnerMethodName(this::$testMethodName, $className.$targetBackend, testDataFilePath$additionalArguments);")
|
||||
p.println("KotlinTestUtils.$testRunnerMethodName(this::$testMethodName, $className.$targetBackend, testDataFilePath$additionalArguments$transformerPostfix);")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun generateSignature(method: RunTestMethodModel, p: Printer) {
|
||||
p.print("private void ${method.name}(String testDataFilePath) throws Exception")
|
||||
val optionalTransformer = if (method.withTransformer) ", ${Function::class.java.canonicalName}<String, String> transformer" else ""
|
||||
p.print("private void ${method.name}(String testDataFilePath${optionalTransformer}) throws Exception")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,6 +60,7 @@ import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Method;
|
||||
import java.nio.file.Path;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@@ -429,7 +430,11 @@ public class KotlinTestUtils {
|
||||
}
|
||||
|
||||
public static void runTest(@NotNull DoTest test, @NotNull TestCase testCase, @TestDataFile String testDataFile) throws Exception {
|
||||
runTestImpl(testWithCustomIgnoreDirective(test, TargetBackend.ANY, IGNORE_BACKEND_DIRECTIVE_PREFIX), testCase, testDataFile);
|
||||
runTestImpl(testWithCustomIgnoreDirective(test, TargetBackend.ANY, IGNORE_BACKEND_DIRECTIVE_PREFIX), testCase, testDataFile, null);
|
||||
}
|
||||
|
||||
public static void runTest(@NotNull DoTest test, @NotNull TestCase testCase, @TestDataFile String testDataFile, @NotNull Function<String, String> contentTransformer) throws Exception {
|
||||
runTestImpl(testWithCustomIgnoreDirective(test, TargetBackend.ANY, IGNORE_BACKEND_DIRECTIVE_PREFIX), testCase, testDataFile, contentTransformer);
|
||||
}
|
||||
|
||||
public static void runTest(@NotNull TestCase testCase, @NotNull Function0<Unit> test) {
|
||||
@@ -454,8 +459,15 @@ public class KotlinTestUtils {
|
||||
runTest0(test, targetBackend, testDataFile);
|
||||
}
|
||||
|
||||
public static void runTest(
|
||||
DoTest test, TargetBackend targetBackend, @TestDataFile String testDataFile,
|
||||
@NotNull Function<String, String> contentTransformer
|
||||
) throws Exception {
|
||||
runTest0(test, targetBackend, testDataFile, contentTransformer);
|
||||
}
|
||||
|
||||
public static void runTestWithCustomIgnoreDirective(DoTest test, TargetBackend targetBackend, @TestDataFile String testDataFile, String ignoreDirective) throws Exception {
|
||||
runTestImpl(testWithCustomIgnoreDirective(test, targetBackend, ignoreDirective), null, testDataFile);
|
||||
runTestImpl(testWithCustomIgnoreDirective(test, targetBackend, ignoreDirective), null, testDataFile, null);
|
||||
}
|
||||
|
||||
// In this test runner version, NONE of the parameters are annotated by `TestDataFile`.
|
||||
@@ -467,10 +479,16 @@ public class KotlinTestUtils {
|
||||
// * sometimes, for too common/general names, it shows many variants to navigate
|
||||
// * it adds an additional step for navigation -- you must choose an exact file to navigate
|
||||
public static void runTest0(DoTest test, TargetBackend targetBackend, String testDataFilePath) throws Exception {
|
||||
runTestImpl(testWithCustomIgnoreDirective(test, targetBackend, IGNORE_BACKEND_DIRECTIVE_PREFIX), null, testDataFilePath);
|
||||
runTestImpl(testWithCustomIgnoreDirective(test, targetBackend, IGNORE_BACKEND_DIRECTIVE_PREFIX), null, testDataFilePath, null);
|
||||
}
|
||||
|
||||
private static void runTestImpl(@NotNull DoTest test, @Nullable TestCase testCase, String testDataFilePath) throws Exception {
|
||||
public static void runTest0(
|
||||
DoTest test, TargetBackend targetBackend, String testDataFilePath, @NotNull Function<String, String> contentTransformer
|
||||
) throws Exception {
|
||||
runTestImpl(testWithCustomIgnoreDirective(test, targetBackend, IGNORE_BACKEND_DIRECTIVE_PREFIX), null, testDataFilePath, contentTransformer);
|
||||
}
|
||||
|
||||
private static void runTestImpl(@NotNull DoTest test, @Nullable TestCase testCase, String testDataFilePath, @SuppressWarnings("unused") @Nullable Function<String, String> contentTransformer) throws Exception {
|
||||
if (testCase != null && !isRunTestOverridden(testCase)) {
|
||||
Function0<Unit> wrapWithMuteInDatabase = MuteWithDatabaseKt.wrapWithMuteInDatabase(testCase, () -> {
|
||||
try {
|
||||
|
||||
+5
-1
@@ -15740,6 +15740,10 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath);
|
||||
}
|
||||
|
||||
private void runTest(String testDataFilePath, java.util.function.Function<String, String> transformer) throws Exception {
|
||||
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath, transformer);
|
||||
}
|
||||
|
||||
public void testAllFilesPresentInInlineClasses() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true);
|
||||
}
|
||||
@@ -15776,7 +15780,7 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
|
||||
@TestMetadata("boxResultInlineClassOfConstructorCall.kt")
|
||||
public void testBoxResultInlineClassOfConstructorCall() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxResultInlineClassOfConstructorCall.kt");
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxResultInlineClassOfConstructorCall.kt", s -> s.replaceAll("OPTIONAL_JVM_INLINE_ANNOTATION", "@kotlin.jvm.JvmInline"));
|
||||
}
|
||||
|
||||
@TestMetadata("boxUnboxInlineClassesWithOperatorsGetSet.kt")
|
||||
|
||||
Reference in New Issue
Block a user