Add proto comparison tests with changes of class/member flags

This commit is contained in:
Alexey Tsvetkov
2016-01-15 15:24:15 +03:00
parent a7c432ebe8
commit 58a91b3d20
10 changed files with 432 additions and 4 deletions
@@ -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/");
@@ -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 = ""
}
@@ -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 = ""
}
@@ -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]
@@ -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
@@ -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
@@ -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
@@ -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() {}
@@ -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() {}
@@ -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]