[BTA tests] Provide an optimized way for making exact log line assertions
^KT-61860 In Progress
This commit is contained in:
committed by
Space Team
parent
95b832fa8b
commit
bc85375a1e
+2
-2
@@ -14,7 +14,7 @@ fun CompilationOutcome.assertLogContainsLines(logLevel: LogLevel, vararg expecte
|
||||
|
||||
fun CompilationOutcome.assertLogContainsLines(logLevel: LogLevel, expectedLines: Set<String>) {
|
||||
requireLogLevel(logLevel)
|
||||
val absentLines = expectedLines.filter { !logLines.getValue(logLevel).contains(it) }
|
||||
val absentLines = expectedLines.filter { !uniqueLogLines.getValue(logLevel).contains(it) }
|
||||
assert(absentLines.isEmpty()) {
|
||||
"""
|
||||
|The following lines were expected to be printed on $logLevel level, however they were not:
|
||||
@@ -29,7 +29,7 @@ fun CompilationOutcome.assertLogDoesNotContainLines(logLevel: LogLevel, vararg e
|
||||
|
||||
fun CompilationOutcome.assertLogDoesNotContainLines(logLevel: LogLevel, expectedLines: Set<String>) {
|
||||
requireLogLevel(logLevel)
|
||||
val presentLines = expectedLines.filter { logLines.getValue(logLevel).contains(it) }
|
||||
val presentLines = expectedLines.filter { uniqueLogLines.getValue(logLevel).contains(it) }
|
||||
assert(presentLines.isEmpty()) {
|
||||
"""
|
||||
|The following lines were not expected to be printed on $logLevel level, however they were:
|
||||
|
||||
+15
-1
@@ -12,8 +12,22 @@ import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import java.nio.file.Path
|
||||
|
||||
private class CompilationOutcomeImpl(
|
||||
override val logLines: Map<LogLevel, Collection<String>>,
|
||||
rawLogLines: Map<LogLevel, Collection<String>>,
|
||||
) : CompilationOutcome {
|
||||
private val _logLines by lazy {
|
||||
rawLogLines.mapValues { (_, lines) -> lines.toList() }
|
||||
}
|
||||
|
||||
override val logLines: Map<LogLevel, List<String>>
|
||||
get() = _logLines
|
||||
|
||||
private val _uniqueLogLines by lazy {
|
||||
rawLogLines.mapValues { (_, lines) -> lines.toSet() }
|
||||
}
|
||||
|
||||
override val uniqueLogLines: Map<LogLevel, Set<String>>
|
||||
get() = _uniqueLogLines
|
||||
|
||||
var maxLogLevel: LogLevel = LogLevel.ERROR
|
||||
private set
|
||||
var expectedResult = CompilationResult.COMPILATION_SUCCESS
|
||||
|
||||
+3
-1
@@ -8,7 +8,9 @@ package org.jetbrains.kotlin.buildtools.api.tests.compilation.model
|
||||
import org.jetbrains.kotlin.buildtools.api.CompilationResult
|
||||
|
||||
interface CompilationOutcome {
|
||||
val logLines: Map<LogLevel, Collection<String>>
|
||||
val logLines: Map<LogLevel, List<String>>
|
||||
|
||||
val uniqueLogLines: Map<LogLevel, Set<String>>
|
||||
|
||||
fun requireLogLevel(logLevel: LogLevel)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user