From 2a1bde949645337934a4c9069cbd783112debb3f Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Fri, 15 Jan 2016 15:24:15 +0300 Subject: [PATCH] Add proto comparison tests with changes of class/member flags Original commit: 58a91b3d205be6264fb943810256d434385ab079 --- .../ProtoComparisonTestGenerated.java | 12 +++ .../membersFlagsChanged/new.kt | 85 +++++++++++++++++++ .../membersFlagsChanged/old.kt | 85 +++++++++++++++++++ .../membersFlagsChanged/result.out | 4 + .../classFlagsChanged/new.kt | 53 +++++++++++- .../classFlagsChanged/old.kt | 53 +++++++++++- .../classFlagsChanged/result.out | 42 ++++++++- .../packageMembers/membersFlagsChanged/new.kt | 51 +++++++++++ .../packageMembers/membersFlagsChanged/old.kt | 49 +++++++++++ .../membersFlagsChanged/result.out | 2 + 10 files changed, 432 insertions(+), 4 deletions(-) create mode 100644 jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/new.kt create mode 100644 jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/old.kt create mode 100644 jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/result.out create mode 100644 jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/new.kt create mode 100644 jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/old.kt create mode 100644 jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/result.out diff --git a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/ProtoComparisonTestGenerated.java b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/ProtoComparisonTestGenerated.java index 896815ab04f..2b557376bb9 100644 --- a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/ProtoComparisonTestGenerated.java +++ b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/incremental/ProtoComparisonTestGenerated.java @@ -159,6 +159,12 @@ public class ProtoComparisonTestGenerated extends AbstractProtoComparisonTest { doTest(fileName); } + @TestMetadata("membersFlagsChanged") + public void testMembersFlagsChanged() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/"); + doTest(fileName); + } + @TestMetadata("sealedClassImplAdded") public void testSealedClassImplAdded() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/comparison/classMembersOnlyChanged/sealedClassImplAdded/"); @@ -175,6 +181,12 @@ public class ProtoComparisonTestGenerated extends AbstractProtoComparisonTest { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/comparison/packageMembers"), Pattern.compile("^([^\\.]+)$"), true); } + @TestMetadata("membersFlagsChanged") + public void testMembersFlagsChanged() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/"); + doTest(fileName); + } + @TestMetadata("packageFacadeMultifileClassChanged") public void testPackageFacadeMultifileClassChanged() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/comparison/packageMembers/packageFacadeMultifileClassChanged/"); diff --git a/jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/new.kt b/jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/new.kt new file mode 100644 index 00000000000..64e31c38d67 --- /dev/null +++ b/jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/new.kt @@ -0,0 +1,85 @@ +package test + +abstract class A { + abstract val abstractFlagAddedVal: String + val abstractFlagRemovedVal: String = "" + abstract val abstractFlagUnchangedVal: String + abstract fun abstractFlagAddedFun() + fun abstractFlagRemovedFun() {} + abstract fun abstractFlagUnchangedFun() + + external fun externalFlagAddedFun() + fun externalFlagRemovedFun() {} + external fun externalFlagUnchangedFun() + + final val finalFlagAddedVal = "" + val finalFlagRemovedVal = "" + final val finalFlagUnchangedVal = "" + final fun finalFlagAddedFun() {} + fun finalFlagRemovedFun() {} + final fun finalFlagUnchangedFun() {} + + infix fun infixFlagAddedFun() {} + fun infixFlagRemovedFun() {} + infix fun infixFlagUnchangedFun() {} + + inline fun inlineFlagAddedFun() {} + fun inlineFlagRemovedFun() {} + inline fun inlineFlagUnchangedFun() {} + + internal val internalFlagAddedVal = "" + val internalFlagRemovedVal = "" + internal val internalFlagUnchangedVal = "" + internal fun internalFlagAddedFun() {} + fun internalFlagRemovedFun() {} + internal fun internalFlagUnchangedFun() {} + + lateinit var lateinitFlagAddedVal: String + var lateinitFlagRemovedVal: String = "" + lateinit var lateinitFlagUnchangedVal: String + + open val openFlagAddedVal = "" + val openFlagRemovedVal = "" + open val openFlagUnchangedVal = "" + open fun openFlagAddedFun() {} + fun openFlagRemovedFun() {} + open fun openFlagUnchangedFun() {} + + operator fun operatorFlagAddedFun() {} + fun operatorFlagRemovedFun() {} + operator fun operatorFlagUnchangedFun() {} + + private val privateFlagAddedVal = "" + val privateFlagRemovedVal = "" + private val privateFlagUnchangedVal = "" + private fun privateFlagAddedFun() {} + fun privateFlagRemovedFun() {} + private fun privateFlagUnchangedFun() {} + + protected val protectedFlagAddedVal = "" + val protectedFlagRemovedVal = "" + protected val protectedFlagUnchangedVal = "" + protected fun protectedFlagAddedFun() {} + fun protectedFlagRemovedFun() {} + protected fun protectedFlagUnchangedFun() {} + + public val publicFlagAddedVal = "" + val publicFlagRemovedVal = "" + public val publicFlagUnchangedVal = "" + public fun publicFlagAddedFun() {} + fun publicFlagRemovedFun() {} + public fun publicFlagUnchangedFun() {} + + tailrec fun tailrecFlagAddedFun() {} + fun tailrecFlagRemovedFun() {} + tailrec fun tailrecFlagUnchangedFun() {} + + val noFlagsUnchangedVal = "" + fun noFlagsUnchangedFun() {} +} + +object O { + const val constFlagAddedVal = "" + val constFlagRemovedVal = "" + const val constFlagUnchangedVal = "" +} \ No newline at end of file diff --git a/jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/old.kt b/jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/old.kt new file mode 100644 index 00000000000..b9097dd4a86 --- /dev/null +++ b/jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/old.kt @@ -0,0 +1,85 @@ +package test + +abstract class A { + val abstractFlagAddedVal: String = "" + abstract val abstractFlagRemovedVal: String + abstract val abstractFlagUnchangedVal: String + fun abstractFlagAddedFun() {} + abstract fun abstractFlagRemovedFun() + abstract fun abstractFlagUnchangedFun() + + fun externalFlagAddedFun() {} + external fun externalFlagRemovedFun() + external fun externalFlagUnchangedFun() + + val finalFlagAddedVal = "" + final val finalFlagRemovedVal = "" + final val finalFlagUnchangedVal = "" + fun finalFlagAddedFun() {} + final fun finalFlagRemovedFun() {} + final fun finalFlagUnchangedFun() {} + + fun infixFlagAddedFun() {} + infix fun infixFlagRemovedFun() {} + infix fun infixFlagUnchangedFun() {} + + fun inlineFlagAddedFun() {} + inline fun inlineFlagRemovedFun() {} + inline fun inlineFlagUnchangedFun() {} + + val internalFlagAddedVal = "" + internal val internalFlagRemovedVal = "" + internal val internalFlagUnchangedVal = "" + fun internalFlagAddedFun() {} + internal fun internalFlagRemovedFun() {} + internal fun internalFlagUnchangedFun() {} + + var lateinitFlagAddedVal = "" + lateinit var lateinitFlagRemovedVal: String + lateinit var lateinitFlagUnchangedVal: String + + val openFlagAddedVal = "" + open val openFlagRemovedVal = "" + open val openFlagUnchangedVal = "" + fun openFlagAddedFun() {} + open fun openFlagRemovedFun() {} + open fun openFlagUnchangedFun() {} + + fun operatorFlagAddedFun() {} + operator fun operatorFlagRemovedFun() {} + operator fun operatorFlagUnchangedFun() {} + + val privateFlagAddedVal = "" + private val privateFlagRemovedVal = "" + private val privateFlagUnchangedVal = "" + fun privateFlagAddedFun() {} + private fun privateFlagRemovedFun() {} + private fun privateFlagUnchangedFun() {} + + val protectedFlagAddedVal = "" + protected val protectedFlagRemovedVal = "" + protected val protectedFlagUnchangedVal = "" + fun protectedFlagAddedFun() {} + protected fun protectedFlagRemovedFun() {} + protected fun protectedFlagUnchangedFun() {} + + val publicFlagAddedVal = "" + public val publicFlagRemovedVal = "" + public val publicFlagUnchangedVal = "" + fun publicFlagAddedFun() {} + public fun publicFlagRemovedFun() {} + public fun publicFlagUnchangedFun() {} + + fun tailrecFlagAddedFun() {} + tailrec fun tailrecFlagRemovedFun() {} + tailrec fun tailrecFlagUnchangedFun() {} + + val noFlagsUnchangedVal = "" + fun noFlagsUnchangedFun() {} +} + +object O { + val constFlagAddedVal = "" + const val constFlagRemovedVal = "" + const val constFlagUnchangedVal = "" +} \ No newline at end of file diff --git a/jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/result.out b/jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/result.out new file mode 100644 index 00000000000..f767ff8431d --- /dev/null +++ b/jps/jps-plugin/testData/comparison/classMembersOnlyChanged/membersFlagsChanged/result.out @@ -0,0 +1,4 @@ +changes in test/A: MEMBERS + [abstractFlagAddedFun, abstractFlagAddedVal, abstractFlagRemovedFun, abstractFlagRemovedVal, externalFlagAddedFun, externalFlagRemovedFun, infixFlagAddedFun, infixFlagRemovedFun, inlineFlagAddedFun, inlineFlagRemovedFun, internalFlagAddedFun, internalFlagAddedVal, internalFlagRemovedFun, internalFlagRemovedVal, lateinitFlagAddedVal, lateinitFlagRemovedVal, openFlagAddedFun, openFlagAddedVal, openFlagRemovedFun, openFlagRemovedVal, operatorFlagAddedFun, operatorFlagRemovedFun, privateFlagAddedFun, privateFlagAddedVal, privateFlagRemovedFun, privateFlagRemovedVal, protectedFlagAddedFun, protectedFlagAddedVal, protectedFlagRemovedFun, protectedFlagRemovedVal, tailrecFlagAddedFun, tailrecFlagRemovedFun] +changes in test/O: MEMBERS + [constFlagAddedVal, constFlagRemovedVal] diff --git a/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/new.kt b/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/new.kt index 710e70d4f91..3ecb27bbb47 100644 --- a/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/new.kt +++ b/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/new.kt @@ -1,6 +1,55 @@ package test -import kotlin.annotation.* +abstract class AbstractFlagAdded +class AbstractFlagRemoved +abstract class AbstractFlagUnchanged -open class ClassWithFlagsChanged { +annotation class AnnotationFlagAdded +class AnnotationFlagRemoved +annotation class AnnotationFlagUnchanged + +data class DataFlagAdded(val x: Int) +class DataFlagRemoved(val x: Int) +data class DataFlagUnchanged(val x: Int) + +enum class EnumFlagAdded +class EnumFlagRemoved +enum class EnumFlagUnchanged + +final class FinalFlagAdded +class FinalFlagRemoved +final class FinalFlagUnchanged + +class InnerClassHolder { + inner class InnerFlagAdded + class InnerFlagRemoved + inner class InnerFlagUnchanged } + +internal class InternalFlagAdded +class InternalFlagRemoved +internal class InternalFlagUnchanged + +open class OpenFlagAdded +class OpenFlagRemoved +open class OpenFlagUnchanged + +private class PrivateFlagAdded +class PrivateFlagRemoved +private class PrivateFlagUnchanged + +class ProtectedClassHolder { + protected class ProtectedFlagAdded + class ProtectedFlagRemoved + protected class ProtectedFlagUnchanged +} + +public class PublicFlagAdded +class PublicFlagRemoved +public class PublicFlagUnchanged + +sealed class SealedFlagAdded +class SealedFlagRemoved +sealed class SealedFlagUnchanged + +class UnchangedNoFlags \ No newline at end of file diff --git a/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/old.kt b/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/old.kt index 6d7875d5438..756c07a80ee 100644 --- a/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/old.kt +++ b/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/old.kt @@ -1,4 +1,55 @@ package test -class ClassWithFlagsChanged { +class AbstractFlagAdded +abstract class AbstractFlagRemoved +abstract class AbstractFlagUnchanged + +class AnnotationFlagAdded +annotation class AnnotationFlagRemoved +annotation class AnnotationFlagUnchanged + +class DataFlagAdded(val x: Int) +data class DataFlagRemoved(val x: Int) +data class DataFlagUnchanged(val x: Int) + +class EnumFlagAdded +enum class EnumFlagRemoved +enum class EnumFlagUnchanged + +class FinalFlagAdded +final class FinalFlagRemoved +final class FinalFlagUnchanged + +class InnerClassHolder { + class InnerFlagAdded + inner class InnerFlagRemoved + inner class InnerFlagUnchanged } + +class InternalFlagAdded +internal class InternalFlagRemoved +internal class InternalFlagUnchanged + +class OpenFlagAdded +open class OpenFlagRemoved +open class OpenFlagUnchanged + +class PrivateFlagAdded +private class PrivateFlagRemoved +private class PrivateFlagUnchanged + +class ProtectedClassHolder { + class ProtectedFlagAdded + protected class ProtectedFlagRemoved + protected class ProtectedFlagUnchanged +} + +class PublicFlagAdded +public class PublicFlagRemoved +public class PublicFlagUnchanged + +class SealedFlagAdded +sealed class SealedFlagRemoved +sealed class SealedFlagUnchanged + +class UnchangedNoFlags \ No newline at end of file diff --git a/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/result.out b/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/result.out index 212f70d8f79..df8bc66d450 100644 --- a/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/result.out +++ b/jps/jps-plugin/testData/comparison/classSignatureChange/classFlagsChanged/result.out @@ -1 +1,41 @@ -changes in test/ClassWithFlagsChanged: CLASS_SIGNATURE +changes in test/AbstractFlagAdded: CLASS_SIGNATURE +changes in test/AbstractFlagRemoved: CLASS_SIGNATURE +changes in test/AbstractFlagUnchanged: NONE +changes in test/AnnotationFlagAdded: CLASS_SIGNATURE +changes in test/AnnotationFlagRemoved: CLASS_SIGNATURE +changes in test/AnnotationFlagUnchanged: NONE +changes in test/DataFlagAdded: CLASS_SIGNATURE, MEMBERS + [component1, copy] +changes in test/DataFlagRemoved: CLASS_SIGNATURE, MEMBERS + [component1, copy] +changes in test/DataFlagUnchanged: NONE +changes in test/EnumFlagAdded: CLASS_SIGNATURE +changes in test/EnumFlagRemoved: CLASS_SIGNATURE +changes in test/EnumFlagUnchanged: NONE +changes in test/FinalFlagAdded: NONE +changes in test/FinalFlagRemoved: NONE +changes in test/FinalFlagUnchanged: NONE +changes in test/InnerClassHolder.InnerFlagAdded: CLASS_SIGNATURE +changes in test/InnerClassHolder.InnerFlagRemoved: CLASS_SIGNATURE +changes in test/InnerClassHolder.InnerFlagUnchanged: NONE +changes in test/InnerClassHolder: NONE +changes in test/InternalFlagAdded: CLASS_SIGNATURE +changes in test/InternalFlagRemoved: CLASS_SIGNATURE +changes in test/InternalFlagUnchanged: NONE +changes in test/OpenFlagAdded: CLASS_SIGNATURE +changes in test/OpenFlagRemoved: CLASS_SIGNATURE +changes in test/OpenFlagUnchanged: NONE +changes in test/PrivateFlagAdded: CLASS_SIGNATURE +changes in test/PrivateFlagRemoved: CLASS_SIGNATURE +changes in test/PrivateFlagUnchanged: NONE +changes in test/ProtectedClassHolder.ProtectedFlagAdded: CLASS_SIGNATURE +changes in test/ProtectedClassHolder.ProtectedFlagRemoved: CLASS_SIGNATURE +changes in test/ProtectedClassHolder.ProtectedFlagUnchanged: NONE +changes in test/ProtectedClassHolder: NONE +changes in test/PublicFlagAdded: NONE +changes in test/PublicFlagRemoved: NONE +changes in test/PublicFlagUnchanged: NONE +changes in test/SealedFlagAdded: CLASS_SIGNATURE +changes in test/SealedFlagRemoved: CLASS_SIGNATURE +changes in test/SealedFlagUnchanged: NONE +changes in test/UnchangedNoFlags: NONE diff --git a/jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/new.kt b/jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/new.kt new file mode 100644 index 00000000000..84e35d2b83c --- /dev/null +++ b/jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/new.kt @@ -0,0 +1,51 @@ +package test + +const val constFlagAddedVal = "" +val constFlagRemovedVal = "" +const val constFlagUnchangedVal = "" + +external fun externalFlagAddedFun() +fun externalFlagRemovedFun() {} +external fun externalFlagUnchangedFun() + +infix fun infixFlagAddedFun() {} +fun infixFlagRemovedFun() {} +infix fun infixFlagUnchangedFun() {} + +inline fun inlineFlagAddedFun() {} +fun inlineFlagRemovedFun() {} +inline fun inlineFlagUnchangedFun() {} + +internal val internalFlagAddedVal = "" +val internalFlagRemovedVal = "" +internal val internalFlagUnchangedVal = "" +internal fun internalFlagAddedFun() {} +fun internalFlagRemovedFun() {} +internal fun internalFlagUnchangedFun() {} + +operator fun operatorFlagAddedFun() {} +fun operatorFlagRemovedFun() {} +operator fun operatorFlagUnchangedFun() {} + +private val privateFlagAddedVal = "" +val privateFlagRemovedVal = "" +private val privateFlagUnchangedVal = "" +private fun privateFlagAddedFun() {} +fun privateFlagRemovedFun() {} +private fun privateFlagUnchangedFun() {} + +public val publicFlagAddedVal = "" +val publicFlagRemovedVal = "" +public val publicFlagUnchangedVal = "" +public fun publicFlagAddedFun() {} +fun publicFlagRemovedFun() {} +public fun publicFlagUnchangedFun() {} + +tailrec fun tailrecFlagAddedFun() {} +fun tailrecFlagRemovedFun() {} +tailrec fun tailrecFlagUnchangedFun() {} + +val noFlagsUnchangedVal = "" +fun noFlagsUnchangedFun() {} + + diff --git a/jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/old.kt b/jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/old.kt new file mode 100644 index 00000000000..cfda1b58923 --- /dev/null +++ b/jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/old.kt @@ -0,0 +1,49 @@ +package test + +val constFlagAddedVal = "" +const val constFlagRemovedVal = "" +const val constFlagUnchangedVal = "" + +fun externalFlagAddedFun() {} +external fun externalFlagRemovedFun() +external fun externalFlagUnchangedFun() + +fun infixFlagAddedFun() {} +infix fun infixFlagRemovedFun() {} +infix fun infixFlagUnchangedFun() {} + +fun inlineFlagAddedFun() {} +inline fun inlineFlagRemovedFun() {} +inline fun inlineFlagUnchangedFun() {} + +val internalFlagAddedVal = "" +internal val internalFlagRemovedVal = "" +internal val internalFlagUnchangedVal = "" +fun internalFlagAddedFun() {} +internal fun internalFlagRemovedFun() {} +internal fun internalFlagUnchangedFun() {} + +fun operatorFlagAddedFun() {} +operator fun operatorFlagRemovedFun() {} +operator fun operatorFlagUnchangedFun() {} + +val privateFlagAddedVal = "" +private val privateFlagRemovedVal = "" +private val privateFlagUnchangedVal = "" +fun privateFlagAddedFun() {} +private fun privateFlagRemovedFun() {} +private fun privateFlagUnchangedFun() {} + +val publicFlagAddedVal = "" +public val publicFlagRemovedVal = "" +public val publicFlagUnchangedVal = "" +fun publicFlagAddedFun() {} +public fun publicFlagRemovedFun() {} +public fun publicFlagUnchangedFun() {} + +fun tailrecFlagAddedFun() {} +tailrec fun tailrecFlagRemovedFun() {} +tailrec fun tailrecFlagUnchangedFun() {} + +val noFlagsUnchangedVal = "" +fun noFlagsUnchangedFun() {} diff --git a/jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/result.out b/jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/result.out new file mode 100644 index 00000000000..a54ca374687 --- /dev/null +++ b/jps/jps-plugin/testData/comparison/packageMembers/membersFlagsChanged/result.out @@ -0,0 +1,2 @@ +changes in test/MainKt: MEMBERS + [constFlagAddedVal, constFlagRemovedVal, externalFlagAddedFun, externalFlagRemovedFun, infixFlagAddedFun, infixFlagRemovedFun, inlineFlagAddedFun, inlineFlagRemovedFun, internalFlagAddedFun, internalFlagAddedVal, internalFlagRemovedFun, internalFlagRemovedVal, operatorFlagAddedFun, operatorFlagRemovedFun, privateFlagAddedFun, privateFlagAddedVal, privateFlagRemovedFun, privateFlagRemovedVal, tailrecFlagAddedFun, tailrecFlagRemovedFun]