Fix "/ by zero" in FirResolveBench & switch progress OFF in smoke tests
This commit is contained in:
@@ -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) {
|
||||
|
||||
+1
-1
@@ -101,6 +101,6 @@ class FirTotalKotlinResolveInIdeTest : ModuleTestCase() {
|
||||
}
|
||||
|
||||
println("Raw fir up, files: ${firFiles.size}")
|
||||
doFirResolveTestBench(firFiles, FirTotalResolveTransformer().transformers)
|
||||
doFirResolveTestBench(firFiles, FirTotalResolveTransformer().transformers, withProgress = true)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user