|
12 | 12 | import org.testng.Assert;
|
13 | 13 | import org.testng.annotations.*;
|
14 | 14 |
|
| 15 | +import java.util.ArrayList; |
| 16 | +import java.util.Collections; |
| 17 | +import java.util.List; |
| 18 | + |
15 | 19 |
|
16 | 20 | @Test(groups=Global.FUNCTIONAL,sequential=true,dataProvider="createRetransmitter")
|
17 | 21 | public class RetransmitterTest {
|
@@ -128,13 +132,58 @@ public void testMultipleEntries(Retransmitter xmitter) {
|
128 | 132 | Assert.assertEquals(0, size);
|
129 | 133 | }
|
130 | 134 |
|
131 |
| - |
| 135 | + /** |
| 136 | + * Note that we do not have overlapping ranges due to the way {@link org.jgroups.stack.NakReceiverWindow} adds |
| 137 | + * missing messages ! |
| 138 | + * @param xmitter |
| 139 | + */ |
132 | 140 | @Test(dataProvider="createRetransmitter")
|
133 | 141 | public void testRanges(Retransmitter xmitter) {
|
134 |
| - xmitter.add(200, 500); |
135 |
| - xmitter.add(100, 300); |
136 |
| - System.out.println("xmitter: " + xmitter); |
137 |
| - assert xmitter.size() == 401 : "size was " + xmitter.size(); |
| 142 | + xmitter.add(100, 200); |
| 143 | + xmitter.add(300, 400); |
| 144 | + System.out.println("xmitter (" + xmitter.getClass().getCanonicalName() + "): " + xmitter); |
| 145 | + assert xmitter.size() == 202 : "size was " + xmitter.size(); |
| 146 | + } |
| 147 | + |
| 148 | + @Test(dataProvider="createRetransmitter") |
| 149 | + public void testAddAndRemoveIndividualSeqnos(Retransmitter xmitter) { |
| 150 | + int NUM=100; |
| 151 | + List<Long> seqnos=new ArrayList<Long>(NUM); |
| 152 | + for(long i=1; i <= NUM; i++) { |
| 153 | + seqnos.add(i); |
| 154 | + xmitter.add(i, i); |
| 155 | + } |
| 156 | + |
| 157 | + System.out.println("xmitter = " + xmitter); |
| 158 | + assert xmitter.size() == NUM; |
| 159 | + Collections.shuffle(seqnos); |
| 160 | + while(!seqnos.isEmpty()) { |
| 161 | + long seqno=seqnos.remove(0); |
| 162 | + xmitter.remove(seqno); |
| 163 | + } |
| 164 | + System.out.println("xmitter = " + xmitter); |
| 165 | + assert xmitter.size() == 0 : "expected size of 0, but size is " + xmitter.size(); |
| 166 | + } |
| 167 | + |
| 168 | + |
| 169 | + @Test(dataProvider="createRetransmitter") |
| 170 | + public void testAddAndRemoveRanges(Retransmitter xmitter) { |
| 171 | + int NUM=100; |
| 172 | + List<Long> seqnos=new ArrayList<Long>(NUM); |
| 173 | + for(long i=1; i <= NUM; i++) |
| 174 | + seqnos.add(i); |
| 175 | + |
| 176 | + xmitter.add(1, NUM); |
| 177 | + |
| 178 | + System.out.println("xmitter = " + xmitter); |
| 179 | + assert xmitter.size() == NUM; |
| 180 | + Collections.shuffle(seqnos); |
| 181 | + while(!seqnos.isEmpty()) { |
| 182 | + long seqno=seqnos.remove(0); |
| 183 | + xmitter.remove(seqno); |
| 184 | + } |
| 185 | + System.out.println("xmitter = " + xmitter); |
| 186 | + assert xmitter.size() == 0 : "expected size of 0, but size is " + xmitter.size(); |
138 | 187 | }
|
139 | 188 |
|
140 | 189 |
|
|
0 commit comments