--- jsr166/src/test/tck/CompletableFutureTest.java 2017/07/03 21:18:37 1.187 +++ jsr166/src/test/tck/CompletableFutureTest.java 2018/01/23 20:44:11 1.192 @@ -41,7 +41,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; -import junit.framework.AssertionFailedError; import junit.framework.Test; import junit.framework.TestSuite; @@ -59,7 +58,7 @@ public class CompletableFutureTest exten void checkIncomplete(CompletableFuture f) { assertFalse(f.isDone()); assertFalse(f.isCancelled()); - assertTrue(f.toString().contains("Not completed")); + assertTrue(f.toString().matches(".*\\[.*Not completed.*\\]")); try { assertNull(f.getNow(null)); } catch (Throwable fail) { threadUnexpectedException(fail); } @@ -82,7 +81,7 @@ public class CompletableFutureTest exten assertTrue(f.isDone()); assertFalse(f.isCancelled()); assertFalse(f.isCompletedExceptionally()); - assertTrue(f.toString().contains("[Completed normally]")); + assertTrue(f.toString().matches(".*\\[.*Completed normally.*\\]")); } /** @@ -138,7 +137,7 @@ public class CompletableFutureTest exten assertFalse(f.isCancelled()); assertTrue(f.isDone()); assertTrue(f.isCompletedExceptionally()); - assertTrue(f.toString().contains("[Completed exceptionally]")); + assertTrue(f.toString().matches(".*\\[.*Completed exceptionally.*\\]")); } void checkCompletedWithWrappedCFException(CompletableFuture f) { @@ -193,7 +192,7 @@ public class CompletableFutureTest exten assertTrue(f.isDone()); assertTrue(f.isCompletedExceptionally()); assertTrue(f.isCancelled()); - assertTrue(f.toString().contains("[Completed exceptionally]")); + assertTrue(f.toString().matches(".*\\[.*Completed exceptionally.*\\]")); } /** @@ -329,23 +328,40 @@ public class CompletableFutureTest exten /** * toString indicates current completion state */ - public void testToString() { - CompletableFuture f; - - f = new CompletableFuture(); - assertTrue(f.toString().contains("[Not completed]")); + public void testToString_incomplete() { + CompletableFuture f = new CompletableFuture<>(); + assertTrue(f.toString().matches(".*\\[.*Not completed.*\\]")); + if (testImplementationDetails) + assertEquals(identityString(f) + "[Not completed]", + f.toString()); + } + public void testToString_normal() { + CompletableFuture f = new CompletableFuture<>(); assertTrue(f.complete("foo")); - assertTrue(f.toString().contains("[Completed normally]")); + assertTrue(f.toString().matches(".*\\[.*Completed normally.*\\]")); + if (testImplementationDetails) + assertEquals(identityString(f) + "[Completed normally]", + f.toString()); + } - f = new CompletableFuture(); + public void testToString_exception() { + CompletableFuture f = new CompletableFuture<>(); assertTrue(f.completeExceptionally(new IndexOutOfBoundsException())); - assertTrue(f.toString().contains("[Completed exceptionally]")); + assertTrue(f.toString().matches(".*\\[.*Completed exceptionally.*\\]")); + if (testImplementationDetails) + assertTrue(f.toString().startsWith( + identityString(f) + "[Completed exceptionally: ")); + } + public void testToString_cancelled() { for (boolean mayInterruptIfRunning : new boolean[] { true, false }) { - f = new CompletableFuture(); + CompletableFuture f = new CompletableFuture<>(); assertTrue(f.cancel(mayInterruptIfRunning)); - assertTrue(f.toString().contains("[Completed exceptionally]")); + assertTrue(f.toString().matches(".*\\[.*Completed exceptionally.*\\]")); + if (testImplementationDetails) + assertTrue(f.toString().startsWith( + identityString(f) + "[Completed exceptionally: ")); } } @@ -4173,7 +4189,7 @@ public class CompletableFutureTest exten static void assertZero(CompletableFuture f) { try { f.getNow(null); - throw new AssertionFailedError("should throw"); + throw new AssertionError("should throw"); } catch (CompletionException success) { assertTrue(success.getCause() instanceof ZeroException); }