From f5f7ca47ea7a27fb7f82367cc7a4e04e11cb5155 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 12 Oct 2011 21:31:22 +0100 Subject: 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. --- .../Linden/UDP/Tests/BasicCircuitTests.cs | 343 ++++++++++----------- .../ClientStack/Linden/UDP/Tests/MockScene.cs | 10 +- .../Linden/UDP/Tests/PacketHandlerTests.cs | 121 ++++---- .../Linden/UDP/Tests/TestLLPacketServer.cs | 72 ----- .../Linden/UDP/Tests/TestLLUDPServer.cs | 79 ++--- 5 files changed, 282 insertions(+), 343 deletions(-) delete mode 100644 OpenSim/Region/ClientStack/Linden/UDP/Tests/TestLLPacketServer.cs (limited to 'OpenSim/Region/ClientStack/Linden') diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Tests/BasicCircuitTests.cs b/OpenSim/Region/ClientStack/Linden/UDP/Tests/BasicCircuitTests.cs index daab84f..b8a4e8e 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/Tests/BasicCircuitTests.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/Tests/BasicCircuitTests.cs @@ -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 } } - /// - /// Add a client for testing - /// - /// - /// - /// - /// Agent circuit manager used in setting up the stack - 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; - } +// /// +// /// Add a client for testing +// /// +// /// +// /// +// /// +// /// Agent circuit manager used in setting up the stack +// 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; +// } /// /// 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; } - /// - /// Test adding a client to the stack - /// - [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)); - } - - /// - /// Test removing a client from the stack - /// - [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)); - } - - /// - /// Make sure that the client stack reacts okay to malformed packets - /// - [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)); - } - - /// - /// Test that the stack continues to work even if some client has caused a - /// SocketException on Socket.BeginReceive() - /// - [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)); - } +// /// +// /// Test adding a client to the stack +// /// +// [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)); +// } +// +// /// +// /// Test removing a client from the stack +// /// +// [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)); +// } +// +// /// +// /// Make sure that the client stack reacts okay to malformed packets +// /// +// [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)); +// } +// +// /// +// /// Test that the stack continues to work even if some client has caused a +// /// SocketException on Socket.BeginReceive() +// /// +// [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)); +// } } } diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Tests/MockScene.cs b/OpenSim/Region/ClientStack/Linden/UDP/Tests/MockScene.cs index 34c21aa..737c654 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/Tests/MockScene.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/Tests/MockScene.cs @@ -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; } /// /// Doesn't really matter what the call is - we're using this to test that a packet has actually been received diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs b/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs index 7d0757f..0f88ec6 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs @@ -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] - /// - /// More a placeholder, really - /// - 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))); - } - - /// - /// Add a client for testing - /// - /// - /// - /// - /// Agent circuit manager used in setting up the stack - 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] +// /// +// /// More a placeholder, really +// /// +// 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))); +// } +// +// /// +// /// Add a client for testing +// /// +// /// +// /// +// /// +// /// Agent circuit manager used in setting up the stack +// 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; +// } } } diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Tests/TestLLPacketServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/Tests/TestLLPacketServer.cs deleted file mode 100644 index e995d65..0000000 --- a/OpenSim/Region/ClientStack/Linden/UDP/Tests/TestLLPacketServer.cs +++ /dev/null @@ -1,72 +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 - { - /// - /// Record counts of packets received - /// - protected Dictionary m_packetsReceived = new Dictionary(); - - 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; - } - } -} diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Tests/TestLLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/Tests/TestLLUDPServer.cs index f98586d..dd7999a 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/Tests/TestLLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/Tests/TestLLUDPServer.cs @@ -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 /// 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) + {} + /// /// The chunks of data to pass to the LLUDPServer when it calls EndReceive /// protected Queue m_chunksToLoad = new Queue(); - 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 +// } /// /// Signal that this chunk should throw an exception on Socket.BeginReceive() @@ -112,8 +118,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests /// 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); } /// @@ -123,10 +130,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests /// public bool HasCircuit(uint circuitCode) { - lock (clientCircuits_reverse) - { - return clientCircuits_reverse.ContainsKey(circuitCode); - } +// lock (clientCircuits_reverse) +// { +// return clientCircuits_reverse.ContainsKey(circuitCode); +// } + + return true; } } -- cgit v1.1