Don't report compilation exceptions into error.log
This commit is contained in:
committed by
Space Team
parent
2379185398
commit
57f1405d95
+2
-2
@@ -8,10 +8,10 @@ import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
|
||||
public fun MessageCollector.reportException(e: Throwable, location: ExceptionLocation) {
|
||||
report(severity = CompilerMessageSeverity.EXCEPTION, message = "$location failed:${e.message}\n${e.stackTraceToString()}")
|
||||
report(severity = CompilerMessageSeverity.EXCEPTION, message = "${location.readableName} failed: ${e.message}\n${e.stackTraceToString()}")
|
||||
}
|
||||
|
||||
public enum class ExceptionLocation(val readablename: String) {
|
||||
public enum class ExceptionLocation(val readableName: String) {
|
||||
INCREMENTAL_COMPILATION("Incremental compilation"),
|
||||
DAEMON("Daemon compilation"),
|
||||
OUT_OF_PROCESS_COMPILATION("Out of process compilation")
|
||||
|
||||
+24
@@ -173,6 +173,15 @@ class BuildReportsIT : KGPBaseTest() {
|
||||
@GradleTest
|
||||
fun testErrorsFileSmokeTest(gradleVersion: GradleVersion) {
|
||||
project("simpleProject", gradleVersion) {
|
||||
|
||||
val lookupsTab = projectPath.resolve("build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab")
|
||||
buildGradle.appendText("""
|
||||
tasks.named("compileKotlin") {
|
||||
doLast {
|
||||
new File("${lookupsTab.toUri().path}").write("Invalid contents")
|
||||
}
|
||||
}
|
||||
""".trimIndent())
|
||||
build("compileKotlin") {
|
||||
assertTrue { projectPath.resolve(".gradle/build_errors").listDirectoryEntries().isEmpty() }
|
||||
}
|
||||
@@ -186,4 +195,19 @@ class BuildReportsIT : KGPBaseTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@DisplayName("Error file should not contain compilation exceptions")
|
||||
@GradleTest
|
||||
fun testErrorsFileWithCompilationError(gradleVersion: GradleVersion) {
|
||||
project("simpleProject", gradleVersion) {
|
||||
build("compileKotlin") {
|
||||
assertTrue { projectPath.resolve(".gradle/build_errors").listDirectoryEntries().isEmpty() }
|
||||
}
|
||||
val kotlinFile = kotlinSourcesDir().resolve("helloWorld.kt")
|
||||
kotlinFile.modify { it.replace("ArrayList","skjfghsjk") }
|
||||
buildAndFail("compileKotlin") {
|
||||
assertTrue { projectPath.resolve(".gradle/build_errors").listDirectoryEntries().isEmpty() }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+6
-2
@@ -11,7 +11,11 @@ import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
import java.io.File
|
||||
import java.io.FileWriter
|
||||
|
||||
class GradleErrorMessageCollector(private val delegate: MessageCollector? = null) : MessageCollector {
|
||||
class GradleErrorMessageCollector(
|
||||
private val delegate: MessageCollector? = null,
|
||||
private val acceptableMessageSeverity: List<CompilerMessageSeverity> = listOf(CompilerMessageSeverity.EXCEPTION)
|
||||
) : MessageCollector {
|
||||
|
||||
private val errors = ArrayList<String>()
|
||||
|
||||
override fun clear() {
|
||||
@@ -26,7 +30,7 @@ class GradleErrorMessageCollector(private val delegate: MessageCollector? = null
|
||||
override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageSourceLocation?) {
|
||||
delegate?.report(severity, message, location)
|
||||
|
||||
if (severity in listOf(CompilerMessageSeverity.ERROR, CompilerMessageSeverity.EXCEPTION)) {
|
||||
if (severity in acceptableMessageSeverity) {
|
||||
synchronized(errors) {
|
||||
errors.add(message)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user