From bf3414c4915b3662761494f20d65b14d4c627883 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Fri, 27 Nov 2020 12:12:04 +0300 Subject: [PATCH] [IC] Add in-module tests for incremental compilation Two tests to check recompilation when parameter with default value was added or removed without changing use-site. Original commit: 96ba3b873e99392544219c3b8832c2115dc23dab --- .../build/IncrementalJvmJpsTestGenerated.java | 10 +++++ .../parameterWithDefaultValueAdded/build.log | 45 +++++++++++++++++++ .../parameterWithDefaultValueAdded/fun.kt | 5 +++ .../fun.kt.new.1 | 5 +++ .../fun.kt.new.2 | 5 +++ .../parameterWithDefaultValueAdded/other.kt | 3 ++ .../useDefault.kt | 5 +++ .../build.log | 22 +++++++++ .../parameterWithDefaultValueRemoved/fun.kt | 6 +++ .../fun.kt.new.1 | 5 +++ .../parameterWithDefaultValueRemoved/other.kt | 3 ++ .../useDefault.kt | 5 +++ 12 files changed, 119 insertions(+) create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/build.log create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt.new.1 create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt.new.2 create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/other.kt create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/useDefault.kt create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/build.log create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/fun.kt create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/fun.kt.new.1 create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/other.kt create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/useDefault.kt diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJvmJpsTestGenerated.java b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJvmJpsTestGenerated.java index ffd63718730..1e17cafc916 100644 --- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJvmJpsTestGenerated.java +++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJvmJpsTestGenerated.java @@ -1110,6 +1110,16 @@ public class IncrementalJvmJpsTestGenerated extends AbstractIncrementalJvmJpsTes runTest("jps-plugin/testData/incremental/pureKotlin/packageRemoved/"); } + @TestMetadata("parameterWithDefaultValueAdded") + public void testParameterWithDefaultValueAdded() throws Exception { + runTest("jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/"); + } + + @TestMetadata("parameterWithDefaultValueRemoved") + public void testParameterWithDefaultValueRemoved() throws Exception { + runTest("jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/"); + } + @TestMetadata("privateConstantsChanged") public void testPrivateConstantsChanged() throws Exception { runTest("jps-plugin/testData/incremental/pureKotlin/privateConstantsChanged/"); diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/build.log b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/build.log new file mode 100644 index 00000000000..d03762157b6 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/build.log @@ -0,0 +1,45 @@ +================ Step #1 ================= + +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/test/FunKt.class +End of files +Compiling files: + src/fun.kt +End of files +Marked as dirty by Kotlin: + src/useDefault.kt +Exit code: ADDITIONAL_PASS_REQUIRED +------------------------------------------ +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/test/UseDefaultKt.class +End of files +Compiling files: + src/useDefault.kt +End of files +Exit code: OK +------------------------------------------ + +================ Step #2 ================= + +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/test/FunKt.class +End of files +Compiling files: + src/fun.kt +End of files +Marked as dirty by Kotlin: + src/useDefault.kt +Exit code: ADDITIONAL_PASS_REQUIRED +------------------------------------------ +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/test/UseDefaultKt.class +End of files +Compiling files: + src/useDefault.kt +End of files +Exit code: OK +------------------------------------------ \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt new file mode 100644 index 00000000000..4a08b109ea2 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt @@ -0,0 +1,5 @@ +package test + +fun f(x: Any) { + println("f(x: Any)") +} diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt.new.1 b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt.new.1 new file mode 100644 index 00000000000..cdf3d991ec3 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt.new.1 @@ -0,0 +1,5 @@ +package test + +fun f(x: Any, y: String = "D") { + println("f(x: Any, $y)") +} diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt.new.2 b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt.new.2 new file mode 100644 index 00000000000..8a88b628d47 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/fun.kt.new.2 @@ -0,0 +1,5 @@ +package test + +fun f(x: Any = "", y: String = "D") { + println("f(x: Any, $y)") +} diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/other.kt b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/other.kt new file mode 100644 index 00000000000..567945cc9b5 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/other.kt @@ -0,0 +1,3 @@ +package other + +fun other() {} \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/useDefault.kt b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/useDefault.kt new file mode 100644 index 00000000000..73e68e1b5e9 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueAdded/useDefault.kt @@ -0,0 +1,5 @@ +package test + +fun useDefault1() { + f(10) +} \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/build.log b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/build.log new file mode 100644 index 00000000000..1594b2d4bac --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/build.log @@ -0,0 +1,22 @@ +================ Step #1 ================= + +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/test/FunKt.class +End of files +Compiling files: + src/fun.kt +End of files +Marked as dirty by Kotlin: + src/useDefault.kt +Exit code: ADDITIONAL_PASS_REQUIRED +------------------------------------------ +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/test/UseDefaultKt.class +End of files +Compiling files: + src/useDefault.kt +End of files +Exit code: OK +------------------------------------------ \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/fun.kt b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/fun.kt new file mode 100644 index 00000000000..727dcd2fd25 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/fun.kt @@ -0,0 +1,6 @@ +package test + +fun f(x: Any, y: String = "D") { + println("f(x: Any, $y)") +} + diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/fun.kt.new.1 b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/fun.kt.new.1 new file mode 100644 index 00000000000..797e0254b27 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/fun.kt.new.1 @@ -0,0 +1,5 @@ +package test + +fun f(x: Any) { + println("f(x: Any)") +} \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/other.kt b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/other.kt new file mode 100644 index 00000000000..567945cc9b5 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/other.kt @@ -0,0 +1,3 @@ +package other + +fun other() {} \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/useDefault.kt b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/useDefault.kt new file mode 100644 index 00000000000..73e68e1b5e9 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/parameterWithDefaultValueRemoved/useDefault.kt @@ -0,0 +1,5 @@ +package test + +fun useDefault1() { + f(10) +} \ No newline at end of file