[FIR-TEST] Add coroutines diagnostic tests from old FE to FIR test suite

This commit is contained in:
Dmitriy Novozhilov
2020-06-22 17:36:23 +03:00
parent d0affc6c6a
commit 6a9504f26a
159 changed files with 4638 additions and 26 deletions
@@ -281,6 +281,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
val testRunner = object : AbstractFirOldFrontendDiagnosticsTest() {
init {
environment = this@AbstractDiagnosticsTest.environment
coroutinesPackage = this@AbstractDiagnosticsTest.coroutinesPackage
}
}
if (testDataFile.readText().contains("// FIR_IDENTICAL")) {
@@ -4,6 +4,7 @@
*/
package org.jetbrains.kotlin.checkers
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.test.ConfigurationKind
import java.io.File
@@ -15,6 +16,6 @@ abstract class AbstractDiagnosticsTestWithStdLib : AbstractDiagnosticsTest() {
override fun shouldValidateFirTestData(testDataFile: File): Boolean {
val path = testDataFile.absolutePath
return !path.endsWith(".kts") && !path.contains("coroutines")
return !path.endsWith(".kts") && coroutinesPackage != DescriptorUtils.COROUTINES_PACKAGE_FQ_NAME_EXPERIMENTAL.asString()
}
}
@@ -64,10 +64,14 @@ import java.io.File
abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
companion object {
val DUMP_CFG_DIRECTIVE = "DUMP_CFG"
val COMMON_COROUTINES_DIRECTIVE ="COMMON_COROUTINES_TEST"
val TestFile.withDumpCfgDirective: Boolean
get() = DUMP_CFG_DIRECTIVE in directives
val TestFile.withCommonCoroutinesDirective: Boolean
get() = COMMON_COROUTINES_DIRECTIVE in directives
val File.cfgDumpFile: File
get() = File(absolutePath.replace(".kt", ".dot"))
}
@@ -110,7 +114,7 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
protected open fun checkDiagnostics(file: File, testFiles: List<TestFile>, firFiles: List<FirFile>) {
val diagnostics = collectDiagnostics(firFiles)
val actualText = StringBuilder()
val actualTextBuilder = StringBuilder()
for (testFile in testFiles) {
val firFile = firFiles.firstOrNull { it.psi == testFile.ktFile }
if (firFile != null) {
@@ -118,13 +122,17 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
collectDebugInfoDiagnostics(firFile, testFile.diagnosedRangesToDiagnosticNames)
testFile.getActualText(
diagnostics.getValue(firFile) + debugInfoDiagnostics,
actualText,
actualTextBuilder,
)
} else {
actualText.append(testFile.expectedText)
actualTextBuilder.append(testFile.expectedText)
}
}
KotlinTestUtils.assertEqualsToFile(file, actualText.toString())
var actualText = actualTextBuilder.toString()
if (testFiles.any { it.withCommonCoroutinesDirective }) {
actualText = actualText.replace(coroutinesPackage, "COROUTINES_PACKAGE")
}
KotlinTestUtils.assertEqualsToFile(file, actualText)
}
protected fun collectDebugInfoDiagnostics(