You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2021/02/02 17:04:41 UTC

[geode] 01/06: GEODE-8126: Add ExecutionException tests to ExecutorServiceRuleTest (#5113)

This is an automated email from the ASF dual-hosted git repository.

klund pushed a commit to branch support/1.13
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 7285e44aee247af09e64929f383c1007d0a693c3
Author: Kirk Lund <kl...@apache.org>
AuthorDate: Thu May 14 14:25:31 2020 -0700

    GEODE-8126: Add ExecutionException tests to ExecutorServiceRuleTest (#5113)
    
    (cherry picked from commit 2842ce027f78a04386ffbfae6c9a6a0d73d47e05)
---
 .../test/junit/rules/ExecutorServiceRuleTest.java  | 26 ++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/geode-junit/src/test/java/org/apache/geode/test/junit/rules/ExecutorServiceRuleTest.java b/geode-junit/src/test/java/org/apache/geode/test/junit/rules/ExecutorServiceRuleTest.java
index 4c6f146..e522cdd 100644
--- a/geode-junit/src/test/java/org/apache/geode/test/junit/rules/ExecutorServiceRuleTest.java
+++ b/geode-junit/src/test/java/org/apache/geode/test/junit/rules/ExecutorServiceRuleTest.java
@@ -17,8 +17,10 @@ package org.apache.geode.test.junit.rules;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.fail;
 
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeoutException;
@@ -110,6 +112,17 @@ public class ExecutorServiceRuleTest {
     assertThat(failure.getException()).isInstanceOf(TimeoutException.class);
   }
 
+  @Test
+  public void futureRethrowsFailureWrappedInExecutionException() {
+    Result result = TestRunner.runTest(FutureRethrows.class);
+    assertThat(result.wasSuccessful()).isFalse();
+    assertThat(result.getFailures()).hasSize(1);
+    Failure failure = result.getFailures().get(0);
+    assertThat(failure.getException())
+        .isInstanceOf(ExecutionException.class)
+        .hasRootCauseInstanceOf(AssertionError.class);
+  }
+
   private static void awaitLatch(CountDownLatch latch) {
     await().untilAsserted(() -> assertThat(latch.getCount())
         .as("Latch failed to countDown within timeout").isZero());
@@ -172,4 +185,17 @@ public class ExecutorServiceRuleTest {
       future.get(1, MILLISECONDS);
     }
   }
+
+  public static class FutureRethrows extends HasExecutorServiceRule {
+
+    @Test
+    public void doTest() throws Exception {
+      Future<Void> future = executorServiceRule.runAsync(() -> {
+        fail("Fails");
+      });
+
+      // this is expected to throw
+      future.get();
+    }
+  }
 }