From b53bf4b148a91f24404abf04e577997fec568865 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Thu, 4 May 2023 10:03:10 +0200 Subject: [PATCH] [Gradle][Minor] runLifecycleAwareTest: Prefer re-throwing AssertionError ^KT-58255 Verification Pending --- .../jetbrains/kotlin/gradle/util/lifecycleUtils.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/util/lifecycleUtils.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/util/lifecycleUtils.kt index a44e86eec28..74424c075d4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/util/lifecycleUtils.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/util/lifecycleUtils.kt @@ -8,8 +8,17 @@ package org.jetbrains.kotlin.gradle.util import org.gradle.api.Project import org.gradle.api.internal.project.ProjectInternal import org.jetbrains.kotlin.gradle.plugin.kotlinPluginLifecycle +import org.jetbrains.kotlin.tooling.core.withLinearClosure +import java.lang.AssertionError fun Project.runLifecycleAwareTest(block: suspend Project.() -> Unit) { kotlinPluginLifecycle.launch { block() } - (this as ProjectInternal).evaluate() + try { + (this as ProjectInternal).evaluate() + } catch (t: Throwable) { + /* Prefer throwing AssertionError directly, if possible */ + val allCauses = t.withLinearClosure { it.cause } + allCauses.find { it is AssertionError }?.let { throw it } + throw t + } } \ No newline at end of file