diff --git a/js/js.tests/test/org/jetbrains/kotlin/generators/tests/GenerateJsTests.kt b/js/js.tests/test/org/jetbrains/kotlin/generators/tests/GenerateJsTests.kt index 00ac5c10baa..3c5974c06e7 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/generators/tests/GenerateJsTests.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/generators/tests/GenerateJsTests.kt @@ -85,6 +85,14 @@ fun main(args: Array) { model("incremental/invalidation/", pattern = "^([^_](.+))$", targetBackend = TargetBackend.JS_IR_ES6, recursive = false) } + testClass { + model("incremental/invalidationWithPL/", pattern = "^([^_](.+))$", targetBackend = TargetBackend.JS_IR, recursive = false) + } + + testClass { + model("incremental/invalidationWithPL/", pattern = "^([^_](.+))$", targetBackend = TargetBackend.JS_IR, recursive = false) + } + testClass { model("incremental/invalidation/", pattern = "^([^_](.+))$", targetBackend = TargetBackend.JS_IR, recursive = false) } @@ -101,11 +109,11 @@ fun main(args: Array) { model("incremental/invalidation/", pattern = "^([^_](.+))$", targetBackend = TargetBackend.JS_IR_ES6, recursive = false) } - testClass { + testClass { model("incremental/invalidationWithPL/", pattern = "^([^_](.+))$", targetBackend = TargetBackend.JS_IR, recursive = false) } - testClass { + testClass { model("incremental/invalidationWithPL/", pattern = "^([^_](.+))$", targetBackend = TargetBackend.JS_IR, recursive = false) } } diff --git a/js/js.tests/test/org/jetbrains/kotlin/incremental/FirAbstractInvalidationTest.kt b/js/js.tests/test/org/jetbrains/kotlin/incremental/FirAbstractInvalidationTest.kt index 7105529900c..2c9754fb453 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/incremental/FirAbstractInvalidationTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/incremental/FirAbstractInvalidationTest.kt @@ -16,6 +16,11 @@ import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory import org.jetbrains.kotlin.ir.backend.js.MainModule import org.jetbrains.kotlin.ir.backend.js.ModulesStructure import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.JsGenerationGranularity +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.serialization.js.ModuleKind import org.jetbrains.kotlin.test.TargetBackend import java.io.ByteArrayOutputStream import java.io.File @@ -30,6 +35,23 @@ abstract class AbstractJsFirES6InvalidationPerFileTest : FirAbstractInvalidationTest(TargetBackend.JS_IR_ES6, JsGenerationGranularity.PER_FILE, "incrementalOut/invalidationFirES6/perFile") abstract class AbstractJsFirES6InvalidationPerModuleTest : FirAbstractInvalidationTest(TargetBackend.JS_IR_ES6, JsGenerationGranularity.PER_MODULE, "incrementalOut/invalidationFirES6/perModule") +abstract class AbstractJsFirInvalidationPerFileWithPLTest : + AbstractJsFirInvalidationWithPLTest(JsGenerationGranularity.PER_FILE, "incrementalOut/invalidationWithPL/perFile") +abstract class AbstractJsFirInvalidationPerModuleWithPLTest : + AbstractJsFirInvalidationWithPLTest(JsGenerationGranularity.PER_MODULE, "incrementalOut/invalidationWithPL/perModule") + +abstract class AbstractJsFirInvalidationWithPLTest(granularity: JsGenerationGranularity, workingDirPath: String) : + FirAbstractInvalidationTest( + TargetBackend.JS_IR, + granularity, + workingDirPath + ) { + override fun createConfiguration(moduleName: String, language: List, moduleKind: ModuleKind): CompilerConfiguration { + val config = super.createConfiguration(moduleName, language, moduleKind) + config.setupPartialLinkageConfig(PartialLinkageConfig(PartialLinkageMode.ENABLE, PartialLinkageLogLevel.WARNING)) + return config + } +} abstract class FirAbstractInvalidationTest( targetBackend: TargetBackend, diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileWithPLTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileWithPLTestGenerated.java new file mode 100644 index 00000000000..0e6c7b736f2 --- /dev/null +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileWithPLTestGenerated.java @@ -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 JsFirInvalidationPerFileWithPLTestGenerated extends AbstractJsFirInvalidationPerFileWithPLTest { + @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/"); + } +} diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleWithPLTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleWithPLTestGenerated.java new file mode 100644 index 00000000000..f5380f21d50 --- /dev/null +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleWithPLTestGenerated.java @@ -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 JsFirInvalidationPerModuleWithPLTestGenerated extends AbstractJsFirInvalidationPerModuleWithPLTest { + @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/"); + } +}