From b8ee4731075254e37962f4e0941ebb9400c73ad3 Mon Sep 17 00:00:00 2001 From: Pavel Kirpichenkov Date: Tue, 1 Feb 2022 11:34:09 +0300 Subject: [PATCH] [Commonizer] Improve error messages for tests --- .../utils/MetadataDeclarationsComparator.kt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/utils/MetadataDeclarationsComparator.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/utils/MetadataDeclarationsComparator.kt index bf8172ec74d..14def4ed598 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/utils/MetadataDeclarationsComparator.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/utils/MetadataDeclarationsComparator.kt @@ -83,7 +83,7 @@ class MetadataDeclarationsComparator private constructor(private val config: Con } class Class(val clazzA: KmClass, val clazzB: KmClass) : PathElement { - override val name get() = clazzA.name + override val name get() = clazzA.name.split("/").last() } class TypeAlias(val typeAliasA: KmTypeAlias, val typeAliasB: KmTypeAlias) : PathElement { @@ -250,6 +250,8 @@ class MetadataDeclarationsComparator private constructor(private val config: Con abstract val name: String abstract val path: List + protected fun pathString() = path.joinToString("/") { it.name } + // an entity has different non-nullable values data class DifferentValues( override val kind: EntityKind, @@ -257,7 +259,13 @@ class MetadataDeclarationsComparator private constructor(private val config: Con override val path: List, val valueA: Any, val valueB: Any - ) : Mismatch() + ) : Mismatch() { + // TODO: fix Kotlin metadata rendering for values + override fun toString(): String { + val spacedName = if (name.isEmpty()) "" else "$name " + return "$kind ${spacedName}is different in (A): $valueA and (B): $valueB; path: ${pathString()}" + } + } // an entity is missing at one side and present at another side, // or: an entity has nullable value at one side and non-nullable value at another side @@ -270,6 +278,11 @@ class MetadataDeclarationsComparator private constructor(private val config: Con ) : Mismatch() { val missingInB: Boolean get() = !missingInA + + override fun toString(): String { + val (missing, existing) = if (missingInA) "A" to "B" else "B" to "A" + return "Missing $kind in ($missing): '$name'; in ($existing) it's: $existentValue; path: '${pathString()}'" + } } }