From c231ecfe504029337f57cff5c44bdd7befcb7109 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Thu, 11 Feb 2016 18:28:21 +0300 Subject: [PATCH] [KT-4124] Fix the following: when test can't be compiled, sometimes JUnit reported that .js file was not found instead of reporting actual errors. --- .../jetbrains/kotlin/js/test/BasicTest.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java index 62f0b5f885b..70e91760045 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java @@ -29,10 +29,18 @@ import com.intellij.psi.PsiManager; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.backend.common.output.OutputFileCollection; +import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport; +import org.jetbrains.kotlin.cli.common.messages.MessageRenderer; +import org.jetbrains.kotlin.cli.common.messages.MessageSeverityCollector; +import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector; import org.jetbrains.kotlin.cli.common.output.outputUtils.OutputUtilsKt; import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; import org.jetbrains.kotlin.config.CompilerConfiguration; +import org.jetbrains.kotlin.diagnostics.Diagnostic; +import org.jetbrains.kotlin.diagnostics.DiagnosticUtils; +import org.jetbrains.kotlin.diagnostics.DiagnosticUtilsKt; +import org.jetbrains.kotlin.diagnostics.rendering.DiagnosticRendererUtilKt; import org.jetbrains.kotlin.idea.KotlinFileType; import org.jetbrains.kotlin.js.JavaScript; import org.jetbrains.kotlin.js.config.Config; @@ -47,11 +55,14 @@ import org.jetbrains.kotlin.js.test.utils.JsTestUtils; import org.jetbrains.kotlin.js.translate.context.Namer; import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.psi.KtPsiFactory; +import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics; import org.jetbrains.kotlin.resolve.lazy.KotlinTestWithEnvironment; import org.jetbrains.kotlin.test.KotlinTestUtils; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; +import java.io.PrintStream; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -193,7 +204,17 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { K2JSTranslator translator = new K2JSTranslator(config); TranslationResult translationResult = translator.translate(jetFiles, mainCallParameters); - if (!(translationResult instanceof TranslationResult.Success)) return; + if (!(translationResult instanceof TranslationResult.Success)) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + PrintingMessageCollector collector = new PrintingMessageCollector( + new PrintStream(outputStream), + MessageRenderer.PLAIN_FULL_PATHS, + true + ); + AnalyzerWithCompilerReport.Companion.reportDiagnostics(translationResult.getDiagnostics(), collector); + String messages = new String(outputStream.toByteArray(), "UTF-8"); + throw new AssertionError("The following errors occurred compiling test:\n" + messages); + } TranslationResult.Success successResult = (TranslationResult.Success) translationResult;