[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 beforePass()
protected abstract fun afterPass() protected abstract fun afterPass(pass: Int)
protected abstract fun processModule(moduleData: ModuleData): ProcessorAction protected abstract fun processModule(moduleData: ModuleData): ProcessorAction
protected fun runTestOnce(pass: Int) { 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.KotlinTestUtils
import org.jetbrains.kotlin.test.TestJdkKind import org.jetbrains.kotlin.test.TestJdkKind
import java.io.File import java.io.File
import java.io.FileOutputStream
import java.io.PrintStream import java.io.PrintStream
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@@ -124,22 +125,46 @@ class FirResolveModularizedTotalKotlinTest : AbstractModularizedTest() {
if (DUMP_FIR) dump = MultiModuleHtmlFirDump(File(FIR_HTML_DUMP_PATH)) if (DUMP_FIR) dump = MultiModuleHtmlFirDump(File(FIR_HTML_DUMP_PATH))
} }
override fun afterPass() { override fun afterPass(pass: Int) {
bench.report(System.out, errorTypeReports = false) bench.report(System.out, errorTypeReports = false)
saveReport() saveReport(pass)
if (FAIL_FAST) { if (FAIL_FAST) {
bench.throwFailure() 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() if (DUMP_FIR) dump.finish()
val format = SimpleDateFormat("yyyy-MM-dd__HH-mm") PrintStream(
val logDir = File(FIR_LOGS_PATH) FileOutputStream(
logDir.mkdirs() reportDir().resolve("report-$reportDateStr.log"),
PrintStream(logDir.resolve("report-${format.format(Date())}.log").outputStream()).use { stream -> true
)
).use { stream ->
val sep = "=".repeat(10)
stream.println("$sep PASS $pass $sep")
bench.report(stream) 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() {} override fun beforePass() {}
fun testTotalKotlin() { fun testTotalKotlin() {