diff options
author | Jon Bratseth <jonbratseth@yahoo.com> | 2017-06-13 20:46:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-13 20:46:46 +0200 |
commit | a9785bfd7b01ddc83ac4b6d8d6a0e9f3222b21d4 (patch) | |
tree | adac15bff93c68cab36a260227aef3045e17901a /vespajlib/src/test/java/com/yahoo/concurrent/EventBarrierTestCase.java | |
parent | 4ae60e3fbc20e0397662c39848cab012ff052e5e (diff) |
Revert "Copyright header"
Diffstat (limited to 'vespajlib/src/test/java/com/yahoo/concurrent/EventBarrierTestCase.java')
-rw-r--r-- | vespajlib/src/test/java/com/yahoo/concurrent/EventBarrierTestCase.java | 336 |
1 files changed, 168 insertions, 168 deletions
diff --git a/vespajlib/src/test/java/com/yahoo/concurrent/EventBarrierTestCase.java b/vespajlib/src/test/java/com/yahoo/concurrent/EventBarrierTestCase.java index 6a91c502571..eae792effd4 100644 --- a/vespajlib/src/test/java/com/yahoo/concurrent/EventBarrierTestCase.java +++ b/vespajlib/src/test/java/com/yahoo/concurrent/EventBarrierTestCase.java @@ -1,168 +1,168 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.concurrent; - -import junit.framework.TestCase; - -/** - * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a> - */ -public class EventBarrierTestCase extends TestCase { - - public void testEmpty() { - // waiting for an empty set of events - Barrier b = new Barrier(); - EventBarrier eb = new EventBarrier(); - - assertTrue(!eb.startBarrier(b)); - assertTrue(!b.done); - assertEquals(eb.getNumEvents(), 0); - assertEquals(eb.getNumBarriers(), 0); - - int token = eb.startEvent(); - eb.completeEvent(token); - - assertTrue(!eb.startBarrier(b)); - assertTrue(!b.done); - assertEquals(eb.getNumEvents(), 0); - assertEquals(eb.getNumBarriers(), 0); - } - - public void testSimple() { - // a single barrier waiting for a single event - Barrier b = new Barrier(); - EventBarrier eb = new EventBarrier(); - assertEquals(eb.getNumEvents(), 0); - assertEquals(eb.getNumBarriers(), 0); - - int token = eb.startEvent(); - assertEquals(eb.getNumEvents(), 1); - assertEquals(eb.getNumBarriers(), 0); - - assertTrue(eb.startBarrier(b)); - assertTrue(!b.done); - assertEquals(eb.getNumEvents(), 1); - assertEquals(eb.getNumBarriers(), 1); - - eb.completeEvent(token); - assertTrue(b.done); - assertEquals(eb.getNumEvents(), 0); - assertEquals(eb.getNumBarriers(), 0); - } - - public void testBarrierChain() { - // more than one barrier waiting for the same set of events - Barrier b1 = new Barrier(); - Barrier b2 = new Barrier(); - Barrier b3 = new Barrier(); - EventBarrier eb = new EventBarrier(); - assertEquals(eb.getNumEvents(), 0); - assertEquals(eb.getNumBarriers(), 0); - - int token = eb.startEvent(); - assertEquals(eb.getNumEvents(), 1); - assertEquals(eb.getNumBarriers(), 0); - - assertTrue(eb.startBarrier(b1)); - assertTrue(eb.startBarrier(b2)); - assertTrue(eb.startBarrier(b3)); - assertTrue(!b1.done); - assertTrue(!b2.done); - assertTrue(!b3.done); - - assertEquals(eb.getNumEvents(), 1); - assertEquals(eb.getNumBarriers(), 3); - - eb.completeEvent(token); - assertTrue(b1.done); - assertTrue(b2.done); - assertTrue(b3.done); - assertEquals(eb.getNumEvents(), 0); - assertEquals(eb.getNumBarriers(), 0); - } - - public void testEventAfter() { - // new events starting after the start of a barrier - Barrier b = new Barrier(); - EventBarrier eb = new EventBarrier(); - assertEquals(eb.getNumEvents(), 0); - assertEquals(eb.getNumBarriers(), 0); - - int token = eb.startEvent(); - assertEquals(eb.getNumEvents(), 1); - assertEquals(eb.getNumBarriers(), 0); - - assertTrue(eb.startBarrier(b)); - assertTrue(!b.done); - assertEquals(eb.getNumEvents(), 1); - assertEquals(eb.getNumBarriers(), 1); - - int t2 = eb.startEvent(); - assertTrue(!b.done); - assertEquals(eb.getNumEvents(), 2); - assertEquals(eb.getNumBarriers(), 1); - - eb.completeEvent(token); - assertTrue(b.done); - assertEquals(eb.getNumEvents(), 1); - assertEquals(eb.getNumBarriers(), 0); - - eb.completeEvent(t2); - assertEquals(eb.getNumEvents(), 0); - assertEquals(eb.getNumBarriers(), 0); - } - - public void testReorder() { - // events completing in a different order than they started - Barrier b1 = new Barrier(); - Barrier b2 = new Barrier(); - Barrier b3 = new Barrier(); - EventBarrier eb = new EventBarrier(); - - int t1 = eb.startEvent(); - eb.startBarrier(b1); - int t2 = eb.startEvent(); - eb.startBarrier(b2); - int t3 = eb.startEvent(); - eb.startBarrier(b3); - int t4 = eb.startEvent(); - - assertEquals(eb.getNumEvents(), 4); - assertEquals(eb.getNumBarriers(), 3); - - assertTrue(!b1.done); - assertTrue(!b2.done); - assertTrue(!b3.done); - - eb.completeEvent(t4); - assertTrue(!b1.done); - assertTrue(!b2.done); - assertTrue(!b3.done); - - eb.completeEvent(t3); - assertTrue(!b1.done); - assertTrue(!b2.done); - assertTrue(!b3.done); - - eb.completeEvent(t1); - assertTrue(b1.done); - assertTrue(!b2.done); - assertTrue(!b3.done); - - eb.completeEvent(t2); - assertTrue(b1.done); - assertTrue(b2.done); - assertTrue(b3.done); - - assertEquals(eb.getNumEvents(), 0); - assertEquals(eb.getNumBarriers(), 0); - } - - private static class Barrier implements EventBarrier.BarrierWaiter { - boolean done = false; - - @Override - public void completeBarrier() { - done = true; - } - } -} +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.concurrent;
+
+import junit.framework.TestCase;
+
+/**
+ * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ */
+public class EventBarrierTestCase extends TestCase {
+
+ public void testEmpty() {
+ // waiting for an empty set of events
+ Barrier b = new Barrier();
+ EventBarrier eb = new EventBarrier();
+
+ assertTrue(!eb.startBarrier(b));
+ assertTrue(!b.done);
+ assertEquals(eb.getNumEvents(), 0);
+ assertEquals(eb.getNumBarriers(), 0);
+
+ int token = eb.startEvent();
+ eb.completeEvent(token);
+
+ assertTrue(!eb.startBarrier(b));
+ assertTrue(!b.done);
+ assertEquals(eb.getNumEvents(), 0);
+ assertEquals(eb.getNumBarriers(), 0);
+ }
+
+ public void testSimple() {
+ // a single barrier waiting for a single event
+ Barrier b = new Barrier();
+ EventBarrier eb = new EventBarrier();
+ assertEquals(eb.getNumEvents(), 0);
+ assertEquals(eb.getNumBarriers(), 0);
+
+ int token = eb.startEvent();
+ assertEquals(eb.getNumEvents(), 1);
+ assertEquals(eb.getNumBarriers(), 0);
+
+ assertTrue(eb.startBarrier(b));
+ assertTrue(!b.done);
+ assertEquals(eb.getNumEvents(), 1);
+ assertEquals(eb.getNumBarriers(), 1);
+
+ eb.completeEvent(token);
+ assertTrue(b.done);
+ assertEquals(eb.getNumEvents(), 0);
+ assertEquals(eb.getNumBarriers(), 0);
+ }
+
+ public void testBarrierChain() {
+ // more than one barrier waiting for the same set of events
+ Barrier b1 = new Barrier();
+ Barrier b2 = new Barrier();
+ Barrier b3 = new Barrier();
+ EventBarrier eb = new EventBarrier();
+ assertEquals(eb.getNumEvents(), 0);
+ assertEquals(eb.getNumBarriers(), 0);
+
+ int token = eb.startEvent();
+ assertEquals(eb.getNumEvents(), 1);
+ assertEquals(eb.getNumBarriers(), 0);
+
+ assertTrue(eb.startBarrier(b1));
+ assertTrue(eb.startBarrier(b2));
+ assertTrue(eb.startBarrier(b3));
+ assertTrue(!b1.done);
+ assertTrue(!b2.done);
+ assertTrue(!b3.done);
+
+ assertEquals(eb.getNumEvents(), 1);
+ assertEquals(eb.getNumBarriers(), 3);
+
+ eb.completeEvent(token);
+ assertTrue(b1.done);
+ assertTrue(b2.done);
+ assertTrue(b3.done);
+ assertEquals(eb.getNumEvents(), 0);
+ assertEquals(eb.getNumBarriers(), 0);
+ }
+
+ public void testEventAfter() {
+ // new events starting after the start of a barrier
+ Barrier b = new Barrier();
+ EventBarrier eb = new EventBarrier();
+ assertEquals(eb.getNumEvents(), 0);
+ assertEquals(eb.getNumBarriers(), 0);
+
+ int token = eb.startEvent();
+ assertEquals(eb.getNumEvents(), 1);
+ assertEquals(eb.getNumBarriers(), 0);
+
+ assertTrue(eb.startBarrier(b));
+ assertTrue(!b.done);
+ assertEquals(eb.getNumEvents(), 1);
+ assertEquals(eb.getNumBarriers(), 1);
+
+ int t2 = eb.startEvent();
+ assertTrue(!b.done);
+ assertEquals(eb.getNumEvents(), 2);
+ assertEquals(eb.getNumBarriers(), 1);
+
+ eb.completeEvent(token);
+ assertTrue(b.done);
+ assertEquals(eb.getNumEvents(), 1);
+ assertEquals(eb.getNumBarriers(), 0);
+
+ eb.completeEvent(t2);
+ assertEquals(eb.getNumEvents(), 0);
+ assertEquals(eb.getNumBarriers(), 0);
+ }
+
+ public void testReorder() {
+ // events completing in a different order than they started
+ Barrier b1 = new Barrier();
+ Barrier b2 = new Barrier();
+ Barrier b3 = new Barrier();
+ EventBarrier eb = new EventBarrier();
+
+ int t1 = eb.startEvent();
+ eb.startBarrier(b1);
+ int t2 = eb.startEvent();
+ eb.startBarrier(b2);
+ int t3 = eb.startEvent();
+ eb.startBarrier(b3);
+ int t4 = eb.startEvent();
+
+ assertEquals(eb.getNumEvents(), 4);
+ assertEquals(eb.getNumBarriers(), 3);
+
+ assertTrue(!b1.done);
+ assertTrue(!b2.done);
+ assertTrue(!b3.done);
+
+ eb.completeEvent(t4);
+ assertTrue(!b1.done);
+ assertTrue(!b2.done);
+ assertTrue(!b3.done);
+
+ eb.completeEvent(t3);
+ assertTrue(!b1.done);
+ assertTrue(!b2.done);
+ assertTrue(!b3.done);
+
+ eb.completeEvent(t1);
+ assertTrue(b1.done);
+ assertTrue(!b2.done);
+ assertTrue(!b3.done);
+
+ eb.completeEvent(t2);
+ assertTrue(b1.done);
+ assertTrue(b2.done);
+ assertTrue(b3.done);
+
+ assertEquals(eb.getNumEvents(), 0);
+ assertEquals(eb.getNumBarriers(), 0);
+ }
+
+ private static class Barrier implements EventBarrier.BarrierWaiter {
+ boolean done = false;
+
+ @Override
+ public void completeBarrier() {
+ done = true;
+ }
+ }
+}
|