From d0744f8eca6adc2b6ae257f581792bd8eae16ea2 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Tue, 14 Apr 2009 18:49:45 +0000 Subject: * Make archiver tests pump the asset server manually instead of starting the normal runtime thread * This may eliminate the occasional archive test freezes, since they appeared to occur when somehow the asset server didn't pick up on the presence of a request in the asset quque --- .../Tests/Common/Mock/TestCommunicationsManager.cs | 11 +++++-- OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs | 38 ++++++++++++++++++++-- 2 files changed, 45 insertions(+), 4 deletions(-) (limited to 'OpenSim/Tests') diff --git a/OpenSim/Tests/Common/Mock/TestCommunicationsManager.cs b/OpenSim/Tests/Common/Mock/TestCommunicationsManager.cs index 3b39d36..93891c0 100644 --- a/OpenSim/Tests/Common/Mock/TestCommunicationsManager.cs +++ b/OpenSim/Tests/Common/Mock/TestCommunicationsManager.cs @@ -60,8 +60,7 @@ namespace OpenSim.Tests.Common.Mock m_inventoryDataPlugin = new TestInventoryDataPlugin(); SQLAssetServer assetService = new SQLAssetServer(new TestAssetDataPlugin()); - m_assetCache = new AssetCache(assetService); - m_assetCache.AssetServer.Start(); + m_assetCache = new AssetCache(assetService); LocalInventoryService lis = new LocalInventoryService(); lis.AddPlugin(m_inventoryDataPlugin); @@ -76,5 +75,13 @@ namespace OpenSim.Tests.Common.Mock LocalBackEndServices gs = new LocalBackEndServices(); m_gridService = gs; } + + /// <summary> + /// Start services that take care of business using their own threads. + /// </summary> + public void StartServices() + { + m_assetCache.AssetServer.Start(); + } } } diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs index 3bcd949..ea4f0af 100644 --- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs +++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs @@ -52,10 +52,39 @@ namespace OpenSim.Tests.Common.Setup /// <summary> /// Set up a test scene /// </summary> + /// + /// Automatically starts service threads, as would the normal runtime. + /// /// <returns></returns> public static TestScene SetupScene() { - return SetupScene("Unit test region", UUID.Random(), 1000, 1000, new TestCommunicationsManager()); + return SetupScene(true); + } + + /// <summary> + /// Set up a test scene + /// </summary> + /// + /// <param name="startServices">Start associated service threads for the scene</param> + /// <returns></returns> + public static TestScene SetupScene(bool startServices) + { + return SetupScene( + "Unit test region", UUID.Random(), 1000, 1000, new TestCommunicationsManager(), startServices); + } + + /// <summary> + /// Set up a test scene + /// </summary> + /// <param name="name">Name of the region</param> + /// <param name="id">ID of the region</param> + /// <param name="x">X co-ordinate of the region</param> + /// <param name="y">Y co-ordinate of the region</param> + /// <param name="cm">This should be the same if simulating two scenes within a standalone</param> + /// <returns></returns> + public static TestScene SetupScene(string name, UUID id, uint x, uint y, TestCommunicationsManager cm) + { + return SetupScene(name, id, x, y, cm, true); } /// <summary> @@ -66,8 +95,10 @@ namespace OpenSim.Tests.Common.Setup /// <param name="x">X co-ordinate of the region</param> /// <param name="y">Y co-ordinate of the region</param> /// <param name="cm">This should be the same if simulating two scenes within a standalone</param> + /// <param name="startServices">Start associated threads for the services used by the scene</param> /// <returns></returns> - public static TestScene SetupScene(string name, UUID id, uint x, uint y, CommunicationsManager cm) + public static TestScene SetupScene( + string name, UUID id, uint x, uint y, TestCommunicationsManager cm, bool startServices) { Console.WriteLine("Setting up test scene {0}", name); @@ -102,6 +133,9 @@ namespace OpenSim.Tests.Common.Setup testScene.PhysicsScene = physicsPluginManager.GetPhysicsScene("basicphysics", "ZeroMesher", configSource, "test"); + if (startServices) + cm.StartServices(); + return testScene; } -- cgit v1.1