From 8f8b2ae2d37335f8e02c3839afd4b19b5072ab70 Mon Sep 17 00:00:00 2001 From: Anastasia Katsman Date: Thu, 5 Dec 2024 15:06:19 +0100 Subject: [PATCH] [rdct-tests] always include exception cause in failure stacktrace GitOrigin-RevId: a9006c0f60439b01d3efbd360bb59349480f23f3 --- .../tests/impl/utils/WithTimeoutDumping.kt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/platform/remoteDev-util/src/com/intellij/remoteDev/tests/impl/utils/WithTimeoutDumping.kt b/platform/remoteDev-util/src/com/intellij/remoteDev/tests/impl/utils/WithTimeoutDumping.kt index 08571d53a3cd..1a6a723081bb 100644 --- a/platform/remoteDev-util/src/com/intellij/remoteDev/tests/impl/utils/WithTimeoutDumping.kt +++ b/platform/remoteDev-util/src/com/intellij/remoteDev/tests/impl/utils/WithTimeoutDumping.kt @@ -9,13 +9,15 @@ import java.util.concurrent.TimeoutException import kotlin.time.Duration @ApiStatus.Internal -val coroutineDumpPrefix = "CoroutineDump:" +val coroutineDumpPrefix: String = "CoroutineDump:" @ApiStatus.Internal -suspend fun withTimeoutDumping(title: String, - timeout: Duration, - failMessageProducer: (() -> String)? = null, - action: suspend () -> T): T = coroutineScope { +suspend fun withTimeoutDumping( + title: String, + timeout: Duration, + failMessageProducer: (() -> String)? = null, + action: suspend () -> T, +): T = coroutineScope { val outerScope = childScope(title) val deferred = outerScope.async { action() } @@ -25,8 +27,6 @@ suspend fun withTimeoutDumping(title: String, withTimeout(timeout) { deferred.await() } } catch (e: TimeoutCancellationException) { - val message = "$title: Has not finished in $timeout." - //println(buildString { // appendLine(message) // // see com.intellij.testFramework.common.TimeoutKt.timeoutRunBlocking @@ -36,7 +36,8 @@ suspend fun withTimeoutDumping(title: String, val coroutinesDump = dumpCoroutines(outerScope) val failMessage = outerScope.async { failMessageProducer?.invoke() }.await() throw TimeoutException(buildString { - appendLine(message) + append("$title[timeout=$timeout] failed:") + appendLine(e.stackTraceToString()) if (!failMessage.isNullOrBlank()) { appendLine(failMessage) }