Report locations of errors in ABI classes tests

This commit is contained in:
Alexey Tsvetkov
2018-12-05 14:20:05 +03:00
parent 9dd09151f0
commit 64380f55d2
2 changed files with 24 additions and 2 deletions
@@ -10,7 +10,6 @@ import junit.framework.TestCase
import org.jetbrains.kotlin.cli.common.ExitCode
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
import org.jetbrains.kotlin.config.Services
import org.jetbrains.kotlin.incremental.utils.TestMessageCollector
import java.io.File
abstract class BaseJvmAbiTest : TestCase() {
@@ -58,7 +57,7 @@ abstract class BaseJvmAbiTest : TestCase() {
dep.abiDir
}
val messageCollector = TestMessageCollector()
val messageCollector = LocationReportingTestMessageCollector()
val compiler = K2JVMCompiler()
val args = compiler.createArguments().apply {
freeArgs = listOf(compilation.srcDir.canonicalPath)
@@ -0,0 +1,23 @@
package org.jetbrains.kotlin.jvm.abi
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import java.util.ArrayList
internal class LocationReportingTestMessageCollector : MessageCollector {
val errors = ArrayList<String>()
override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation?) {
if (severity.isError) {
errors.add("e: $location: $message")
}
}
override fun clear() {
errors.clear()
}
override fun hasErrors(): Boolean =
errors.isNotEmpty()
}