minor: improve tests failure reporting
This commit is contained in:
committed by
Space Team
parent
7db9f9c3ae
commit
30131e289f
+13
-2
@@ -197,7 +197,7 @@ class ScriptingHostTest : TestCase() {
|
||||
makeSimpleConfigurationWithTestImport()
|
||||
}
|
||||
val output = captureOut {
|
||||
BasicJvmScriptingHost().eval(script.toScriptSource(), compilationConfiguration, null).throwOnFailure()
|
||||
BasicJvmScriptingHost().eval(script.toScriptSource(), compilationConfiguration, null).throwOnFailure().throwOnExceptionResult()
|
||||
}.lines()
|
||||
Assert.assertEquals(greeting, output)
|
||||
}
|
||||
@@ -354,7 +354,7 @@ class ScriptingHostTest : TestCase() {
|
||||
}
|
||||
}
|
||||
val output = captureOut {
|
||||
BasicJvmScriptingHost().eval(mainScript, compilationConfiguration, evaluationConfiguration).throwOnFailure()
|
||||
BasicJvmScriptingHost().eval(mainScript, compilationConfiguration, evaluationConfiguration).throwOnFailure().throwOnExceptionResult()
|
||||
}.lines()
|
||||
return output
|
||||
}
|
||||
@@ -572,6 +572,17 @@ fun <T> ResultWithDiagnostics<T>.throwOnFailure(): ResultWithDiagnostics<T> = ap
|
||||
}
|
||||
}
|
||||
|
||||
fun <T> ResultWithDiagnostics<T>.throwOnExceptionResult(): ResultWithDiagnostics<T> = apply {
|
||||
if (this is ResultWithDiagnostics.Success) {
|
||||
val result = (this.value as? EvaluationResult)
|
||||
val error = (result?.returnValue as? ResultValue.Error)?.error
|
||||
if (error != null) throw Exception(
|
||||
"Evaluation failed:\n ${reports.joinToString("\n ") { it.exception?.toString() ?: it.message }}",
|
||||
error
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun evalScript(script: String, host: BasicScriptingHost = BasicJvmScriptingHost()): ResultWithDiagnostics<*> =
|
||||
evalScriptWithConfiguration(script, host)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user