Update kotlinx.serialization to 0.20.0 and fix deprecated/removed API usage

(cherry picked from commit 36e8dcf5ae6ce3c39a640645e52417da44c9254c)
This commit is contained in:
Pavel Punegov
2020-03-06 15:42:19 +03:00
committed by Vasily Levchenko
parent 57b3cd1f00
commit ff213cb104
5 changed files with 28 additions and 23 deletions
+1 -1
View File
@@ -44,7 +44,7 @@ dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion") implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion") implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
implementation("com.ullink.slack:simpleslackapi:1.2.0") implementation("com.ullink.slack:simpleslackapi:1.2.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.14.0") implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.20.0")
implementation("io.ktor:ktor-client-auth:1.2.1") implementation("io.ktor:ktor-client-auth:1.2.1")
implementation("io.ktor:ktor-client-core:1.2.1") implementation("io.ktor:ktor-client-core:1.2.1")
@@ -17,8 +17,9 @@
package org.jetbrains.kotlin package org.jetbrains.kotlin
import groovy.lang.Closure import groovy.lang.Closure
import kotlinx.serialization.* import kotlinx.serialization.Serializable
import kotlinx.serialization.json.* import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonConfiguration
import org.gradle.api.Action import org.gradle.api.Action
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.process.ExecResult import org.gradle.process.ExecResult
@@ -420,14 +421,14 @@ private fun deviceLauncher(project: Project) = object : ExecutorService {
} }
return out.toString().run { return out.toString().run {
check(isNotEmpty()) check(isNotEmpty())
@kotlinx.serialization.Serializable @Serializable
data class DeviceTarget(val name: String, val udid: String, val state: String, val type: String) data class DeviceTarget(val name: String, val udid: String, val state: String, val type: String)
split("\n") split("\n")
.filter { it.isNotEmpty() } .filter { it.isNotEmpty() }
.map { .map { Json(JsonConfiguration.Stable.copy(ignoreUnknownKeys = false))
Json(JsonConfiguration.Stable.copy(strictMode = false))
.parse(DeviceTarget.serializer(), it) .parse(DeviceTarget.serializer(), it)
}.first { }
.first {
it.type == "device" && deviceName?.run { this == it.name } ?: true it.type == "device" && deviceName?.run { this == it.name } ?: true
} }
.udid .udid
@@ -1,13 +1,16 @@
package org.jetbrains.kotlin package org.jetbrains.kotlin
import kotlinx.io.PrintWriter import kotlinx.serialization.ImplicitReflectionSerializer
import kotlinx.serialization.* import kotlinx.serialization.Serializable
import kotlinx.serialization.json.* import kotlinx.serialization.json.Json
import kotlinx.serialization.parse
import kotlinx.serialization.stringify
import java.io.File import java.io.File
import java.io.FileReader import java.io.FileReader
import java.io.PrintWriter
@kotlinx.serialization.Serializable @Serializable
data class ExternalTestReport(val statistics: Statistics, val groups: List<KonanTestGroupReport>) data class ExternalTestReport(val statistics: Statistics, val groups: List<KonanTestGroupReport>)
@ImplicitReflectionSerializer @ImplicitReflectionSerializer
@@ -1,8 +1,7 @@
package org.jetbrains.kotlin package org.jetbrains.kotlin
import kotlinx.io.PrintWriter import java.io.PrintWriter
import kotlinx.io.StringWriter import java.io.StringWriter
import kotlinx.serialization.Optional
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import org.gradle.api.Project import org.gradle.api.Project
@@ -13,7 +12,7 @@ enum class TestStatus {
SKIPPED SKIPPED
} }
@kotlinx.serialization.Serializable @Serializable
data class Statistics( data class Statistics(
var passed: Int = 0, var passed: Int = 0,
var failed: Int = 0, var failed: Int = 0,
@@ -42,20 +41,20 @@ val Statistics.total: Int
class TestFailedException(msg:String) : RuntimeException(msg) class TestFailedException(msg:String) : RuntimeException(msg)
@kotlinx.serialization.Serializable @Serializable
data class KonanTestGroupReport(val name:String, val suites:List<KonanTestSuiteReport>) data class KonanTestGroupReport(val name: String, val suites: List<KonanTestSuiteReport>)
@kotlinx.serialization.Serializable @Serializable
data class KonanTestSuiteReport(val name: String, val tests: List<KonanTestCaseReport>) data class KonanTestSuiteReport(val name: String, val tests: List<KonanTestCaseReport>)
@kotlinx.serialization.Serializable @Serializable
data class KonanTestCaseReport(val name:String, val status: TestStatus, @Optional val comment:String? = null) data class KonanTestCaseReport(val name: String, val status: TestStatus, val comment: String? = null)
class KonanTestSuiteReportEnvironment(val name:String, val project: Project, val statistics: Statistics) { class KonanTestSuiteReportEnvironment(val name: String, val project: Project, val statistics: Statistics) {
private val tc = if (Tc.enabled) TeamCityTestPrinter(project) else null private val tc = if (Tc.enabled) TeamCityTestPrinter(project) else null
val tests = mutableListOf<KonanTestCaseReport>() val tests = mutableListOf<KonanTestCaseReport>()
fun executeTest(testName: String, action:() -> Unit) { fun executeTest(testName: String, action:() -> Unit) {
var test:KonanTestCaseReport? = null var test: KonanTestCaseReport?
try { try {
tc?.startTest(testName) tc?.startTest(testName)
action() action()
@@ -2,6 +2,7 @@ package org.jetbrains.kotlin
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonConfiguration
import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.target.Xcode import org.jetbrains.kotlin.konan.target.Xcode
import kotlin.math.min import kotlin.math.min
@@ -25,7 +26,8 @@ private fun compareStringsAsVersions(version1: String, version2: String): Int {
* Returns parsed output of `xcrun simctl list runtimes -j`. * Returns parsed output of `xcrun simctl list runtimes -j`.
*/ */
private fun Xcode.getSimulatorRuntimeDescriptors(): List<SimulatorRuntimeDescriptor> = private fun Xcode.getSimulatorRuntimeDescriptors(): List<SimulatorRuntimeDescriptor> =
Json.nonstrict.parse(ListRuntimesReport.serializer(), this.simulatorRuntimes).runtimes Json(JsonConfiguration.Stable.copy(ignoreUnknownKeys = true, useArrayPolymorphism = true))
.parse(ListRuntimesReport.serializer(), this.simulatorRuntimes).runtimes
/** /**
* Returns first available simulator runtime for [target] with at least [osMinVersion] OS version. * Returns first available simulator runtime for [target] with at least [osMinVersion] OS version.