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 874bcb3f649..8f31fae21c5 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 @@ -7,14 +7,15 @@ package org.jetbrains.kotlin.generators.tests import org.jetbrains.kotlin.generators.generateTestGroupSuiteWithJUnit5 import org.jetbrains.kotlin.generators.impl.generateTestGroupSuite +import org.jetbrains.kotlin.incremental.AbstractInvalidationTest +import org.jetbrains.kotlin.js.test.* +import org.jetbrains.kotlin.js.test.ir.* import org.jetbrains.kotlin.js.testOld.AbstractDceTest import org.jetbrains.kotlin.js.testOld.AbstractJsLineNumberTest import org.jetbrains.kotlin.js.testOld.compatibility.binary.AbstractJsKlibBinaryCompatibilityTest import org.jetbrains.kotlin.js.testOld.wasm.semantics.AbstractIrCodegenBoxWasmTest import org.jetbrains.kotlin.js.testOld.wasm.semantics.AbstractIrCodegenWasmJsInteropWasmTest import org.jetbrains.kotlin.js.testOld.wasm.semantics.AbstractJsTranslatorWasmTest -import org.jetbrains.kotlin.js.test.* -import org.jetbrains.kotlin.js.test.ir.* import org.jetbrains.kotlin.test.TargetBackend fun main(args: Array) { @@ -46,6 +47,12 @@ fun main(args: Array) { } } + testGroup("js/js.tests/tests-gen", "js/js.translator/testData") { + testClass { + model("incremental/invalidation/", pattern = "^([^_](.+))$", targetBackend = TargetBackend.JS_IR, recursive = false) + } + } + testGroup("js/js.tests/tests-gen", "compiler/testData", testRunnerMethodName = "runTest0") { testClass { model( diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/InvalidationTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/InvalidationTestGenerated.java new file mode 100644 index 00000000000..f7f97552ca4 --- /dev/null +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/InvalidationTestGenerated.java @@ -0,0 +1,42 @@ +/* + * Copyright 2010-2021 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.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.kotlin.test.TargetBackend; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("js/js.translator/testData/incremental/invalidation") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class InvalidationTestGenerated extends AbstractInvalidationTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JS_IR, testDataFilePath); + } + + public void testAllFilesPresentInInvalidation() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("js/js.translator/testData/incremental/invalidation"), Pattern.compile("^([^_](.+))$"), null, TargetBackend.JS_IR, false); + } + + @TestMetadata("simple") + public void testSimple() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/simple/"); + } + + @TestMetadata("transitiveInlineFunction") + public void testTransitiveInlineFunction() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/"); + } +} diff --git a/js/js.translator/testData/incremental/invalidation/simple/lib1/l1.kt b/js/js.translator/testData/incremental/invalidation/simple/lib1/l1.kt new file mode 100644 index 00000000000..859b384ad7f --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/simple/lib1/l1.kt @@ -0,0 +1 @@ +fun foo() = 42 \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/simple/lib1/l1.kt.1 b/js/js.translator/testData/incremental/invalidation/simple/lib1/l1.kt.1 new file mode 100644 index 00000000000..8e3c1332e9e --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/simple/lib1/l1.kt.1 @@ -0,0 +1 @@ +fun foo() = 33 \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/simple/lib1/module.info b/js/js.translator/testData/incremental/invalidation/simple/lib1/module.info new file mode 100644 index 00000000000..5963605a540 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/simple/lib1/module.info @@ -0,0 +1,8 @@ +STEP 0: + dependencies: stdlib + dirty: l1.kt +STEP 1: + dependencies: stdlib + modifications: + U : l1.kt.1 -> l1.kt + dirty: l1.kt diff --git a/js/js.translator/testData/incremental/invalidation/simple/lib2/l2.kt b/js/js.translator/testData/incremental/invalidation/simple/lib2/l2.kt new file mode 100644 index 00000000000..baeaa737440 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/simple/lib2/l2.kt @@ -0,0 +1,2 @@ + +fun qux() = foo() \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/simple/lib2/module.info b/js/js.translator/testData/incremental/invalidation/simple/lib2/module.info new file mode 100644 index 00000000000..c7b30818f27 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/simple/lib2/module.info @@ -0,0 +1,7 @@ +STEP 0: + dependencies: stdlib, lib1 + dirty: l2.kt + +STEP 1: + dependencies: stdlib, lib1 + dirty: \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/simple/main/m.kt b/js/js.translator/testData/incremental/invalidation/simple/main/m.kt new file mode 100644 index 00000000000..3ed427f027a --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/simple/main/m.kt @@ -0,0 +1,2 @@ + +fun box() = qux() \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/simple/main/module.info b/js/js.translator/testData/incremental/invalidation/simple/main/module.info new file mode 100644 index 00000000000..d2047496476 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/simple/main/module.info @@ -0,0 +1,6 @@ +STEP 0: + dependencies: stdlib, lib1, lib2 + dirty: m.kt + +STEP 1: + dependencies: stdlib, lib1, lib2 \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/simple/project.info b/js/js.translator/testData/incremental/invalidation/simple/project.info new file mode 100644 index 00000000000..710e8567360 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/simple/project.info @@ -0,0 +1,7 @@ +MODULES: lib1, lib2, main + +STEP 0: + libs: lib1, lib2, main + +STEP 1: + libs: lib1, lib2, main \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib1/l1.kt b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib1/l1.kt new file mode 100644 index 00000000000..d03afdac779 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib1/l1.kt @@ -0,0 +1,2 @@ + +inline fun foo() = 42 \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib1/l1.kt.1 b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib1/l1.kt.1 new file mode 100644 index 00000000000..b9ec1aa61e3 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib1/l1.kt.1 @@ -0,0 +1,2 @@ + +inline fun foo() = 33 \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib1/module.info b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib1/module.info new file mode 100644 index 00000000000..5963605a540 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib1/module.info @@ -0,0 +1,8 @@ +STEP 0: + dependencies: stdlib + dirty: l1.kt +STEP 1: + dependencies: stdlib + modifications: + U : l1.kt.1 -> l1.kt + dirty: l1.kt diff --git a/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib2/l2.kt b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib2/l2.kt new file mode 100644 index 00000000000..39b7239355c --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib2/l2.kt @@ -0,0 +1,2 @@ + +inline fun qux() = foo() \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib2/module.info b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib2/module.info new file mode 100644 index 00000000000..acda14b6069 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/lib2/module.info @@ -0,0 +1,7 @@ +STEP 0: + dependencies: stdlib, lib1 + dirty: l2.kt + +STEP 1: + dependencies: stdlib, lib1 + dirty: l2.kt \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/main/m.kt b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/main/m.kt new file mode 100644 index 00000000000..3ed427f027a --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/main/m.kt @@ -0,0 +1,2 @@ + +fun box() = qux() \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/main/module.info b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/main/module.info new file mode 100644 index 00000000000..df595acd9eb --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/main/module.info @@ -0,0 +1,7 @@ +STEP 0: + dependencies: stdlib, lib1, lib2 + dirty: m.kt + +STEP 1: + dependencies: stdlib, lib1, lib2 + dirty: m.kt \ No newline at end of file diff --git a/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/project.info b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/project.info new file mode 100644 index 00000000000..710e8567360 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/project.info @@ -0,0 +1,7 @@ +MODULES: lib1, lib2, main + +STEP 0: + libs: lib1, lib2, main + +STEP 1: + libs: lib1, lib2, main \ No newline at end of file