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

Comparing jsr166/src/test/tck/ExecutorsTest.java (file contents):
Revision 1.19 by jsr166, Tue Aug 4 16:06:12 2009 UTC vs.
Revision 1.20 by jsr166, Wed Aug 5 00:40:11 2009 UTC

# Line 2 | Line 2
2   * Written by Doug Lea with assistance from members of JCP JSR-166
3   * Expert Group and released to the public domain, as explained at
4   * http://creativecommons.org/licenses/publicdomain
5 < * Other contributors include Andrew Wright, Jeffrey Hayes,
6 < * Pat Fisher, Mike Judd.
5 > * Other contributors include Andrew Wright, Jeffrey Hayes,
6 > * Pat Fisher, Mike Judd.
7   */
8  
9  
# Line 15 | Line 15 | import java.security.*;
15  
16   public class ExecutorsTest extends JSR166TestCase{
17      public static void main(String[] args) {
18 <        junit.textui.TestRunner.run (suite());  
18 >        junit.textui.TestRunner.run (suite());
19      }
20      public static Test suite() {
21          return new TestSuite(ExecutorsTest.class);
# Line 25 | Line 25 | public class ExecutorsTest extends JSR16
25          private final ExecutorService exec;
26          private final Callable<T> func;
27          private final long msecs;
28 <        
28 >
29          TimedCallable(ExecutorService exec, Callable<T> func, long msecs) {
30              this.exec = exec;
31              this.func = func;
32              this.msecs = msecs;
33          }
34 <        
34 >
35          public T call() throws Exception {
36              Future<T> ftask = exec.submit(func);
37              try {
# Line 294 | Line 294 | public class ExecutorsTest extends JSR16
294          List<Callable<BigInteger>> tasks = new ArrayList<Callable<BigInteger>>(N);
295          try {
296              long startTime = System.currentTimeMillis();
297 <            
297 >
298              long i = 0;
299              while (tasks.size() < N) {
300                  tasks.add(new TimedCallable<BigInteger>(executor, new Fib(i), 1));
301                  i += 10;
302              }
303 <            
303 >
304              int iters = 0;
305              BigInteger sum = BigInteger.ZERO;
306              for (Iterator<Callable<BigInteger>> it = tasks.iterator(); it.hasNext();) {
# Line 325 | Line 325 | public class ExecutorsTest extends JSR16
325          }
326      }
327  
328 <    
328 >
329      /**
330       * ThreadPoolExecutor using defaultThreadFactory has
331       * specified group, priority, daemon status, and name
# Line 352 | Line 352 | public class ExecutorsTest extends JSR16
352                  }
353              };
354          ExecutorService e = Executors.newSingleThreadExecutor(Executors.defaultThreadFactory());
355 <        
355 >
356          e.execute(r);
357          try {
358              e.shutdown();
359          } catch(SecurityException ok) {
360          }
361 <        
361 >
362          try {
363              Thread.sleep(SHORT_DELAY_MS);
364          } catch (Exception eX) {
# Line 409 | Line 409 | public class ExecutorsTest extends JSR16
409                  }
410              };
411          ExecutorService e = Executors.newSingleThreadExecutor(Executors.privilegedThreadFactory());
412 <        
412 >
413          Policy.setPolicy(savedPolicy);
414          e.execute(r);
415          try {
# Line 463 | Line 463 | public class ExecutorsTest extends JSR16
463              Policy.setPolicy(savedPolicy);
464              return;
465          } catch(AccessControlException ok) {
466 <        }
466 >        }
467  
468          try {
469              Callable task = Executors.privilegedCallableUsingCurrentClassLoader(new NoOpCallable());
# Line 471 | Line 471 | public class ExecutorsTest extends JSR16
471          } catch(AccessControlException success) {
472          } catch(Exception ex) {
473              unexpectedException();
474 <        }
474 >        }
475          finally {
476              Policy.setPolicy(savedPolicy);
477          }
# Line 492 | Line 492 | public class ExecutorsTest extends JSR16
492          } catch (AccessControlException ok) {
493              return;
494          }
495 <            
495 >
496          try {
497              Callable task = Executors.privilegedCallableUsingCurrentClassLoader(new NoOpCallable());
498              task.call();
499          } catch(Exception ex) {
500              unexpectedException();
501 <        }
501 >        }
502          finally {
503              Policy.setPolicy(savedPolicy);
504          }
# Line 523 | Line 523 | public class ExecutorsTest extends JSR16
523              return; // program has too few permissions to set up test
524          }
525  
526 <        // Make sure that program doesn't have too many permissions
526 >        // Make sure that program doesn't have too many permissions
527          try {
528              AccessController.doPrivileged(new PrivilegedAction() {
529                      public Object run() {
# Line 541 | Line 541 | public class ExecutorsTest extends JSR16
541          } catch(AccessControlException success) {
542          } catch(Exception ex) {
543              unexpectedException();
544 <        }
544 >        }
545      }
546  
547      /**
# Line 558 | Line 558 | public class ExecutorsTest extends JSR16
558          } catch (AccessControlException ok) {
559              return;
560          }
561 <            
561 >
562          Callable task = Executors.privilegedCallable(new CheckCCL());
563          try {
564              task.call();
# Line 571 | Line 571 | public class ExecutorsTest extends JSR16
571  
572      /**
573       * callable(Runnable) returns null when called
574 <     */
574 >     */
575      public void testCallable1() {
576          try {
577              Callable c = Executors.callable(new NoOpRunnable());
# Line 579 | Line 579 | public class ExecutorsTest extends JSR16
579          } catch(Exception ex) {
580              unexpectedException();
581          }
582 <        
582 >
583      }
584  
585      /**
586       * callable(Runnable, result) returns result when called
587 <     */
587 >     */
588      public void testCallable2() {
589          try {
590              Callable c = Executors.callable(new NoOpRunnable(), one);
# Line 596 | Line 596 | public class ExecutorsTest extends JSR16
596  
597      /**
598       * callable(PrivilegedAction) returns its result when called
599 <     */
599 >     */
600      public void testCallable3() {
601          try {
602              Callable c = Executors.callable(new PrivilegedAction() {
# Line 609 | Line 609 | public class ExecutorsTest extends JSR16
609  
610      /**
611       * callable(PrivilegedExceptionAction) returns its result when called
612 <     */
612 >     */
613      public void testCallable4() {
614          try {
615              Callable c = Executors.callable(new PrivilegedExceptionAction() {
# Line 623 | Line 623 | public class ExecutorsTest extends JSR16
623  
624      /**
625       * callable(null Runnable) throws NPE
626 <     */
626 >     */
627      public void testCallableNPE1() {
628          try {
629              Runnable r = null;
# Line 634 | Line 634 | public class ExecutorsTest extends JSR16
634  
635      /**
636       * callable(null, result) throws NPE
637 <     */
637 >     */
638      public void testCallableNPE2() {
639          try {
640              Runnable r = null;
# Line 645 | Line 645 | public class ExecutorsTest extends JSR16
645  
646      /**
647       * callable(null PrivilegedAction) throws NPE
648 <     */
648 >     */
649      public void testCallableNPE3() {
650          try {
651              PrivilegedAction r = null;
# Line 656 | Line 656 | public class ExecutorsTest extends JSR16
656  
657      /**
658       * callable(null PrivilegedExceptionAction) throws NPE
659 <     */
659 >     */
660      public void testCallableNPE4() {
661          try {
662              PrivilegedExceptionAction r = null;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines