From 318dd22bd1a675b3df66494200eb4f372157dd61 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Mon, 1 Feb 2021 23:34:05 +0300 Subject: [PATCH] [Commonizer] Add tests for CommonizerTarget --- .../commonizer/CommonizerTargetTest.kt | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/CommonizerTargetTest.kt diff --git a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/CommonizerTargetTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/CommonizerTargetTest.kt new file mode 100644 index 00000000000..f56e791652f --- /dev/null +++ b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/CommonizerTargetTest.kt @@ -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)) + } +}