Fix "/ by zero" in FirResolveBench & switch progress OFF in smoke tests

This commit is contained in:
Mikhail Glukhikh
2019-03-18 17:12:02 +03:00
parent 741bdccca5
commit 16f9eecb29
3 changed files with 12 additions and 5 deletions
@@ -77,6 +77,6 @@ class FirResolveTestTotalKotlin : AbstractFirResolveWithSessionTestCase() {
println("Raw FIR up, files: ${firFiles.size}")
doFirResolveTestBench(firFiles, totalTransformer.transformers)
doFirResolveTestBench(firFiles, totalTransformer.transformers, withProgress = true)
}
}
@@ -14,10 +14,16 @@ import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.psiUtil.startOffset
import kotlin.math.max
import kotlin.reflect.KClass
import kotlin.system.measureNanoTime
fun doFirResolveTestBench(firFiles: List<FirFile>, transformers: List<FirTransformer<Nothing?>>, gc: Boolean = true) {
fun doFirResolveTestBench(
firFiles: List<FirFile>,
transformers: List<FirTransformer<Nothing?>>,
gc: Boolean = true,
withProgress: Boolean = false
) {
if (gc) {
System.gc()
@@ -34,7 +40,8 @@ fun doFirResolveTestBench(firFiles: List<FirFile>, transformers: List<FirTransfo
try {
for ((stage, transformer) in transformers.withIndex()) {
println("Starting stage #$stage. $transformer")
for (firFile in firFiles.progress(" ~ ")) {
val firFileSequence = if (withProgress) firFiles.progress(" ~ ") else firFiles.asSequence()
for (firFile in firFileSequence) {
val time = measureNanoTime {
try {
transformer.transformFile(firFile, null)
@@ -120,7 +127,7 @@ fun doFirResolveTestBench(firFiles: List<FirFile>, transformers: List<FirTransfo
}
fun <T> Collection<T>.progress(label: String, step: Double = 0.1): Sequence<T> {
val intStep = (this.size * step).toInt()
val intStep = max(1, (this.size * step).toInt())
var progress = 0
return asSequence().onEach {
if (progress % intStep == 0) {
@@ -101,6 +101,6 @@ class FirTotalKotlinResolveInIdeTest : ModuleTestCase() {
}
println("Raw fir up, files: ${firFiles.size}")
doFirResolveTestBench(firFiles, FirTotalResolveTransformer().transformers)
doFirResolveTestBench(firFiles, FirTotalResolveTransformer().transformers, withProgress = true)
}
}