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

Comparing jsr166/src/test/tck/SubmissionPublisherTest.java (file contents):
Revision 1.16 by dl, Sun Dec 11 22:11:45 2016 UTC vs.
Revision 1.23 by dl, Sun Nov 26 21:37:56 2017 UTC

# Line 146 | Line 146 | public class SubmissionPublisherTest ext
146       * defaultExecutor
147       */
148      public void testConstructor1() {
149 <        SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>();
149 >        SubmissionPublisher<Integer> p = new SubmissionPublisher<>();
150          checkInitialState(p);
151          assertEquals(p.getMaxBufferCapacity(), Flow.defaultBufferSize());
152          Executor e = p.getExecutor(), c = ForkJoinPool.commonPool();
# Line 162 | Line 162 | public class SubmissionPublisherTest ext
162       */
163      public void testConstructor2() {
164          Executor e = Executors.newFixedThreadPool(1);
165 <        SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>(e, 8);
165 >        SubmissionPublisher<Integer> p = new SubmissionPublisher<>(e, 8);
166          checkInitialState(p);
167          assertSame(p.getExecutor(), e);
168          assertEquals(8, p.getMaxBufferCapacity());
169      }
170  
171      /**
172 <     * A null Executor argument to SubmissionPublisher constructor throws NPE
172 >     * A null Executor argument to SubmissionPublisher constructor
173 >     * throws NullPointerException
174       */
175      public void testConstructor3() {
176          try {
# Line 180 | Line 181 | public class SubmissionPublisherTest ext
181  
182      /**
183       * A negative capacity argument to SubmissionPublisher constructor
184 <     * throws IAE
184 >     * throws IllegalArgumentException
185       */
186      public void testConstructor4() {
187          Executor e = Executors.newFixedThreadPool(1);
# Line 192 | Line 193 | public class SubmissionPublisherTest ext
193  
194      /**
195       * A closed publisher reports isClosed with no closedException and
196 <     * throws ISE upon attempted submission; a subsequent close or
197 <     * closeExceptionally has no additional effect.
196 >     * throws IllegalStateException upon attempted submission; a
197 >     * subsequent close or closeExceptionally has no additional
198 >     * effect.
199       */
200      public void testClose() {
201          SubmissionPublisher<Integer> p = basicPublisher();
# Line 213 | Line 215 | public class SubmissionPublisherTest ext
215  
216      /**
217       * A publisher closedExceptionally reports isClosed with the
218 <     * closedException and throws ISE upon attempted submission; a
219 <     * subsequent close or closeExceptionally has no additional
220 <     * effect.
218 >     * closedException and throws IllegalStateException upon attempted
219 >     * submission; a subsequent close or closeExceptionally has no
220 >     * additional effect.
221       */
222      public void testCloseExceptionally() {
223          SubmissionPublisher<Integer> p = basicPublisher();
# Line 390 | Line 392 | public class SubmissionPublisherTest ext
392          s1.awaitError();
393          assertTrue(s1.nexts <= 1);
394          assertEquals(1, s1.errors);
395 <        s1.awaitSubscribe();
395 >        s2.awaitSubscribe();
396          s2.awaitError();
397          assertTrue(s2.nexts <= 1);
398          assertEquals(1, s2.errors);
# Line 400 | Line 402 | public class SubmissionPublisherTest ext
402       * Cancelling a subscription eventually causes no more onNexts to be issued
403       */
404      public void testCancel() {
405 <        SubmissionPublisher<Integer> p = basicPublisher();
405 >        SubmissionPublisher<Integer> p =
406 >            new SubmissionPublisher<Integer>(basicExecutor, 4); // must be < 20
407          TestSubscriber s1 = new TestSubscriber();
408          TestSubscriber s2 = new TestSubscriber();
409          p.subscribe(s1);
# Line 444 | Line 447 | public class SubmissionPublisherTest ext
447       */
448      public void testThrowOnNextHandler() {
449          AtomicInteger calls = new AtomicInteger();
450 <        SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>
451 <            (basicExecutor, 8,
449 <             (s, e) -> calls.getAndIncrement());
450 >        SubmissionPublisher<Integer> p = new SubmissionPublisher<>(
451 >            basicExecutor, 8, (s, e) -> calls.getAndIncrement());
452          TestSubscriber s1 = new TestSubscriber();
453          TestSubscriber s2 = new TestSubscriber();
454          p.subscribe(s1);
# Line 493 | Line 495 | public class SubmissionPublisherTest ext
495          s1.request = false;
496          p.subscribe(s1);
497          s1.awaitSubscribe();
498 <        assertTrue(p.estimateMinimumDemand() == 0);
498 >        assertEquals(0, p.estimateMinimumDemand());
499          TestSubscriber s2 = new TestSubscriber();
500          p.subscribe(s2);
501          p.submit(1);
# Line 534 | Line 536 | public class SubmissionPublisherTest ext
536      }
537  
538      /**
539 <     * Negative request causes error
539 >     * Non-positive request causes error
540       */
541      public void testRequest3() {
542          SubmissionPublisher<Integer> p = basicPublisher();
543          TestSubscriber s1 = new TestSubscriber();
544          TestSubscriber s2 = new TestSubscriber();
545 +        TestSubscriber s3 = new TestSubscriber();
546          p.subscribe(s1);
547          p.subscribe(s2);
548 +        p.subscribe(s3);
549 +        s3.awaitSubscribe();
550          s2.awaitSubscribe();
551          s1.awaitSubscribe();
552          s1.sn.request(-1L);
553 +        s3.sn.request(0L);
554          p.submit(1);
555          p.submit(2);
556          p.close();
# Line 554 | Line 560 | public class SubmissionPublisherTest ext
560          s1.awaitError();
561          assertEquals(1, s1.errors);
562          assertTrue(s1.lastError instanceof IllegalArgumentException);
563 +        s3.awaitError();
564 +        assertEquals(1, s3.errors);
565 +        assertTrue(s3.lastError instanceof IllegalArgumentException);
566      }
567  
568      /**
569       * estimateMinimumDemand reports 0 until request, nonzero after
570 <     * request, and zero again after delivery
570 >     * request
571       */
572      public void testEstimateMinimumDemand() {
573          TestSubscriber s = new TestSubscriber();
# Line 569 | Line 578 | public class SubmissionPublisherTest ext
578          assertEquals(0, p.estimateMinimumDemand());
579          s.sn.request(1);
580          assertEquals(1, p.estimateMinimumDemand());
572        p.submit(1);
573        s.awaitNext(1);
574        assertEquals(0, p.estimateMinimumDemand());
581      }
582  
583      /**
# Line 627 | Line 633 | public class SubmissionPublisherTest ext
633       * submit eventually issues requested items when buffer capacity is 1
634       */
635      public void testCap1Submit() {
636 <        SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>(
637 <            basicExecutor, 1);
636 >        SubmissionPublisher<Integer> p
637 >            = new SubmissionPublisher<>(basicExecutor, 1);
638          TestSubscriber s1 = new TestSubscriber();
639          TestSubscriber s2 = new TestSubscriber();
640          p.subscribe(s1);
641          p.subscribe(s2);
642          for (int i = 1; i <= 20; ++i) {
637            assertTrue(p.estimateMinimumDemand() <= 1);
643              assertTrue(p.submit(i) >= 0);
644          }
645          p.close();
# Line 706 | Line 711 | public class SubmissionPublisherTest ext
711       * offer reports drops if saturated
712       */
713      public void testDroppedOffer() {
714 <        SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>(
715 <            basicExecutor, 4);
714 >        SubmissionPublisher<Integer> p
715 >            = new SubmissionPublisher<>(basicExecutor, 4);
716          TestSubscriber s1 = new TestSubscriber();
717          s1.request = false;
718          TestSubscriber s2 = new TestSubscriber();
# Line 735 | Line 740 | public class SubmissionPublisherTest ext
740       */
741      public void testHandledDroppedOffer() {
742          AtomicInteger calls = new AtomicInteger();
743 <        SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>(
744 <            basicExecutor, 4);
743 >        SubmissionPublisher<Integer> p
744 >            = new SubmissionPublisher<>(basicExecutor, 4);
745          TestSubscriber s1 = new TestSubscriber();
746          s1.request = false;
747          TestSubscriber s2 = new TestSubscriber();
# Line 763 | Line 768 | public class SubmissionPublisherTest ext
768       */
769      public void testRecoveredHandledDroppedOffer() {
770          AtomicInteger calls = new AtomicInteger();
771 <        SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>(
772 <            basicExecutor, 4);
771 >        SubmissionPublisher<Integer> p
772 >            = new SubmissionPublisher<>(basicExecutor, 4);
773          TestSubscriber s1 = new TestSubscriber();
774          s1.request = false;
775          TestSubscriber s2 = new TestSubscriber();
# Line 844 | Line 849 | public class SubmissionPublisherTest ext
849       * Timed offer reports drops if saturated
850       */
851      public void testDroppedTimedOffer() {
852 <        SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>(
853 <            basicExecutor, 4);
852 >        SubmissionPublisher<Integer> p
853 >            = new SubmissionPublisher<>(basicExecutor, 4);
854          TestSubscriber s1 = new TestSubscriber();
855          s1.request = false;
856          TestSubscriber s2 = new TestSubscriber();
# Line 876 | Line 881 | public class SubmissionPublisherTest ext
881       */
882      public void testHandledDroppedTimedOffer() {
883          AtomicInteger calls = new AtomicInteger();
884 <        SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>(
885 <            basicExecutor, 4);
884 >        SubmissionPublisher<Integer> p
885 >            = new SubmissionPublisher<>(basicExecutor, 4);
886          TestSubscriber s1 = new TestSubscriber();
887          s1.request = false;
888          TestSubscriber s2 = new TestSubscriber();
# Line 906 | Line 911 | public class SubmissionPublisherTest ext
911       */
912      public void testRecoveredHandledDroppedTimedOffer() {
913          AtomicInteger calls = new AtomicInteger();
914 <        SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>(
915 <            basicExecutor, 4);
914 >        SubmissionPublisher<Integer> p
915 >            = new SubmissionPublisher<>(basicExecutor, 4);
916          TestSubscriber s1 = new TestSubscriber();
917          s1.request = false;
918          TestSubscriber s2 = new TestSubscriber();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines