[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:
+5
-7
@@ -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)
|
||||
Reference in New Issue
Block a user