From b27aef2c61da7eec55f9f1e7869c777682f80e51 Mon Sep 17 00:00:00 2001 From: "Aleksei.Cherepanov" Date: Fri, 11 Aug 2023 11:23:24 +0200 Subject: [PATCH] Add test #KT-44835 In Progress --- .../kotlin/jps/GenerateJpsPluginTests.kt | 1 + ...alK2FirICLightTreeJvmJpsTestGenerated.java | 31 +++++++++++++++++++ .../IncrementalK2JvmJpsTestGenerated.java | 31 +++++++++++++++++++ ...ementalK2LightTreeJvmJpsTestGenerated.java | 31 +++++++++++++++++++ .../importedClassRemoved/_dependencies.txt | 4 +++ .../baseModule_JavaClass.java | 3 ++ .../baseModule_JavaClass.java.delete | 0 .../importedClassRemoved/baseModule_dummy.kt | 3 ++ .../importedClassRemoved/build.log | 19 ++++++++++++ .../dependentModule_Usage.kt | 3 ++ 10 files changed, 126 insertions(+) create mode 100644 jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/_dependencies.txt create mode 100644 jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/baseModule_JavaClass.java create mode 100644 jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/baseModule_JavaClass.java.delete create mode 100644 jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/baseModule_dummy.kt create mode 100644 jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/build.log create mode 100644 jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/dependentModule_Usage.kt diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/GenerateJpsPluginTests.kt b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/GenerateJpsPluginTests.kt index c120b5e09ba..529779a42ce 100644 --- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/GenerateJpsPluginTests.kt +++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/GenerateJpsPluginTests.kt @@ -35,6 +35,7 @@ fun main(args: Array) { model("incremental/inlineFunCallSite", extension = null, excludeParentDirs = true, targetBackend = targetBackend) model("incremental/withJava", extension = null, excludeParentDirs = true, targetBackend = targetBackend) model("incremental/incrementalJvmCompilerOnly", extension = null, excludeParentDirs = true, targetBackend = targetBackend) + model("incremental/multiModule/withJavaUsedInKotlin", extension = null, excludeParentDirs = true, targetBackend = targetBackend) } // IR diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2FirICLightTreeJvmJpsTestGenerated.java b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2FirICLightTreeJvmJpsTestGenerated.java index 0b5fa6b0279..a0a8477eb9f 100644 --- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2FirICLightTreeJvmJpsTestGenerated.java +++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2FirICLightTreeJvmJpsTestGenerated.java @@ -2737,4 +2737,35 @@ public class IncrementalK2FirICLightTreeJvmJpsTestGenerated extends AbstractIncr } } } + + @TestMetadata("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class WithJavaUsedInKotlin extends AbstractIncrementalK2FirICLightTreeJvmJpsTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); + } + + public void testAllFilesPresentInWithJavaUsedInKotlin() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true); + } + + @TestMetadata("importedClassRemoved") + public void testImportedClassRemoved() throws Exception { + runTest("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/"); + } + + @TestMetadata("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class ImportedClassRemoved extends AbstractIncrementalK2FirICLightTreeJvmJpsTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); + } + + public void testAllFilesPresentInImportedClassRemoved() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true); + } + } + } } diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2JvmJpsTestGenerated.java b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2JvmJpsTestGenerated.java index db58e79c207..71c6d6a49a4 100644 --- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2JvmJpsTestGenerated.java +++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2JvmJpsTestGenerated.java @@ -2737,4 +2737,35 @@ public class IncrementalK2JvmJpsTestGenerated extends AbstractIncrementalK2JvmJp } } } + + @TestMetadata("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class WithJavaUsedInKotlin extends AbstractIncrementalK2JvmJpsTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); + } + + public void testAllFilesPresentInWithJavaUsedInKotlin() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true); + } + + @TestMetadata("importedClassRemoved") + public void testImportedClassRemoved() throws Exception { + runTest("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/"); + } + + @TestMetadata("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class ImportedClassRemoved extends AbstractIncrementalK2JvmJpsTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); + } + + public void testAllFilesPresentInImportedClassRemoved() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true); + } + } + } } diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2LightTreeJvmJpsTestGenerated.java b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2LightTreeJvmJpsTestGenerated.java index 4e30d34c298..b352e546a46 100644 --- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2LightTreeJvmJpsTestGenerated.java +++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalK2LightTreeJvmJpsTestGenerated.java @@ -2737,4 +2737,35 @@ public class IncrementalK2LightTreeJvmJpsTestGenerated extends AbstractIncrement } } } + + @TestMetadata("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class WithJavaUsedInKotlin extends AbstractIncrementalK2LightTreeJvmJpsTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); + } + + public void testAllFilesPresentInWithJavaUsedInKotlin() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true); + } + + @TestMetadata("importedClassRemoved") + public void testImportedClassRemoved() throws Exception { + runTest("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/"); + } + + @TestMetadata("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class ImportedClassRemoved extends AbstractIncrementalK2LightTreeJvmJpsTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); + } + + public void testAllFilesPresentInImportedClassRemoved() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true); + } + } + } } diff --git a/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/_dependencies.txt b/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/_dependencies.txt new file mode 100644 index 00000000000..662dee9afdd --- /dev/null +++ b/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/_dependencies.txt @@ -0,0 +1,4 @@ +baseModule +dependentModule + +dependentModule->baseModule \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/baseModule_JavaClass.java b/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/baseModule_JavaClass.java new file mode 100644 index 00000000000..236660f7111 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/baseModule_JavaClass.java @@ -0,0 +1,3 @@ +package packageInBase; +public class JavaClass { +} \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/baseModule_JavaClass.java.delete b/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/baseModule_JavaClass.java.delete new file mode 100644 index 00000000000..e69de29bb2d diff --git a/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/baseModule_dummy.kt b/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/baseModule_dummy.kt new file mode 100644 index 00000000000..3011d911f6c --- /dev/null +++ b/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/baseModule_dummy.kt @@ -0,0 +1,3 @@ +package packageInBase + +fun dummy() {} \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/build.log b/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/build.log new file mode 100644 index 00000000000..ce3d957c583 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/build.log @@ -0,0 +1,19 @@ +================ Step #1 ================= + +Cleaning output files: + out/production/baseModule/packageInBase/JavaClass.class +End of files +Building baseModule +Exit code: NOTHING_DONE +------------------------------------------ +Building dependentModule +Cleaning output files: + out/production/dependentModule/META-INF/dependentModule.kotlin_module + out/production/dependentModule/Usage.class +End of files +Compiling files: + dependentModule/src/Usage.kt +End of files +Exit code: ABORT +------------------------------------------ +COMPILATION FAILED \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/dependentModule_Usage.kt b/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/dependentModule_Usage.kt new file mode 100644 index 00000000000..14793733080 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/multiModule/withJavaUsedInKotlin/importedClassRemoved/dependentModule_Usage.kt @@ -0,0 +1,3 @@ +import packageInBase.JavaClass + +class Usage {} \ No newline at end of file