[Commonizer] Ignore acceptable (minor) metadata mismatches in tests
This commit is contained in:
+14
-1
@@ -9,6 +9,7 @@ import kotlinx.metadata.klib.KlibModuleMetadata
|
|||||||
import org.jetbrains.kotlin.descriptors.commonizer.CommonizerResult
|
import org.jetbrains.kotlin.descriptors.commonizer.CommonizerResult
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.CommonizerTarget
|
import org.jetbrains.kotlin.descriptors.commonizer.CommonizerTarget
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.metadata.utils.MetadataDeclarationsComparator
|
import org.jetbrains.kotlin.descriptors.commonizer.metadata.utils.MetadataDeclarationsComparator
|
||||||
|
import org.jetbrains.kotlin.descriptors.commonizer.metadata.utils.MetadataDeclarationsComparator.Mismatch
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.metadata.utils.MetadataDeclarationsComparator.Result
|
import org.jetbrains.kotlin.descriptors.commonizer.metadata.utils.MetadataDeclarationsComparator.Result
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.metadata.utils.SerializedMetadataLibraryProvider
|
import org.jetbrains.kotlin.descriptors.commonizer.metadata.utils.SerializedMetadataLibraryProvider
|
||||||
import org.jetbrains.kotlin.library.SerializedMetadata
|
import org.jetbrains.kotlin.library.SerializedMetadata
|
||||||
@@ -40,7 +41,12 @@ fun assertModulesAreEqual(reference: SerializedMetadata, generated: SerializedMe
|
|||||||
when (val result = MetadataDeclarationsComparator().compare(referenceModule, generatedModule)) {
|
when (val result = MetadataDeclarationsComparator().compare(referenceModule, generatedModule)) {
|
||||||
is Result.Success -> Unit
|
is Result.Success -> Unit
|
||||||
is Result.Failure -> {
|
is Result.Failure -> {
|
||||||
val mismatches = result.mismatches.sortedBy { it::class.java.simpleName + "_" + it.kind }
|
val mismatches = result.mismatches
|
||||||
|
.filter(FILTER_OUR_ACCEPTABLE_MISMATCHES)
|
||||||
|
.sortedBy { it::class.java.simpleName + "_" + it.kind }
|
||||||
|
|
||||||
|
if (mismatches.isEmpty()) return
|
||||||
|
|
||||||
val digitCount = mismatches.size.toString().length
|
val digitCount = mismatches.size.toString().length
|
||||||
|
|
||||||
val failureMessage = buildString {
|
val failureMessage = buildString {
|
||||||
@@ -54,3 +60,10 @@ fun assertModulesAreEqual(reference: SerializedMetadata, generated: SerializedMe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val FILTER_OUR_ACCEPTABLE_MISMATCHES: (Mismatch) -> Boolean = { mismatch ->
|
||||||
|
when (mismatch) {
|
||||||
|
is Mismatch.MissingEntity -> mismatch.kind == "AbbreviationType" && mismatch.missingInA
|
||||||
|
is Mismatch.DifferentValues -> false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user