remove timing sensitive portion from DefaultTopologyProviderTest.
Change-Id: I7fa496c421470520df4cb79c036ac8ea25b31c96
Showing
1 changed file
with
24 additions
and
20 deletions
1 | package org.onlab.onos.net.topology.impl; | 1 | package org.onlab.onos.net.topology.impl; |
2 | 2 | ||
3 | import com.google.common.collect.ImmutableSet; | 3 | import com.google.common.collect.ImmutableSet; |
4 | + | ||
4 | import org.junit.After; | 5 | import org.junit.After; |
5 | import org.junit.Before; | 6 | import org.junit.Before; |
6 | import org.junit.Test; | 7 | import org.junit.Test; |
... | @@ -21,10 +22,12 @@ import org.onlab.onos.net.topology.TopologyProviderService; | ... | @@ -21,10 +22,12 @@ import org.onlab.onos.net.topology.TopologyProviderService; |
21 | 22 | ||
22 | import java.util.List; | 23 | import java.util.List; |
23 | import java.util.Set; | 24 | import java.util.Set; |
25 | +import java.util.concurrent.Phaser; | ||
26 | +import java.util.concurrent.TimeUnit; | ||
27 | +import java.util.concurrent.TimeoutException; | ||
24 | 28 | ||
25 | -import static org.junit.Assert.assertEquals; | 29 | +import static org.junit.Assert.*; |
26 | -import static org.junit.Assert.assertNotNull; | 30 | +import static org.hamcrest.Matchers.*; |
27 | -import static org.onlab.junit.TestTools.assertAfter; | ||
28 | import static org.onlab.onos.net.NetTestTools.device; | 31 | import static org.onlab.onos.net.NetTestTools.device; |
29 | import static org.onlab.onos.net.NetTestTools.link; | 32 | import static org.onlab.onos.net.NetTestTools.link; |
30 | import static org.onlab.onos.net.device.DeviceEvent.Type.DEVICE_ADDED; | 33 | import static org.onlab.onos.net.device.DeviceEvent.Type.DEVICE_ADDED; |
... | @@ -41,6 +44,9 @@ public class DefaultTopologyProviderTest { | ... | @@ -41,6 +44,9 @@ public class DefaultTopologyProviderTest { |
41 | private TestLinkService linkService = new TestLinkService(); | 44 | private TestLinkService linkService = new TestLinkService(); |
42 | private TestTopoProviderService providerService; | 45 | private TestTopoProviderService providerService; |
43 | 46 | ||
47 | + // phase corresponds to number of topologyChanged called | ||
48 | + private Phaser topologyChangedCounts = new Phaser(1); | ||
49 | + | ||
44 | @Before | 50 | @Before |
45 | public void setUp() { | 51 | public void setUp() { |
46 | provider.deviceService = deviceService; | 52 | provider.deviceService = deviceService; |
... | @@ -66,26 +72,23 @@ public class DefaultTopologyProviderTest { | ... | @@ -66,26 +72,23 @@ public class DefaultTopologyProviderTest { |
66 | } | 72 | } |
67 | 73 | ||
68 | @Test | 74 | @Test |
69 | - public void basics() { | 75 | + public void basics() throws InterruptedException, TimeoutException { |
70 | - assertAfter(100, new Runnable() { | 76 | + assertEquals(1, topologyChangedCounts.awaitAdvanceInterruptibly(0, 1, TimeUnit.SECONDS)); |
71 | - @Override | 77 | + validateSubmission(); |
72 | - public void run() { | ||
73 | - validateSubmission(); | ||
74 | - } | ||
75 | - }); | ||
76 | } | 78 | } |
77 | 79 | ||
78 | @Test | 80 | @Test |
79 | - public void eventDriven() { | 81 | + public void eventDriven() throws InterruptedException, TimeoutException { |
80 | - assertAfter(100, new Runnable() { | 82 | + assertEquals(1, topologyChangedCounts.awaitAdvanceInterruptibly(0, 1, TimeUnit.SECONDS)); |
81 | - @Override | 83 | + validateSubmission(); |
82 | - public void run() { | 84 | + |
83 | - validateSubmission(); | 85 | + deviceService.post(new DeviceEvent(DEVICE_ADDED, device("z"), null)); |
84 | - deviceService.post(new DeviceEvent(DEVICE_ADDED, device("z"), null)); | 86 | + linkService.post(new LinkEvent(LINK_ADDED, link("z", 1, "a", 4))); |
85 | - linkService.post(new LinkEvent(LINK_ADDED, link("z", 1, "a", 4))); | 87 | + assertThat(topologyChangedCounts.awaitAdvanceInterruptibly(1, 1, TimeUnit.SECONDS), |
86 | - validateSubmission(); | 88 | + is(greaterThanOrEqualTo(2))); |
87 | - } | 89 | + // Note: posting event, to trigger topologyChanged call, |
88 | - }); | 90 | + // but dummy topology will not change. |
91 | + validateSubmission(); | ||
89 | } | 92 | } |
90 | 93 | ||
91 | 94 | ||
... | @@ -119,6 +122,7 @@ public class DefaultTopologyProviderTest { | ... | @@ -119,6 +122,7 @@ public class DefaultTopologyProviderTest { |
119 | @Override | 122 | @Override |
120 | public void topologyChanged(GraphDescription graphDescription, List<Event> reasons) { | 123 | public void topologyChanged(GraphDescription graphDescription, List<Event> reasons) { |
121 | graphDesc = graphDescription; | 124 | graphDesc = graphDescription; |
125 | + topologyChangedCounts.arrive(); | ||
122 | } | 126 | } |
123 | } | 127 | } |
124 | 128 | ... | ... |
-
Please register or login to post a comment