diff --git a/compiler/integration-tests/src/org/jetbrains/kotlin/KotlinIntegrationTestBase.java b/compiler/integration-tests/src/org/jetbrains/kotlin/KotlinIntegrationTestBase.java index 36e3b35ec62..30f1da52c5f 100644 --- a/compiler/integration-tests/src/org/jetbrains/kotlin/KotlinIntegrationTestBase.java +++ b/compiler/integration-tests/src/org/jetbrains/kotlin/KotlinIntegrationTestBase.java @@ -27,10 +27,9 @@ import com.intellij.execution.process.ProcessOutputTypes; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.SystemInfo; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.util.ArrayUtil; +import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.test.Tmpdir; import org.junit.ComparisonFailure; import org.junit.Rule; @@ -123,9 +122,8 @@ public abstract class KotlinIntegrationTestBase { fail("No .expected file " + expectedFile); } else { - String goldContent = FileUtil.loadFile(expectedFile, CharsetToolkit.UTF8, true); try { - assertEquals(goldContent, normalizedContent); + JetTestUtils.assertEqualsToFile(expectedFile, normalizedContent); actualFile.delete(); } catch (ComparisonFailure e) { diff --git a/compiler/tests/org/jetbrains/jet/JetTestUtils.java b/compiler/tests/org/jetbrains/jet/JetTestUtils.java index 770298aa8c5..bb7b3cc2dfd 100644 --- a/compiler/tests/org/jetbrains/jet/JetTestUtils.java +++ b/compiler/tests/org/jetbrains/jet/JetTestUtils.java @@ -23,12 +23,14 @@ import com.google.common.collect.Sets; import com.intellij.openapi.Disposable; import com.intellij.openapi.editor.Document; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.ShutDownTracker; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.psi.PsiFileFactory; import com.intellij.psi.impl.PsiFileFactoryImpl; +import com.intellij.rt.execution.junit.FileComparisonFailure; import com.intellij.testFramework.LightVirtualFile; import junit.framework.TestCase; import org.jetbrains.annotations.NonNls; @@ -380,12 +382,15 @@ public class JetTestUtils { FileUtil.writeToFile(expectedFile, actual); Assert.fail("Expected data file did not exist. Generating: " + expectedFile); } - String expected = FileUtil.loadFile(expectedFile, true); + String expected = FileUtil.loadFile(expectedFile, CharsetToolkit.UTF8, true); // compare with hard copy: make sure nothing is lost in output - Assert.assertEquals("Expected and actual namespaces differ from " + expectedFile.getName(), - StringUtil.convertLineSeparators(expected), - StringUtil.convertLineSeparators(actual)); + String expectedText = StringUtil.convertLineSeparators(expected); + String actualText = StringUtil.convertLineSeparators(actual); + if (!Comparing.equal(expectedText, actualText)) { + throw new FileComparisonFailure("Expected and actual namespaces differ from " + expectedFile.getName(), + expected, actual, expectedFile.getAbsolutePath()); + } } catch (IOException e) { throw new RuntimeException(e); diff --git a/compiler/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java b/compiler/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java index 327035d1a34..dddd33d727c 100644 --- a/compiler/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java +++ b/compiler/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java @@ -18,7 +18,6 @@ package org.jetbrains.jet.cfg; import com.google.common.collect.Sets; import com.intellij.openapi.util.io.FileUtil; -import com.intellij.openapi.util.text.StringUtil; import junit.framework.Test; import junit.framework.TestSuite; import org.jetbrains.annotations.NotNull; @@ -147,9 +146,8 @@ public class JetControlFlowTest extends JetLiteFixture { FileUtil.writeToFile(expectedInstructionsFile, instructionDump.toString()); fail("No expected instructions for " + name + " generated result is written into " + expectedInstructionsFileName); } - String expectedInstructions = StringUtil.convertLineSeparators(FileUtil.loadFile(expectedInstructionsFile)); - assertEquals(expectedInstructions, instructionDump.toString()); + JetTestUtils.assertEqualsToFile(expectedInstructionsFile, instructionDump.toString()); // StringBuilder graphDump = new StringBuilder(); // for (Pseudocode pseudocode : pseudocodes) { diff --git a/compiler/tests/org/jetbrains/jet/checkers/AbstractDiagnosticsTestWithEagerResolve.java b/compiler/tests/org/jetbrains/jet/checkers/AbstractDiagnosticsTestWithEagerResolve.java index e1f8722da85..7330d1beb83 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/AbstractDiagnosticsTestWithEagerResolve.java +++ b/compiler/tests/org/jetbrains/jet/checkers/AbstractDiagnosticsTestWithEagerResolve.java @@ -48,7 +48,7 @@ public abstract class AbstractDiagnosticsTestWithEagerResolve extends AbstractJe ok &= testFile.getActualText(bindingContext, actualText); } - assertEquals(expectedText, actualText.toString()); + assertSameLinesWithFile(testDataFile.getAbsolutePath(), actualText.toString()); assertTrue("Diagnostics mismatch. See the output above", ok); } diff --git a/compiler/tests/org/jetbrains/jet/modules/xml/AbstractModuleXmlParserTest.java b/compiler/tests/org/jetbrains/jet/modules/xml/AbstractModuleXmlParserTest.java index 398b6fdae22..dd06ec406ef 100644 --- a/compiler/tests/org/jetbrains/jet/modules/xml/AbstractModuleXmlParserTest.java +++ b/compiler/tests/org/jetbrains/jet/modules/xml/AbstractModuleXmlParserTest.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.modules.xml; import com.intellij.openapi.util.io.FileUtil; import junit.framework.TestCase; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.cli.common.messages.CompilerMessageLocation; import org.jetbrains.jet.cli.common.messages.CompilerMessageSeverity; import org.jetbrains.jet.cli.common.messages.MessageCollector; @@ -56,6 +57,6 @@ public abstract class AbstractModuleXmlParserTest extends TestCase { fail("Expected data file does not exist. A new file created: " + txtFile); } - assertEquals(FileUtil.loadFile(txtFile, true), actual); + JetTestUtils.assertEqualsToFile(txtFile, actual); } } diff --git a/idea/tests/org/jetbrains/jet/modules/xml/KotlinModuleXmlGeneratorTest.java b/idea/tests/org/jetbrains/jet/modules/xml/KotlinModuleXmlGeneratorTest.java index 672906dd89c..a2cfd26c09a 100644 --- a/idea/tests/org/jetbrains/jet/modules/xml/KotlinModuleXmlGeneratorTest.java +++ b/idea/tests/org/jetbrains/jet/modules/xml/KotlinModuleXmlGeneratorTest.java @@ -16,8 +16,6 @@ package org.jetbrains.jet.modules.xml; -import com.intellij.openapi.util.io.FileUtil; -import com.intellij.testFramework.UsefulTestCase; import junit.framework.TestCase; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.JetTestUtils; @@ -43,8 +41,7 @@ public class KotlinModuleXmlGeneratorTest extends TestCase { Arrays.asList(new File("s1"), new File("s2")), false, Collections.emptySet()).asText().toString(); - String expected = FileUtil.loadFile(new File("idea/testData/modules.xml/basic.xml")); - UsefulTestCase.assertSameLines(expected, actual); + JetTestUtils.assertEqualsToFile(new File("idea/testData/modules.xml/basic.xml"), actual); } public void testFiltered() throws Exception { @@ -61,8 +58,7 @@ public class KotlinModuleXmlGeneratorTest extends TestCase { Arrays.asList(new File("s1"), new File("s2")), false, Collections.singleton(new File("cp1"))).asText().toString(); - String expected = FileUtil.loadFile(new File("idea/testData/modules.xml/filtered.xml")); - UsefulTestCase.assertSameLines(expected, actual); + JetTestUtils.assertEqualsToFile(new File("idea/testData/modules.xml/filtered.xml"), actual); } public void testMultiple() throws Exception { diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java b/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java index cc5b44b76a5..da04b47cd20 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/changeSignature/JetChangeSignatureTest.java @@ -18,9 +18,7 @@ package org.jetbrains.jet.plugin.refactoring.changeSignature; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.util.Disposer; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.refactoring.BaseRefactoringProcessor; @@ -217,8 +215,7 @@ public class JetChangeSignatureTest extends LightCodeInsightTestCase { List messages = new ArrayList(e.getMessages()); Collections.sort(messages); File conflictsFile = new File(getTestDataPath() + getTestName(false) + "Messages.txt"); - String fileText = FileUtil.loadFile(conflictsFile, CharsetToolkit.UTF8, true); - assertEquals(fileText, StringUtil.join(messages, "\n")); + assertSameLinesWithFile(conflictsFile.getAbsolutePath(), StringUtil.join(messages, "\n")); return; } diff --git a/idea/tests/org/jetbrains/jet/safeDelete/AbstractJetSafeDeleteTest.java b/idea/tests/org/jetbrains/jet/safeDelete/AbstractJetSafeDeleteTest.java index d0b5fe7c898..ef89e54af9d 100644 --- a/idea/tests/org/jetbrains/jet/safeDelete/AbstractJetSafeDeleteTest.java +++ b/idea/tests/org/jetbrains/jet/safeDelete/AbstractJetSafeDeleteTest.java @@ -18,12 +18,9 @@ package org.jetbrains.jet.safeDelete; import com.intellij.codeInsight.TargetElementUtilBase; import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiMethod; -import com.intellij.psi.PsiParameter; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.refactoring.BaseRefactoringProcessor; import com.intellij.refactoring.safeDelete.SafeDeleteHandler; @@ -133,8 +130,7 @@ public abstract class AbstractJetSafeDeleteTest extends LightCodeInsightFixtureT try { SafeDeleteHandler.invoke(getProject(), new PsiElement[] {element}, null, true, null); for (int j = 0; j < filePaths.length; j++) { - String expectedText = FileUtil.loadFile(new File(filePaths[j] + ".after")); - assertEquals(StringUtil.convertLineSeparators(expectedText), editors[j].getDocument().getText()); + assertSameLinesWithFile(new File(filePaths[j] + ".after").getAbsolutePath(), editors[j].getDocument().getText()); } } catch (BaseRefactoringProcessor.ConflictsInTestsException e) { @@ -142,8 +138,7 @@ public abstract class AbstractJetSafeDeleteTest extends LightCodeInsightFixtureT Collections.sort(messages); File messageFile = new File(path + ".messages"); - String expectedMessage = FileUtil.loadFile(messageFile, CharsetToolkit.UTF8, true); - assertEquals(expectedMessage, StringUtil.join(messages, "\n")); + assertSameLinesWithFile(messageFile.getAbsolutePath(), StringUtil.join(messages, "\n")); } } }