UsefulTestCase.edt: explicitly rethrow the exception
authorKirill Likhodedov <Kirill.Likhodedov@jetbrains.com>
Wed, 2 Sep 2015 12:37:27 +0000 (15:37 +0300)
committerKirill Likhodedov <Kirill.Likhodedov@jetbrains.com>
Wed, 2 Sep 2015 13:25:19 +0000 (16:25 +0300)
This is already done in invokeAndWaitIfNeeded via LOG.error,
but making it more explicit won't hurt, especially if LOG.error
stops throwing exception in tests.

Also accept ThrowableRunnable.

platform/testFramework/src/com/intellij/testFramework/UsefulTestCase.java

index 399340124fbb5b1a28ee1067502f540106541efe..aad28bc65d905a8f9cf48c15970468e868c424f3 100644 (file)
@@ -348,13 +348,29 @@ public abstract class UsefulTestCase extends TestCase {
     return PlatformTestUtil.canRunTest(getClass());
   }
 
-  public static void edt(Runnable r) {
-    UIUtil.invokeAndWaitIfNeeded(r);
+  public static void edt(@NotNull final ThrowableRunnable r) {
+    try {
+      UIUtil.invokeAndWaitIfNeeded(r);
+    }
+    catch (RuntimeException re) {
+      throw re;
+    }
+    catch (Throwable throwable) {
+      throw new RuntimeException(throwable);
+    }
+  }
+
+  public static void edt(@NotNull final Runnable r) {
+    edt(new ThrowableRunnable() {
+      @Override
+      public void run() throws Throwable {
+        r.run();
+      }
+    });
   }
 
   protected void invokeTestRunnable(@NotNull Runnable runnable) throws Exception {
-    UIUtil.invokeAndWaitIfNeeded(runnable);
-    //runnable.run();
+    edt(runnable);
   }
 
   protected void defaultRunBare() throws Throwable {