From e0c0a189dcf49405ffdbd5c27ebad39b0aecdf89 Mon Sep 17 00:00:00 2001 From: Him188 Date: Mon, 31 May 2021 00:31:54 +0800 Subject: [PATCH] Make NettyUtilsTest faster --- .../network/impl/netty/NettyUtilsTest.kt | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/mirai-core/src/commonTest/kotlin/network/impl/netty/NettyUtilsTest.kt b/mirai-core/src/commonTest/kotlin/network/impl/netty/NettyUtilsTest.kt index ad45d7782..d19785900 100644 --- a/mirai-core/src/commonTest/kotlin/network/impl/netty/NettyUtilsTest.kt +++ b/mirai-core/src/commonTest/kotlin/network/impl/netty/NettyUtilsTest.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.network.impl.netty import io.netty.channel.DefaultChannelPromise import io.netty.channel.embedded.EmbeddedChannel -import kotlinx.coroutines.delay +import kotlinx.coroutines.CoroutineStart import kotlinx.coroutines.launch import net.mamoe.mirai.internal.test.AbstractTest import net.mamoe.mirai.internal.test.runBlockingUnit @@ -19,7 +19,7 @@ import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.Test import kotlin.test.assertFailsWith import kotlin.test.assertTrue -import kotlin.time.seconds +import kotlin.time.Duration /** * @see awaitKt @@ -36,17 +36,16 @@ internal class NettyUtilsTest : AbstractTest() { } @Test - fun canAwait() = runBlockingUnit(timeout = 5.seconds) { + fun canAwait() = runBlockingUnit(timeout = Duration.seconds(5)) { val future = DefaultChannelPromise(channel) + launch(start = CoroutineStart.UNDISPATCHED) { future.awaitKt() } launch { - delay(2000) future.setSuccess() } - future.awaitKt() } @Test - fun returnsImmediatelyIfCompleted() = runBlockingUnit(timeout = 5.seconds) { + fun returnsImmediatelyIfCompleted() = runBlockingUnit(timeout = Duration.seconds(5)) { val future = DefaultChannelPromise(channel) future.setSuccess() future.awaitKt() @@ -56,16 +55,17 @@ internal class NettyUtilsTest : AbstractTest() { fun testAwait() { class MyError : AssertionError("My") // coroutine debugger will modify the exception if inside coroutine - runBlockingUnit(timeout = 5.seconds) { + runBlockingUnit(timeout = Duration.seconds(5)) { val future = DefaultChannelPromise(channel) - launch { - delay(2000) - future.setFailure(MyError()) + launch(start = CoroutineStart.UNDISPATCHED) { + assertFailsWith { + future.awaitKt() + }.let { actual -> + assertTrue { actual is MyError } + } } - assertFailsWith { - future.awaitKt() - }.let { actual -> - assertTrue { actual is MyError } + launch { + future.setFailure(MyError()) } } }