--- jsr166/src/test/tck/CompletableFutureTest.java 2017/07/03 21:18:37 1.187 +++ jsr166/src/test/tck/CompletableFutureTest.java 2017/08/16 17:18:34 1.188 @@ -59,7 +59,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 +82,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 +138,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 +193,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 +329,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: ")); } }