From 0d7de87e2ee41af91507de7378c286cb3bc43b39 Mon Sep 17 00:00:00 2001 From: Alexander Korepanov Date: Wed, 25 Oct 2023 14:52:40 +0200 Subject: [PATCH] [JS IR test] Add a test for invalidation with a src name chash --- .../JsFirInvalidationPerFileTestGenerated.java | 6 ++++++ ...JsFirInvalidationPerModuleTestGenerated.java | 6 ++++++ ...JsIrES6InvalidationPerFileTestGenerated.java | 6 ++++++ ...IrES6InvalidationPerModuleTestGenerated.java | 6 ++++++ .../JsIrInvalidationPerFileTestGenerated.java | 6 ++++++ .../JsIrInvalidationPerModuleTestGenerated.java | 6 ++++++ .../lib1/common/l1.0.kt | 1 + .../lib1/common/l1.2.kt | 1 + .../multiPlatformClashFileNames/lib1/js/l1.0.kt | 1 + .../multiPlatformClashFileNames/lib1/js/l1.1.kt | 1 + .../lib1/module.info | 14 ++++++++++++++ .../lib2/common/l2common.0.kt | 1 + .../lib2/js/l2js.0.kt | 1 + .../lib2/module.info | 12 ++++++++++++ .../multiPlatformClashFileNames/main/m.kt | 15 +++++++++++++++ .../main/module.info | 5 +++++ .../multiPlatformClashFileNames/project.info | 17 +++++++++++++++++ 17 files changed, 105 insertions(+) create mode 100644 js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/common/l1.0.kt create mode 100644 js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/common/l1.2.kt create mode 100644 js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/js/l1.0.kt create mode 100644 js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/js/l1.1.kt create mode 100644 js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/common/l2common.0.kt create mode 100644 js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/js/l2js.0.kt create mode 100644 js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/main/m.kt create mode 100644 js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/main/module.info create mode 100644 js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/project.info diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java index 94b0808f1fc..42f0e2dc7e9 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java @@ -409,6 +409,12 @@ public class JsFirInvalidationPerFileTestGenerated extends AbstractJsFirInvalida runTest("js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/"); } + @Test + @TestMetadata("multiPlatformClashFileNames") + public void testMultiPlatformClashFileNames() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/"); + } + @Test @TestMetadata("multiPlatformSimple") public void testMultiPlatformSimple() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java index 3ac2f0dfb07..a3606490afa 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java @@ -409,6 +409,12 @@ public class JsFirInvalidationPerModuleTestGenerated extends AbstractJsFirInvali runTest("js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/"); } + @Test + @TestMetadata("multiPlatformClashFileNames") + public void testMultiPlatformClashFileNames() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/"); + } + @Test @TestMetadata("multiPlatformSimple") public void testMultiPlatformSimple() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java index 77b734132b0..0e1fdaf7529 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java @@ -409,6 +409,12 @@ public class JsIrES6InvalidationPerFileTestGenerated extends AbstractJsIrES6Inva runTest("js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/"); } + @Test + @TestMetadata("multiPlatformClashFileNames") + public void testMultiPlatformClashFileNames() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/"); + } + @Test @TestMetadata("multiPlatformSimple") public void testMultiPlatformSimple() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java index 44bf7539606..6bcc353a558 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java @@ -409,6 +409,12 @@ public class JsIrES6InvalidationPerModuleTestGenerated extends AbstractJsIrES6In runTest("js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/"); } + @Test + @TestMetadata("multiPlatformClashFileNames") + public void testMultiPlatformClashFileNames() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/"); + } + @Test @TestMetadata("multiPlatformSimple") public void testMultiPlatformSimple() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java index e55cfaad28d..bcc7e9c3f37 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java @@ -409,6 +409,12 @@ public class JsIrInvalidationPerFileTestGenerated extends AbstractJsIrInvalidati runTest("js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/"); } + @Test + @TestMetadata("multiPlatformClashFileNames") + public void testMultiPlatformClashFileNames() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/"); + } + @Test @TestMetadata("multiPlatformSimple") public void testMultiPlatformSimple() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java index fb780965cce..cf6488fd6f5 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java @@ -409,6 +409,12 @@ public class JsIrInvalidationPerModuleTestGenerated extends AbstractJsIrInvalida runTest("js/js.translator/testData/incremental/invalidation/moveInlineFunctionBetweenModules/"); } + @Test + @TestMetadata("multiPlatformClashFileNames") + public void testMultiPlatformClashFileNames() throws Exception { + runTest("js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/"); + } + @Test @TestMetadata("multiPlatformSimple") public void testMultiPlatformSimple() throws Exception { diff --git a/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/common/l1.0.kt b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/common/l1.0.kt new file mode 100644 index 00000000000..6933c24ba13 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/common/l1.0.kt @@ -0,0 +1 @@ +inline fun commonFun() = 0 diff --git a/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/common/l1.2.kt b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/common/l1.2.kt new file mode 100644 index 00000000000..90c3a9f5354 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/common/l1.2.kt @@ -0,0 +1 @@ +inline fun commonFun() = 2 diff --git a/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/js/l1.0.kt b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/js/l1.0.kt new file mode 100644 index 00000000000..a85078d0a59 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/js/l1.0.kt @@ -0,0 +1 @@ +inline fun jsFun() = 0 diff --git a/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/js/l1.1.kt b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/js/l1.1.kt new file mode 100644 index 00000000000..b9f23ee4598 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/js/l1.1.kt @@ -0,0 +1 @@ +inline fun jsFun() = 1 diff --git a/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/module.info b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/module.info new file mode 100644 index 00000000000..f362e59fb2c --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib1/module.info @@ -0,0 +1,14 @@ +STEP 0: + modifications: + U : js/l1.0.kt -> js/l1.kt + U : common/l1.0.kt -> common/l1.kt + added file: l1.kt, l1.kt.1 +STEP 1: + modifications: + U : js/l1.1.kt -> js/l1.kt + modified ir: l1.kt.1 +STEP 2: + modifications: + U : common/l1.2.kt -> common/l1.kt + modified ir: l1.kt + diff --git a/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/common/l2common.0.kt b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/common/l2common.0.kt new file mode 100644 index 00000000000..0f530c3e736 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/common/l2common.0.kt @@ -0,0 +1 @@ +fun commonWrapper() = commonFun() diff --git a/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/js/l2js.0.kt b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/js/l2js.0.kt new file mode 100644 index 00000000000..6a86eae42b0 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/js/l2js.0.kt @@ -0,0 +1 @@ +fun jsWrapper() = jsFun() diff --git a/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/module.info b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/module.info new file mode 100644 index 00000000000..39d500a95c4 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/lib2/module.info @@ -0,0 +1,12 @@ +STEP 0: + dependencies: lib1 + modifications: + U : js/l2js.0.kt -> js/l2js.kt + U : common/l2common.0.kt -> common/l2common.kt + added file: l2js.kt, l2common.kt +STEP 1: + dependencies: lib1 + updated imports: l2js.kt +STEP 2: + dependencies: lib1 + updated imports: l2common.kt diff --git a/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/main/m.kt b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/main/m.kt new file mode 100644 index 00000000000..6cc70618bd7 --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/main/m.kt @@ -0,0 +1,15 @@ +fun box(stepId: Int): String { + val expectCommon = if (stepId < 2) 0 else stepId + var got = commonWrapper() + if (expectCommon != got) { + return "Fail commonWrapper(): $expectCommon != $got" + } + + val expectJs = if (stepId > 1) 1 else stepId + got = jsWrapper() + if (expectJs != got) { + return "Fail jsWrapper(): $expectJs != $got" + } + + return "OK" +} diff --git a/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/main/module.info b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/main/module.info new file mode 100644 index 00000000000..9fbc8ef145a --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/main/module.info @@ -0,0 +1,5 @@ +STEP 0: + dependencies: lib1, lib2 + added file: m.kt +STEP 1..2: + dependencies: lib1, lib2 diff --git a/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/project.info b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/project.info new file mode 100644 index 00000000000..ca886b74b2a --- /dev/null +++ b/js/js.translator/testData/incremental/invalidation/multiPlatformClashFileNames/project.info @@ -0,0 +1,17 @@ +MODULES: lib1, lib2, main + +STEP 0: + language: +MultiPlatformProjects + libs: lib1, lib2, main + dirty js modules: lib1, lib2, main + dirty js files: lib1/l1, lib2/l2js, main/m.export, main, lib2/l2common, main/m +STEP 1: + language: +MultiPlatformProjects + libs: lib1, lib2, main + dirty js modules: lib1, lib2 + dirty js files: lib1/l1, lib2/l2js +STEP 2: + language: +MultiPlatformProjects + libs: lib1, lib2, main + dirty js modules: lib1, lib2 + dirty js files: lib1/l1, lib2/l2common