[FIR-TEST] Check control flow graph in old frontend diagnostic tests
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
+1
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user