Add raw ProtoCompareGenerated output to proto comparison test data

This commit is contained in:
Alexey Tsvetkov
2017-08-09 19:00:16 +03:00
parent 642c5414a3
commit e0ef08cf18
29 changed files with 141 additions and 4 deletions
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.incremental
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.incremental.ProtoCompareGenerated.ProtoBufClassKind
import org.jetbrains.kotlin.incremental.ProtoCompareGenerated.ProtoBufPackageKind
@@ -31,7 +32,9 @@ import java.util.*
data class Difference(
val isClassAffected: Boolean = false,
val areSubclassesAffected: Boolean = false,
val changedMembersNames: Set<String> = emptySet()
val changedMembersNames: Set<String> = emptySet(),
@TestOnly
val rawProtoDifference: EnumSet<*>? = null
)
sealed class ProtoData
@@ -261,7 +264,7 @@ private class DifferenceCalculatorForClass(
}
}
return Difference(isClassAffected, areSubclassesAffected, names)
return Difference(isClassAffected, areSubclassesAffected, names, rawProtoDifference = diff)
}
}
@@ -306,7 +309,7 @@ private class DifferenceCalculatorForPackageFacade(
}
}
return Difference(changedMembersNames = names)
return Difference(changedMembersNames = names, rawProtoDifference = diff)
}
}
@@ -48,13 +48,21 @@ abstract class AbstractProtoComparisonTest<PROTO_DATA> : TestWithWorkingDir() {
}
(oldClassMap.keys.intersect(newClassMap.keys)).sortedBy { it.toString() }.forEach { classId ->
val diff = difference(oldClassMap[classId]!!, newClassMap[classId]!!)
val oldData = oldClassMap[classId]!!
val newData = newClassMap[classId]!!
val diff = difference(oldData, newData)
if (diff == null) {
p.println("SKIPPED $classId")
return@forEach
}
diff.rawProtoDifference?.let {
if (it.isNotEmpty()) {
p.println("PROTO DIFFERENCE in $classId: ${it.sortedBy { it.name }.joinToString()}")
}
}
val changes = arrayListOf<String>()
if (diff.isClassAffected) {
changes.add("CLASS_SIGNATURE")
@@ -2,10 +2,14 @@ REMOVED test/ClassWithChangedCompanionObject.FirstName
REMOVED test/ClassWithRemovedCompanionObject.Companion
ADDED test/ClassWithAddedCompanionObject.Companion
ADDED test/ClassWithChangedCompanionObject.SecondName
PROTO DIFFERENCE in test/ClassWithAddedCompanionObject: COMPANION_OBJECT_NAME, NESTED_CLASS_NAME_LIST
CHANGES in test/ClassWithAddedCompanionObject: CLASS_SIGNATURE, MEMBERS
[Companion]
PROTO DIFFERENCE in test/ClassWithChangedCompanionObject: COMPANION_OBJECT_NAME, NESTED_CLASS_NAME_LIST
CHANGES in test/ClassWithChangedCompanionObject: CLASS_SIGNATURE, MEMBERS
[FirstName, SecondName]
PROTO DIFFERENCE in test/ClassWithChangedVisibilityForCompanionObject.Companion: FLAGS
CHANGES in test/ClassWithChangedVisibilityForCompanionObject.Companion: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ClassWithRemovedCompanionObject: COMPANION_OBJECT_NAME, NESTED_CLASS_NAME_LIST
CHANGES in test/ClassWithRemovedCompanionObject: CLASS_SIGNATURE, MEMBERS
[Companion]
@@ -1,5 +1,10 @@
PROTO DIFFERENCE in test/ClassWithPrimaryConstructorChanged: CONSTRUCTOR_LIST
CHANGES in test/ClassWithPrimaryConstructorChanged: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ClassWithPrimaryConstructorVisibilityChanged: CONSTRUCTOR_LIST
CHANGES in test/ClassWithPrimaryConstructorVisibilityChanged: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ClassWithSecondaryConstructorVisibilityChanged: CONSTRUCTOR_LIST
CHANGES in test/ClassWithSecondaryConstructorVisibilityChanged: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ClassWithSecondaryConstructorsAdded: CONSTRUCTOR_LIST
CHANGES in test/ClassWithSecondaryConstructorsAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ClassWithSecondaryConstructorsRemoved: CONSTRUCTOR_LIST
CHANGES in test/ClassWithSecondaryConstructorsRemoved: CLASS_SIGNATURE
@@ -1,12 +1,18 @@
PROTO DIFFERENCE in test/ClassWithChangedVisiblityForFun1: FUNCTION_LIST
CHANGES in test/ClassWithChangedVisiblityForFun1: MEMBERS
[foo]
PROTO DIFFERENCE in test/ClassWithChangedVisiblityForFun2: FUNCTION_LIST
CHANGES in test/ClassWithChangedVisiblityForFun2: MEMBERS
[foo]
PROTO DIFFERENCE in test/ClassWithFunAdded: FUNCTION_LIST
CHANGES in test/ClassWithFunAdded: MEMBERS
[added]
PROTO DIFFERENCE in test/ClassWithFunRemoved: FUNCTION_LIST
CHANGES in test/ClassWithFunRemoved: MEMBERS
[removed]
PROTO DIFFERENCE in test/ClassWithValAndFunAddedAndRemoved: FUNCTION_LIST, PROPERTY_LIST
CHANGES in test/ClassWithValAndFunAddedAndRemoved: MEMBERS
[funAdded, funRemoved, valAdded, valRemoved]
PROTO DIFFERENCE in test/ClassWithValConvertedToVar: PROPERTY_LIST
CHANGES in test/ClassWithValConvertedToVar: MEMBERS
[value]
@@ -1,7 +1,10 @@
REMOVED test/ClassWithNestedClasses.NestedClassRemoved
ADDED test/ClassWithNestedClasses.InnerClassAdded
ADDED test/ClassWithNestedClasses.NestedClassAdded
PROTO DIFFERENCE in test/ClassWithChangedVisibilityForNestedClasses.InnerClass: FLAGS
CHANGES in test/ClassWithChangedVisibilityForNestedClasses.InnerClass: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ClassWithChangedVisibilityForNestedClasses.NestedClass: FLAGS
CHANGES in test/ClassWithChangedVisibilityForNestedClasses.NestedClass: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ClassWithNestedClasses: NESTED_CLASS_NAME_LIST
CHANGES in test/ClassWithNestedClasses: MEMBERS
[InnerClassAdded, NestedClassAdded, NestedClassRemoved]
@@ -1,4 +1,5 @@
REMOVED test/EnumClassWithChanges.CONST_2
ADDED test/EnumClassWithChanges.CONST_3
ADDED test/EnumClassWithChanges.CONST_4
PROTO DIFFERENCE in test/EnumClassWithChanges: ENUM_ENTRY_LIST
CHANGES in test/EnumClassWithChanges: CLASS_SIGNATURE
@@ -1 +1,2 @@
PROTO DIFFERENCE in test/EnumClassWithChanges: ENUM_ENTRY_LIST
CHANGES in test/EnumClassWithChanges: CLASS_SIGNATURE
@@ -1,6 +1,11 @@
PROTO DIFFERENCE in test/A: FUNCTION_LIST
CHANGES in test/A: MEMBERS
[argumentAdded, argumentRemoved, valueAdded, valueRemoved]
PROTO DIFFERENCE in test/ConstructorArgumentAdded: CONSTRUCTOR_LIST
CHANGES in test/ConstructorArgumentAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ConstructorArgumentRemoved: CONSTRUCTOR_LIST
CHANGES in test/ConstructorArgumentRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ConstructorValueAdded: CONSTRUCTOR_LIST
CHANGES in test/ConstructorValueAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ConstructorValueRemoved: CONSTRUCTOR_LIST
CHANGES in test/ConstructorValueRemoved: CLASS_SIGNATURE
@@ -1,4 +1,6 @@
PROTO DIFFERENCE in test/A: FUNCTION_LIST, PROPERTY_LIST
CHANGES in test/A: MEMBERS
[abstractFlagAddedFun, abstractFlagAddedVal, abstractFlagRemovedFun, abstractFlagRemovedVal, 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]
PROTO DIFFERENCE in test/O: PROPERTY_LIST
CHANGES in test/O: MEMBERS
[constFlagAddedVal, constFlagRemovedVal]
@@ -1,3 +1,4 @@
ADDED test/Base.C
PROTO DIFFERENCE in test/Base: NESTED_CLASS_NAME_LIST, SEALED_SUBCLASS_FQ_NAME_LIST
CHANGES in test/Base: CLASS_SIGNATURE, MEMBERS
[C]
@@ -0,0 +1,3 @@
PROTO DIFFERENCE in test/ClassWithPrivateFunAdded: FUNCTION_LIST
PROTO DIFFERENCE in test/ClassWithPrivateFunRemoved: FUNCTION_LIST
PROTO DIFFERENCE in test/ClassWithPrivateFunSignatureChanged: FUNCTION_LIST
@@ -0,0 +1,3 @@
PROTO DIFFERENCE in test/ClassWithPrivatePrimaryConstructorAdded: CONSTRUCTOR_LIST
PROTO DIFFERENCE in test/ClassWithPrivatePrimaryConstructorChanged: CONSTRUCTOR_LIST
PROTO DIFFERENCE in test/ClassWithPrivatePrimaryConstructorRemoved: CONSTRUCTOR_LIST
@@ -0,0 +1,3 @@
PROTO DIFFERENCE in test/ClassWithPrivateSecondaryConstructorsAdded: CONSTRUCTOR_LIST
PROTO DIFFERENCE in test/ClassWithPrivateSecondaryConstructorsAdded2: CONSTRUCTOR_LIST
PROTO DIFFERENCE in test/ClassWithPrivateSecondaryConstructorsRemoved: CONSTRUCTOR_LIST
@@ -0,0 +1,4 @@
PROTO DIFFERENCE in test/ClassWithGetterForPrivateValChanged: PROPERTY_LIST
PROTO DIFFERENCE in test/ClassWithPrivateValAdded: PROPERTY_LIST
PROTO DIFFERENCE in test/ClassWithPrivateValRemoved: PROPERTY_LIST
PROTO DIFFERENCE in test/ClassWithPrivateValSignatureChanged: PROPERTY_LIST
@@ -0,0 +1,4 @@
PROTO DIFFERENCE in test/ClassWithGetterAndSetterForPrivateVarChanged: PROPERTY_LIST
PROTO DIFFERENCE in test/ClassWithPrivateVarAdded: PROPERTY_LIST
PROTO DIFFERENCE in test/ClassWithPrivateVarRemoved: PROPERTY_LIST
PROTO DIFFERENCE in test/ClassWithPrivateVarSignatureChanged: PROPERTY_LIST
@@ -0,0 +1,7 @@
PROTO DIFFERENCE in test/AnnotationAdded: JS_EXT_CLASS_ANNOTATION_LIST
PROTO DIFFERENCE in test/AnnotationListBecomeEmpty: FLAGS, JS_EXT_CLASS_ANNOTATION_LIST
CHANGES in test/AnnotationListBecomeEmpty: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AnnotationListBecomeNotEmpty: FLAGS, JS_EXT_CLASS_ANNOTATION_LIST
CHANGES in test/AnnotationListBecomeNotEmpty: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AnnotationRemoved: JS_EXT_CLASS_ANNOTATION_LIST
PROTO DIFFERENCE in test/AnnotationReplaced: JS_EXT_CLASS_ANNOTATION_LIST
@@ -1,2 +1,4 @@
PROTO DIFFERENCE in test/AnnotationListBecomeEmpty: FLAGS
CHANGES in test/AnnotationListBecomeEmpty: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AnnotationListBecomeNotEmpty: FLAGS
CHANGES in test/AnnotationListBecomeNotEmpty: CLASS_SIGNATURE
@@ -1,2 +1,3 @@
PROTO DIFFERENCE in test/A: FLAGS, FUNCTION_LIST
CHANGES in test/A: CLASS_SIGNATURE, MEMBERS
[f]
@@ -0,0 +1,42 @@
PROTO DIFFERENCE in test/AbstractFlagAdded: FLAGS
CHANGES in test/AbstractFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AbstractFlagRemoved: FLAGS
CHANGES in test/AbstractFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AnnotationFlagAdded: FLAGS, SUPERTYPE_LIST
CHANGES in test/AnnotationFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AnnotationFlagRemoved: FLAGS, SUPERTYPE_LIST
CHANGES in test/AnnotationFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/DataFlagAdded: FLAGS, FUNCTION_LIST
CHANGES in test/DataFlagAdded: CLASS_SIGNATURE, MEMBERS
[component1, copy, equals, hashCode, toString]
PROTO DIFFERENCE in test/DataFlagRemoved: FLAGS, FUNCTION_LIST
CHANGES in test/DataFlagRemoved: CLASS_SIGNATURE, MEMBERS
[component1, copy, equals, hashCode, toString]
PROTO DIFFERENCE in test/EnumFlagAdded: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/EnumFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/EnumFlagRemoved: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/EnumFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/InnerClassHolder.InnerFlagAdded: FLAGS
CHANGES in test/InnerClassHolder.InnerFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/InnerClassHolder.InnerFlagRemoved: FLAGS
CHANGES in test/InnerClassHolder.InnerFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/InternalFlagAdded: FLAGS
CHANGES in test/InternalFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/InternalFlagRemoved: FLAGS
CHANGES in test/InternalFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/OpenFlagAdded: FLAGS
CHANGES in test/OpenFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/OpenFlagRemoved: FLAGS
CHANGES in test/OpenFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/PrivateFlagAdded: FLAGS
CHANGES in test/PrivateFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/PrivateFlagRemoved: FLAGS
CHANGES in test/PrivateFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ProtectedClassHolder.ProtectedFlagAdded: FLAGS
CHANGES in test/ProtectedClassHolder.ProtectedFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ProtectedClassHolder.ProtectedFlagRemoved: FLAGS
CHANGES in test/ProtectedClassHolder.ProtectedFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/SealedFlagAdded: CONSTRUCTOR_LIST, FLAGS
CHANGES in test/SealedFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/SealedFlagRemoved: CONSTRUCTOR_LIST, FLAGS
CHANGES in test/SealedFlagRemoved: CLASS_SIGNATURE
@@ -1,22 +1,42 @@
PROTO DIFFERENCE in test/AbstractFlagAdded: FLAGS
CHANGES in test/AbstractFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AbstractFlagRemoved: FLAGS
CHANGES in test/AbstractFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AnnotationFlagAdded: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/AnnotationFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AnnotationFlagRemoved: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/AnnotationFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/DataFlagAdded: FLAGS, FUNCTION_LIST
CHANGES in test/DataFlagAdded: CLASS_SIGNATURE, MEMBERS
[component1, copy, equals, hashCode, toString]
PROTO DIFFERENCE in test/DataFlagRemoved: FLAGS, FUNCTION_LIST
CHANGES in test/DataFlagRemoved: CLASS_SIGNATURE, MEMBERS
[component1, copy, equals, hashCode, toString]
PROTO DIFFERENCE in test/EnumFlagAdded: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/EnumFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/EnumFlagRemoved: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/EnumFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/InnerClassHolder.InnerFlagAdded: CONSTRUCTOR_LIST, FLAGS
CHANGES in test/InnerClassHolder.InnerFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/InnerClassHolder.InnerFlagRemoved: CONSTRUCTOR_LIST, FLAGS
CHANGES in test/InnerClassHolder.InnerFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/InternalFlagAdded: FLAGS
CHANGES in test/InternalFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/InternalFlagRemoved: FLAGS
CHANGES in test/InternalFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/OpenFlagAdded: FLAGS
CHANGES in test/OpenFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/OpenFlagRemoved: FLAGS
CHANGES in test/OpenFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/PrivateFlagAdded: FLAGS
CHANGES in test/PrivateFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/PrivateFlagRemoved: FLAGS
CHANGES in test/PrivateFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ProtectedClassHolder.ProtectedFlagAdded: FLAGS
CHANGES in test/ProtectedClassHolder.ProtectedFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/ProtectedClassHolder.ProtectedFlagRemoved: FLAGS
CHANGES in test/ProtectedClassHolder.ProtectedFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/SealedFlagAdded: CONSTRUCTOR_LIST, FLAGS
CHANGES in test/SealedFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/SealedFlagRemoved: CONSTRUCTOR_LIST, FLAGS
CHANGES in test/SealedFlagRemoved: CLASS_SIGNATURE
@@ -1 +1,2 @@
PROTO DIFFERENCE in test/ClassWithTypeParameterListChanged: TYPE_PARAMETER_LIST
CHANGES in test/ClassWithTypeParameterListChanged: CLASS_SIGNATURE
@@ -1 +1,2 @@
PROTO DIFFERENCE in test/ClassWithSuperTypeListChanged: SUPERTYPE_LIST
CHANGES in test/ClassWithSuperTypeListChanged: CLASS_SIGNATURE
@@ -1,2 +1,3 @@
PROTO DIFFERENCE in test/A: FUNCTION_LIST
CHANGES in test/A: MEMBERS
[externalFlagAddedFun, externalFlagRemovedFun]
@@ -1,3 +1,5 @@
SKIPPED test/Utils
PROTO DIFFERENCE in test/Utils__Main1Kt: FUNCTION_LIST, PROPERTY_LIST
CHANGES in test/Utils__Main1Kt: MEMBERS
[publicAddedFun1]
PROTO DIFFERENCE in test/Utils__Main2Kt: FUNCTION_LIST, PROPERTY_LIST
@@ -1,2 +1,3 @@
PROTO DIFFERENCE in test/MainKt: FUNCTION_LIST
CHANGES in test/MainKt: MEMBERS
[argumentAdded, argumentRemoved, valueAdded, valueRemoved]
@@ -1,2 +1,3 @@
PROTO DIFFERENCE in test/MainKt: FUNCTION_LIST, PROPERTY_LIST
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]
@@ -0,0 +1 @@
PROTO DIFFERENCE in test/MainKt: FUNCTION_LIST, PROPERTY_LIST
@@ -1,2 +1,3 @@
PROTO DIFFERENCE in test/MainKt: FUNCTION_LIST, PROPERTY_LIST
CHANGES in test/MainKt: MEMBERS
[addedFun, addedVal, changedFun, changedVal, removedFun, removedVal]