sm runner: include testFramework name in logging message (investigating EA-70673... appcode/142.3472 clion/142.3471
authorSergey Simonchik <sergey.simonchik@jetbrains.com>
Fri, 24 Jul 2015 08:49:57 +0000 (11:49 +0300)
committerSergey Simonchik <sergey.simonchik@jetbrains.com>
Fri, 24 Jul 2015 08:49:57 +0000 (11:49 +0300)
platform/smRunner/src/com/intellij/execution/testframework/sm/runner/GeneralToSMTRunnerEventsConvertor.java
platform/smRunner/src/com/intellij/execution/testframework/sm/runner/TestSuiteStack.java
platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/TestSuiteStackTest.java

index 8cd45b387ec154c9b03ea2d788a27ba277f97c6c..20201c5bd884956ef73b7ff9c84eb02cff0a0b9c 100644 (file)
@@ -41,7 +41,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
 
   private final Map<String, SMTestProxy> myRunningTestsFullNameToProxy = new HashMap<String, SMTestProxy>();
   private final Set<AbstractTestProxy> myFailedTestsSet = new HashSet<AbstractTestProxy>();
-  private final TestSuiteStack mySuitesStack = new TestSuiteStack();
+  private final TestSuiteStack mySuitesStack;
   private final SMTestProxy.SMRootTestProxy myTestsRootNode;
   private final String myTestFrameworkName;
 
@@ -53,6 +53,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
                                            @NotNull String testFrameworkName) {
     super(project);
     myTestsRootNode = testsRootNode;
+    mySuitesStack = new TestSuiteStack(testFrameworkName);
     myTestFrameworkName = testFrameworkName;
   }
 
index 4d3ea0d32a041a7a87c0b2fcfbe5a426890a873f..6789aa422e8afe1da0de4e7849919257ce285781 100644 (file)
@@ -35,6 +35,18 @@ public class TestSuiteStack {
   @NonNls private static final String EMPTY = "empty";
 
   private final Stack<SMTestProxy> myStack = new Stack<SMTestProxy>();
+  private final String myTestFrameworkName;
+
+  /**
+   * @deprecated use {@link #TestSuiteStack(String)} instead, to be removed in IDEA 16
+   */
+  public TestSuiteStack() {
+    this("<unspecified>");
+  }
+
+  public TestSuiteStack(@NotNull String testFrameworkName) {
+    myTestFrameworkName = testFrameworkName;
+  }
 
   public void pushSuite(@NotNull final SMTestProxy suite) {
     myStack.push(suite);
@@ -67,6 +79,11 @@ public class TestSuiteStack {
       return null;
     }
     final SMTestProxy topSuite = myStack.peek();
+    if (suiteName == null) {
+      String msg = "Pop error: undefined suite name. Rest of stack: " + getSuitePathPresentation();
+      GeneralToSMTRunnerEventsConvertor.logProblem(LOG, msg, true, myTestFrameworkName);
+      return null;
+    }
 
     if (!suiteName.equals(topSuite.getName())) {
       if (SMTestRunnerConnectionUtil.isInDebugMode()) {
index 58d69f0423228e45f4c00d58decf365616dbc995..303f83c44b28fdde62faed51555c381c887ec6f4 100644 (file)
@@ -16,7 +16,6 @@
 package com.intellij.execution.testframework.sm.runner;
 
 import com.intellij.testFramework.exceptionCases.AssertionErrorCase;
-import com.intellij.util.SystemProperties;
 
 /**
  * @author Roman Chernyatchik
@@ -28,7 +27,7 @@ public class TestSuiteStackTest extends BaseSMTRunnerTestCase {
   protected void setUp() throws Exception {
     super.setUp();
 
-    myTestSuiteStack = new TestSuiteStack();
+    myTestSuiteStack = new TestSuiteStack("from tests");
   }
 
   @Override