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()
|
makeSimpleConfigurationWithTestImport()
|
||||||
}
|
}
|
||||||
val output = captureOut {
|
val output = captureOut {
|
||||||
BasicJvmScriptingHost().eval(script.toScriptSource(), compilationConfiguration, null).throwOnFailure()
|
BasicJvmScriptingHost().eval(script.toScriptSource(), compilationConfiguration, null).throwOnFailure().throwOnExceptionResult()
|
||||||
}.lines()
|
}.lines()
|
||||||
Assert.assertEquals(greeting, output)
|
Assert.assertEquals(greeting, output)
|
||||||
}
|
}
|
||||||
@@ -354,7 +354,7 @@ class ScriptingHostTest : TestCase() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
val output = captureOut {
|
val output = captureOut {
|
||||||
BasicJvmScriptingHost().eval(mainScript, compilationConfiguration, evaluationConfiguration).throwOnFailure()
|
BasicJvmScriptingHost().eval(mainScript, compilationConfiguration, evaluationConfiguration).throwOnFailure().throwOnExceptionResult()
|
||||||
}.lines()
|
}.lines()
|
||||||
return output
|
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<*> =
|
private fun evalScript(script: String, host: BasicScriptingHost = BasicJvmScriptingHost()): ResultWithDiagnostics<*> =
|
||||||
evalScriptWithConfiguration(script, host)
|
evalScriptWithConfiguration(script, host)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -97,7 +97,7 @@ class ScriptTest : TestCase() {
|
|||||||
return (extraInt(metadata) as Int) and JvmAnnotationNames.METADATA_SCRIPT_FLAG != 0
|
return (extraInt(metadata) as Int) and JvmAnnotationNames.METADATA_SCRIPT_FLAG != 0
|
||||||
}
|
}
|
||||||
|
|
||||||
val scriptClass = compileScript("metadata_flag.kts", StandardScriptDefinition)!!
|
val scriptClass = compileScript("metadata_flag.kts", StandardScriptDefinition) ?: throw AssertionError("compilation failed")
|
||||||
assertTrue("Script class SHOULD have the metadata flag set", scriptClass.isFlagSet())
|
assertTrue("Script class SHOULD have the metadata flag set", scriptClass.isFlagSet())
|
||||||
assertFalse(
|
assertFalse(
|
||||||
"Non-script class in a script should NOT have the metadata flag set",
|
"Non-script class in a script should NOT have the metadata flag set",
|
||||||
|
|||||||
Reference in New Issue
Block a user