INT1346 INT-1369 Fix Test Timing Issues

This commit is contained in:
Gary Russell
2010-08-24 00:35:00 +00:00
parent 32358bafca
commit 06b7d00113

View File

@@ -28,6 +28,7 @@ import java.net.ServerSocket;
import java.net.Socket; import java.net.Socket;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.Semaphore; import java.util.concurrent.Semaphore;
@@ -809,20 +810,21 @@ public class TcpSendingMessageHandlerTests {
ServerSocket server = ServerSocketFactory.getDefault().createServerSocket(port); ServerSocket server = ServerSocketFactory.getDefault().createServerSocket(port);
latch.countDown(); latch.countDown();
Socket socket = server.accept(); Socket socket = server.accept();
int i = 0; int i = 100;
while (true) { while (true) {
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
Object in; Object in;
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream()); ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
if (i == 0) { if (i == 100) {
in = ois.readObject(); in = ois.readObject();
// System.out.println(in); System.out.println(in);
oos.writeObject("world!"); oos.writeObject("world!");
ois = new ObjectInputStream(socket.getInputStream()); ois = new ObjectInputStream(socket.getInputStream());
oos = new ObjectOutputStream(socket.getOutputStream()); oos = new ObjectOutputStream(socket.getOutputStream());
Thread.sleep(500);
} }
in = ois.readObject(); in = ois.readObject();
oos.writeObject("Reply" + (++i)); oos.writeObject("Reply" + (i++));
} }
} catch (Exception e) { } catch (Exception e) {
if (!done.get()) { if (!done.get()) {
@@ -847,17 +849,19 @@ public class TcpSendingMessageHandlerTests {
QueueChannel channel = new QueueChannel(); QueueChannel channel = new QueueChannel();
adapter.setOutputChannel(channel); adapter.setOutputChannel(channel);
assertTrue(latch.await(10, TimeUnit.SECONDS)); assertTrue(latch.await(10, TimeUnit.SECONDS));
handler.handleMessage(MessageBuilder.withPayload("Test").build()); for (int i = 0; i < 100; i++) {
handler.handleMessage(MessageBuilder.withPayload("Test").build()); handler.handleMessage(MessageBuilder.withPayload("Test").build());
Set<String> results = new HashSet<String>(); }
Message<?> mOut = channel.receive(10000); Set<String> results = new TreeSet<String>();
assertNotNull(mOut); for (int i = 0; i < 100; i++) {
results.add((String) mOut.getPayload()); Message<?> mOut = channel.receive(10000);
mOut = channel.receive(10000); assertNotNull(mOut);
assertNotNull(mOut); results.add((String) mOut.getPayload());
results.add((String) mOut.getPayload()); }
assertTrue(results.remove("Reply1")); // System.out.println(results);
assertTrue(results.remove("Reply2")); for (int i = 100; i < 200; i++) {
assertTrue("Missing Reply" + i, results.remove("Reply" + i));
}
done.set(true); done.set(true);
} }