IJ-CR-120448 [FCF] cleanup: replaced ignoring or patching of FileComparisonFailure by FileComparisonData in client code

GitOrigin-RevId: 7e3f3d9408befe5f73886f0363d861196875ef33
This commit is contained in:
Sergei Vorobyov
2023-12-12 10:40:53 +01:00
committed by intellij-monorepo-bot
parent 2a1d1eba6a
commit 0528486804
15 changed files with 81 additions and 60 deletions

View File

@@ -8,7 +8,7 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.platform.testFramework.core.FileComparisonFailedError;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.rt.execution.junit.FileComparisonFailure;
import com.intellij.rt.execution.junit.FileComparisonData;
import com.intellij.spellchecker.inspections.SpellCheckingInspection;
import com.intellij.testFramework.ExpectedHighlightingData;
import com.intellij.testFramework.fixtures.impl.JavaCodeInsightTestFixtureImpl;
@@ -112,9 +112,14 @@ public abstract class AbstractKotlinHighlightVisitorTest extends KotlinLightCode
data.init();
return ((JavaCodeInsightTestFixtureImpl)myFixture).collectAndCheckHighlighting(data);
}
catch (FileComparisonFailure e) {
throw new FileComparisonFailedError(e.getMessage(), e.getExpectedStringPresentation(), e.getActualStringPresentation(),
new File(e.getFilePath()).getAbsolutePath());
catch (AssertionError e) {
if (!(e instanceof FileComparisonData fcf)) throw e;
throw new FileComparisonFailedError(
e.getMessage(),
fcf.getExpectedStringPresentation(),
fcf.getActualStringPresentation(),
new File(fcf.getFilePath()).getAbsolutePath()
);
}
});
}

View File

@@ -1,7 +1,7 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.kotlin.idea
import com.intellij.rt.execution.junit.FileComparisonFailure
import com.intellij.rt.execution.junit.FileComparisonData
import com.intellij.testFramework.LightProjectDescriptor
import com.intellij.testFramework.fixtures.CodeInsightTestUtil
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
@@ -20,12 +20,14 @@ abstract class AbstractWorkSelectionTest : KotlinLightCodeInsightFixtureTestCase
try {
CodeInsightTestUtil.doWordSelectionTest(myFixture, dirName + File.separator + "0.kt", *afterFiles)
} catch (error: FileComparisonFailure) {
wrapToFileComparisonFailure(error.filePath)
} catch (error: AssertionError) {
val message = error.message
val path = message!!.substring(0, message.indexOf(":"))
wrapToFileComparisonFailure(path)
if (error is FileComparisonData) {
wrapToFileComparisonFailure(error.filePath)
} else {
val message = error.message
val path = message!!.substring(0, message.indexOf(":"))
wrapToFileComparisonFailure(path)
}
}
}

View File

