[FIR-TEST] Check control flow graph in old frontend diagnostic tests

This commit is contained in:
Dmitriy Novozhilov
2020-06-17 13:21:54 +03:00
parent 12ed8c3bb4
commit 4e2e05e689
2 changed files with 11 additions and 2 deletions
@@ -83,9 +83,17 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
val allFirFiles = firFilesPerSession.values.flatten() val allFirFiles = firFilesPerSession.values.flatten()
checkDiagnostics(testDataFile, testFiles, allFirFiles) checkDiagnostics(testDataFile, testFiles, allFirFiles)
checkFir(testDataFile, allFirFiles) checkFir(testDataFile, allFirFiles)
checkCfg(allFirFiles, testFiles, testDataFile)
}
protected fun checkCfg(
allFirFiles: List<FirFile>,
testFiles: List<TestFile>,
testDataFile: File
) {
checkCfgEdgeConsistency(allFirFiles) checkCfgEdgeConsistency(allFirFiles)
if (testFiles.any { it.withDumpCfgDirective }) { if (testFiles.any { it.withDumpCfgDirective }) {
checkCfg(testDataFile, allFirFiles) checkCfgDump(testDataFile, allFirFiles)
} else { } else {
checkCfgDumpNotExists(testDataFile) checkCfgDumpNotExists(testDataFile)
} }
@@ -263,7 +271,7 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
return FirDiagnosticsCollector.create(session) return FirDiagnosticsCollector.create(session)
} }
private fun checkCfg(testDataFile: File, firFiles: List<FirFile>) { private fun checkCfgDump(testDataFile: File, firFiles: List<FirFile>) {
val builder = StringBuilder() val builder = StringBuilder()
firFiles.first().accept(FirControlFlowGraphRenderVisitor(builder), null) firFiles.first().accept(FirControlFlowGraphRenderVisitor(builder), null)
@@ -53,6 +53,7 @@ abstract class AbstractFirOldFrontendDiagnosticsTest : AbstractFirDiagnosticsTes
if (needDump) { if (needDump) {
checkFir(testDataFile, allFirFiles) checkFir(testDataFile, allFirFiles)
} }
checkCfg(allFirFiles, testFiles, testDataFile)
} else { } else {
if (!failureFile.exists()) { if (!failureFile.exists()) {
throw failure throw failure