Extract output handlers in visualiser's tests to separate files
This commit is contained in:
committed by
TeamCityServer
parent
6a439ad186
commit
de351d8bd3
+1
-32
@@ -5,45 +5,14 @@
|
||||
|
||||
package org.jetbrains.kotlin.visualizer.fir
|
||||
|
||||
import org.jetbrains.kotlin.compiler.visualizer.FirVisualizer
|
||||
import org.jetbrains.kotlin.test.Constructor
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirAnalysisHandler
|
||||
import org.jetbrains.kotlin.test.model.*
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.visualizer.AbstractVisualizerTest
|
||||
import org.jetbrains.kotlin.visualizer.VisualizerDirectives
|
||||
import java.io.File
|
||||
|
||||
abstract class AbstractFirVisualizerTest : AbstractVisualizerTest() {
|
||||
override val frontendKind: FrontendKind<*> = FrontendKinds.FIR
|
||||
override val frontendFacade: Constructor<FrontendFacade<*>> = ::FirFrontendFacade
|
||||
override val handler: Constructor<FrontendOutputHandler<*>> = ::FirOutputHandler
|
||||
|
||||
override val handler: Constructor<FrontendOutputHandler<*>> = {
|
||||
object : FirAnalysisHandler(it) {
|
||||
override fun processModule(module: TestModule, info: FirOutputArtifact) {
|
||||
val renderer = FirVisualizer(info.firFiles.values.first())
|
||||
val firRenderResult = renderer.render()
|
||||
|
||||
val replaceFrom = module.directives[VisualizerDirectives.TEST_FILE_PATH].first()
|
||||
val replaceTo = module.directives[VisualizerDirectives.EXPECTED_FILE_PATH].first()
|
||||
val path = module.files.first().originalFile.absolutePath.replace(replaceFrom, replaceTo)
|
||||
val expectedText = File(path).readLines()
|
||||
if (expectedText[0].startsWith("// FIR_IGNORE")) {
|
||||
assertions.assertFalse(expectedText.drop(1).joinToString("\n") == firRenderResult.trim()) {
|
||||
"Files are identical, please delete ignore directive"
|
||||
}
|
||||
return
|
||||
}
|
||||
assertions.assertEqualsToFile(File(path), firRenderResult) { text ->
|
||||
text.replace("// FIR_IGNORE\n", "")
|
||||
}
|
||||
}
|
||||
|
||||
override fun processAfterAllModules(someAssertionWasFailed: Boolean) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.visualizer.fir
|
||||
|
||||
import org.jetbrains.kotlin.compiler.visualizer.FirVisualizer
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirAnalysisHandler
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.visualizer.VisualizerDirectives
|
||||
import java.io.File
|
||||
|
||||
internal class FirOutputHandler(testServices: TestServices) : FirAnalysisHandler(testServices) {
|
||||
override fun processModule(module: TestModule, info: FirOutputArtifact) {
|
||||
val renderer = FirVisualizer(info.firFiles.values.first())
|
||||
val firRenderResult = renderer.render()
|
||||
|
||||
val replaceFrom = module.directives[VisualizerDirectives.TEST_FILE_PATH].first()
|
||||
val replaceTo = module.directives[VisualizerDirectives.EXPECTED_FILE_PATH].first()
|
||||
val path = module.files.first().originalFile.absolutePath.replace(replaceFrom, replaceTo)
|
||||
val expectedText = File(path).readLines()
|
||||
if (expectedText[0].startsWith("// FIR_IGNORE")) {
|
||||
assertions.assertFalse(expectedText.drop(1).joinToString("\n") == firRenderResult.trim()) {
|
||||
"Files are identical, please delete ignore directive"
|
||||
}
|
||||
return
|
||||
}
|
||||
assertions.assertEqualsToFile(File(path), firRenderResult) { text ->
|
||||
text.replace("// FIR_IGNORE\n", "")
|
||||
}
|
||||
}
|
||||
|
||||
override fun processAfterAllModules(someAssertionWasFailed: Boolean) {}
|
||||
}
|
||||
+1
-26
@@ -5,38 +5,13 @@
|
||||
|
||||
package org.jetbrains.kotlin.visualizer.psi
|
||||
|
||||
import org.jetbrains.kotlin.compiler.visualizer.PsiVisualizer
|
||||
import org.jetbrains.kotlin.test.Constructor
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicFrontendAnalysisHandler
|
||||
import org.jetbrains.kotlin.test.model.*
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.visualizer.AbstractVisualizerTest
|
||||
import org.jetbrains.kotlin.visualizer.VisualizerDirectives
|
||||
import java.io.File
|
||||
|
||||
abstract class AbstractPsiVisualizerTest : AbstractVisualizerTest() {
|
||||
override val frontendKind: FrontendKind<*> = FrontendKinds.ClassicFrontend
|
||||
override val frontendFacade: Constructor<FrontendFacade<*>> = ::ClassicFrontendFacade
|
||||
|
||||
override val handler: Constructor<FrontendOutputHandler<*>> = {
|
||||
object : ClassicFrontendAnalysisHandler(it) {
|
||||
override fun processModule(module: TestModule, info: ClassicFrontendOutputArtifact) {
|
||||
val renderer = PsiVisualizer(info.ktFiles.values.first(), info.analysisResult)
|
||||
val psiRenderResult = renderer.render()
|
||||
|
||||
val replaceFrom = module.directives[VisualizerDirectives.TEST_FILE_PATH].first()
|
||||
val replaceTo = module.directives[VisualizerDirectives.EXPECTED_FILE_PATH].first()
|
||||
val path = module.files.first().originalFile.absolutePath.replace(replaceFrom, replaceTo)
|
||||
assertions.assertEqualsToFile(File(path), psiRenderResult) { text ->
|
||||
text.replace("// FIR_IGNORE\n", "")
|
||||
}
|
||||
}
|
||||
|
||||
override fun processAfterAllModules(someAssertionWasFailed: Boolean) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
override val handler: Constructor<FrontendOutputHandler<*>> = ::PsiOutputHandler
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.visualizer.psi
|
||||
|
||||
import org.jetbrains.kotlin.compiler.visualizer.PsiVisualizer
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicFrontendAnalysisHandler
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.visualizer.VisualizerDirectives
|
||||
import java.io.File
|
||||
|
||||
internal class PsiOutputHandler(testServices: TestServices) : ClassicFrontendAnalysisHandler(testServices) {
|
||||
override fun processModule(module: TestModule, info: ClassicFrontendOutputArtifact) {
|
||||
val renderer = PsiVisualizer(info.ktFiles.values.first(), info.analysisResult)
|
||||
val psiRenderResult = renderer.render()
|
||||
|
||||
val replaceFrom = module.directives[VisualizerDirectives.TEST_FILE_PATH].first()
|
||||
val replaceTo = module.directives[VisualizerDirectives.EXPECTED_FILE_PATH].first()
|
||||
val path = module.files.first().originalFile.absolutePath.replace(replaceFrom, replaceTo)
|
||||
assertions.assertEqualsToFile(File(path), psiRenderResult) { text ->
|
||||
text.replace("// FIR_IGNORE\n", "")
|
||||
}
|
||||
}
|
||||
|
||||
override fun processAfterAllModules(someAssertionWasFailed: Boolean) {}
|
||||
}
|
||||
Reference in New Issue
Block a user