[FIR] Group multiple pass logs into one

This commit is contained in:
Simon Ogorodnik
2019-08-26 15:31:58 +03:00
parent 4c246faddb
commit 9530389583
3 changed files with 35 additions and 10 deletions
@@ -81,7 +81,7 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() {
protected abstract fun beforePass()
protected abstract fun afterPass()
protected abstract fun afterPass(pass: Int)
protected abstract fun processModule(moduleData: ModuleData): ProcessorAction
protected fun runTestOnce(pass: Int) {
@@ -103,6 +103,6 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() {
}
}
afterPass()
afterPass(pass)
}
}
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.test.ConfigurationKind
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.TestJdkKind
import java.io.File
import java.io.FileOutputStream
import java.io.PrintStream
import java.text.SimpleDateFormat
import java.util.*
@@ -124,22 +125,46 @@ class FirResolveModularizedTotalKotlinTest : AbstractModularizedTest() {
if (DUMP_FIR) dump = MultiModuleHtmlFirDump(File(FIR_HTML_DUMP_PATH))
}
override fun afterPass() {
override fun afterPass(pass: Int) {
bench.report(System.out, errorTypeReports = false)
saveReport()
saveReport(pass)
if (FAIL_FAST) {
bench.throwFailure()
}
}
private fun saveReport() {
private val folderDateFormat = SimpleDateFormat("yyyy-MM-dd")
private lateinit var startDate: Date
override fun setUp() {
startDate = Date()
super.setUp()
}
private fun reportDir() = File(FIR_LOGS_PATH, folderDateFormat.format(startDate))
.also {
it.mkdirs()
}
private val reportDateStr by lazy {
val reportDateFormat = SimpleDateFormat("yyyy-MM-dd__HH-mm")
reportDateFormat.format(startDate)
}
private fun saveReport(pass: Int) {
if (DUMP_FIR) dump.finish()
val format = SimpleDateFormat("yyyy-MM-dd__HH-mm")
val logDir = File(FIR_LOGS_PATH)
logDir.mkdirs()
PrintStream(logDir.resolve("report-${format.format(Date())}.log").outputStream()).use { stream ->
PrintStream(
FileOutputStream(
reportDir().resolve("report-$reportDateStr.log"),
true
)
).use { stream ->
val sep = "=".repeat(10)
stream.println("$sep PASS $pass $sep")
bench.report(stream)
stream.println()
stream.println()
}
}
@@ -82,7 +82,7 @@ class NonFirResolveModularizedTotalKotlinTest : AbstractModularizedTest() {
}
override fun afterPass() {}
override fun afterPass(pass: Int) {}
override fun beforePass() {}
fun testTotalKotlin() {