summaryrefslogtreecommitdiff
path: root/formats/json-tests
diff options
context:
space:
mode:
authorSergey Shanshin <sergey.shanshin@jetbrains.com>2023-02-06 16:40:02 +0300
committerGitHub <noreply@github.com>2023-02-06 16:40:02 +0300
commit9e344bdcdb952413fa5e0c4d40810a9a0b272596 (patch)
tree5d891ae268ed6f19f728c24e03cfba164cd45fd9 /formats/json-tests
parent0b01b537b05121e5c72696b415268f3a340ae9a7 (diff)
downloadkotlinx.serialization-9e344bdcdb952413fa5e0c4d40810a9a0b272596.tar.gz
Added function to run tests by specified compiler version (#2148)
Diffstat (limited to 'formats/json-tests')
-rw-r--r--formats/json-tests/commonTest/src/kotlinx/serialization/SerializableOnPropertyTypeAndTypealiasTest.kt4
-rw-r--r--formats/json-tests/commonTest/src/kotlinx/serialization/test/CompilerVersions.kt43
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)
+ }
+}