[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>>) {
|
override fun runAnalysis(testDataFile: File, testFiles: List<TestFile>, firFilesPerSession: Map<FirSession, List<FirFile>>) {
|
||||||
if (testFiles.any { "FIR_IGNORE" in it.directives }) return
|
if (testFiles.any { "FIR_IGNORE" in it.directives }) return
|
||||||
val failure: AssertionError? = try {
|
val failure: FirRuntimeException? = try {
|
||||||
for ((_, firFiles) in firFilesPerSession) {
|
for ((_, firFiles) in firFilesPerSession) {
|
||||||
doFirResolveTestBench(firFiles, FirTotalResolveTransformer().transformers, gc = false)
|
doFirResolveTestBench(firFiles, FirTotalResolveTransformer().transformers, gc = false)
|
||||||
}
|
}
|
||||||
null
|
null
|
||||||
} catch (e: AssertionError) {
|
} catch (e: FirRuntimeException) {
|
||||||
e
|
e
|
||||||
}
|
}
|
||||||
val failureFile = File(testDataFile.path.replace(".kt", ".fail"))
|
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 {
|
val failureMessage = buildString {
|
||||||
appendln(failure.message)
|
appendln(failure.message)
|
||||||
failure.cause?.let {
|
append("Cause: ")
|
||||||
append("Cause: ")
|
appendln(failure.cause)
|
||||||
appendln(it)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
KotlinTestUtils.assertEqualsToFile(failureFile, failureMessage)
|
KotlinTestUtils.assertEqualsToFile(failureFile, failureMessage)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -297,7 +297,7 @@ class FirResolveBench(val withProgress: Boolean) {
|
|||||||
fun throwFailure() {
|
fun throwFailure() {
|
||||||
if (fails.any()) {
|
if (fails.any()) {
|
||||||
val (transformerClass, failure, file) = fails.first()
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -417,3 +417,5 @@ private fun RTableContext.printMeasureAsTable(measure: FirResolveBench.Measure,
|
|||||||
cell(measure.gcCollections.toString())
|
cell(measure.gcCollections.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class FirRuntimeException(override val message: String, override val cause: Throwable) : RuntimeException(message, cause)
|
||||||
Reference in New Issue
Block a user