From 8477aab8e02b2f829d4946e051d36f11ae2e4839 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Thu, 6 Nov 2008 18:27:56 +0000 Subject: * refactor: factor out test packet send method in client stack unit tests --- .../ClientStack/LindenUDP/Tests/TestLLUDPServer.cs | 26 ++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLUDPServer.cs') diff --git a/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLUDPServer.cs index dd7afd3..002b493 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLUDPServer.cs @@ -48,7 +48,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests protected override void BeginReceive() { - // Do nothing + if (m_chunksToLoad.Count > 0 && m_chunksToLoad.Peek().BeginReceiveException) + { + ChunkSenderTuple tuple = m_chunksToLoad.Dequeue(); + reusedEpSender = tuple.Sender; + throw new SocketException(); + } } protected override bool EndReceive(out int numBytes, IAsyncResult result, ref EndPoint epSender) @@ -72,6 +77,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests } /// + /// Signal that this chunk should throw an exception on Socket.BeginReceive() + /// + /// + public void LoadReceiveWithBeginException(EndPoint epSender) + { + ChunkSenderTuple tuple = new ChunkSenderTuple(epSender); + tuple.BeginReceiveException = true; + m_chunksToLoad.Enqueue(tuple); + } + + /// /// Load some data to be received by the LLUDPServer on the next receive call /// /// @@ -118,14 +134,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests /// Record the data and sender tuple /// public class ChunkSenderTuple - { + { public byte[] Data; public EndPoint Sender; + public bool BeginReceiveException; public ChunkSenderTuple(byte[] data, EndPoint sender) { Data = data; Sender = sender; } + + public ChunkSenderTuple(EndPoint sender) + { + Sender = sender; + } } } \ No newline at end of file -- cgit v1.1