From c8351c3da032ad65cae06c669bf75ea8e3729d7b Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Mon, 10 Sep 2018 15:14:45 +0300 Subject: [PATCH] JPS, -Xcommon-sources: write tests --- .../build/IncrementalJpsTestGenerated.java | 18 ++++++ .../_dependencies.txt | 7 +++ .../commonSourcesCompilerArg/_steps.txt | 5 ++ .../custom/commonSourcesCompilerArg/build.log | 62 +++++++++++++++++++ .../custom/commonSourcesCompilerArg/c_a.kt | 7 +++ .../commonSourcesCompilerArg/c_b.kt.new.5 | 2 + .../pJs_c.kt.delete.2 | 0 .../commonSourcesCompilerArg/pJs_c.kt.new.1 | 3 + .../pJvm_c.kt.delete.4 | 0 .../commonSourcesCompilerArg/pJvm_c.kt.new.3 | 3 + .../editingCMainExpectActual/build.log | 0 .../editingCTestsExpectActual/build.log | 0 12 files changed, 107 insertions(+) create mode 100644 jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/_dependencies.txt create mode 100644 jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/_steps.txt create mode 100644 jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/build.log create mode 100644 jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/c_a.kt create mode 100644 jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/c_b.kt.new.5 create mode 100644 jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJs_c.kt.delete.2 create mode 100644 jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJs_c.kt.new.1 create mode 100644 jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJvm_c.kt.delete.4 create mode 100644 jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJvm_c.kt.new.3 create mode 100644 jps-plugin/testData/incremental/multiModule/multiplatform/withGeneratedContent/simpleJsJvmProjectWithTests/editingCMainExpectActual/build.log create mode 100644 jps-plugin/testData/incremental/multiModule/multiplatform/withGeneratedContent/simpleJsJvmProjectWithTests/editingCTestsExpectActual/build.log diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java index 8fe8dc20f90..3c17d3546d7 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java @@ -578,6 +578,24 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { public void testAllFilesPresentInCustom() throws Exception { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/multiModule/multiplatform/custom"), Pattern.compile("^([^\\.]+)$"), TargetBackend.ANY, true); } + + @TestMetadata("commonSourcesCompilerArg") + public void testCommonSourcesCompilerArg() throws Exception { + runTest("jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/"); + } + + @TestMetadata("jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class CommonSourcesCompilerArg extends AbstractIncrementalJpsTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInCommonSourcesCompilerArg() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg"), Pattern.compile("^([^\\.]+)$"), TargetBackend.ANY, true); + } + } } @TestMetadata("jps-plugin/testData/incremental/pureKotlin") diff --git a/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/_dependencies.txt b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/_dependencies.txt new file mode 100644 index 00000000000..cc3166eab6f --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/_dependencies.txt @@ -0,0 +1,7 @@ +c [sourceSetHolder] + +pJvm [compilationAndSourceSetHolder, jvm] +pJvm -> c [include] + +pJs [compilationAndSourceSetHolder, js] +pJs -> c [include] \ No newline at end of file diff --git a/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/_steps.txt b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/_steps.txt new file mode 100644 index 00000000000..bec742d23bc --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/_steps.txt @@ -0,0 +1,5 @@ +use @Optional in JS +remove @Optional from JS +use @Optional in JVM +remove @Optional from JVM +add another @Optional in Common module \ No newline at end of file diff --git a/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/build.log b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/build.log new file mode 100644 index 00000000000..86ce0e9baeb --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/build.log @@ -0,0 +1,62 @@ +================ Step #1 use @Optional in JS ================= + +Building c +Building pJs +Compiling files: + pJs/src/c.kt +End of files +Exit code: ABORT +------------------------------------------ +COMPILATION FAILED +Declaration annotated with '@OptionalExpectation' can only be used in common module sources + +================ Step #2 remove @Optional from JS ================= + +Building c +Building pJs +Exit code: NOTHING_DONE +------------------------------------------ +Building pJvm +Exit code: NOTHING_DONE +------------------------------------------ + +================ Step #3 use @Optional in JVM ================= + +Building c +Building pJs +Exit code: NOTHING_DONE +------------------------------------------ +Building pJvm +Compiling files: + pJvm/src/c.kt +End of files +Exit code: ABORT +------------------------------------------ +COMPILATION FAILED +Declaration annotated with '@OptionalExpectation' can only be used in common module sources + +================ Step #4 remove @Optional from JVM ================= + +Building c +Building pJs +Exit code: NOTHING_DONE +------------------------------------------ +Building pJvm +Exit code: NOTHING_DONE +------------------------------------------ + +================ Step #5 add another @Optional in Common module ================= + +Building c +Building pJs +Compiling files: + c/src/b.kt +End of files +Exit code: OK +------------------------------------------ +Building pJvm +Compiling files: + c/src/b.kt +End of files +Exit code: OK +------------------------------------------ \ No newline at end of file diff --git a/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/c_a.kt b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/c_a.kt new file mode 100644 index 00000000000..539712551e8 --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/c_a.kt @@ -0,0 +1,7 @@ +@file:Suppress("EXPERIMENTAL_API_USAGE_ERROR") + +@OptionalExpectation +expect annotation class Optional(val value: String) + +@Optional("Foo") +class Foo \ No newline at end of file diff --git a/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/c_b.kt.new.5 b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/c_b.kt.new.5 new file mode 100644 index 00000000000..e25c8d330ee --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/c_b.kt.new.5 @@ -0,0 +1,2 @@ +@Optional("Foo") +class Bar \ No newline at end of file diff --git a/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJs_c.kt.delete.2 b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJs_c.kt.delete.2 new file mode 100644 index 00000000000..e69de29bb2d diff --git a/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJs_c.kt.new.1 b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJs_c.kt.new.1 new file mode 100644 index 00000000000..6b3d50be104 --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJs_c.kt.new.1 @@ -0,0 +1,3 @@ +// Should be an error: Declaration annotated with '@OptionalExpectation' can only be used in common module sources +@Optional("BarJs") +class BarJs \ No newline at end of file diff --git a/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJvm_c.kt.delete.4 b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJvm_c.kt.delete.4 new file mode 100644 index 00000000000..e69de29bb2d diff --git a/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJvm_c.kt.new.3 b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJvm_c.kt.new.3 new file mode 100644 index 00000000000..55acce24e4e --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/multiplatform/custom/commonSourcesCompilerArg/pJvm_c.kt.new.3 @@ -0,0 +1,3 @@ +// Should be an error: Declaration annotated with '@OptionalExpectation' can only be used in common module sources +@Optional("BarJvm") +class BarJvm \ No newline at end of file diff --git a/jps-plugin/testData/incremental/multiModule/multiplatform/withGeneratedContent/simpleJsJvmProjectWithTests/editingCMainExpectActual/build.log b/jps-plugin/testData/incremental/multiModule/multiplatform/withGeneratedContent/simpleJsJvmProjectWithTests/editingCMainExpectActual/build.log new file mode 100644 index 00000000000..e69de29bb2d diff --git a/jps-plugin/testData/incremental/multiModule/multiplatform/withGeneratedContent/simpleJsJvmProjectWithTests/editingCTestsExpectActual/build.log b/jps-plugin/testData/incremental/multiModule/multiplatform/withGeneratedContent/simpleJsJvmProjectWithTests/editingCTestsExpectActual/build.log new file mode 100644 index 00000000000..e69de29bb2d