From 5b555fe4075c9bab22541e5281a4de9419a62059 Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Mon, 17 Jan 2022 14:03:31 +0300 Subject: [PATCH] Remove ignored test and its obsolete dependency with ASM 5.0 (#3140) --- kotlinx-coroutines-core/build.gradle | 1 - .../jvm/test/ContinuationSerializationTest.kt | 94 ------------------- 2 files changed, 95 deletions(-) delete mode 100644 kotlinx-coroutines-core/jvm/test/ContinuationSerializationTest.kt diff --git a/kotlinx-coroutines-core/build.gradle b/kotlinx-coroutines-core/build.gradle index 72c893bc17..487527b22b 100644 --- a/kotlinx-coroutines-core/build.gradle +++ b/kotlinx-coroutines-core/build.gradle @@ -185,7 +185,6 @@ kotlin.sourceSets { jvmTest.dependencies { api "org.jetbrains.kotlinx:lincheck:$lincheck_version" api "org.jetbrains.kotlinx:kotlinx-knit-test:$knit_version" - api "com.esotericsoftware:kryo:4.0.0" implementation project(":android-unit-tests") } } diff --git a/kotlinx-coroutines-core/jvm/test/ContinuationSerializationTest.kt b/kotlinx-coroutines-core/jvm/test/ContinuationSerializationTest.kt deleted file mode 100644 index 12941fb1ae..0000000000 --- a/kotlinx-coroutines-core/jvm/test/ContinuationSerializationTest.kt +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -package kotlinx.coroutines - - -import com.esotericsoftware.kryo.* -import com.esotericsoftware.kryo.io.* -import kotlinx.atomicfu.* -import org.junit.Test -import org.objenesis.strategy.* -import java.io.* -import kotlin.coroutines.* -import kotlin.coroutines.intrinsics.* -import kotlin.reflect.* -import kotlin.test.* - -@Ignore -class ContinuationSerializationTest : TestBase() { - - companion object { - @JvmStatic - var flag = false - } - -// private val atomicInt = atomic(1) - - private val kryo = - Kryo().also { it.instantiatorStrategy = Kryo.DefaultInstantiatorStrategy(StdInstantiatorStrategy()) } - - private var storage: ByteArrayOutputStream = ByteArrayOutputStream() - - @Test - fun testSafeContinuationSerDe() = testSerization(::serialize, { - it.javaClass.getDeclaredField("result").apply { - isAccessible = true - set(it, COROUTINE_SUSPENDED) - } - }) - - @Test - fun testUnsafeContinuationSerDe() = testSerization(::serializeUnsafe, {}) - -// @Test -// fun testCancellableContinuationSerDe() = testSerization(::serializeCancellable, { -// it.javaClass.superclass.getDeclaredField("_decision").apply { -// isAccessible = true -// set(it, atomicInt) -// } -// }) - - private suspend fun serialize() = suspendCoroutine { cont -> - Output(storage).use { - kryo.writeClassAndObject(it, cont) - } - } - - private suspend fun serializeCancellable() = suspendCancellableCoroutine { cont -> - Output(storage).use { - kryo.writeClassAndObject(it, cont) - } - } - - private suspend fun serializeUnsafe() = suspendCoroutineUninterceptedOrReturn { cont -> - Output(storage).use { - kryo.writeClassAndObject(it, cont) - } - } - - private fun testSerization(serialize: KSuspendFunction0, patcher: (Continuation) -> Unit) = - runBlocking { - launch(Unconfined) { - expect(1) - serialize() - flag = true - } - - val cont = deserialise() - patcher(cont) - expect(2) - cont.resume(Unit) - finish(3) - assertTrue(flag) - } - - @Suppress("UNCHECKED_CAST") - private fun deserialise(): Continuation { - val input = Input(ByteArrayInputStream(storage.toByteArray())) - input.use { - return kryo.readClassAndObject(it) as Continuation - } - } -}