Bring LindenUDP.Tests back from the dead. No tests are running.
Code drift means that most of this stuff doesn't compile but the structure is still useful. Conflicts: OpenSim/Region/ClientStack/Linden/UDP/Tests/TestLLPacketServer.cs0.7.2-post-fixes
							parent
							
								
									753f11273f
								
							
						
					
					
						commit
						9edbb4f77a
					
				|  | @ -29,7 +29,6 @@ using System.Net; | |||
| using log4net.Config; | ||||
| using Nini.Config; | ||||
| using NUnit.Framework; | ||||
| using NUnit.Framework.SyntaxHelpers; | ||||
| using OpenMetaverse; | ||||
| using OpenMetaverse.Packets; | ||||
| using OpenSim.Framework; | ||||
|  | @ -57,27 +56,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests | |||
|             } | ||||
|         } | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Add a client for testing | ||||
|         /// </summary> | ||||
|         /// <param name="scene"></param> | ||||
|         /// <param name="testLLUDPServer"></param> | ||||
|         /// <param name="testPacketServer"></param> | ||||
|         /// <param name="acm">Agent circuit manager used in setting up the stack</param> | ||||
|         protected void SetupStack( | ||||
|             IScene scene, out TestLLUDPServer testLLUDPServer, out TestLLPacketServer testPacketServer,  | ||||
|             out AgentCircuitManager acm) | ||||
|         { | ||||
|             IConfigSource configSource = new IniConfigSource(); | ||||
|             ClientStackUserSettings userSettings = new ClientStackUserSettings(); | ||||
|             testLLUDPServer = new TestLLUDPServer(); | ||||
|             acm = new AgentCircuitManager(); | ||||
|                                      | ||||
|             uint port = 666; | ||||
|             testLLUDPServer.Initialise(null, ref port, 0, false, configSource, acm); | ||||
|             testPacketServer = new TestLLPacketServer(testLLUDPServer, userSettings); | ||||
|             testLLUDPServer.LocalScene = scene; | ||||
|         } | ||||
| //        /// <summary> | ||||
| //        /// Add a client for testing | ||||
| //        /// </summary> | ||||
| //        /// <param name="scene"></param> | ||||
| //        /// <param name="testLLUDPServer"></param> | ||||
| //        /// <param name="testPacketServer"></param> | ||||
| //        /// <param name="acm">Agent circuit manager used in setting up the stack</param> | ||||
| //        protected void SetupStack( | ||||
| //            IScene scene, out TestLLUDPServer testLLUDPServer, out TestLLPacketServer testPacketServer,  | ||||
| //            out AgentCircuitManager acm) | ||||
| //        { | ||||
| //            IConfigSource configSource = new IniConfigSource(); | ||||
| //            ClientStackUserSettings userSettings = new ClientStackUserSettings(); | ||||
| //            testLLUDPServer = new TestLLUDPServer(); | ||||
| //            acm = new AgentCircuitManager(); | ||||
| //                                     | ||||
| //            uint port = 666; | ||||
| //            testLLUDPServer.Initialise(null, ref port, 0, false, configSource, acm); | ||||
| //            testPacketServer = new TestLLPacketServer(testLLUDPServer, userSettings); | ||||
| //            testLLUDPServer.LocalScene = scene; | ||||
| //        } | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Set up a client for tests which aren't concerned with this process itself and where only one client is being | ||||
|  | @ -145,155 +144,155 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests | |||
|             return onp; | ||||
|         } | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Test adding a client to the stack | ||||
|         /// </summary> | ||||
|         [Test, LongRunning] | ||||
|         public void TestAddClient() | ||||
|         { | ||||
|             TestHelper.InMethod(); | ||||
| 
 | ||||
|             uint myCircuitCode = 123456; | ||||
|             UUID myAgentUuid   = UUID.Parse("00000000-0000-0000-0000-000000000001"); | ||||
|             UUID mySessionUuid = UUID.Parse("00000000-0000-0000-0000-000000000002"); | ||||
|              | ||||
|             TestLLUDPServer testLLUDPServer; | ||||
|             TestLLPacketServer testLLPacketServer; | ||||
|             AgentCircuitManager acm; | ||||
|             SetupStack(new MockScene(), out testLLUDPServer, out testLLPacketServer, out acm); | ||||
|              | ||||
|             AgentCircuitData acd = new AgentCircuitData(); | ||||
|             acd.AgentID = myAgentUuid; | ||||
|             acd.SessionID = mySessionUuid; | ||||
|              | ||||
|             UseCircuitCodePacket uccp = new UseCircuitCodePacket(); | ||||
|              | ||||
|             UseCircuitCodePacket.CircuitCodeBlock uccpCcBlock  | ||||
|                 = new UseCircuitCodePacket.CircuitCodeBlock(); | ||||
|             uccpCcBlock.Code = myCircuitCode; | ||||
|             uccpCcBlock.ID = myAgentUuid; | ||||
|             uccpCcBlock.SessionID = mySessionUuid; | ||||
|             uccp.CircuitCode = uccpCcBlock; | ||||
|              | ||||
|             EndPoint testEp = new IPEndPoint(IPAddress.Loopback, 999); | ||||
|              | ||||
|             testLLUDPServer.LoadReceive(uccp, testEp); | ||||
|             testLLUDPServer.ReceiveData(null); | ||||
|              | ||||
|             // Circuit shouildn't exist since the circuit manager doesn't know about this circuit for authentication yet | ||||
|             Assert.IsFalse(testLLUDPServer.HasCircuit(myCircuitCode)); | ||||
|                          | ||||
|             acm.AddNewCircuit(myCircuitCode, acd); | ||||
|              | ||||
|             testLLUDPServer.LoadReceive(uccp, testEp); | ||||
|             testLLUDPServer.ReceiveData(null); | ||||
|              | ||||
|             // Should succeed now | ||||
|             Assert.IsTrue(testLLUDPServer.HasCircuit(myCircuitCode)); | ||||
|             Assert.IsFalse(testLLUDPServer.HasCircuit(101)); | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Test removing a client from the stack | ||||
|         /// </summary> | ||||
|         [Test] | ||||
|         public void TestRemoveClient() | ||||
|         { | ||||
|             TestHelper.InMethod(); | ||||
| 
 | ||||
|             uint myCircuitCode = 123457; | ||||
|              | ||||
|             TestLLUDPServer testLLUDPServer; | ||||
|             TestLLPacketServer testLLPacketServer; | ||||
|             AgentCircuitManager acm; | ||||
|             SetupStack(new MockScene(), out testLLUDPServer, out testLLPacketServer, out acm); | ||||
|             AddClient(myCircuitCode, new IPEndPoint(IPAddress.Loopback, 1000), testLLUDPServer, acm); | ||||
|              | ||||
|             testLLUDPServer.RemoveClientCircuit(myCircuitCode); | ||||
|             Assert.IsFalse(testLLUDPServer.HasCircuit(myCircuitCode)); | ||||
|              | ||||
|             // Check that removing a non-existant circuit doesn't have any bad effects | ||||
|             testLLUDPServer.RemoveClientCircuit(101); | ||||
|             Assert.IsFalse(testLLUDPServer.HasCircuit(101)); | ||||
|         } | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Make sure that the client stack reacts okay to malformed packets | ||||
|         /// </summary> | ||||
|         [Test] | ||||
|         public void TestMalformedPacketSend() | ||||
|         { | ||||
|             TestHelper.InMethod(); | ||||
| 
 | ||||
|             uint myCircuitCode = 123458; | ||||
|             EndPoint testEp = new IPEndPoint(IPAddress.Loopback, 1001); | ||||
|             MockScene scene = new MockScene();  | ||||
|              | ||||
|             TestLLUDPServer testLLUDPServer; | ||||
|             TestLLPacketServer testLLPacketServer; | ||||
|             AgentCircuitManager acm; | ||||
|             SetupStack(scene, out testLLUDPServer, out testLLPacketServer, out acm); | ||||
|             AddClient(myCircuitCode, testEp, testLLUDPServer, acm); | ||||
| 
 | ||||
|             byte[] data = new byte[] { 0x01, 0x02, 0x03, 0x04 }; | ||||
| 
 | ||||
|             // Send two garbled 'packets' in succession | ||||
|             testLLUDPServer.LoadReceive(data, testEp); | ||||
|             testLLUDPServer.LoadReceive(data, testEp); | ||||
|             testLLUDPServer.ReceiveData(null);  | ||||
|              | ||||
|             // Check that we are still here | ||||
|             Assert.IsTrue(testLLUDPServer.HasCircuit(myCircuitCode)); | ||||
|             Assert.That(testLLPacketServer.GetTotalPacketsReceived(), Is.EqualTo(0)); | ||||
|              | ||||
|             // Check that sending a valid packet to same circuit still succeeds | ||||
|             Assert.That(scene.ObjectNameCallsReceived, Is.EqualTo(0)); | ||||
|              | ||||
|             testLLUDPServer.LoadReceive(BuildTestObjectNamePacket(1, "helloooo"), testEp); | ||||
|             testLLUDPServer.ReceiveData(null); | ||||
|              | ||||
|             Assert.That(testLLPacketServer.GetTotalPacketsReceived(), Is.EqualTo(1)); | ||||
|             Assert.That(testLLPacketServer.GetPacketsReceivedFor(PacketType.ObjectName), Is.EqualTo(1)); | ||||
|         } | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Test that the stack continues to work even if some client has caused a  | ||||
|         /// SocketException on Socket.BeginReceive() | ||||
|         /// </summary> | ||||
|         [Test] | ||||
|         public void TestExceptionOnBeginReceive() | ||||
|         { | ||||
|             TestHelper.InMethod(); | ||||
| 
 | ||||
|             MockScene scene = new MockScene(); | ||||
|              | ||||
|             uint circuitCodeA = 130000; | ||||
|             EndPoint epA = new IPEndPoint(IPAddress.Loopback, 1300); | ||||
|             UUID agentIdA   = UUID.Parse("00000000-0000-0000-0000-000000001300"); | ||||
|             UUID sessionIdA = UUID.Parse("00000000-0000-0000-0000-000000002300"); | ||||
|              | ||||
|             uint circuitCodeB = 130001; | ||||
|             EndPoint epB = new IPEndPoint(IPAddress.Loopback, 1301); | ||||
|             UUID agentIdB   = UUID.Parse("00000000-0000-0000-0000-000000001301"); | ||||
|             UUID sessionIdB = UUID.Parse("00000000-0000-0000-0000-000000002301"); | ||||
|              | ||||
|             TestLLUDPServer testLLUDPServer; | ||||
|             TestLLPacketServer testLLPacketServer; | ||||
|             AgentCircuitManager acm; | ||||
|             SetupStack(scene, out testLLUDPServer, out testLLPacketServer, out acm); | ||||
|             AddClient(circuitCodeA, epA, agentIdA, sessionIdA, testLLUDPServer, acm); | ||||
|             AddClient(circuitCodeB, epB, agentIdB, sessionIdB, testLLUDPServer, acm); | ||||
|              | ||||
|             testLLUDPServer.LoadReceive(BuildTestObjectNamePacket(1, "packet1"), epA); | ||||
|             testLLUDPServer.LoadReceive(BuildTestObjectNamePacket(1, "packet2"), epB); | ||||
|             testLLUDPServer.LoadReceiveWithBeginException(epA); | ||||
|             testLLUDPServer.LoadReceive(BuildTestObjectNamePacket(2, "packet3"), epB); | ||||
|             testLLUDPServer.ReceiveData(null); | ||||
|              | ||||
|             Assert.IsFalse(testLLUDPServer.HasCircuit(circuitCodeA)); | ||||
|           | ||||
|             Assert.That(testLLPacketServer.GetTotalPacketsReceived(), Is.EqualTo(3)); | ||||
|             Assert.That(testLLPacketServer.GetPacketsReceivedFor(PacketType.ObjectName), Is.EqualTo(3)); | ||||
|         } | ||||
| //        /// <summary> | ||||
| //        /// Test adding a client to the stack | ||||
| //        /// </summary> | ||||
| //        [Test, LongRunning] | ||||
| //        public void TestAddClient() | ||||
| //        { | ||||
| //            TestHelper.InMethod(); | ||||
| // | ||||
| //            uint myCircuitCode = 123456; | ||||
| //            UUID myAgentUuid   = UUID.Parse("00000000-0000-0000-0000-000000000001"); | ||||
| //            UUID mySessionUuid = UUID.Parse("00000000-0000-0000-0000-000000000002"); | ||||
| //             | ||||
| //            TestLLUDPServer testLLUDPServer; | ||||
| //            TestLLPacketServer testLLPacketServer; | ||||
| //            AgentCircuitManager acm; | ||||
| //            SetupStack(new MockScene(), out testLLUDPServer, out testLLPacketServer, out acm); | ||||
| //             | ||||
| //            AgentCircuitData acd = new AgentCircuitData(); | ||||
| //            acd.AgentID = myAgentUuid; | ||||
| //            acd.SessionID = mySessionUuid; | ||||
| //             | ||||
| //            UseCircuitCodePacket uccp = new UseCircuitCodePacket(); | ||||
| //             | ||||
| //            UseCircuitCodePacket.CircuitCodeBlock uccpCcBlock  | ||||
| //                = new UseCircuitCodePacket.CircuitCodeBlock(); | ||||
| //            uccpCcBlock.Code = myCircuitCode; | ||||
| //            uccpCcBlock.ID = myAgentUuid; | ||||
| //            uccpCcBlock.SessionID = mySessionUuid; | ||||
| //            uccp.CircuitCode = uccpCcBlock; | ||||
| //             | ||||
| //            EndPoint testEp = new IPEndPoint(IPAddress.Loopback, 999); | ||||
| //             | ||||
| //            testLLUDPServer.LoadReceive(uccp, testEp); | ||||
| //            testLLUDPServer.ReceiveData(null); | ||||
| //             | ||||
| //            // Circuit shouildn't exist since the circuit manager doesn't know about this circuit for authentication yet | ||||
| //            Assert.IsFalse(testLLUDPServer.HasCircuit(myCircuitCode)); | ||||
| //                         | ||||
| //            acm.AddNewCircuit(myCircuitCode, acd); | ||||
| //             | ||||
| //            testLLUDPServer.LoadReceive(uccp, testEp); | ||||
| //            testLLUDPServer.ReceiveData(null); | ||||
| //             | ||||
| //            // Should succeed now | ||||
| //            Assert.IsTrue(testLLUDPServer.HasCircuit(myCircuitCode)); | ||||
| //            Assert.IsFalse(testLLUDPServer.HasCircuit(101)); | ||||
| //        } | ||||
| // | ||||
| //        /// <summary> | ||||
| //        /// Test removing a client from the stack | ||||
| //        /// </summary> | ||||
| //        [Test] | ||||
| //        public void TestRemoveClient() | ||||
| //        { | ||||
| //            TestHelper.InMethod(); | ||||
| // | ||||
| //            uint myCircuitCode = 123457; | ||||
| //             | ||||
| //            TestLLUDPServer testLLUDPServer; | ||||
| //            TestLLPacketServer testLLPacketServer; | ||||
| //            AgentCircuitManager acm; | ||||
| //            SetupStack(new MockScene(), out testLLUDPServer, out testLLPacketServer, out acm); | ||||
| //            AddClient(myCircuitCode, new IPEndPoint(IPAddress.Loopback, 1000), testLLUDPServer, acm); | ||||
| //             | ||||
| //            testLLUDPServer.RemoveClientCircuit(myCircuitCode); | ||||
| //            Assert.IsFalse(testLLUDPServer.HasCircuit(myCircuitCode)); | ||||
| //             | ||||
| //            // Check that removing a non-existant circuit doesn't have any bad effects | ||||
| //            testLLUDPServer.RemoveClientCircuit(101); | ||||
| //            Assert.IsFalse(testLLUDPServer.HasCircuit(101)); | ||||
| //        } | ||||
| //         | ||||
| //        /// <summary> | ||||
| //        /// Make sure that the client stack reacts okay to malformed packets | ||||
| //        /// </summary> | ||||
| //        [Test] | ||||
| //        public void TestMalformedPacketSend() | ||||
| //        { | ||||
| //            TestHelper.InMethod(); | ||||
| // | ||||
| //            uint myCircuitCode = 123458; | ||||
| //            EndPoint testEp = new IPEndPoint(IPAddress.Loopback, 1001); | ||||
| //            MockScene scene = new MockScene();  | ||||
| //             | ||||
| //            TestLLUDPServer testLLUDPServer; | ||||
| //            TestLLPacketServer testLLPacketServer; | ||||
| //            AgentCircuitManager acm; | ||||
| //            SetupStack(scene, out testLLUDPServer, out testLLPacketServer, out acm); | ||||
| //            AddClient(myCircuitCode, testEp, testLLUDPServer, acm); | ||||
| // | ||||
| //            byte[] data = new byte[] { 0x01, 0x02, 0x03, 0x04 }; | ||||
| // | ||||
| //            // Send two garbled 'packets' in succession | ||||
| //            testLLUDPServer.LoadReceive(data, testEp); | ||||
| //            testLLUDPServer.LoadReceive(data, testEp); | ||||
| //            testLLUDPServer.ReceiveData(null);  | ||||
| //             | ||||
| //            // Check that we are still here | ||||
| //            Assert.IsTrue(testLLUDPServer.HasCircuit(myCircuitCode)); | ||||
| //            Assert.That(testLLPacketServer.GetTotalPacketsReceived(), Is.EqualTo(0)); | ||||
| //             | ||||
| //            // Check that sending a valid packet to same circuit still succeeds | ||||
| //            Assert.That(scene.ObjectNameCallsReceived, Is.EqualTo(0)); | ||||
| //             | ||||
| //            testLLUDPServer.LoadReceive(BuildTestObjectNamePacket(1, "helloooo"), testEp); | ||||
| //            testLLUDPServer.ReceiveData(null); | ||||
| //             | ||||
| //            Assert.That(testLLPacketServer.GetTotalPacketsReceived(), Is.EqualTo(1)); | ||||
| //            Assert.That(testLLPacketServer.GetPacketsReceivedFor(PacketType.ObjectName), Is.EqualTo(1)); | ||||
| //        } | ||||
| //         | ||||
| //        /// <summary> | ||||
| //        /// Test that the stack continues to work even if some client has caused a  | ||||
| //        /// SocketException on Socket.BeginReceive() | ||||
| //        /// </summary> | ||||
| //        [Test] | ||||
| //        public void TestExceptionOnBeginReceive() | ||||
| //        { | ||||
| //            TestHelper.InMethod(); | ||||
| // | ||||
| //            MockScene scene = new MockScene(); | ||||
| //             | ||||
| //            uint circuitCodeA = 130000; | ||||
| //            EndPoint epA = new IPEndPoint(IPAddress.Loopback, 1300); | ||||
| //            UUID agentIdA   = UUID.Parse("00000000-0000-0000-0000-000000001300"); | ||||
| //            UUID sessionIdA = UUID.Parse("00000000-0000-0000-0000-000000002300"); | ||||
| //             | ||||
| //            uint circuitCodeB = 130001; | ||||
| //            EndPoint epB = new IPEndPoint(IPAddress.Loopback, 1301); | ||||
| //            UUID agentIdB   = UUID.Parse("00000000-0000-0000-0000-000000001301"); | ||||
| //            UUID sessionIdB = UUID.Parse("00000000-0000-0000-0000-000000002301"); | ||||
| //             | ||||
| //            TestLLUDPServer testLLUDPServer; | ||||
| //            TestLLPacketServer testLLPacketServer; | ||||
| //            AgentCircuitManager acm; | ||||
| //            SetupStack(scene, out testLLUDPServer, out testLLPacketServer, out acm); | ||||
| //            AddClient(circuitCodeA, epA, agentIdA, sessionIdA, testLLUDPServer, acm); | ||||
| //            AddClient(circuitCodeB, epB, agentIdB, sessionIdB, testLLUDPServer, acm); | ||||
| //             | ||||
| //            testLLUDPServer.LoadReceive(BuildTestObjectNamePacket(1, "packet1"), epA); | ||||
| //            testLLUDPServer.LoadReceive(BuildTestObjectNamePacket(1, "packet2"), epB); | ||||
| //            testLLUDPServer.LoadReceiveWithBeginException(epA); | ||||
| //            testLLUDPServer.LoadReceive(BuildTestObjectNamePacket(2, "packet3"), epB); | ||||
| //            testLLUDPServer.ReceiveData(null); | ||||
| //             | ||||
| //            Assert.IsFalse(testLLUDPServer.HasCircuit(circuitCodeA)); | ||||
| //          | ||||
| //            Assert.That(testLLPacketServer.GetTotalPacketsReceived(), Is.EqualTo(3)); | ||||
| //            Assert.That(testLLPacketServer.GetPacketsReceivedFor(PacketType.ObjectName), Is.EqualTo(3)); | ||||
| //        } | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -25,6 +25,7 @@ | |||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| using System.Net; | ||||
| using OpenMetaverse; | ||||
| using OpenSim.Framework; | ||||
| using OpenSim.Region.Framework.Scenes; | ||||
|  | @ -52,14 +53,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests | |||
|         public override void Update() {} | ||||
|         public override void LoadWorldMap() {} | ||||
|          | ||||
|         public override void AddNewClient(IClientAPI client)  | ||||
|         public override void AddNewClient(IClientAPI client, PresenceType type) | ||||
|         { | ||||
|             client.OnObjectName += RecordObjectNameCall; | ||||
|         } | ||||
|          | ||||
|         public override void RemoveClient(UUID agentID) {} | ||||
|         public override void CloseAllAgents(uint circuitcode) {} | ||||
|         public override void RemoveClient(UUID agentID, bool someReason) {} | ||||
| //        public override void CloseAllAgents(uint circuitcode) {} | ||||
|         public override bool CheckClient(UUID clientId, IPEndPoint endPoint) { return true; } | ||||
|         public override void OtherRegionUp(GridRegion otherRegion) {  } | ||||
| 
 | ||||
|         public override bool TryGetScenePresence(UUID uuid, out ScenePresence sp) { sp = null; return false; } | ||||
|              | ||||
|         /// <summary> | ||||
|         /// Doesn't really matter what the call is - we're using this to test that a packet has actually been received | ||||
|  |  | |||
|  | @ -27,7 +27,6 @@ | |||
| 
 | ||||
| using Nini.Config; | ||||
| using NUnit.Framework; | ||||
| using NUnit.Framework.SyntaxHelpers; | ||||
| using OpenMetaverse; | ||||
| using OpenMetaverse.Packets; | ||||
| using OpenSim.Framework; | ||||
|  | @ -42,65 +41,65 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests | |||
|     [TestFixture] | ||||
|     public class PacketHandlerTests | ||||
|     { | ||||
|         [Test] | ||||
|         /// <summary> | ||||
|         /// More a placeholder, really | ||||
|         /// </summary> | ||||
|         public void InPacketTest() | ||||
|         { | ||||
|             TestHelper.InMethod(); | ||||
| 
 | ||||
|             AgentCircuitData agent = new AgentCircuitData(); | ||||
|             agent.AgentID = UUID.Random(); | ||||
|             agent.firstname = "testfirstname"; | ||||
|             agent.lastname = "testlastname"; | ||||
|             agent.SessionID = UUID.Zero; | ||||
|             agent.SecureSessionID = UUID.Zero; | ||||
|             agent.circuitcode = 123; | ||||
|             agent.BaseFolder = UUID.Zero; | ||||
|             agent.InventoryFolder = UUID.Zero; | ||||
|             agent.startpos = Vector3.Zero; | ||||
|             agent.CapsPath = "http://wibble.com"; | ||||
|              | ||||
|             TestLLUDPServer testLLUDPServer; | ||||
|             TestLLPacketServer testLLPacketServer; | ||||
|             AgentCircuitManager acm; | ||||
|             IScene scene = new MockScene(); | ||||
|             SetupStack(scene, out testLLUDPServer, out testLLPacketServer, out acm); | ||||
|              | ||||
|             TestClient testClient = new TestClient(agent, scene); | ||||
|              | ||||
|             LLPacketHandler packetHandler  | ||||
|                 = new LLPacketHandler(testClient, testLLPacketServer, new ClientStackUserSettings()); | ||||
|              | ||||
|             packetHandler.InPacket(new AgentAnimationPacket()); | ||||
|             LLQueItem receivedPacket = packetHandler.PacketQueue.Dequeue(); | ||||
|              | ||||
|             Assert.That(receivedPacket, Is.Not.Null); | ||||
|             Assert.That(receivedPacket.Incoming, Is.True); | ||||
|             Assert.That(receivedPacket.Packet, Is.TypeOf(typeof(AgentAnimationPacket))); | ||||
|         } | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Add a client for testing | ||||
|         /// </summary> | ||||
|         /// <param name="scene"></param> | ||||
|         /// <param name="testLLUDPServer"></param> | ||||
|         /// <param name="testPacketServer"></param> | ||||
|         /// <param name="acm">Agent circuit manager used in setting up the stack</param> | ||||
|         protected void SetupStack( | ||||
|             IScene scene, out TestLLUDPServer testLLUDPServer, out TestLLPacketServer testPacketServer,  | ||||
|             out AgentCircuitManager acm) | ||||
|         { | ||||
|             IConfigSource configSource = new IniConfigSource(); | ||||
|             ClientStackUserSettings userSettings = new ClientStackUserSettings(); | ||||
|             testLLUDPServer = new TestLLUDPServer(); | ||||
|             acm = new AgentCircuitManager(); | ||||
|                                      | ||||
|             uint port = 666; | ||||
|             testLLUDPServer.Initialise(null, ref port, 0, false, configSource, acm); | ||||
|             testPacketServer = new TestLLPacketServer(testLLUDPServer, userSettings); | ||||
|             testLLUDPServer.LocalScene = scene; | ||||
|         } | ||||
| //        [Test] | ||||
| //        /// <summary> | ||||
| //        /// More a placeholder, really | ||||
| //        /// </summary> | ||||
| //        public void InPacketTest() | ||||
| //        { | ||||
| //            TestHelper.InMethod(); | ||||
| // | ||||
| //            AgentCircuitData agent = new AgentCircuitData(); | ||||
| //            agent.AgentID = UUID.Random(); | ||||
| //            agent.firstname = "testfirstname"; | ||||
| //            agent.lastname = "testlastname"; | ||||
| //            agent.SessionID = UUID.Zero; | ||||
| //            agent.SecureSessionID = UUID.Zero; | ||||
| //            agent.circuitcode = 123; | ||||
| //            agent.BaseFolder = UUID.Zero; | ||||
| //            agent.InventoryFolder = UUID.Zero; | ||||
| //            agent.startpos = Vector3.Zero; | ||||
| //            agent.CapsPath = "http://wibble.com"; | ||||
| //             | ||||
| //            TestLLUDPServer testLLUDPServer; | ||||
| //            TestLLPacketServer testLLPacketServer; | ||||
| //            AgentCircuitManager acm; | ||||
| //            IScene scene = new MockScene(); | ||||
| //            SetupStack(scene, out testLLUDPServer, out testLLPacketServer, out acm); | ||||
| // | ||||
| //            TestClient testClient = new TestClient(agent, scene); | ||||
| //             | ||||
| //            LLPacketHandler packetHandler | ||||
| //                = new LLPacketHandler(testClient, testLLPacketServer, new ClientStackUserSettings()); | ||||
| // | ||||
| //            packetHandler.InPacket(new AgentAnimationPacket()); | ||||
| //            LLQueItem receivedPacket = packetHandler.PacketQueue.Dequeue(); | ||||
| // | ||||
| //            Assert.That(receivedPacket, Is.Not.Null); | ||||
| //            Assert.That(receivedPacket.Incoming, Is.True); | ||||
| //            Assert.That(receivedPacket.Packet, Is.TypeOf(typeof(AgentAnimationPacket))); | ||||
| //        } | ||||
| // | ||||
| //        /// <summary> | ||||
| //        /// Add a client for testing | ||||
| //        /// </summary> | ||||
| //        /// <param name="scene"></param> | ||||
| //        /// <param name="testLLUDPServer"></param> | ||||
| //        /// <param name="testPacketServer"></param> | ||||
| //        /// <param name="acm">Agent circuit manager used in setting up the stack</param> | ||||
| //        protected void SetupStack( | ||||
| //            IScene scene, out TestLLUDPServer testLLUDPServer, out TestLLPacketServer testPacketServer,  | ||||
| //            out AgentCircuitManager acm) | ||||
| //        { | ||||
| //            IConfigSource configSource = new IniConfigSource(); | ||||
| //            ClientStackUserSettings userSettings = new ClientStackUserSettings(); | ||||
| //            testLLUDPServer = new TestLLUDPServer(); | ||||
| //            acm = new AgentCircuitManager(); | ||||
| //                                     | ||||
| //            uint port = 666; | ||||
| //            testLLUDPServer.Initialise(null, ref port, 0, false, configSource, acm); | ||||
| //            testPacketServer = new TestLLPacketServer(testLLUDPServer, userSettings); | ||||
| //            testLLUDPServer.LocalScene = scene; | ||||
| //        } | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -1,87 +0,0 @@ | |||
| /* | ||||
|  * Copyright (c) Contributors, http://opensimulator.org/ | ||||
|  * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of the OpenSimulator Project nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| using System.Collections.Generic; | ||||
| using OpenMetaverse.Packets; | ||||
| 
 | ||||
| namespace OpenSim.Region.ClientStack.LindenUDP.Tests | ||||
| {  | ||||
|     public class TestLLPacketServer : LLPacketServer | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Record counts of packets received | ||||
|         /// </summary> | ||||
|         protected Dictionary<PacketType, int> m_packetsReceived = new Dictionary<PacketType, int>(); | ||||
|          | ||||
|         public TestLLPacketServer(LLUDPServer networkHandler, ClientStackUserSettings userSettings) | ||||
|             : base(networkHandler, userSettings) | ||||
|         {} | ||||
|          | ||||
|         public override void InPacket(uint circuitCode, Packet packet) | ||||
|         { | ||||
|             base.InPacket(circuitCode, packet); | ||||
|              | ||||
|             if (m_packetsReceived.ContainsKey(packet.Type)) | ||||
|                 m_packetsReceived[packet.Type]++; | ||||
|             else | ||||
|                 m_packetsReceived[packet.Type] = 1; | ||||
|         } | ||||
|          | ||||
|         public int GetTotalPacketsReceived() | ||||
|         { | ||||
|             int totalCount = 0; | ||||
|              | ||||
|             foreach (int count in m_packetsReceived.Values) | ||||
|                 totalCount += count; | ||||
|              | ||||
|             return totalCount; | ||||
|         } | ||||
|          | ||||
|         public int GetPacketsReceivedFor(PacketType packetType) | ||||
|         { | ||||
|             if (m_packetsReceived.ContainsKey(packetType)) | ||||
|                 return m_packetsReceived[packetType]; | ||||
|             else | ||||
|                 return 0; | ||||
|         } | ||||
| 
 | ||||
|         [Test] | ||||
|         public void RemoveForClient() | ||||
|         { | ||||
|             TestHelpers.InMethod(); | ||||
| //            log4net.Config.XmlConfigurator.Configure(); | ||||
| 
 | ||||
|             UUID spId = TestHelpers.ParseTail(0x1); | ||||
| 
 | ||||
|             SceneHelpers.AddScenePresence(m_scene, spId); | ||||
|             m_scene.IncomingCloseAgent(spId); | ||||
| 
 | ||||
|             // TODO: Add more assertions for the other aspects of event queues | ||||
|             Assert.That(MainServer.Instance.GetPollServiceHandlerKeys().Count, Is.EqualTo(0)); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -29,7 +29,9 @@ using System; | |||
| using System.Collections.Generic; | ||||
| using System.Net; | ||||
| using System.Net.Sockets; | ||||
| using Nini.Config; | ||||
| using OpenMetaverse.Packets; | ||||
| using OpenSim.Framework; | ||||
| 
 | ||||
| namespace OpenSim.Region.ClientStack.LindenUDP.Tests | ||||
| { | ||||
|  | @ -39,42 +41,46 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests | |||
|     /// </summary> | ||||
|     public class TestLLUDPServer : LLUDPServer | ||||
|     { | ||||
|         public TestLLUDPServer(IPAddress listenIP, ref uint port, int proxyPortOffsetParm, bool allow_alternate_port, IConfigSource configSource, AgentCircuitManager circuitManager) | ||||
|             : base(listenIP, ref port, proxyPortOffsetParm, allow_alternate_port, configSource, circuitManager) | ||||
|         {} | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// The chunks of data to pass to the LLUDPServer when it calls EndReceive | ||||
|         /// </summary> | ||||
|         protected Queue<ChunkSenderTuple> m_chunksToLoad = new Queue<ChunkSenderTuple>(); | ||||
|          | ||||
|         protected override void BeginReceive() | ||||
|         { | ||||
|             if (m_chunksToLoad.Count > 0 && m_chunksToLoad.Peek().BeginReceiveException) | ||||
|             { | ||||
|                 ChunkSenderTuple tuple = m_chunksToLoad.Dequeue(); | ||||
|                 reusedEpSender = tuple.Sender; | ||||
|                 throw new SocketException(); | ||||
|             } | ||||
|         } | ||||
| //        protected override void BeginReceive() | ||||
| //        { | ||||
| //            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) | ||||
|         { | ||||
|             numBytes = 0; | ||||
| 
 | ||||
|             //m_log.Debug("Queue size " + m_chunksToLoad.Count); | ||||
|              | ||||
|             if (m_chunksToLoad.Count <= 0) | ||||
|                 return false; | ||||
|              | ||||
|             ChunkSenderTuple tuple = m_chunksToLoad.Dequeue(); | ||||
|             RecvBuffer = tuple.Data; | ||||
|             numBytes   = tuple.Data.Length; | ||||
|             epSender   = tuple.Sender; | ||||
|              | ||||
|             return true; | ||||
|         } | ||||
| //        protected override bool EndReceive(out int numBytes, IAsyncResult result, ref EndPoint epSender) | ||||
| //        { | ||||
| //            numBytes = 0; | ||||
| // | ||||
| //            //m_log.Debug("Queue size " + m_chunksToLoad.Count); | ||||
| //             | ||||
| //            if (m_chunksToLoad.Count <= 0) | ||||
| //                return false; | ||||
| //             | ||||
| //            ChunkSenderTuple tuple = m_chunksToLoad.Dequeue(); | ||||
| //            RecvBuffer = tuple.Data; | ||||
| //            numBytes   = tuple.Data.Length; | ||||
| //            epSender   = tuple.Sender; | ||||
| //             | ||||
| //            return true; | ||||
| //        } | ||||
|          | ||||
|         public override void SendPacketTo(byte[] buffer, int size, SocketFlags flags, uint circuitcode)  | ||||
|         { | ||||
|             // Don't do anything just yet | ||||
|         } | ||||
| //        public override void SendPacketTo(byte[] buffer, int size, SocketFlags flags, uint circuitcode) | ||||
| //        { | ||||
| //            // Don't do anything just yet | ||||
| //        } | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Signal that this chunk should throw an exception on Socket.BeginReceive() | ||||
|  | @ -112,8 +118,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests | |||
|         /// <param name="result"></param> | ||||
|         public void ReceiveData(IAsyncResult result) | ||||
|         { | ||||
|             while (m_chunksToLoad.Count > 0) | ||||
|                 OnReceivedData(result); | ||||
|             // Doesn't work the same way anymore | ||||
| //            while (m_chunksToLoad.Count > 0) | ||||
| //                OnReceivedData(result); | ||||
|         } | ||||
|          | ||||
|         /// <summary> | ||||
|  | @ -123,10 +130,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests | |||
|         /// <returns></returns> | ||||
|         public bool HasCircuit(uint circuitCode) | ||||
|         { | ||||
|             lock (clientCircuits_reverse) | ||||
|             { | ||||
|                 return clientCircuits_reverse.ContainsKey(circuitCode); | ||||
|             } | ||||
| //            lock (clientCircuits_reverse) | ||||
| //            { | ||||
| //                return clientCircuits_reverse.ContainsKey(circuitCode); | ||||
| //            } | ||||
| 
 | ||||
|             return true; | ||||
|         } | ||||
|     } | ||||
|      | ||||
|  |  | |||
							
								
								
									
										20
									
								
								prebuild.xml
								
								
								
								
							
							
						
						
									
										20
									
								
								prebuild.xml
								
								
								
								
							|  | @ -3067,27 +3067,26 @@ | |||
|       </Files> | ||||
|     </Project> | ||||
| 
 | ||||
|     <!-- Commented for now until new unit tests are written for the new LLUDP implementation | ||||
|     <Project frameworkVersion="v3_5" name="OpenSim.Region.ClientStack.LindenUDP.Tests" path="OpenSim/Region/ClientStack/LindenUDP/Tests" type="Library"> | ||||
|     <Project frameworkVersion="v3_5" name="OpenSim.Region.ClientStack.LindenUDP.Tests" path="OpenSim/Region/ClientStack/Linden/UDP/Tests" type="Library"> | ||||
|       <Configuration name="Debug"> | ||||
|         <Options> | ||||
|           <OutputPath>../../../../../bin/</OutputPath> | ||||
|           <OutputPath>../../../../../../bin/</OutputPath> | ||||
|         </Options> | ||||
|       </Configuration> | ||||
|       <Configuration name="Release"> | ||||
|         <Options> | ||||
|           <OutputPath>../../../../../bin/</OutputPath> | ||||
|           <OutputPath>../../../../../../bin/</OutputPath> | ||||
|         </Options> | ||||
|       </Configuration> | ||||
| 
 | ||||
|       <ReferencePath>../../../../../bin/</ReferencePath> | ||||
|       <ReferencePath>../../../../../../bin/</ReferencePath> | ||||
|       <Reference name="System"/> | ||||
|       <Reference name="System.Xml"/> | ||||
|       <Reference name="log4net"/> | ||||
|       <Reference name="Nini" /> | ||||
|       <Reference name="nunit.framework" /> | ||||
|       <Reference name="OpenMetaverse"/> | ||||
|       <Reference name="OpenMetaverseTypes"/> | ||||
|       <Reference name="log4net" path="../../../../../../bin/"/> | ||||
|       <Reference name="Nini" path="../../../../../../bin/"/> | ||||
|       <Reference name="nunit.framework" path="../../../../../../bin/"/> | ||||
|       <Reference name="OpenMetaverse" path="../../../../../../bin/"/> | ||||
|       <Reference name="OpenMetaverseTypes" path="../../../../../../bin/"/> | ||||
|       <Reference name="OpenSim.Framework"/> | ||||
|       <Reference name="OpenSim.Framework.Communications"/> | ||||
|       <Reference name="OpenSim.Framework.Statistics"/> | ||||
|  | @ -3101,7 +3100,6 @@ | |||
|         <Match pattern="*.cs" recurse="false"/> | ||||
|       </Files> | ||||
|     </Project> | ||||
|     --> | ||||
| 
 | ||||
|     <Project frameworkVersion="v3_5" name="OpenSim.Region.ScriptEngine.Tests" path="OpenSim/Region/ScriptEngine" type="Library"> | ||||
|       <Configuration name="Debug"> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Justin Clark-Casey (justincc)
						Justin Clark-Casey (justincc)