[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>) {
|
fun CompilationOutcome.assertLogContainsLines(logLevel: LogLevel, expectedLines: Set<String>) {
|
||||||
requireLogLevel(logLevel)
|
requireLogLevel(logLevel)
|
||||||
val absentLines = expectedLines.filter { !logLines.getValue(logLevel).contains(it) }
|
val absentLines = expectedLines.filter { !uniqueLogLines.getValue(logLevel).contains(it) }
|
||||||
assert(absentLines.isEmpty()) {
|
assert(absentLines.isEmpty()) {
|
||||||
"""
|
"""
|
||||||
|The following lines were expected to be printed on $logLevel level, however they were not:
|
|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>) {
|
fun CompilationOutcome.assertLogDoesNotContainLines(logLevel: LogLevel, expectedLines: Set<String>) {
|
||||||
requireLogLevel(logLevel)
|
requireLogLevel(logLevel)
|
||||||
val presentLines = expectedLines.filter { logLines.getValue(logLevel).contains(it) }
|
val presentLines = expectedLines.filter { uniqueLogLines.getValue(logLevel).contains(it) }
|
||||||
assert(presentLines.isEmpty()) {
|
assert(presentLines.isEmpty()) {
|
||||||
"""
|
"""
|
||||||
|The following lines were not expected to be printed on $logLevel level, however they were:
|
|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
|
import java.nio.file.Path
|
||||||
|
|
||||||
private class CompilationOutcomeImpl(
|
private class CompilationOutcomeImpl(
|
||||||
override val logLines: Map<LogLevel, Collection<String>>,
|
rawLogLines: Map<LogLevel, Collection<String>>,
|
||||||
) : CompilationOutcome {
|
) : 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
|
var maxLogLevel: LogLevel = LogLevel.ERROR
|
||||||
private set
|
private set
|
||||||
var expectedResult = CompilationResult.COMPILATION_SUCCESS
|
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
|
import org.jetbrains.kotlin.buildtools.api.CompilationResult
|
||||||
|
|
||||||
interface CompilationOutcome {
|
interface CompilationOutcome {
|
||||||
val logLines: Map<LogLevel, Collection<String>>
|
val logLines: Map<LogLevel, List<String>>
|
||||||
|
|
||||||
|
val uniqueLogLines: Map<LogLevel, Set<String>>
|
||||||
|
|
||||||
fun requireLogLevel(logLevel: LogLevel)
|
fun requireLogLevel(logLevel: LogLevel)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user