diff options
author | Sergey Shanshin <sergey.shanshin@jetbrains.com> | 2023-02-06 16:40:02 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-06 16:40:02 +0300 |
commit | 9e344bdcdb952413fa5e0c4d40810a9a0b272596 (patch) | |
tree | 5d891ae268ed6f19f728c24e03cfba164cd45fd9 /formats/json-tests | |
parent | 0b01b537b05121e5c72696b415268f3a340ae9a7 (diff) | |
download | kotlinx.serialization-9e344bdcdb952413fa5e0c4d40810a9a0b272596.tar.gz |
Added function to run tests by specified compiler version (#2148)
Diffstat (limited to 'formats/json-tests')
2 files changed, 45 insertions, 2 deletions
diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/SerializableOnPropertyTypeAndTypealiasTest.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/SerializableOnPropertyTypeAndTypealiasTest.kt index d6f14bd9..505cb48d 100644 --- a/formats/json-tests/commonTest/src/kotlinx/serialization/SerializableOnPropertyTypeAndTypealiasTest.kt +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/SerializableOnPropertyTypeAndTypealiasTest.kt @@ -3,6 +3,7 @@ package kotlinx.serialization import kotlinx.serialization.descriptors.* import kotlinx.serialization.encoding.* import kotlinx.serialization.json.* +import kotlinx.serialization.test.runSince import kotlin.test.* @Serializable @@ -82,8 +83,7 @@ class SerializableOnPropertyTypeAndTypealiasTest : JsonTestBase() { } @Test - @Ignore // TODO: Unignore in 1.8.20 (#1895) - fun testWithoutDefault() { + fun testWithoutDefault() = runSince("1.8.20") { // Ignored by #1895 val t = TesterWithoutDefault(WithoutDefault("a"), WithoutDefault("b"), WithoutDefault("c"), WithoutDefault("d")) assertJsonFormAndRestored( TesterWithoutDefault.serializer(), diff --git a/formats/json-tests/commonTest/src/kotlinx/serialization/test/CompilerVersions.kt b/formats/json-tests/commonTest/src/kotlinx/serialization/test/CompilerVersions.kt new file mode 100644 index 00000000..9a524054 --- /dev/null +++ b/formats/json-tests/commonTest/src/kotlinx/serialization/test/CompilerVersions.kt @@ -0,0 +1,43 @@ +/* + * Copyright 2017-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package kotlinx.serialization.test + +import kotlin.test.Test +import kotlin.test.assertFalse +import kotlin.test.assertTrue + +private val currentKotlinVersion = KotlinVersion.CURRENT + +private fun String.toKotlinVersion(): KotlinVersion { + val parts = split(".") + val intParts = parts.mapNotNull { it.toIntOrNull() } + if (parts.size != 3 || intParts.size != 3) error("Illegal kotlin version, expected format is 1.2.3") + + return KotlinVersion(intParts[0], intParts[1], intParts[2]) +} + +internal fun runSince(kotlinVersion: String, test: () -> Unit) { + if (currentKotlinVersion >= kotlinVersion.toKotlinVersion()) { + test() + } +} + +internal class CompilerVersionTest { + @Test + fun testSince() { + var executed = false + + runSince("1.0.0") { + executed = true + } + assertTrue(executed) + + executed = false + runSince("255.255.255") { + executed = true + } + assertFalse(executed) + } +} |