[FIR-TEST] Throw RuntimeException instead of AssertionError in FirResolveBench

This is needed for better usability of testing of changes which
  brake testdata and introduce new exceptions from compiler at same time
This commit is contained in:
Dmitriy Novozhilov
2020-03-31 12:49:32 +03:00
parent 1d1b8d3290
commit bb8d743741
2 changed files with 9 additions and 9 deletions
@@ -26,12 +26,12 @@ abstract class AbstractFirOldFrontendDiagnosticsTest : AbstractFirDiagnosticsTes
override fun runAnalysis(testDataFile: File, testFiles: List<TestFile>, firFilesPerSession: Map<FirSession, List<FirFile>>) {
if (testFiles.any { "FIR_IGNORE" in it.directives }) return
val failure: AssertionError? = try {
val failure: FirRuntimeException? = try {
for ((_, firFiles) in firFilesPerSession) {
doFirResolveTestBench(firFiles, FirTotalResolveTransformer().transformers, gc = false)
}
null
} catch (e: AssertionError) {
} catch (e: FirRuntimeException) {
e
}
val failureFile = File(testDataFile.path.replace(".kt", ".fail"))
@@ -57,13 +57,11 @@ abstract class AbstractFirOldFrontendDiagnosticsTest : AbstractFirDiagnosticsTes
}
}
private fun checkFailureFile(failure: AssertionError, failureFile: File) {
private fun checkFailureFile(failure: FirRuntimeException, failureFile: File) {
val failureMessage = buildString {
appendln(failure.message)
failure.cause?.let {
append("Cause: ")
appendln(it)
}
append("Cause: ")
appendln(failure.cause)
}
KotlinTestUtils.assertEqualsToFile(failureFile, failureMessage)
}
@@ -297,7 +297,7 @@ class FirResolveBench(val withProgress: Boolean) {
fun throwFailure() {
if (fails.any()) {
val (transformerClass, failure, file) = fails.first()
throw AssertionError("Failures detected in ${transformerClass.simpleName}, file: $file", failure)
throw FirRuntimeException("Failures detected in ${transformerClass.simpleName}, file: $file", failure)
}
}
@@ -416,4 +416,6 @@ private fun RTableContext.printMeasureAsTable(measure: FirResolveBench.Measure,
timeCell(measure.gcTime, inputUnit = TableTimeUnit.MS)
cell(measure.gcCollections.toString())
}
}
}
class FirRuntimeException(override val message: String, override val cause: Throwable) : RuntimeException(message, cause)