Edit light tree to FIR benchmarks to support off stub mode
This commit is contained in:
committed by
Mikhail Glukhikh
parent
c8c37fd86e
commit
b5293e7df7
+3
@@ -24,6 +24,9 @@ abstract class AbstractBenchmark {
|
|||||||
private val files = mutableMapOf<File, String>()
|
private val files = mutableMapOf<File, String>()
|
||||||
abstract val generator: TreeGenerator
|
abstract val generator: TreeGenerator
|
||||||
|
|
||||||
|
@Param("true", "false")
|
||||||
|
var stubMode: Boolean = false
|
||||||
|
|
||||||
protected fun readFiles(ignoreTestData: Boolean, path: String) {
|
protected fun readFiles(ignoreTestData: Boolean, path: String) {
|
||||||
println("BASE PATH: $path")
|
println("BASE PATH: $path")
|
||||||
val saveText: (File) -> Unit = { file ->
|
val saveText: (File) -> Unit = { file ->
|
||||||
|
|||||||
+1
-1
@@ -30,6 +30,6 @@ abstract class AbstractBenchmarkForGivenPath(
|
|||||||
|
|
||||||
@Benchmark
|
@Benchmark
|
||||||
fun testBuildFirForGivenPath() {
|
fun testBuildFirForGivenPath() {
|
||||||
forEachFile { text, file -> generator.generateFir(text, file) }
|
forEachFile { text, file -> generator.generateFir(text, file, stubMode) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -53,7 +53,7 @@ abstract class AbstractKotlinBenchmark : AbstractBenchmark() {
|
|||||||
|
|
||||||
@Benchmark
|
@Benchmark
|
||||||
fun testCreatedFiles() {
|
fun testCreatedFiles() {
|
||||||
generator.generateFir(text, file)
|
generator.generateFir(text, file, stubMode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-8
@@ -16,25 +16,20 @@ import java.io.File
|
|||||||
|
|
||||||
@State(Scope.Benchmark)
|
@State(Scope.Benchmark)
|
||||||
open class LightTree2FirGenerator : TreeGenerator, AbstractRawFirBuilderTestCase() {
|
open class LightTree2FirGenerator : TreeGenerator, AbstractRawFirBuilderTestCase() {
|
||||||
private lateinit var lightTreeConverter: LightTree2Fir
|
|
||||||
|
|
||||||
override fun generateBaseTree(text: String, file: File) {
|
override fun generateBaseTree(text: String, file: File) {
|
||||||
|
val lightTreeConverter = LightTree2Fir(false, myProject)
|
||||||
val lightTree = lightTreeConverter.buildLightTree(text)
|
val lightTree = lightTreeConverter.buildLightTree(text)
|
||||||
DebugUtil.lightTreeToString(lightTree, false)
|
DebugUtil.lightTreeToString(lightTree, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun generateFir(text: String, file: File) {
|
override fun generateFir(text: String, file: File, stubMode: Boolean) {
|
||||||
|
val lightTreeConverter = LightTree2Fir(stubMode, myProject)
|
||||||
val firFile = lightTreeConverter.buildFirFile(text, file.name)
|
val firFile = lightTreeConverter.buildFirFile(text, file.name)
|
||||||
StringBuilder().also { FirRenderer(it).visitFile(firFile) }.toString()
|
StringBuilder().also { FirRenderer(it).visitFile(firFile) }.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createConverter() {
|
|
||||||
lightTreeConverter = LightTree2Fir(true, myProject)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setUp() {
|
override fun setUp() {
|
||||||
super.setUp()
|
super.setUp()
|
||||||
createConverter()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun tearDown() {
|
override fun tearDown() {
|
||||||
|
|||||||
+2
-2
@@ -22,9 +22,9 @@ open class Psi2FirGenerator : TreeGenerator, AbstractRawFirBuilderTestCase() {
|
|||||||
DebugUtil.psiTreeToString(ktFile, false)
|
DebugUtil.psiTreeToString(ktFile, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun generateFir(text: String, file: File) {
|
override fun generateFir(text: String, file: File, stubMode: Boolean) {
|
||||||
val ktFile = createPsiFile(FileUtil.getNameWithoutExtension(PathUtil.getFileName(file.path)), text) as KtFile
|
val ktFile = createPsiFile(FileUtil.getNameWithoutExtension(PathUtil.getFileName(file.path)), text) as KtFile
|
||||||
val firFile = ktFile.toFirFile(stubMode = true)
|
val firFile = ktFile.toFirFile(stubMode)
|
||||||
StringBuilder().also { FirRenderer(it).visitFile(firFile) }.toString()
|
StringBuilder().also { FirRenderer(it).visitFile(firFile) }.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ import java.io.File
|
|||||||
|
|
||||||
interface TreeGenerator {
|
interface TreeGenerator {
|
||||||
fun generateBaseTree(text: String, file: File)
|
fun generateBaseTree(text: String, file: File)
|
||||||
fun generateFir(text: String, file: File)
|
fun generateFir(text: String, file: File, stubMode: Boolean)
|
||||||
fun setUp()
|
fun setUp()
|
||||||
fun tearDown()
|
fun tearDown()
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user