diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index b690b2677b8..5eb61547756 100644 --- a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -97,6 +97,7 @@ import org.jetbrains.kotlin.j2k.AbstractJavaToKotlinConverterSingleFileTest import org.jetbrains.kotlin.jps.build.AbstractIncrementalJpsTest import org.jetbrains.kotlin.jps.build.AbstractLookupTrackerTest import org.jetbrains.kotlin.jps.build.android.AbstractAndroidJpsTestCase +import org.jetbrains.kotlin.jps.incremental.AbstractProtoComparisonTest import org.jetbrains.kotlin.js.test.semantics.* import org.jetbrains.kotlin.jvm.compiler.* import org.jetbrains.kotlin.jvm.runtime.AbstractJvmRuntimeDescriptorLoaderTest @@ -832,6 +833,15 @@ fun main(args: Array) { } } + testGroup("jps-plugin/test", "jps-plugin/testData") { + testClass(javaClass()) { + model("comparison/classSignatureChange", extension = null, excludeParentDirs = true) + model("comparison/classPrivateOnlyChange", extension = null, excludeParentDirs = true) + model("comparison/classMembersOnlyChanged", extension = null, excludeParentDirs = true) + model("comparison/unchanged", extension = null, excludeParentDirs = true) + } + } + testGroup("plugins/android-compiler-plugin/tests", "plugins/android-compiler-plugin/testData") { testClass(javaClass()) { model("android/converter/simple", recursive = false, extension = null) diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/AbstractProtoComparisonTest.kt b/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/AbstractProtoComparisonTest.kt new file mode 100644 index 00000000000..027be2715da --- /dev/null +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/AbstractProtoComparisonTest.kt @@ -0,0 +1,117 @@ +/* + * Copyright 2010-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.jps.incremental + +import com.intellij.openapi.util.io.FileUtil +import com.intellij.testFramework.UsefulTestCase +import org.jetbrains.kotlin.load.kotlin.header.isCompatibleClassKind +import org.jetbrains.kotlin.load.kotlin.header.isCompatibleFileFacadeKind +import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind +import org.jetbrains.kotlin.serialization.jvm.BitEncoding +import org.jetbrains.kotlin.test.JetTestUtils +import org.jetbrains.kotlin.test.MockLibraryUtil +import org.jetbrains.kotlin.utils.Printer +import java.io.File +import kotlin.test.assertEquals + +public abstract class AbstractProtoComparisonTest : UsefulTestCase() { + + public fun doTest(testDataPath: String) { + val testDir = JetTestUtils.tmpDir("testDirectory") + + val oldClassFiles = compileFileAndGetClasses(testDataPath, testDir, "old.kt") + val newClassFiles = compileFileAndGetClasses(testDataPath, testDir, "new.kt") + + val oldClassMap = oldClassFiles.toMap { it.name } + val newClassMap = newClassFiles.toMap { it.name } + + val sb = StringBuilder() + val p = Printer(sb) + + val oldSetOfNames = oldClassFiles.map { it.name }.toSet() + val newSetOfNames = newClassFiles.map { it.name }.toSet() + + val removedNames = (oldSetOfNames - newSetOfNames).sorted() + removedNames.forEach { + p.println("REMOVED: class $it") + } + + val addedNames = (newSetOfNames - oldSetOfNames).sorted() + addedNames.forEach { + p.println("ADDED: class $it") + } + + val commonNames = oldSetOfNames.intersect(newSetOfNames).sorted() + + for(name in commonNames) { + p.printDifference(oldClassMap[name]!!, newClassMap[name]!!) + } + + JetTestUtils.assertEqualsToFile(File(testDataPath + File.separator + "result.out"), sb.toString()); + } + + private fun compileFileAndGetClasses(testPath: String, testDir: File, fileName: String): List { + + val sourcesDirectory = testDir.createSubDirectory("sources") + val classesDirectory = testDir.createSubDirectory("$fileName.src") + + FileUtil.copy(File(testPath, fileName), File(sourcesDirectory, "main.kt")) + MockLibraryUtil.compileKotlin(sourcesDirectory.path, classesDirectory) + + return File(classesDirectory, "test").listFiles() { it.name.endsWith(".class") }?.sortedBy { it.name }!! + } + + private fun Printer.printDifference(oldClassFile: File, newClassFile: File) { + val oldLocalFileKotlinClass = LocalFileKotlinClass.create(oldClassFile)!! + val newLocalFileKotlinClass = LocalFileKotlinClass.create(newClassFile)!! + + val oldClassHeader = oldLocalFileKotlinClass.classHeader + val newClassHeader = newLocalFileKotlinClass.classHeader + + val oldProtoBytes = BitEncoding.decodeBytes(oldClassHeader.annotationData!!) + val newProtoBytes = BitEncoding.decodeBytes(newClassHeader.annotationData!!) + + val oldProto = ProtoMapValue(oldClassHeader.isCompatiblePackageFacadeKind() || oldClassHeader.isCompatibleFileFacadeKind(), oldProtoBytes) + val newProto = ProtoMapValue(newClassHeader.isCompatiblePackageFacadeKind() || newClassHeader.isCompatibleFileFacadeKind(), newProtoBytes) + + val diff = when { + newClassHeader.isCompatiblePackageFacadeKind(), newClassHeader.isCompatibleClassKind(), newClassHeader.isCompatibleFileFacadeKind() -> + difference(oldProto, newProto) + else -> { + println("ignore ${oldLocalFileKotlinClass.classId}") + return + } + } + + val changes = when (diff) { + is DifferenceKind.NONE -> + "NONE" + is DifferenceKind.CLASS_SIGNATURE -> + "CLASS_SIGNATURE" + is DifferenceKind.MEMBERS -> + "MEMBERS\n ${diff.names.sorted()}" + } + + println("changes in ${oldLocalFileKotlinClass.classId}: $changes") + } + + private fun File.createSubDirectory(relativePath: String): File { + val directory = File(this, relativePath) + FileUtil.createDirectory(directory) + return directory + } +} \ No newline at end of file diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/ProtoComparisonTestGenerated.java b/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/ProtoComparisonTestGenerated.java new file mode 100644 index 00000000000..079ab425bd0 --- /dev/null +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/ProtoComparisonTestGenerated.java @@ -0,0 +1,185 @@ +/* + * Copyright 2010-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.jps.incremental; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.JetTestUtils; +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") +@RunWith(JUnit3RunnerWithInners.class) +public class ProtoComparisonTestGenerated extends AbstractProtoComparisonTest { + @TestMetadata("jps-plugin/testData/comparison/classSignatureChange") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class ClassSignatureChange extends AbstractProtoComparisonTest { + public void testAllFilesPresentInClassSignatureChange() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/comparison/classSignatureChange"), Pattern.compile("^([^\\.]+)$"), true); + } + + @TestMetadata("classFlagsChanged") + public void testClassFlagsChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/"); + doTest(fileName); + } + + @TestMetadata("classToPackageFacade") + public void testClassToPackageFacade() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classSignatureChange/classToPackageFacade/"); + doTest(fileName); + } + + @TestMetadata("classTypeParameterListChanged") + public void testClassTypeParameterListChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classSignatureChange/classTypeParameterListChanged/"); + doTest(fileName); + } + + @TestMetadata("classWithClassAnnotationListChanged") + public void testClassWithClassAnnotationListChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classSignatureChange/classWithClassAnnotationListChanged/"); + doTest(fileName); + } + + @TestMetadata("classWithSuperTypeListChanged") + public void testClassWithSuperTypeListChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classSignatureChange/classWithSuperTypeListChanged/"); + doTest(fileName); + } + + @TestMetadata("packageFacadeToClass") + public void testPackageFacadeToClass() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classSignatureChange/packageFacadeToClass/"); + doTest(fileName); + } + + } + + @TestMetadata("jps-plugin/testData/comparison/classPrivateOnlyChange") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class ClassPrivateOnlyChange extends AbstractProtoComparisonTest { + public void testAllFilesPresentInClassPrivateOnlyChange() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/comparison/classPrivateOnlyChange"), Pattern.compile("^([^\\.]+)$"), true); + } + + @TestMetadata("classWithPrivateFunChanged") + public void testClassWithPrivateFunChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateFunChanged/"); + doTest(fileName); + } + + @TestMetadata("classWithPrivatePrimaryConstructorChanged") + public void testClassWithPrivatePrimaryConstructorChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivatePrimaryConstructorChanged/"); + doTest(fileName); + } + + @TestMetadata("classWithPrivateSecondaryConstructorChanged") + public void testClassWithPrivateSecondaryConstructorChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateSecondaryConstructorChanged/"); + doTest(fileName); + } + + @TestMetadata("classWithPrivateValChanged") + public void testClassWithPrivateValChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateValChanged/"); + doTest(fileName); + } + + @TestMetadata("classWithPrivateVarChanged") + public void testClassWithPrivateVarChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateVarChanged/"); + doTest(fileName); + } + + } + + @TestMetadata("jps-plugin/testData/comparison/classMembersOnlyChanged") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class ClassMembersOnlyChanged extends AbstractProtoComparisonTest { + public void testAllFilesPresentInClassMembersOnlyChanged() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/comparison/classMembersOnlyChanged"), Pattern.compile("^([^\\.]+)$"), true); + } + + @TestMetadata("classWithCompanionObjectChanged") + public void testClassWithCompanionObjectChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classMembersOnlyChanged/classWithCompanionObjectChanged/"); + doTest(fileName); + } + + @TestMetadata("classWithConstructorChanged") + public void testClassWithConstructorChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classMembersOnlyChanged/classWithConstructorChanged/"); + doTest(fileName); + } + + @TestMetadata("classWithFunAndValChanged") + public void testClassWithFunAndValChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classMembersOnlyChanged/classWithFunAndValChanged/"); + doTest(fileName); + } + + @TestMetadata("classWithNestedClassesChanged") + public void testClassWithNestedClassesChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classMembersOnlyChanged/classWithNestedClassesChanged/"); + doTest(fileName); + } + + @TestMetadata("classWitnEnumChanged") + public void testClassWitnEnumChanged() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classMembersOnlyChanged/classWitnEnumChanged/"); + doTest(fileName); + } + + @TestMetadata("packageFacadeDifference") + public void testPackageFacadeDifference() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/classMembersOnlyChanged/packageFacadeDifference/"); + doTest(fileName); + } + + } + + @TestMetadata("jps-plugin/testData/comparison/unchanged") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Unchanged extends AbstractProtoComparisonTest { + public void testAllFilesPresentInUnchanged() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/comparison/unchanged"), Pattern.compile("^([^\\.]+)$"), true); + } + + @TestMetadata("unchangedClass") + public void testUnchangedClass() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/unchanged/unchangedClass/"); + doTest(fileName); + } + + @TestMetadata("unchangedPackageFacade") + public void testUnchangedPackageFacade() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/comparison/unchanged/unchangedPackageFacade/"); + doTest(fileName); + } + + } +} diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithCompanionObjectChanged/new.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithCompanionObjectChanged/new.kt new file mode 100644 index 00000000000..969d9f4d5cd --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithCompanionObjectChanged/new.kt @@ -0,0 +1,20 @@ +package test + +class ClassWithAddedCompanionObject { + public fun unchangedFun() {} + companion object {} +} + +class ClassWithRemovedCompanionObject { + public fun unchangedFun() {} +} + +class ClassWithChangedCompanionObject { + public fun unchangedFun() {} + companion object SecondName {} +} + +class ClassWithChangedVisibilityForCompanionObject { + public fun unchangedFun() {} + private companion object {} +} diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithCompanionObjectChanged/old.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithCompanionObjectChanged/old.kt new file mode 100644 index 00000000000..93907babbb4 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithCompanionObjectChanged/old.kt @@ -0,0 +1,21 @@ +package test + +class ClassWithAddedCompanionObject { + public fun unchangedFun() {} +} + +class ClassWithRemovedCompanionObject { + public fun unchangedFun() {} + companion object {} +} + +class ClassWithChangedCompanionObject { + public fun unchangedFun() {} + companion object FirstName {} +} + +class ClassWithChangedVisibilityForCompanionObject { + public fun unchangedFun() {} + public companion object {} +} + diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithCompanionObjectChanged/result.out b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithCompanionObjectChanged/result.out new file mode 100644 index 00000000000..bc754441fa2 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithCompanionObjectChanged/result.out @@ -0,0 +1,12 @@ +REMOVED: class ClassWithChangedCompanionObject$FirstName.class +REMOVED: class ClassWithRemovedCompanionObject$Companion.class +ADDED: class ClassWithAddedCompanionObject$Companion.class +ADDED: class ClassWithChangedCompanionObject$SecondName.class +changes in test/ClassWithAddedCompanionObject: MEMBERS + [Companion] +changes in test/ClassWithChangedCompanionObject: MEMBERS + [FirstName, SecondName] +changes in test/ClassWithChangedVisibilityForCompanionObject.Companion: CLASS_SIGNATURE +changes in test/ClassWithChangedVisibilityForCompanionObject: NONE +changes in test/ClassWithRemovedCompanionObject: MEMBERS + [Companion] diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithConstructorChanged/new.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithConstructorChanged/new.kt new file mode 100644 index 00000000000..cdd184116b8 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithConstructorChanged/new.kt @@ -0,0 +1,25 @@ +package test + +class ClassWithPrimaryConstructorChanged constructor(arg: String) { + public fun unchangedFun() {} +} + +class ClassWithPrimaryConstructorVisibilityChanged private constructor() { + public fun unchangedFun() {} +} + +class ClassWithSecondaryConstructorsAdded() { + constructor(arg: Int): this() {} + constructor(arg: String): this() {} + public fun unchangedFun() {} +} + +class ClassWithSecondaryConstructorsRemoved() { + public fun unchangedFun() {} +} + +class ClassWithSecondaryConstructorVisibilityChanged() { + private constructor(arg: Int): this() {} + public fun unchangedFun() {} +} + diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithConstructorChanged/old.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithConstructorChanged/old.kt new file mode 100644 index 00000000000..86eda90550d --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithConstructorChanged/old.kt @@ -0,0 +1,24 @@ +package test + +class ClassWithPrimaryConstructorChanged constructor() { + public fun unchangedFun() {} +} + +class ClassWithPrimaryConstructorVisibilityChanged constructor() { + public fun unchangedFun() {} +} + +class ClassWithSecondaryConstructorsAdded { + public fun unchangedFun() {} +} + +class ClassWithSecondaryConstructorsRemoved() { + public constructor(arg: Int): this() {} + constructor(arg: String): this() {} + public fun unchangedFun() {} +} + +class ClassWithSecondaryConstructorVisibilityChanged() { + protected constructor(arg: Int): this() {} + public fun unchangedFun() {} +} diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithConstructorChanged/result.out b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithConstructorChanged/result.out new file mode 100644 index 00000000000..db18d890625 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithConstructorChanged/result.out @@ -0,0 +1,10 @@ +changes in test/ClassWithPrimaryConstructorChanged: MEMBERS + [] +changes in test/ClassWithPrimaryConstructorVisibilityChanged: MEMBERS + [] +changes in test/ClassWithSecondaryConstructorVisibilityChanged: MEMBERS + [] +changes in test/ClassWithSecondaryConstructorsAdded: MEMBERS + [] +changes in test/ClassWithSecondaryConstructorsRemoved: MEMBERS + [] diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithFunAndValChanged/new.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithFunAndValChanged/new.kt new file mode 100644 index 00000000000..2eb9659e801 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithFunAndValChanged/new.kt @@ -0,0 +1,31 @@ +package test + +class ClassWithFunAdded { + fun added() {} + public fun unchangedFun() {} +} + +class ClassWithFunRemoved { + public fun unchangedFun() {} +} + +class ClassWithValAndFunAddedAndRemoved { + public val valAdded: String = "" + fun funAdded() {} + public fun unchangedFun() {} +} + +class ClassWithValConvertedToVar { + public var value: Int = 10 + public fun unchangedFun() {} +} + +class ClassWithChangedVisiblityForFun1 { + private fun foo() {} + public fun unchangedFun() {} +} + +class ClassWithChangedVisiblityForFun2 { + protected fun foo() {} + public fun unchangedFun() {} +} diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithFunAndValChanged/old.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithFunAndValChanged/old.kt new file mode 100644 index 00000000000..e8ca9bd1db5 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithFunAndValChanged/old.kt @@ -0,0 +1,33 @@ +package test + +class ClassWithFunAdded { + public fun unchangedFun() {} +} + +class ClassWithFunRemoved { + fun removed() {} + public fun unchangedFun() {} +} + +class ClassWithValAndFunAddedAndRemoved { + public val valRemoved: Int = 10 + fun funRemoved() {} + public fun unchangedFun() {} +} + +class ClassWithValConvertedToVar { + public val value: Int = 10 + public fun unchangedFun() {} +} + +class ClassWithChangedVisiblityForFun1 { + protected fun foo() {} + public fun unchangedFun() {} +} + +class ClassWithChangedVisiblityForFun2 { + private fun foo() {} + public fun unchangedFun() {} +} + + diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithFunAndValChanged/result.out b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithFunAndValChanged/result.out new file mode 100644 index 00000000000..77239b3da8c --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithFunAndValChanged/result.out @@ -0,0 +1,12 @@ +changes in test/ClassWithChangedVisiblityForFun1: MEMBERS + [foo] +changes in test/ClassWithChangedVisiblityForFun2: MEMBERS + [foo] +changes in test/ClassWithFunAdded: MEMBERS + [added] +changes in test/ClassWithFunRemoved: MEMBERS + [removed] +changes in test/ClassWithValAndFunAddedAndRemoved: MEMBERS + [funAdded, funRemoved, valAdded, valRemoved] +changes in test/ClassWithValConvertedToVar: MEMBERS + [value] diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithNestedClassesChanged/new.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithNestedClassesChanged/new.kt new file mode 100644 index 00000000000..02acd55cbcf --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithNestedClassesChanged/new.kt @@ -0,0 +1,15 @@ +package test + +class ClassWithNestedClasses { + class NestedClassAdded {} + inner class InnerClass {} + inner class InnerClassAdded {} + public fun unchangedFun() {} +} + +class ClassWithChangedVisibilityForNestedClasses { + private class NestedClass {} + protected inner class InnerClass {} + public fun unchangedFun() {} +} + diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithNestedClassesChanged/old.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithNestedClassesChanged/old.kt new file mode 100644 index 00000000000..35d66d1a9e6 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithNestedClassesChanged/old.kt @@ -0,0 +1,14 @@ +package test + +class ClassWithNestedClasses { + class NestedClassRemoved {} + inner class InnerClass {} + public fun unchangedFun() {} +} + +class ClassWithChangedVisibilityForNestedClasses { + class NestedClass {} + inner class InnerClass {} + public fun unchangedFun() {} +} + diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithNestedClassesChanged/result.out b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithNestedClassesChanged/result.out new file mode 100644 index 00000000000..d9ebc0d8ae8 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWithNestedClassesChanged/result.out @@ -0,0 +1,9 @@ +REMOVED: class ClassWithNestedClasses$NestedClassRemoved.class +ADDED: class ClassWithNestedClasses$InnerClassAdded.class +ADDED: class ClassWithNestedClasses$NestedClassAdded.class +changes in test/ClassWithChangedVisibilityForNestedClasses.InnerClass: CLASS_SIGNATURE +changes in test/ClassWithChangedVisibilityForNestedClasses.NestedClass: CLASS_SIGNATURE +changes in test/ClassWithChangedVisibilityForNestedClasses: NONE +changes in test/ClassWithNestedClasses.InnerClass: NONE +changes in test/ClassWithNestedClasses: MEMBERS + [InnerClassAdded, NestedClassAdded, NestedClassRemoved] diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWitnEnumChanged/new.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWitnEnumChanged/new.kt new file mode 100644 index 00000000000..ae88ae50272 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWitnEnumChanged/new.kt @@ -0,0 +1,7 @@ +package test + +enum class EnumClassWithChanges { + CONST_1, + CONST_3, + CONST_4 +} \ No newline at end of file diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWitnEnumChanged/old.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWitnEnumChanged/old.kt new file mode 100644 index 00000000000..764e08538ad --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWitnEnumChanged/old.kt @@ -0,0 +1,6 @@ +package test + +enum class EnumClassWithChanges { + CONST_1, + CONST_2 +} \ No newline at end of file diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/classWitnEnumChanged/result.out b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWitnEnumChanged/result.out new file mode 100644 index 00000000000..853c9c77070 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/classWitnEnumChanged/result.out @@ -0,0 +1,2 @@ +changes in test/EnumClassWithChanges: MEMBERS + [CONST_2, CONST_3, CONST_4] diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/packageFacadeDifference/new.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/packageFacadeDifference/new.kt new file mode 100644 index 00000000000..9f98bc5a4b9 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/packageFacadeDifference/new.kt @@ -0,0 +1,11 @@ +package test + +public fun unchangedFun() {} + +private fun addedFun(): Int = 10 + +private val addedVal: String = "A" + +private val changedVal: String = "" + +private fun changedFun(arg: String) {} diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/packageFacadeDifference/old.kt b/jps-plugin/testData/comparison/classMembersOnlyChanged/packageFacadeDifference/old.kt new file mode 100644 index 00000000000..d84e45cd33e --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/packageFacadeDifference/old.kt @@ -0,0 +1,11 @@ +package test + +public fun unchangedFun() {} + +private fun removedFun(): Int = 10 + +private val removedVal: String = "A" + +private val changedVal: Int = 20 + +private fun changedFun(arg: Int) {} diff --git a/jps-plugin/testData/comparison/classMembersOnlyChanged/packageFacadeDifference/result.out b/jps-plugin/testData/comparison/classMembersOnlyChanged/packageFacadeDifference/result.out new file mode 100644 index 00000000000..78f2014d8d6 --- /dev/null +++ b/jps-plugin/testData/comparison/classMembersOnlyChanged/packageFacadeDifference/result.out @@ -0,0 +1,3 @@ +changes in test/MainKt: MEMBERS + [addedFun, addedVal, changedFun, changedVal, removedFun, removedVal] +changes in test/TestPackage: NONE diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateFunChanged/new.kt b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateFunChanged/new.kt new file mode 100644 index 00000000000..c3f0b8f68a6 --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateFunChanged/new.kt @@ -0,0 +1,15 @@ +package test + +class ClassWithPrivateFunAdded { + private fun privateFun() {} + val s = "20" +} + +class ClassWithPrivateFunRemoved { + public fun unchangedFun() {} +} + +class ClassWithPrivateFunSignatureChanged { + private fun privateFun(arg: Int) {} + public fun unchangedFun() {} +} diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateFunChanged/old.kt b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateFunChanged/old.kt new file mode 100644 index 00000000000..79ad31fa40e --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateFunChanged/old.kt @@ -0,0 +1,15 @@ +package test + +class ClassWithPrivateFunAdded { + val s = "20" +} + +class ClassWithPrivateFunRemoved { + private fun privateFun() {} + public fun unchangedFun() {} +} + +class ClassWithPrivateFunSignatureChanged { + private fun privateFun(arg: String) {} + public fun unchangedFun() {} +} diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateFunChanged/result.out b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateFunChanged/result.out new file mode 100644 index 00000000000..19c1bb7897a --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateFunChanged/result.out @@ -0,0 +1,3 @@ +changes in test/ClassWithPrivateFunAdded: NONE +changes in test/ClassWithPrivateFunRemoved: NONE +changes in test/ClassWithPrivateFunSignatureChanged: NONE diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivatePrimaryConstructorChanged/new.kt b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivatePrimaryConstructorChanged/new.kt new file mode 100644 index 00000000000..6d08e307d8d --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivatePrimaryConstructorChanged/new.kt @@ -0,0 +1,12 @@ +package test + +class ClassWithPrivatePrimaryConstructorAdded private constructor() { + private constructor(arg: Int) : this() {} +} + +class ClassWithPrivatePrimaryConstructorRemoved { + private constructor(arg: Int) {} +} + +class ClassWithPrivatePrimaryConstructorChanged private constructor(arg: String) { +} diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivatePrimaryConstructorChanged/old.kt b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivatePrimaryConstructorChanged/old.kt new file mode 100644 index 00000000000..05b24c69e56 --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivatePrimaryConstructorChanged/old.kt @@ -0,0 +1,12 @@ +package test + +class ClassWithPrivatePrimaryConstructorAdded { + private constructor(arg: Int) {} +} + +class ClassWithPrivatePrimaryConstructorRemoved private constructor() { + private constructor(arg: Int) : this() {} +} + +class ClassWithPrivatePrimaryConstructorChanged private constructor() { +} diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivatePrimaryConstructorChanged/result.out b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivatePrimaryConstructorChanged/result.out new file mode 100644 index 00000000000..8e093f6d40a --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivatePrimaryConstructorChanged/result.out @@ -0,0 +1,3 @@ +changes in test/ClassWithPrivatePrimaryConstructorAdded: NONE +changes in test/ClassWithPrivatePrimaryConstructorChanged: NONE +changes in test/ClassWithPrivatePrimaryConstructorRemoved: NONE diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateSecondaryConstructorChanged/new.kt b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateSecondaryConstructorChanged/new.kt new file mode 100644 index 00000000000..7cf273358f7 --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateSecondaryConstructorChanged/new.kt @@ -0,0 +1,15 @@ +package test + +class ClassWithPrivateSecondaryConstructorsAdded() { + private constructor(arg: Int) : this() {} + private constructor(arg: String) : this() {} +} + +class ClassWithPrivateSecondaryConstructorsAdded2() { + private constructor(arg: Int) : this() {} + private constructor(arg: String) : this() {} + constructor(arg: Float) : this() {} +} + +class ClassWithPrivateSecondaryConstructorsRemoved() { +} diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateSecondaryConstructorChanged/old.kt b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateSecondaryConstructorChanged/old.kt new file mode 100644 index 00000000000..53b981e8996 --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateSecondaryConstructorChanged/old.kt @@ -0,0 +1,13 @@ +package test + +class ClassWithPrivateSecondaryConstructorsAdded { +} + +class ClassWithPrivateSecondaryConstructorsAdded2() { + constructor(arg: Float) : this() {} +} + +class ClassWithPrivateSecondaryConstructorsRemoved() { + private constructor(arg: Int): this() {} + private constructor(arg: String): this() {} +} diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateSecondaryConstructorChanged/result.out b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateSecondaryConstructorChanged/result.out new file mode 100644 index 00000000000..8915bd90306 --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateSecondaryConstructorChanged/result.out @@ -0,0 +1,3 @@ +changes in test/ClassWithPrivateSecondaryConstructorsAdded: NONE +changes in test/ClassWithPrivateSecondaryConstructorsAdded2: NONE +changes in test/ClassWithPrivateSecondaryConstructorsRemoved: NONE diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateValChanged/new.kt b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateValChanged/new.kt new file mode 100644 index 00000000000..178a89088c6 --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateValChanged/new.kt @@ -0,0 +1,21 @@ +package test + +class ClassWithPrivateValAdded { + private val x: Int = 100 + public fun unchangedFun() {} +} + +class ClassWithPrivateValRemoved { + public fun unchangedFun() {} +} + +class ClassWithPrivateValSignatureChanged { + private val x: String = "X" + public fun unchangedFun() {} +} + +class ClassWithGetterForPrivateValChanged { + private val x: Int + get() = 200 + public fun unchangedFun() {} +} diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateValChanged/old.kt b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateValChanged/old.kt new file mode 100644 index 00000000000..5576e86c988 --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateValChanged/old.kt @@ -0,0 +1,20 @@ +package test + +class ClassWithPrivateValAdded { + public fun unchangedFun() {} +} + +class ClassWithPrivateValRemoved { + private val x: Int = 100 + public fun unchangedFun() {} +} + +class ClassWithPrivateValSignatureChanged { + private val x: Int = 100 + public fun unchangedFun() {} +} + +class ClassWithGetterForPrivateValChanged { + private val x: Int = 100 + public fun unchangedFun() {} +} diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateValChanged/result.out b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateValChanged/result.out new file mode 100644 index 00000000000..42d0bb51b3f --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateValChanged/result.out @@ -0,0 +1,4 @@ +changes in test/ClassWithGetterForPrivateValChanged: NONE +changes in test/ClassWithPrivateValAdded: NONE +changes in test/ClassWithPrivateValRemoved: NONE +changes in test/ClassWithPrivateValSignatureChanged: NONE diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateVarChanged/new.kt b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateVarChanged/new.kt new file mode 100644 index 00000000000..9024562066d --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateVarChanged/new.kt @@ -0,0 +1,22 @@ +package test + +class ClassWithPrivateVarAdded { + private var x: Int = 100 + public fun unchangedFun() {} +} + +class ClassWithPrivateVarRemoved { + public fun unchangedFun() {} +} + +class ClassWithPrivateVarSignatureChanged { + private var x: String = "X" + public fun unchangedFun() {} +} + +class ClassWithGetterAndSetterForPrivateVarChanged { + private var x: Int + get() = 200 + set(value) {} + public fun unchangedFun() {} +} diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateVarChanged/old.kt b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateVarChanged/old.kt new file mode 100644 index 00000000000..ad239436f24 --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateVarChanged/old.kt @@ -0,0 +1,20 @@ +package test + +class ClassWithPrivateVarAdded { + public fun unchangedFun() {} +} + +class ClassWithPrivateVarRemoved { + private var x: Int = 100 + public fun unchangedFun() {} +} + +class ClassWithPrivateVarSignatureChanged { + private var x: Int = 100 + public fun unchangedFun() {} +} + +class ClassWithGetterAndSetterForPrivateVarChanged { + private var x: Int = 100 + public fun unchangedFun() {} +} diff --git a/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateVarChanged/result.out b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateVarChanged/result.out new file mode 100644 index 00000000000..77759ffa841 --- /dev/null +++ b/jps-plugin/testData/comparison/classPrivateOnlyChange/classWithPrivateVarChanged/result.out @@ -0,0 +1,4 @@ +changes in test/ClassWithGetterAndSetterForPrivateVarChanged: NONE +changes in test/ClassWithPrivateVarAdded: NONE +changes in test/ClassWithPrivateVarRemoved: NONE +changes in test/ClassWithPrivateVarSignatureChanged: NONE diff --git a/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/new.kt b/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/new.kt new file mode 100644 index 00000000000..710e70d4f91 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/new.kt @@ -0,0 +1,6 @@ +package test + +import kotlin.annotation.* + +open class ClassWithFlagsChanged { +} diff --git a/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/old.kt b/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/old.kt new file mode 100644 index 00000000000..6d7875d5438 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/old.kt @@ -0,0 +1,4 @@ +package test + +class ClassWithFlagsChanged { +} diff --git a/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/result.out b/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/result.out new file mode 100644 index 00000000000..212f70d8f79 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/result.out @@ -0,0 +1 @@ +changes in test/ClassWithFlagsChanged: CLASS_SIGNATURE diff --git a/jps-plugin/testData/comparison/classSignatureChange/classToPackageFacade/new.kt b/jps-plugin/testData/comparison/classSignatureChange/classToPackageFacade/new.kt new file mode 100644 index 00000000000..c63738c81cf --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classToPackageFacade/new.kt @@ -0,0 +1,3 @@ +package test + +public fun main() {} \ No newline at end of file diff --git a/jps-plugin/testData/comparison/classSignatureChange/classToPackageFacade/old.kt b/jps-plugin/testData/comparison/classSignatureChange/classToPackageFacade/old.kt new file mode 100644 index 00000000000..36ad2f44f6d --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classToPackageFacade/old.kt @@ -0,0 +1,13 @@ +package test + +public class TestPackage { + public fun main() {} +} + +public class MainKt { + companion object { + @JvmStatic + public fun main() { + } + } +} \ No newline at end of file diff --git a/jps-plugin/testData/comparison/classSignatureChange/classToPackageFacade/result.out b/jps-plugin/testData/comparison/classSignatureChange/classToPackageFacade/result.out new file mode 100644 index 00000000000..2d7f4a601b2 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classToPackageFacade/result.out @@ -0,0 +1,3 @@ +REMOVED: class MainKt$Companion.class +changes in test/MainKt: CLASS_SIGNATURE +changes in test/TestPackage: CLASS_SIGNATURE diff --git a/jps-plugin/testData/comparison/classSignatureChange/classTypeParameterListChanged/new.kt b/jps-plugin/testData/comparison/classSignatureChange/classTypeParameterListChanged/new.kt new file mode 100644 index 00000000000..9d081c29471 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classTypeParameterListChanged/new.kt @@ -0,0 +1,6 @@ +package test + +import kotlin.annotation.* + +class ClassWithTypeParameterListChanged { +} diff --git a/jps-plugin/testData/comparison/classSignatureChange/classTypeParameterListChanged/old.kt b/jps-plugin/testData/comparison/classSignatureChange/classTypeParameterListChanged/old.kt new file mode 100644 index 00000000000..b52cabd2939 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classTypeParameterListChanged/old.kt @@ -0,0 +1,4 @@ +package test + +class ClassWithTypeParameterListChanged { +} diff --git a/jps-plugin/testData/comparison/classSignatureChange/classTypeParameterListChanged/result.out b/jps-plugin/testData/comparison/classSignatureChange/classTypeParameterListChanged/result.out new file mode 100644 index 00000000000..cde88c8ffd0 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classTypeParameterListChanged/result.out @@ -0,0 +1 @@ +changes in test/ClassWithTypeParameterListChanged: CLASS_SIGNATURE diff --git a/jps-plugin/testData/comparison/classSignatureChange/classWithClassAnnotationListChanged/new.kt b/jps-plugin/testData/comparison/classSignatureChange/classWithClassAnnotationListChanged/new.kt new file mode 100644 index 00000000000..7f1d546bb5c --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classWithClassAnnotationListChanged/new.kt @@ -0,0 +1,5 @@ +package test + +import kotlin.annotation.* + +annotation class ClassWithClassAnnotationListChanged diff --git a/jps-plugin/testData/comparison/classSignatureChange/classWithClassAnnotationListChanged/old.kt b/jps-plugin/testData/comparison/classSignatureChange/classWithClassAnnotationListChanged/old.kt new file mode 100644 index 00000000000..d7c7cb077d4 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classWithClassAnnotationListChanged/old.kt @@ -0,0 +1,4 @@ +package test + +@Deprecated("") class ClassWithClassAnnotationListChanged + diff --git a/jps-plugin/testData/comparison/classSignatureChange/classWithClassAnnotationListChanged/result.out b/jps-plugin/testData/comparison/classSignatureChange/classWithClassAnnotationListChanged/result.out new file mode 100644 index 00000000000..d447c5da3f9 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classWithClassAnnotationListChanged/result.out @@ -0,0 +1 @@ +changes in test/ClassWithClassAnnotationListChanged: CLASS_SIGNATURE diff --git a/jps-plugin/testData/comparison/classSignatureChange/classWithSuperTypeListChanged/new.kt b/jps-plugin/testData/comparison/classSignatureChange/classWithSuperTypeListChanged/new.kt new file mode 100644 index 00000000000..682185d1729 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classWithSuperTypeListChanged/new.kt @@ -0,0 +1,4 @@ +package test + +class ClassWithSuperTypeListChanged : java.io.Serializable { +} diff --git a/jps-plugin/testData/comparison/classSignatureChange/classWithSuperTypeListChanged/old.kt b/jps-plugin/testData/comparison/classSignatureChange/classWithSuperTypeListChanged/old.kt new file mode 100644 index 00000000000..9228402497c --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classWithSuperTypeListChanged/old.kt @@ -0,0 +1,6 @@ +package test + +class ClassWithSuperTypeListChanged { +} + + diff --git a/jps-plugin/testData/comparison/classSignatureChange/classWithSuperTypeListChanged/result.out b/jps-plugin/testData/comparison/classSignatureChange/classWithSuperTypeListChanged/result.out new file mode 100644 index 00000000000..1cd2c9c8d22 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/classWithSuperTypeListChanged/result.out @@ -0,0 +1 @@ +changes in test/ClassWithSuperTypeListChanged: CLASS_SIGNATURE diff --git a/jps-plugin/testData/comparison/classSignatureChange/packageFacadeToClass/new.kt b/jps-plugin/testData/comparison/classSignatureChange/packageFacadeToClass/new.kt new file mode 100644 index 00000000000..bee5fee69eb --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/packageFacadeToClass/new.kt @@ -0,0 +1,13 @@ +package test + +public class TestPackage { + public fun main() {} +} + +public class MainKt { + companion object { + @JvmStatic + public fun main() { + } + } +} diff --git a/jps-plugin/testData/comparison/classSignatureChange/packageFacadeToClass/old.kt b/jps-plugin/testData/comparison/classSignatureChange/packageFacadeToClass/old.kt new file mode 100644 index 00000000000..81ffc604d8c --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/packageFacadeToClass/old.kt @@ -0,0 +1,3 @@ +package test + +public fun main() {} diff --git a/jps-plugin/testData/comparison/classSignatureChange/packageFacadeToClass/result.out b/jps-plugin/testData/comparison/classSignatureChange/packageFacadeToClass/result.out new file mode 100644 index 00000000000..ea61b532d55 --- /dev/null +++ b/jps-plugin/testData/comparison/classSignatureChange/packageFacadeToClass/result.out @@ -0,0 +1,3 @@ +ADDED: class MainKt$Companion.class +changes in test/MainKt: CLASS_SIGNATURE +changes in test/TestPackage: CLASS_SIGNATURE diff --git a/jps-plugin/testData/comparison/unchanged/unchangedClass/new.kt b/jps-plugin/testData/comparison/unchanged/unchangedClass/new.kt new file mode 100644 index 00000000000..0889792a218 --- /dev/null +++ b/jps-plugin/testData/comparison/unchanged/unchangedClass/new.kt @@ -0,0 +1,40 @@ +package test + +class UnchangedClassWithFunOnly { + public fun unchangedPublicFun() {} + protected fun unchangedProtectedFun() {} + internal fun unchangedInternalFun() {} + private fun unchangedPrivateFun() {} +} + +class UnchangedClassWithValOnly { + public val unchangedPublicVal = 10 + protected val unchangedProtectedVal = 10 + internal val unchangedInternalVal = 10 + private val unchangedPrivateVal = 10 +} + +class UnchangedClassWithVarOnly { + public var unchangedPublicVar = 20 + protected var unchangedProtectedVar = 20 + internal var unchangedInternalVar = 20 + private var unchangedPrivateVar = 20 +} + +class UnchangedClass { + public val unchangedPublicVal = 10 + protected val unchangedProtectedVal = 10 + internal val unchangedInternalVal = 10 + private val unchangedPrivateVal = 10 + + public var unchangedPublicVar = 20 + protected var unchangedProtectedVar = 20 + internal var unchangedInternalVar = 20 + private var unchangedPrivateVar = 20 + + public fun unchangedPublicFun() {} + protected fun unchangedProtectedFun() {} + internal fun unchangedInternalFun() {} + private fun unchangedPrivateFun() {} +} + diff --git a/jps-plugin/testData/comparison/unchanged/unchangedClass/old.kt b/jps-plugin/testData/comparison/unchanged/unchangedClass/old.kt new file mode 100644 index 00000000000..0889792a218 --- /dev/null +++ b/jps-plugin/testData/comparison/unchanged/unchangedClass/old.kt @@ -0,0 +1,40 @@ +package test + +class UnchangedClassWithFunOnly { + public fun unchangedPublicFun() {} + protected fun unchangedProtectedFun() {} + internal fun unchangedInternalFun() {} + private fun unchangedPrivateFun() {} +} + +class UnchangedClassWithValOnly { + public val unchangedPublicVal = 10 + protected val unchangedProtectedVal = 10 + internal val unchangedInternalVal = 10 + private val unchangedPrivateVal = 10 +} + +class UnchangedClassWithVarOnly { + public var unchangedPublicVar = 20 + protected var unchangedProtectedVar = 20 + internal var unchangedInternalVar = 20 + private var unchangedPrivateVar = 20 +} + +class UnchangedClass { + public val unchangedPublicVal = 10 + protected val unchangedProtectedVal = 10 + internal val unchangedInternalVal = 10 + private val unchangedPrivateVal = 10 + + public var unchangedPublicVar = 20 + protected var unchangedProtectedVar = 20 + internal var unchangedInternalVar = 20 + private var unchangedPrivateVar = 20 + + public fun unchangedPublicFun() {} + protected fun unchangedProtectedFun() {} + internal fun unchangedInternalFun() {} + private fun unchangedPrivateFun() {} +} + diff --git a/jps-plugin/testData/comparison/unchanged/unchangedClass/result.out b/jps-plugin/testData/comparison/unchanged/unchangedClass/result.out new file mode 100644 index 00000000000..7ff9822f5c7 --- /dev/null +++ b/jps-plugin/testData/comparison/unchanged/unchangedClass/result.out @@ -0,0 +1,4 @@ +changes in test/UnchangedClass: NONE +changes in test/UnchangedClassWithFunOnly: NONE +changes in test/UnchangedClassWithValOnly: NONE +changes in test/UnchangedClassWithVarOnly: NONE diff --git a/jps-plugin/testData/comparison/unchanged/unchangedPackageFacade/new.kt b/jps-plugin/testData/comparison/unchanged/unchangedPackageFacade/new.kt new file mode 100644 index 00000000000..0625597c878 --- /dev/null +++ b/jps-plugin/testData/comparison/unchanged/unchangedPackageFacade/new.kt @@ -0,0 +1,13 @@ +package test + +public fun unchangedFun() {} + +private fun unchangedPrivateFun(): Int = 10 + +public val unchangedVal: Int = 10 + +public var unchangedVar: Int = 20 + +private val unchangedPrivateVal: Int = 10 + +private var unchangedPrivateVar: Int = 20 diff --git a/jps-plugin/testData/comparison/unchanged/unchangedPackageFacade/old.kt b/jps-plugin/testData/comparison/unchanged/unchangedPackageFacade/old.kt new file mode 100644 index 00000000000..0625597c878 --- /dev/null +++ b/jps-plugin/testData/comparison/unchanged/unchangedPackageFacade/old.kt @@ -0,0 +1,13 @@ +package test + +public fun unchangedFun() {} + +private fun unchangedPrivateFun(): Int = 10 + +public val unchangedVal: Int = 10 + +public var unchangedVar: Int = 20 + +private val unchangedPrivateVal: Int = 10 + +private var unchangedPrivateVar: Int = 20 diff --git a/jps-plugin/testData/comparison/unchanged/unchangedPackageFacade/result.out b/jps-plugin/testData/comparison/unchanged/unchangedPackageFacade/result.out new file mode 100644 index 00000000000..2b72c17b8c9 --- /dev/null +++ b/jps-plugin/testData/comparison/unchanged/unchangedPackageFacade/result.out @@ -0,0 +1,2 @@ +changes in test/MainKt: NONE +changes in test/TestPackage: NONE