[FIR IDE] Ensure prefixed test output file differs from the default one
This commit is contained in:
+1
-1
@@ -27,6 +27,6 @@ abstract class AbstractExpressionPsiTypeProviderTest : AbstractHLApiSingleFileTe
|
||||
appendLine("PsiType: $psiType")
|
||||
}
|
||||
}
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -43,6 +43,6 @@ abstract class AbstractFirGetSuperTypesTest : AbstractHLApiSingleFileTest(FirFro
|
||||
}
|
||||
}
|
||||
}
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
}
|
||||
+1
-3
@@ -25,8 +25,6 @@ abstract class AbstractHLImportOptimizerTest : AbstractHLApiSingleModuleTest(Fir
|
||||
unusedImportPaths.forEach(::appendLine)
|
||||
}
|
||||
|
||||
val expectedUnusedImports = testDataFileSibling(".imports")
|
||||
|
||||
testServices.assertions.assertEqualsToFile(expectedUnusedImports, actualUnusedImports)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actualUnusedImports, extension = ".imports")
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -44,7 +44,7 @@ abstract class AbstractPsiTypeProviderTest : AbstractHLApiSingleFileTest(FirFron
|
||||
}
|
||||
}
|
||||
}
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
|
||||
private fun getContainingKtLightClass(
|
||||
|
||||
+22
-2
@@ -11,6 +11,7 @@ import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.testFramework.TestDataFile
|
||||
import junit.framework.ComparisonFailure
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -76,11 +77,30 @@ abstract class AbstractFrontendApiTest(val configurator: FrontendApiTestConfigur
|
||||
|
||||
protected abstract fun doTestByFileStructure(ktFiles: List<KtFile>, moduleStructure: TestModuleStructure, testServices: TestServices)
|
||||
|
||||
protected fun testDataFileSibling(extension: String): Path {
|
||||
protected fun AssertionsService.assertEqualsToTestDataFileSibling(actual: String, extension: String = ".txt") {
|
||||
val testPrefix = configurator.testPrefix
|
||||
|
||||
val expectedFile = getTestDataFileSiblingPath(extension, testPrefix = testPrefix)
|
||||
assertEqualsToFile(expectedFile, actual)
|
||||
|
||||
if (testPrefix != null) {
|
||||
val expectedFileWithoutPrefix = getTestDataFileSiblingPath(extension, testPrefix = null)
|
||||
if (expectedFile != expectedFileWithoutPrefix) {
|
||||
try {
|
||||
assertEqualsToFile(expectedFileWithoutPrefix, actual)
|
||||
} catch (ignored: ComparisonFailure) {
|
||||
return
|
||||
}
|
||||
|
||||
throw AssertionError("\"$expectedFile\" has the same content as \"$expectedFileWithoutPrefix\". Delete the prefixed file.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getTestDataFileSiblingPath(extension: String, testPrefix: String?): Path {
|
||||
val extensionWithDot = "." + extension.removePrefix(".")
|
||||
val baseName = testDataPath.nameWithoutExtension
|
||||
|
||||
val testPrefix = configurator.testPrefix
|
||||
if (testPrefix != null) {
|
||||
val prefixedFile = testDataPath.resolveSibling("$baseName.$testPrefix$extensionWithDot")
|
||||
if (prefixedFile.exists()) {
|
||||
|
||||
+1
-1
@@ -61,7 +61,7 @@ abstract class AbstractReferenceResolveTest(configurator: FrontendApiTestConfigu
|
||||
}
|
||||
|
||||
val actual = "Resolved to:\n$resolvedTo"
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
|
||||
private fun findReferencesAtCaret(mainKtFile: KtFile, caretPosition: Int): List<KtReference> =
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ abstract class AbstractCompileTimeConstantEvaluatorTest(
|
||||
appendLine("constant_value: ${analyseForTest(expression) { constantValue?.stringRepresentation() }}")
|
||||
appendLine("constant: ${(constantValue as? KtLiteralConstantValue<*>)?.toConst()}")
|
||||
}
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
|
||||
private fun KtConstantValue.stringRepresentation(): String {
|
||||
|
||||
+1
-1
@@ -33,6 +33,6 @@ abstract class AbstractExpectedExpressionTypeTest(
|
||||
appendLine("expected type: $actualExpectedTypeText")
|
||||
}
|
||||
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -34,6 +34,6 @@ abstract class AbstractFunctionClassKindTest (
|
||||
appendLine("expected type: $type")
|
||||
appendLine("functionClassKind: $functionClassKind")
|
||||
}
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -26,6 +26,6 @@ abstract class AbstractHLExpressionTypeTest(configurator: FrontendApiTestConfigu
|
||||
appendLine("expression: ${expression.text}")
|
||||
appendLine("type: $type")
|
||||
}
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -29,6 +29,6 @@ abstract class AbstractHLSmartCastInfoTest(configurator: FrontendApiTestConfigur
|
||||
}
|
||||
}
|
||||
}
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -41,7 +41,7 @@ abstract class AbstractOverriddenDeclarationProviderTest(
|
||||
}
|
||||
}
|
||||
}
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
|
||||
private fun KtAnalysisSession.renderSignature(symbol: KtCallableSymbol): String = buildString {
|
||||
|
||||
+1
-1
@@ -36,6 +36,6 @@ abstract class AbstractRendererTest(configurator: FrontendApiTestConfiguratorSer
|
||||
}
|
||||
}
|
||||
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".rendered"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual, extension = ".rendered")
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -32,6 +32,6 @@ abstract class AbstractWhenMissingCasesTest(
|
||||
}
|
||||
}
|
||||
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -40,7 +40,7 @@ abstract class AbstractResolveCallTest(configurator: FrontendApiTestConfigurator
|
||||
resolveCall(expression)?.stringRepresentation()
|
||||
}
|
||||
} ?: "null"
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
|
||||
private fun KtAnalysisSession.resolveCall(element: PsiElement): KtCall? = when (element) {
|
||||
|
||||
+1
-1
@@ -37,6 +37,6 @@ abstract class AbstractFileScopeTest(configurator: FrontendApiTestConfiguratorSe
|
||||
}
|
||||
}
|
||||
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -56,7 +56,7 @@ abstract class AbstractSymbolTest(configurator: FrontendApiTestConfiguratorServi
|
||||
testServices: TestServices,
|
||||
) {
|
||||
val actual = pointersWithRendered.joinToString(separator = "\n") { it.rendered }
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
|
||||
private fun restoreSymbolsInOtherReadActionAndCompareResults(
|
||||
@@ -72,7 +72,7 @@ abstract class AbstractSymbolTest(configurator: FrontendApiTestConfiguratorServi
|
||||
}
|
||||
}
|
||||
val actual = restored.joinToString(separator = "\n")
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
interface Some
|
||||
abstract class My<T : Some> {
|
||||
abstract val x: T
|
||||
abstract val y: My<Some>.T
|
||||
abstract val z: My<Some>.T
|
||||
abstract fun foo(arg: T)
|
||||
abstract class Some : My<Some>.T
|
||||
open inner class T
|
||||
}
|
||||
Vendored
-9
@@ -1,9 +0,0 @@
|
||||
interface Some
|
||||
abstract class My<T : Some> {
|
||||
open inner class T
|
||||
abstract val x: T
|
||||
abstract fun foo(arg: T)
|
||||
abstract val y: My<Some>.T
|
||||
abstract val z: My<Some>.T
|
||||
abstract class Some : My<Some>.T
|
||||
}
|
||||
Vendored
-21
@@ -1,21 +0,0 @@
|
||||
KtConstructorSymbol:
|
||||
annotatedType: [] java/util/ArrayList<E>
|
||||
annotationClassIds: []
|
||||
annotations: []
|
||||
callableIdIfNonLocal: null
|
||||
containingClassIdIfNonLocal: java/util/ArrayList
|
||||
dispatchType: null
|
||||
hasStableParameterNames: false
|
||||
isExtension: false
|
||||
isPrimary: false
|
||||
origin: JAVA
|
||||
receiverType: null
|
||||
symbolKind: CLASS_MEMBER
|
||||
typeParameters: [
|
||||
KtTypeParameterSymbol(E)
|
||||
]
|
||||
valueParameters: [
|
||||
KtValueParameterSymbol(p0)
|
||||
]
|
||||
visibility: Public
|
||||
deprecationStatus: null
|
||||
-13
@@ -1,13 +0,0 @@
|
||||
KtSamConstructorSymbol:
|
||||
annotatedType: [] java/lang/Runnable
|
||||
callableIdIfNonLocal: java/lang/Runnable
|
||||
hasStableParameterNames: true
|
||||
isExtension: false
|
||||
name: Runnable
|
||||
origin: SAM_CONSTRUCTOR
|
||||
receiverType: null
|
||||
symbolKind: SAM_CONSTRUCTOR
|
||||
valueParameters: [
|
||||
KtValueParameterSymbol(function)
|
||||
]
|
||||
deprecationStatus: null
|
||||
+1
-1
@@ -99,7 +99,7 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingle
|
||||
}
|
||||
}
|
||||
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), resultBuilder.toString())
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(resultBuilder.toString())
|
||||
}
|
||||
|
||||
override val enableTestInDependedMode: Boolean = false
|
||||
|
||||
+2
-2
@@ -13,9 +13,9 @@ import org.jetbrains.kotlin.psi.KtAnnotated
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtFileAnnotationList
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.test.services.TestModuleStructure
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.assertions
|
||||
import org.jetbrains.kotlin.test.util.findElementByCommentPrefix
|
||||
|
||||
abstract class AbstractFirOnAirResolveTest : AbstractLowLevelApiSingleFileTest() {
|
||||
@@ -35,7 +35,7 @@ abstract class AbstractFirOnAirResolveTest : AbstractLowLevelApiSingleFileTest()
|
||||
check(resolveState is FirModuleResolveStateImpl)
|
||||
val firElement = LowLevelFirApiFacadeForResolveOnAir.onAirResolveElement(resolveState, place, onAir)
|
||||
val rendered = firElement.render(FirRenderer.RenderMode.WithResolvePhases)
|
||||
KotlinTestUtils.assertEqualsToFile(testDataFileSibling(".txt"), rendered)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(rendered)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ abstract class AbstractGetOrBuildFirTest : AbstractLowLevelApiSingleFileTest() {
|
||||
|FIR element rendered:
|
||||
|${render(fir)}""".trimMargin()
|
||||
}
|
||||
testServices.assertions.assertEqualsToFile(testDataFileSibling(".txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
|
||||
private fun getElementOfType(ktFile: KtFile, moduleStructure: TestModuleStructure, testServices: TestServices): PsiElement {
|
||||
|
||||
+2
-1
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.findDescendantOfType
|
||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.test.services.JUnit5Assertions
|
||||
import org.jetbrains.kotlin.test.services.TestModuleStructure
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.assertions
|
||||
@@ -124,7 +125,7 @@ abstract class AbstractPartialRawFirBuilderTestCase : AbstractLowLevelApiSingleF
|
||||
)
|
||||
|
||||
val firDump = firElement.render(FirRenderer.RenderMode.WithFqNames)
|
||||
KotlinTestUtils.assertEqualsToFile(testDataFileSibling(".txt"), firDump)
|
||||
JUnit5Assertions.assertEqualsToTestDataFileSibling(firDump)
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
+2
-1
@@ -15,13 +15,14 @@ import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.test.services.TestModuleStructure
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.assertions
|
||||
|
||||
abstract class AbstractInnerDeclarationsResolvePhaseTest : AbstractLowLevelApiSingleFileTest() {
|
||||
override fun doTestByFileStructure(ktFile: KtFile, moduleStructure: TestModuleStructure, testServices: TestServices) {
|
||||
resolveWithClearCaches(ktFile) { resolveState ->
|
||||
val firFile = ktFile.getOrBuildFirOfType<FirFile>(resolveState)
|
||||
val actual = firFile.render(FirRenderer.RenderMode.WithResolvePhases)
|
||||
KotlinTestUtils.assertEqualsToFile(testDataFileSibling(".fir.txt"), actual)
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual, extension = ".fir.txt")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user