[JS IR] Add tests for JS IR IC + PL
^KT-57347 related
This commit is contained in:
committed by
Space Team
parent
97620030c6
commit
82a1242f22
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.generators.tests
|
||||
import org.jetbrains.kotlin.generators.generateTestGroupSuiteWithJUnit5
|
||||
import org.jetbrains.kotlin.generators.impl.generateTestGroupSuite
|
||||
import org.jetbrains.kotlin.incremental.AbstractJsIrES6InvalidationTest
|
||||
import org.jetbrains.kotlin.incremental.AbstractJsIrInvalidationWithPLTest
|
||||
import org.jetbrains.kotlin.incremental.AbstractJsIrInvalidationTest
|
||||
import org.jetbrains.kotlin.incremental.AbstractJsFirInvalidationTest
|
||||
import org.jetbrains.kotlin.js.test.*
|
||||
@@ -82,6 +83,10 @@ fun main(args: Array<String>) {
|
||||
testClass<AbstractJsFirInvalidationTest> {
|
||||
model("incremental/invalidation/", pattern = "^([^_](.+))$", targetBackend = TargetBackend.JS_IR, recursive = false)
|
||||
}
|
||||
|
||||
testClass<AbstractJsIrInvalidationWithPLTest> {
|
||||
model("incremental/invalidationWithPL/", pattern = "^([^_](.+))$", targetBackend = TargetBackend.JS_IR, recursive = false)
|
||||
}
|
||||
}
|
||||
|
||||
testGroup("js/js.tests/tests-gen", "js/js.translator/testData", testRunnerMethodName = "runTest0") {
|
||||
|
||||
@@ -121,7 +121,7 @@ abstract class AbstractInvalidationTest(private val targetBackend: TargetBackend
|
||||
return File(File(buildDir, moduleName), "$moduleName.klib")
|
||||
}
|
||||
|
||||
private fun createConfiguration(moduleName: String, language: List<String>, moduleKind: ModuleKind): CompilerConfiguration {
|
||||
protected open fun createConfiguration(moduleName: String, language: List<String>, moduleKind: ModuleKind): CompilerConfiguration {
|
||||
val copy = environment.configuration.copy()
|
||||
copy.put(CommonConfigurationKeys.MODULE_NAME, moduleName)
|
||||
copy.put(JSConfigurationKeys.GENERATE_DTS, true)
|
||||
|
||||
@@ -11,12 +11,35 @@ import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.ir.backend.js.*
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||
import org.jetbrains.kotlin.ir.linkage.partial.PartialLinkageConfig
|
||||
import org.jetbrains.kotlin.ir.linkage.partial.PartialLinkageLogLevel
|
||||
import org.jetbrains.kotlin.ir.linkage.partial.PartialLinkageMode
|
||||
import org.jetbrains.kotlin.ir.linkage.partial.setupPartialLinkageConfig
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.serialization.js.ModuleKind
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
import java.io.File
|
||||
|
||||
abstract class AbstractJsIrInvalidationTest : IrAbstractInvalidationTest(TargetBackend.JS_IR, "incrementalOut/invalidation")
|
||||
abstract class AbstractJsIrES6InvalidationTest : IrAbstractInvalidationTest(TargetBackend.JS_IR_ES6, "incrementalOut/invalidationES6")
|
||||
abstract class AbstractJsIrInvalidationTest : IrAbstractInvalidationTest(
|
||||
targetBackend = TargetBackend.JS_IR,
|
||||
workingDirPath = "incrementalOut/invalidation"
|
||||
)
|
||||
|
||||
abstract class AbstractJsIrES6InvalidationTest : IrAbstractInvalidationTest(
|
||||
targetBackend = TargetBackend.JS_IR_ES6,
|
||||
workingDirPath = "incrementalOut/invalidationES6"
|
||||
)
|
||||
|
||||
abstract class AbstractJsIrInvalidationWithPLTest : IrAbstractInvalidationTest(
|
||||
targetBackend = TargetBackend.JS_IR,
|
||||
workingDirPath = "incrementalOut/invalidationWithPL"
|
||||
) {
|
||||
override fun createConfiguration(moduleName: String, language: List<String>, moduleKind: ModuleKind): CompilerConfiguration {
|
||||
val config = super.createConfiguration(moduleName, language, moduleKind)
|
||||
config.setupPartialLinkageConfig(PartialLinkageConfig(PartialLinkageMode.ENABLE, PartialLinkageLogLevel.WARNING))
|
||||
return config
|
||||
}
|
||||
}
|
||||
|
||||
abstract class IrAbstractInvalidationTest(
|
||||
targetBackend: TargetBackend,
|
||||
|
||||
Generated
+75
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Copyright 2010-2023 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.incremental;
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||
import org.jetbrains.kotlin.test.TargetBackend;
|
||||
import org.jetbrains.kotlin.test.TestMetadata;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.GenerateJsTestsKt}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@TestMetadata("js/js.translator/testData/incremental/invalidationWithPL")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class JsIrInvalidationWithPLTestGenerated extends AbstractJsIrInvalidationWithPLTest {
|
||||
@Test
|
||||
public void testAllFilesPresentInInvalidationWithPL() throws Exception {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("js/js.translator/testData/incremental/invalidationWithPL"), Pattern.compile("^([^_](.+))$"), null, TargetBackend.JS_IR, false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("changeFunctionSignature")
|
||||
public void testChangeFunctionSignature() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidationWithPL/changeFunctionSignature/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("interfaceBecomeClass")
|
||||
public void testInterfaceBecomeClass() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidationWithPL/interfaceBecomeClass/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("removeFunction")
|
||||
public void testRemoveFunction() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidationWithPL/removeFunction/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("removeFunctionFromBlock")
|
||||
public void testRemoveFunctionFromBlock() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromBlock/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("removeFunctionFromChainCall")
|
||||
public void testRemoveFunctionFromChainCall() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromChainCall/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("removeFunctionFromElvis")
|
||||
public void testRemoveFunctionFromElvis() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromElvis/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("removeFunctionFromInline")
|
||||
public void testRemoveFunctionFromInline() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidationWithPL/removeFunctionFromInline/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("removeInlineFunction")
|
||||
public void testRemoveInlineFunction() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidationWithPL/removeInlineFunction/");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user