From c3d3a90f6b4ead083d63e28e6b9fcea93d675678 Mon Sep 17 00:00:00 2001 From: Tor Norbye Date: Thu, 4 Sep 2014 13:24:04 -0700 Subject: Snapshot idea/138.1980 from git://git.jetbrains.org/idea/community.git Change-Id: Ib567c9c152d770212a7a3db20fbf591c210920bd --- .../sm/runner/SMTRunnerTreeStructure.java | 14 +++++++------- .../runner/states/TestComparisionFailedState.java | 21 ++++++++------------- .../sm/runner/states/TestFailedState.java | 4 +++- .../sm/runner/ui/TestsPresentationUtil.java | 19 +++++++++++++++++++ 4 files changed, 37 insertions(+), 21 deletions(-) (limited to 'platform/smRunner/src/com/intellij') diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/SMTRunnerTreeStructure.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/SMTRunnerTreeStructure.java index b740bb6a0ccc..7d15140c8de5 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/SMTRunnerTreeStructure.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/SMTRunnerTreeStructure.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -43,6 +43,11 @@ public class SMTRunnerTreeStructure extends AbstractTreeStructure public void commit() { } + @Override + public boolean hasSomethingToCommit() { + return false; + } + @NotNull @Override public SMTRunnerNodeDescriptor createDescriptor(final Object element, @@ -70,17 +75,12 @@ public class SMTRunnerTreeStructure extends AbstractTreeStructure return ((AbstractTestProxy)element).getParent(); } + @Override public Object getRootElement() { return myRootNode; } - - @Override - public boolean hasSomethingToCommit() { - return false; - } - public void setFilter(final Filter nodesFilter) { myTestNodesFilter = nodesFilter; } diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestComparisionFailedState.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestComparisionFailedState.java index 84b28a79c5e8..2d500115c038 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestComparisionFailedState.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestComparisionFailedState.java @@ -15,9 +15,11 @@ */ package com.intellij.execution.testframework.sm.runner.states; +import com.intellij.execution.process.ProcessOutputTypes; import com.intellij.execution.testframework.AbstractTestProxy; import com.intellij.execution.testframework.CompositePrintable; import com.intellij.execution.testframework.Printer; +import com.intellij.execution.testframework.sm.runner.ui.TestsPresentationUtil; import com.intellij.execution.testframework.stacktrace.DiffHyperlink; import com.intellij.execution.ui.ConsoleViewContentType; import com.intellij.openapi.project.Project; @@ -41,10 +43,8 @@ public class TestComparisionFailedState extends TestFailedState implements Abstr super(localizedMessage, stackTrace); myHyperlink = new DiffHyperlink(expectedText, actualText, null); - myErrorMsgPresentation = StringUtil.isEmptyOrSpaces(localizedMessage) ? "" - : localizedMessage; - myStacktracePresentation = StringUtil.isEmptyOrSpaces(stackTrace) ? "" - : stackTrace; + myErrorMsgPresentation = StringUtil.isEmptyOrSpaces(localizedMessage) ? "" : localizedMessage; + myStacktracePresentation = StringUtil.isEmptyOrSpaces(stackTrace) ? "" : stackTrace; } @Override @@ -53,20 +53,15 @@ public class TestComparisionFailedState extends TestFailedState implements Abstr printer.mark(); // Error msg - if (myErrorMsgPresentation != null) { - printer.print(myErrorMsgPresentation, ConsoleViewContentType.ERROR_OUTPUT); - } + TestsPresentationUtil.printWithAnsiColoring(printer, myErrorMsgPresentation, ProcessOutputTypes.STDERR); // Diff link myHyperlink.printOn(printer); // Stacktrace - if (myStacktracePresentation != null) { - printer.print(CompositePrintable.NEW_LINE, ConsoleViewContentType.ERROR_OUTPUT); - - printer.print(myStacktracePresentation, ConsoleViewContentType.ERROR_OUTPUT); - printer.print(CompositePrintable.NEW_LINE, ConsoleViewContentType.ERROR_OUTPUT); - } + printer.print(CompositePrintable.NEW_LINE, ConsoleViewContentType.ERROR_OUTPUT); + TestsPresentationUtil.printWithAnsiColoring(printer, myStacktracePresentation, ProcessOutputTypes.STDERR); + printer.print(CompositePrintable.NEW_LINE, ConsoleViewContentType.ERROR_OUTPUT); } public void openDiff(final Project project) { diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestFailedState.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestFailedState.java index 8906bd1867a9..712f6fc35dbf 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestFailedState.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestFailedState.java @@ -15,8 +15,10 @@ */ package com.intellij.execution.testframework.sm.runner.states; +import com.intellij.execution.process.ProcessOutputTypes; import com.intellij.execution.testframework.CompositePrintable; import com.intellij.execution.testframework.Printer; +import com.intellij.execution.testframework.sm.runner.ui.TestsPresentationUtil; import com.intellij.execution.ui.ConsoleViewContentType; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.containers.ContainerUtilRt; @@ -75,7 +77,7 @@ public class TestFailedState extends AbstractState { printer.mark(); addMark = false; } - printer.print(errorText, ConsoleViewContentType.ERROR_OUTPUT); + TestsPresentationUtil.printWithAnsiColoring(printer, errorText, ProcessOutputTypes.STDERR); } } } diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java index 7cb42773f735..d36250191b09 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java @@ -15,14 +15,19 @@ */ package com.intellij.execution.testframework.sm.runner.ui; +import com.intellij.execution.process.AnsiEscapeDecoder; +import com.intellij.execution.process.ProcessOutputTypes; import com.intellij.execution.testframework.PoolOfTestIcons; +import com.intellij.execution.testframework.Printer; import com.intellij.execution.testframework.TestConsoleProperties; import com.intellij.execution.testframework.TestsUIUtil; import com.intellij.execution.testframework.sm.SMTestsRunnerBundle; import com.intellij.execution.testframework.sm.runner.SMTestProxy; import com.intellij.execution.testframework.sm.runner.states.TestStateInfo; import com.intellij.execution.testframework.ui.TestsProgressAnimator; +import com.intellij.execution.ui.ConsoleViewContentType; import com.intellij.icons.AllIcons; +import com.intellij.openapi.util.Key; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.ColoredTableCellRenderer; import com.intellij.ui.SimpleTextAttributes; @@ -448,4 +453,18 @@ public class TestsPresentationUtil { break; } } + + public static void printWithAnsiColoring(@NotNull final Printer printer, @NotNull String text, @NotNull final Key processOutputType) { + AnsiEscapeDecoder decoder = new AnsiEscapeDecoder(); + decoder.escapeText(text, ProcessOutputTypes.STDOUT, new AnsiEscapeDecoder.ColoredTextAcceptor() { + @Override + public void coloredTextAvailable(String text, Key attributes) { + ConsoleViewContentType contentType = ConsoleViewContentType.getConsoleViewType(attributes); + if (contentType == null || contentType == ConsoleViewContentType.NORMAL_OUTPUT) { + contentType = ConsoleViewContentType.getConsoleViewType(processOutputType); + } + printer.print(text, contentType); + } + }); + } } -- cgit v1.2.3