[Commonizer] Add tests for CommonizerTarget
This commit is contained in:
+70
@@ -0,0 +1,70 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.descriptors.commonizer
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
|
import org.junit.Test
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
|
class CommonizerTargetTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun leafTargetNames() {
|
||||||
|
listOf(
|
||||||
|
Triple("foo", "[foo]", FOO),
|
||||||
|
Triple("bar", "[bar]", BAR),
|
||||||
|
Triple("baz_123", "[baz_123]", BAZ),
|
||||||
|
).forEach { (name, prettyName, target: LeafTarget) ->
|
||||||
|
assertEquals(name, target.name)
|
||||||
|
assertEquals(prettyName, target.prettyName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun sharedTargetNames() {
|
||||||
|
listOf(
|
||||||
|
"[foo]" to SharedTarget(FOO),
|
||||||
|
"[foo, bar]" to SharedTarget(FOO, BAR),
|
||||||
|
"[foo, bar, baz_123]" to SharedTarget(FOO, BAR, BAZ),
|
||||||
|
"[foo, bar, baz_123, [foo, bar]]" to SharedTarget(FOO, BAR, BAZ, SharedTarget(FOO, BAR))
|
||||||
|
).forEach { (prettyName, target: SharedTarget) ->
|
||||||
|
assertEquals(prettyName, target.prettyName)
|
||||||
|
assertEquals(prettyName, target.name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun prettyCommonizedName() {
|
||||||
|
val sharedTarget = SharedTarget(FOO, BAR, BAZ)
|
||||||
|
listOf(
|
||||||
|
"[foo(*), bar, baz_123]" to FOO,
|
||||||
|
"[foo, bar(*), baz_123]" to BAR,
|
||||||
|
"[foo, bar, baz_123(*)]" to BAZ,
|
||||||
|
"[foo, bar, baz_123]" to sharedTarget
|
||||||
|
).forEach { (prettyCommonizerName, target: CommonizerTarget) ->
|
||||||
|
assertEquals(prettyCommonizerName, target.prettyCommonizedName(sharedTarget))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalStateException::class)
|
||||||
|
fun prettyCommonizedNameFailure() {
|
||||||
|
FOO.prettyCommonizedName(SharedTarget(BAR, BAZ))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException::class)
|
||||||
|
fun sharedTargetNoInnerTargets() {
|
||||||
|
SharedTarget(emptySet())
|
||||||
|
}
|
||||||
|
|
||||||
|
private companion object {
|
||||||
|
val FOO = LeafTarget("foo")
|
||||||
|
val BAR = LeafTarget("bar", KonanTarget.IOS_X64)
|
||||||
|
val BAZ = LeafTarget("baz_123", KonanTarget.MACOS_X64)
|
||||||
|
|
||||||
|
@Suppress("TestFunctionName")
|
||||||
|
fun SharedTarget(vararg targets: CommonizerTarget) = SharedTarget(linkedSetOf(*targets))
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user