prog8/compiler/test/helpers/ErrorReporterForTests.kt

30 lines
949 B
Kotlin
Raw Normal View History

package prog8tests.helpers
import prog8.ast.base.Position
import prog8.compilerinterface.IErrorReporter
2021-10-29 14:46:56 +00:00
internal class ErrorReporterForTests(private val throwExceptionAtReportIfErrors: Boolean=true): IErrorReporter {
val errors = mutableListOf<String>()
val warnings = mutableListOf<String>()
override fun err(msg: String, position: Position) {
2021-10-24 17:09:44 +00:00
errors.add("${position.toClickableStr()} $msg")
}
override fun warn(msg: String, position: Position) {
2021-10-24 17:09:44 +00:00
warnings.add("${position.toClickableStr()} $msg")
}
override fun noErrors(): Boolean = errors.isEmpty()
override fun report() {
warnings.forEach { println("UNITTEST COMPILATION REPORT: WARNING: $it") }
errors.forEach { println("UNITTEST COMPILATION REPORT: ERROR: $it") }
if(throwExceptionAtReportIfErrors)
finalizeNumErrors(errors.size, warnings.size)
errors.clear()
warnings.clear()
}
}