ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/ScheduledExecutorTest.java
(Generate patch)

Comparing jsr166/src/test/tck/ScheduledExecutorTest.java (file contents):
Revision 1.73 by jsr166, Tue Oct 6 06:02:53 2015 UTC vs.
Revision 1.76 by jsr166, Thu Oct 8 03:08:37 2015 UTC

# Line 1046 | Line 1046 | public class ScheduledExecutorTest exten
1046      public void testTimedInvokeAny4() throws Exception {
1047          final ExecutorService e = new ScheduledThreadPoolExecutor(2);
1048          try (PoolCleaner cleaner = cleaner(e)) {
1049 +            long startTime = System.nanoTime();
1050              List<Callable<String>> l = new ArrayList<Callable<String>>();
1051              l.add(new NPETask());
1052              try {
1053 <                e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS);
1053 >                e.invokeAny(l, LONG_DELAY_MS, MILLISECONDS);
1054                  shouldThrow();
1055              } catch (ExecutionException success) {
1056                  assertTrue(success.getCause() instanceof NullPointerException);
1057              }
1058 +            assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
1059          }
1060      }
1061  
# Line 1063 | Line 1065 | public class ScheduledExecutorTest exten
1065      public void testTimedInvokeAny5() throws Exception {
1066          final ExecutorService e = new ScheduledThreadPoolExecutor(2);
1067          try (PoolCleaner cleaner = cleaner(e)) {
1068 +            long startTime = System.nanoTime();
1069              List<Callable<String>> l = new ArrayList<Callable<String>>();
1070              l.add(new StringTask());
1071              l.add(new StringTask());
1072 <            String result = e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS);
1072 >            String result = e.invokeAny(l, LONG_DELAY_MS, MILLISECONDS);
1073              assertSame(TEST_STRING, result);
1074 +            assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
1075          }
1076      }
1077  
# Line 1168 | Line 1172 | public class ScheduledExecutorTest exten
1172       * timed invokeAll(c) cancels tasks not completed by timeout
1173       */
1174      public void testTimedInvokeAll6() throws Exception {
1175 <        final ExecutorService e = new ScheduledThreadPoolExecutor(2);
1176 <        try (PoolCleaner cleaner = cleaner(e)) {
1177 <            for (long timeout = timeoutMillis();;) {
1175 >        for (long timeout = timeoutMillis();;) {
1176 >            final CountDownLatch done = new CountDownLatch(1);
1177 >            final Callable<String> waiter = new CheckedCallable<String>() {
1178 >                public String realCall() {
1179 >                    try { done.await(LONG_DELAY_MS, MILLISECONDS); }
1180 >                    catch (InterruptedException ok) {}
1181 >                    return "1"; }};
1182 >            final ExecutorService p = new ScheduledThreadPoolExecutor(2);
1183 >            try (PoolCleaner cleaner = cleaner(p, done)) {
1184                  List<Callable<String>> tasks = new ArrayList<>();
1185                  tasks.add(new StringTask("0"));
1186 <                tasks.add(Executors.callable(new LongPossiblyInterruptedRunnable(), TEST_STRING));
1186 >                tasks.add(waiter);
1187                  tasks.add(new StringTask("2"));
1188                  long startTime = System.nanoTime();
1189                  List<Future<String>> futures =
1190 <                    e.invokeAll(tasks, timeout, MILLISECONDS);
1190 >                    p.invokeAll(tasks, timeout, MILLISECONDS);
1191                  assertEquals(tasks.size(), futures.size());
1192                  assertTrue(millisElapsedSince(startTime) >= timeout);
1193                  for (Future future : futures)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines