[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()
checkDiagnostics(testDataFile, testFiles, allFirFiles)
checkFir(testDataFile, allFirFiles)
checkCfg(allFirFiles, testFiles, testDataFile)
}
protected fun checkCfg(
allFirFiles: List<FirFile>,
testFiles: List<TestFile>,
testDataFile: File
) {
checkCfgEdgeConsistency(allFirFiles)
if (testFiles.any { it.withDumpCfgDirective }) {
checkCfg(testDataFile, allFirFiles)
checkCfgDump(testDataFile, allFirFiles)
} else {
checkCfgDumpNotExists(testDataFile)
}
@@ -263,7 +271,7 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
return FirDiagnosticsCollector.create(session)
}
private fun checkCfg(testDataFile: File, firFiles: List<FirFile>) {
private fun checkCfgDump(testDataFile: File, firFiles: List<FirFile>) {
val builder = StringBuilder()
firFiles.first().accept(FirControlFlowGraphRenderVisitor(builder), null)
@@ -53,6 +53,7 @@ abstract class AbstractFirOldFrontendDiagnosticsTest : AbstractFirDiagnosticsTes
if (needDump) {
checkFir(testDataFile, allFirFiles)
}
checkCfg(allFirFiles, testFiles, testDataFile)
} else {
if (!failureFile.exists()) {
throw failure