@@ -5,7 +5,7 @@ import com.intellij.execution.RunManager
import com.intellij.execution.impl.RunManagerImpl
import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl
import com.intellij.java.codeInsight.navigation.MockGradleRunConfiguration
import com.intellij.rt.execution.junit.FileComparisonFailure
import com.intellij.rt.execution.junit.FileComparisonData
import com.intellij.testFramework.ExtensionTestUtil.maskExtensions
import com.intellij.testIntegration.TestFramework
import org.jetbrains.kotlin.idea.testIntegration.framework.KotlinPsiBasedTestFramework
@@ -19,7 +19,7 @@ abstract class AbstractKotlinPsiBasedTestFrameworkTest : AbstractLineMarkersTest
doRunTest(false) {
try {
super.doTest(path) {}
} catch (e: FileComparisonFailure) {
} catch (e: AssertionError) {
checkSuppressions("LIGHT_CLASS_FALLBACK", e)
}
}
@@ -41,7 +41,7 @@ abstract class AbstractKotlinPsiBasedTestFrameworkTest : AbstractLineMarkersTest
runManager.selectedConfiguration = runnerAndConfigurationSettings
try {
super.doTest(path) {}
} catch (e : FileComparisonFailure) {
} catch (e : AssertionError) {
checkSuppressions("DISABLED_WITH_GRADLE_CONFIGURATION", e)
}
finally {
@@ -49,7 +49,8 @@ abstract class AbstractKotlinPsiBasedTestFrameworkTest : AbstractLineMarkersTest
}
}
private fun checkSuppressions(suppressionName : String, e: FileComparisonFailure) {
private fun checkSuppressions(suppressionName : String, e: AssertionError) {
if (e !is FileComparisonData) throw e
val lines = e.actualStringPresentation.split("\n")
e.message?.let { msg ->
val regex = "^${Regex.escapeReplacement(dataFile().name)}: missing \\((\\d+):".toRegex()

View File

@@ -13,10 +13,10 @@ import com.intellij.openapi.actionSystem.ex.ActionUtil
import com.intellij.openapi.editor.Document
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.io.FileUtil
import com.intellij.platform.testFramework.core.FileComparisonFailedError
import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.PsiFile
import com.intellij.platform.testFramework.core.FileComparisonFailedError
import com.intellij.rt.execution.junit.FileComparisonFailure
import com.intellij.rt.execution.junit.FileComparisonData
import com.intellij.testFramework.ExpectedHighlightingData
import com.intellij.testFramework.LightProjectDescriptor
import com.intellij.testFramework.UsefulTestCase
@@ -223,13 +223,15 @@ abstract class AbstractLineMarkersTest : KotlinLightCodeInsightFixtureTestCase()
if (FileUtil.loadFile(expectedFile).contains("<lineMarker") && markers.isEmpty()) {
throw AssertionError("Some line markers are expected, but nothing is present at all")
}
} catch (failure: FileComparisonFailure) {
throw failure
} catch (error: AssertionError) {
if (error is FileComparisonData) {
throw error
}
try {
val actualTextWithTestData = TagsTestDataUtil.insertInfoTags(markers, true, documentToAnalyze.text)
KotlinTestUtils.assertEqualsToFile(expectedFile, actualTextWithTestData)
} catch (failure: FileComparisonFailure) {
} catch (failure: AssertionError) {
if (failure !is FileComparisonData) throw failure
throw FileComparisonFailedError(
error.message + "\n" + failure.message,
failure.expectedStringPresentation,

View File

@@ -8,7 +8,7 @@ import com.intellij.openapi.actionSystem.Presentation
import com.intellij.openapi.actionSystem.ex.ActionUtil
import com.intellij.openapi.util.io.FileUtil
import com.intellij.refactoring.util.CommonRefactoringUtil
import com.intellij.rt.execution.junit.FileComparisonFailure
import com.intellij.rt.execution.junit.FileComparisonData
import com.intellij.testFramework.LightProjectDescriptor
import com.intellij.testFramework.TestActionEvent
import junit.framework.TestCase
@@ -96,7 +96,8 @@ abstract class AbstractCodeInsightActionTest : KotlinLightCodeInsightFixtureTest
myFixture.checkResult(FileUtil.loadFile(afterFile, true))
checkExtra()
}
} catch (e: FileComparisonFailure) {
} catch (e: AssertionError) {
if (e !is FileComparisonData) throw e
KotlinTestUtils.assertEqualsToFile(afterFile, myFixture.editor)
} catch (e: CommonRefactoringUtil.RefactoringErrorHintException) {
KotlinTestUtils.assertEqualsToFile(conflictFile, e.message!!)

View File

@@ -9,7 +9,7 @@ import com.intellij.lang.surroundWith.Surrounder;
import com.intellij.openapi.editor.SelectionModel;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.psi.PsiElement;
import com.intellij.rt.execution.junit.FileComparisonFailure;
import com.intellij.rt.execution.junit.FileComparisonData;
import kotlin.io.FilesKt;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -115,8 +115,8 @@ public abstract class AbstractSurroundWithTest extends KotlinLightCodeInsightFix
try {
String localPath = FilesKt.toRelativeString(new File(filePath), getTestDataDirectory());
myFixture.checkResultByFile(localPath);
}
catch (FileComparisonFailure fileComparisonFailure) {
} catch (AssertionError exception) {
if (!(exception instanceof FileComparisonData)) throw exception;
KotlinTestUtils.assertEqualsToFile(new File(filePath), getEditor());
}
}

View File

@@ -7,7 +7,7 @@ import com.intellij.codeInsight.folding.impl.JavaCodeFoldingSettingsImpl;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.rt.execution.junit.FileComparisonFailure;
import com.intellij.rt.execution.junit.FileComparisonData;
import com.intellij.platform.testFramework.core.FileComparisonFailedError;
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl;
import org.jetbrains.annotations.NotNull;
@@ -26,8 +26,14 @@ public abstract class AbstractKotlinFoldingTest extends KotlinLightCodeInsightFi
protected void doTest(@NotNull String path) {
try {
myFixture.testFolding(path);
} catch (FileComparisonFailure e) {
throw new FileComparisonFailedError(e.getMessage(), e.getExpectedStringPresentation(), e.getActualStringPresentation(), new File(e.getFilePath()).getAbsolutePath());
} catch (AssertionError e) {
if (!(e instanceof FileComparisonData fcf)) throw e;
throw new FileComparisonFailedError(
e.getMessage(),
fcf.getExpectedStringPresentation(),
fcf.getActualStringPresentation(),
new File(fcf.getFilePath()).getAbsolutePath()
);
}
}

View File

@@ -6,7 +6,7 @@ import com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl;
import com.intellij.codeInsight.daemon.impl.HighlightInfo;
import com.intellij.codeInspection.InspectionProfileEntry;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.rt.execution.junit.FileComparisonFailure;
import com.intellij.rt.execution.junit.FileComparisonData;
import com.intellij.testFramework.ExpectedHighlightingData;
import com.intellij.testFramework.InspectionTestUtil;
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl;
@@ -66,12 +66,14 @@ public abstract class AbstractHighlightingTest extends KotlinLightCodeInsightFix
return Unit.INSTANCE;
});
}
catch (FileComparisonFailure e) {
List<HighlightInfo> highlights =
DaemonCodeAnalyzerImpl.getHighlights(myFixture.getDocument(myFixture.getFile()), null, myFixture.getProject());
String text = myFixture.getFile().getText();
catch (AssertionError e) {
if (e instanceof FileComparisonData) {
List<HighlightInfo> highlights =
DaemonCodeAnalyzerImpl.getHighlights(myFixture.getDocument(myFixture.getFile()), null, myFixture.getProject());
String text = myFixture.getFile().getText();
System.out.println(TagsTestDataUtil.insertInfoTags(highlights, text));
System.out.println(TagsTestDataUtil.insertInfoTags(highlights, text));
}
throw e;
}
});

View File

@@ -12,7 +12,7 @@ import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.openapi.vfs.VirtualFileManager
import com.intellij.psi.PsiManager
import com.intellij.rt.execution.junit.FileComparisonFailure
import com.intellij.rt.execution.junit.FileComparisonData
import com.intellij.testFramework.ExpectedHighlightingData
import com.intellij.testFramework.TestDataPath
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl
@@ -133,11 +133,13 @@ class CompiledFilesHighlightingTest: KotlinLightCodeInsightFixtureTestCase() {
check()
}
}
} catch (e: FileComparisonFailure) {
val highlights =
DaemonCodeAnalyzerImpl.getHighlights(myFixture.getDocument(myFixture.getFile()), null, myFixture.getProject())
val text = myFixture.getFile().getText()
println(TagsTestDataUtil.insertInfoTags(highlights, text))
} catch (e: AssertionError) {
if (e is FileComparisonData) {
val highlights =
DaemonCodeAnalyzerImpl.getHighlights(myFixture.getDocument(myFixture.getFile()), null, myFixture.getProject())
val text = myFixture.getFile().getText()
println(TagsTestDataUtil.insertInfoTags(highlights, text))
}
throw e
}
}

View File

@@ -13,7 +13,7 @@ import com.intellij.openapi.application.runWriteAction
import com.intellij.openapi.util.JDOMUtil
import com.intellij.openapi.util.io.FileUtil
import com.intellij.profile.codeInspection.ProjectInspectionProfileManager
import com.intellij.rt.execution.junit.FileComparisonFailure
import com.intellij.rt.execution.junit.FileComparisonData
import com.intellij.testFramework.PlatformTestUtil.dispatchAllEventsInIdeEventQueue
import com.intellij.testFramework.PsiTestUtil
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl
@@ -301,7 +301,8 @@ abstract class AbstractLocalInspectionTest : KotlinLightCodeInsightFixtureTestCa
dispatchAllEventsInIdeEventQueue()
try {
myFixture.checkResultByFile("${afterFileAbsolutePath.fileName}")
} catch (e: FileComparisonFailure) {
} catch (e: AssertionError) {
if (e !is FileComparisonData) throw e
KotlinTestUtils.assertEqualsToFile(
File(testDataDirectory, "${afterFileAbsolutePath.fileName}"),
editor.document.text

View File

@@ -21,7 +21,7 @@ import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.PsiFile
import com.intellij.refactoring.BaseRefactoringProcessor
import com.intellij.refactoring.util.CommonRefactoringUtil
import com.intellij.rt.execution.junit.FileComparisonFailure
import com.intellij.rt.execution.junit.FileComparisonData
import com.intellij.testFramework.PsiTestUtil
import com.intellij.util.ThrowableRunnable
import junit.framework.TestCase
@@ -266,7 +266,8 @@ abstract class AbstractIntentionTestBase : KotlinLightCodeInsightFixtureTestCase
if (filePath == mainFilePath) {
try {
myFixture.checkResultByFile(canonicalPathToExpectedFile)
} catch (e: FileComparisonFailure) {
} catch (e: AssertionError) {
if (e !is FileComparisonData) throw e
KotlinTestUtils.assertEqualsToFile(afterFile, editor.document.text)
}
} else {

View File

@@ -20,7 +20,7 @@ import com.intellij.openapi.vfs.CharsetToolkit
import com.intellij.openapi.vfs.VfsUtil
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiFile
import com.intellij.rt.execution.junit.FileComparisonFailure
import com.intellij.rt.execution.junit.FileComparisonData
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl
import com.intellij.util.ArrayUtil
import com.intellij.util.PathUtil
@@ -28,13 +28,7 @@ import com.intellij.util.ThrowableRunnable
import junit.framework.TestCase
import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.idea.quickfix.utils.findInspectionFile
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils
import org.jetbrains.kotlin.idea.test.Directives
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
import org.jetbrains.kotlin.idea.test.KotlinTestUtils
import org.jetbrains.kotlin.idea.test.TestFiles
import org.jetbrains.kotlin.idea.test.runAll
import org.jetbrains.kotlin.idea.test.withCustomCompilerOptions
import org.jetbrains.kotlin.idea.test.*
import org.jetbrains.kotlin.idea.util.application.executeCommand
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.utils.IgnoreTests
@@ -247,7 +241,8 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest
val afterFilePath = beforeFileName.replace(".before.Main.", ".after.")
try {
myFixture.checkResultByFile(mainFile.name.replace(".before.Main.", ".after."))
} catch (e: FileComparisonFailure) {
} catch (e: AssertionError) {
if (e !is FileComparisonData) throw e
KotlinTestUtils.assertEqualsToFile(File(afterFilePath), editor)
}

View File

@@ -9,7 +9,7 @@ import com.intellij.openapi.ui.Messages
import com.intellij.openapi.ui.TestDialog
import com.intellij.openapi.ui.TestDialogManager
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.rt.execution.junit.FileComparisonFailure
import com.intellij.rt.execution.junit.FileComparisonData
import com.intellij.testFramework.IdeaTestUtil
import com.intellij.testFramework.UsefulTestCase
import junit.framework.TestCase
@@ -162,7 +162,8 @@ abstract class AbstractQuickFixMultiModuleTest : AbstractMultiModuleTest(), Quic
setActiveEditor(editedFile.findExistingEditor() ?: createEditor(editedFile.virtualFile))
try {
checkResultByFile(afterFileInTestData.relativeTo(File(testDataPath)).path)
} catch (e: FileComparisonFailure) {
} catch (e: AssertionError) {
if (e !is FileComparisonData) throw e
KotlinTestUtils.assertEqualsToFile(afterFileInTestData, editor)
}
}

View File

@@ -19,7 +19,7 @@ import com.intellij.refactoring.changeSignature.ChangeSignatureProcessor
import com.intellij.refactoring.changeSignature.ParameterInfoImpl
import com.intellij.refactoring.util.CanonicalTypes
import com.intellij.refactoring.util.CommonRefactoringUtil
import com.intellij.rt.execution.junit.FileComparisonFailure
import com.intellij.rt.execution.junit.FileComparisonData
import com.intellij.testFramework.LightProjectDescriptor
import com.intellij.util.VisibilityUtil
import org.jetbrains.kotlin.asJava.getRepresentativeLightMethod
@@ -231,7 +231,8 @@ abstract class BaseKotlinChangeSignatureTest<C: KotlinModifiableChangeInfo<P>, P
val afterFilePath: String = getAfterFilePath(file)
try {
myFixture.checkResultByFile(file, afterFilePath, true)
} catch (e: FileComparisonFailure) {
} catch (e: AssertionError) {
if (e !is FileComparisonData) throw e
KotlinTestUtils.assertEqualsToFile(File(testDataDirectory, afterFilePath), psiFile.text)
}

View File

@@ -28,7 +28,7 @@ import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.rt.execution.junit.FileComparisonFailure;
import com.intellij.rt.execution.junit.FileComparisonData;
import com.intellij.testFramework.*;
import com.intellij.testFramework.fixtures.IdeaProjectTestFixture;
import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory;
@@ -649,9 +649,10 @@ public abstract class MavenTestCase extends UsefulTestCase {
try {
assertSameLinesWithFile(filePath, expectedText);
}
catch (FileComparisonFailure e) {
String expected = e.getExpectedStringPresentation();
String actual = e.getActualStringPresentation();
catch (AssertionError e) {
if (!(e instanceof FileComparisonData fcf)) throw e;
String expected = fcf.getExpectedStringPresentation();
String actual = fcf.getActualStringPresentation();
assertUnorderedElementsAreEqual(expected.split("\n"), actual.split("\n"));
}
}