Merge branch 'master' into careminster
Conflicts: OpenSim/Region/Framework/Scenes/Scene.csavinationmerge
commit
caa19862fa
|
@ -151,6 +151,14 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
|
|||
|
||||
#region IWorldComm Members
|
||||
|
||||
public int ListenerCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_listenerManager.ListenerCount;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a listen event callback with the specified filters.
|
||||
/// The parameters localID,itemID are needed to uniquely identify
|
||||
|
@ -438,6 +446,18 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
|
|||
private int m_maxhandles;
|
||||
private int m_curlisteners;
|
||||
|
||||
/// <summary>
|
||||
/// Total number of listeners
|
||||
/// </summary>
|
||||
public int ListenerCount
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (m_listeners)
|
||||
return m_listeners.Count;
|
||||
}
|
||||
}
|
||||
|
||||
public ListenerManager(int maxlisteners, int maxhandles)
|
||||
{
|
||||
m_maxlisteners = maxlisteners;
|
||||
|
|
|
@ -48,8 +48,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
|
|||
LogManager.GetLogger(
|
||||
MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private static LocalGridServicesConnector m_MainInstance;
|
||||
|
||||
private IGridService m_GridService;
|
||||
private Dictionary<UUID, RegionCache> m_LocalCache = new Dictionary<UUID, RegionCache>();
|
||||
|
||||
|
@ -62,7 +60,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
|
|||
public LocalGridServicesConnector(IConfigSource source)
|
||||
{
|
||||
m_log.Debug("[LOCAL GRID CONNECTOR]: LocalGridServicesConnector instantiated");
|
||||
m_MainInstance = this;
|
||||
InitialiseService(source);
|
||||
}
|
||||
|
||||
|
@ -87,7 +84,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
|
|||
if (name == Name)
|
||||
{
|
||||
InitialiseService(source);
|
||||
m_MainInstance = this;
|
||||
m_Enabled = true;
|
||||
m_log.Info("[LOCAL GRID CONNECTOR]: Local grid connector enabled");
|
||||
}
|
||||
|
@ -126,12 +122,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
|
|||
|
||||
public void PostInitialise()
|
||||
{
|
||||
if (m_MainInstance == this)
|
||||
{
|
||||
MainConsole.Instance.Commands.AddCommand("LocalGridConnector", false, "show neighbours",
|
||||
"show neighbours",
|
||||
"Shows the local regions' neighbours", NeighboursCommand);
|
||||
}
|
||||
MainConsole.Instance.Commands.AddCommand("LocalGridConnector", false, "show neighbours",
|
||||
"show neighbours",
|
||||
"Shows the local regions' neighbours", NeighboursCommand);
|
||||
}
|
||||
|
||||
public void Close()
|
||||
|
@ -143,22 +136,16 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
|
|||
if (m_Enabled)
|
||||
scene.RegisterModuleInterface<IGridService>(this);
|
||||
|
||||
if (m_MainInstance == this)
|
||||
{
|
||||
if (m_LocalCache.ContainsKey(scene.RegionInfo.RegionID))
|
||||
m_log.ErrorFormat("[LOCAL GRID CONNECTOR]: simulator seems to have more than one region with the same UUID. Please correct this!");
|
||||
else
|
||||
m_LocalCache.Add(scene.RegionInfo.RegionID, new RegionCache(scene));
|
||||
}
|
||||
if (m_LocalCache.ContainsKey(scene.RegionInfo.RegionID))
|
||||
m_log.ErrorFormat("[LOCAL GRID CONNECTOR]: simulator seems to have more than one region with the same UUID. Please correct this!");
|
||||
else
|
||||
m_LocalCache.Add(scene.RegionInfo.RegionID, new RegionCache(scene));
|
||||
}
|
||||
|
||||
public void RemoveRegion(Scene scene)
|
||||
{
|
||||
if (m_MainInstance == this)
|
||||
{
|
||||
m_LocalCache[scene.RegionInfo.RegionID].Clear();
|
||||
m_LocalCache.Remove(scene.RegionInfo.RegionID);
|
||||
}
|
||||
m_LocalCache[scene.RegionInfo.RegionID].Clear();
|
||||
m_LocalCache.Remove(scene.RegionInfo.RegionID);
|
||||
}
|
||||
|
||||
public void RegionLoaded(Scene scene)
|
||||
|
@ -259,6 +246,5 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
|
|||
|
||||
MainConsole.Instance.Output(caps.ToString());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -49,6 +49,11 @@ namespace OpenSim.Region.Framework.Interfaces
|
|||
|
||||
public interface IWorldComm
|
||||
{
|
||||
/// <summary>
|
||||
/// Total number of listeners
|
||||
/// </summary>
|
||||
int ListenerCount { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Create a listen event callback with the specified filters.
|
||||
/// The parameters localID,itemID are needed to uniquely identify
|
||||
|
|
|
@ -142,8 +142,11 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
public event OnPermissionErrorDelegate OnPermissionError;
|
||||
|
||||
/// <summary>
|
||||
/// Fired when a new script is created.
|
||||
/// Fired when a script is run.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Occurs after OnNewScript.
|
||||
/// </remarks>
|
||||
public event NewRezScript OnRezScript;
|
||||
public delegate void NewRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine, int stateSource);
|
||||
|
||||
|
@ -191,10 +194,16 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
public event ClientClosed OnClientClosed;
|
||||
|
||||
// Fired when a script is created
|
||||
// The indication that a new script exists in this region.
|
||||
public delegate void NewScript(UUID clientID, SceneObjectPart part, UUID itemID);
|
||||
|
||||
/// <summary>
|
||||
/// Fired when a script is created.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Occurs before OnRezScript
|
||||
/// </remarks>
|
||||
public event NewScript OnNewScript;
|
||||
|
||||
public virtual void TriggerNewScript(UUID clientID, SceneObjectPart part, UUID itemID)
|
||||
{
|
||||
NewScript handlerNewScript = OnNewScript;
|
||||
|
@ -216,10 +225,16 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
}
|
||||
|
||||
//TriggerUpdateScript: triggered after Scene receives client's upload of updated script and stores it as asset
|
||||
// An indication that the script has changed.
|
||||
public delegate void UpdateScript(UUID clientID, UUID itemId, UUID primId, bool isScriptRunning, UUID newAssetID);
|
||||
|
||||
/// <summary>
|
||||
/// An indication that the script has changed.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Triggered after the scene receives a client's upload of an updated script and has stored it in an asset.
|
||||
/// </remarks>
|
||||
public event UpdateScript OnUpdateScript;
|
||||
|
||||
public virtual void TriggerUpdateScript(UUID clientId, UUID itemId, UUID primId, bool isScriptRunning, UUID newAssetID)
|
||||
{
|
||||
UpdateScript handlerUpdateScript = OnUpdateScript;
|
||||
|
|
|
@ -651,10 +651,10 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
#region Region Config
|
||||
|
||||
try
|
||||
// Region config overrides global config
|
||||
//
|
||||
if (m_config.Configs["Startup"] != null)
|
||||
{
|
||||
// Region config overrides global config
|
||||
//
|
||||
IConfig startupConfig = m_config.Configs["Startup"];
|
||||
|
||||
m_defaultDrawDistance = startupConfig.GetFloat("DefaultDrawDistance",m_defaultDrawDistance);
|
||||
|
@ -756,37 +756,34 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
#region Interest Management
|
||||
|
||||
if (m_config != null)
|
||||
IConfig interestConfig = m_config.Configs["InterestManagement"];
|
||||
if (interestConfig != null)
|
||||
{
|
||||
IConfig interestConfig = m_config.Configs["InterestManagement"];
|
||||
if (interestConfig != null)
|
||||
string update_prioritization_scheme = interestConfig.GetString("UpdatePrioritizationScheme", "Time").Trim().ToLower();
|
||||
|
||||
try
|
||||
{
|
||||
string update_prioritization_scheme = interestConfig.GetString("UpdatePrioritizationScheme", "Time").Trim().ToLower();
|
||||
|
||||
try
|
||||
{
|
||||
m_priorityScheme = (UpdatePrioritizationSchemes)Enum.Parse(typeof(UpdatePrioritizationSchemes), update_prioritization_scheme, true);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_log.Warn("[PRIORITIZER]: UpdatePrioritizationScheme was not recognized, setting to default prioritizer Time");
|
||||
m_priorityScheme = UpdatePrioritizationSchemes.Time;
|
||||
}
|
||||
|
||||
m_reprioritizationEnabled = interestConfig.GetBoolean("ReprioritizationEnabled", true);
|
||||
m_reprioritizationInterval = interestConfig.GetDouble("ReprioritizationInterval", 5000.0);
|
||||
m_rootReprioritizationDistance = interestConfig.GetDouble("RootReprioritizationDistance", 10.0);
|
||||
m_childReprioritizationDistance = interestConfig.GetDouble("ChildReprioritizationDistance", 20.0);
|
||||
m_priorityScheme = (UpdatePrioritizationSchemes)Enum.Parse(typeof(UpdatePrioritizationSchemes), update_prioritization_scheme, true);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_log.Warn("[PRIORITIZER]: UpdatePrioritizationScheme was not recognized, setting to default prioritizer Time");
|
||||
m_priorityScheme = UpdatePrioritizationSchemes.Time;
|
||||
}
|
||||
|
||||
m_reprioritizationEnabled = interestConfig.GetBoolean("ReprioritizationEnabled", true);
|
||||
m_reprioritizationInterval = interestConfig.GetDouble("ReprioritizationInterval", 5000.0);
|
||||
m_rootReprioritizationDistance = interestConfig.GetDouble("RootReprioritizationDistance", 10.0);
|
||||
m_childReprioritizationDistance = interestConfig.GetDouble("ChildReprioritizationDistance", 20.0);
|
||||
}
|
||||
|
||||
m_log.InfoFormat("[SCENE]: Using the {0} prioritization scheme", m_priorityScheme);
|
||||
m_log.DebugFormat("[SCENE]: Using the {0} prioritization scheme", m_priorityScheme);
|
||||
|
||||
#endregion Interest Management
|
||||
|
||||
StatsReporter = new SimStatsReporter(this);
|
||||
StatsReporter.OnSendStatsResult += SendSimStatsPackets;
|
||||
StatsReporter.OnStatsIncorrect += m_sceneGraph.RecalculateStats;
|
||||
StatsReporter.OnStatsIncorrect += m_sceneGraph.RecalculateStats;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -1102,6 +1099,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
m_log.InfoFormat("[SCENE]: Closing down the single simulator: {0}", RegionInfo.RegionName);
|
||||
|
||||
StatsReporter.Close();
|
||||
|
||||
m_restartTimer.Stop();
|
||||
m_restartTimer.Close();
|
||||
|
||||
|
|
|
@ -178,13 +178,19 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
m_objectCapacity = scene.RegionInfo.ObjectCapacity;
|
||||
m_report.AutoReset = true;
|
||||
m_report.Interval = statsUpdatesEveryMS;
|
||||
m_report.Elapsed += new ElapsedEventHandler(statsHeartBeat);
|
||||
m_report.Elapsed += statsHeartBeat;
|
||||
m_report.Enabled = true;
|
||||
|
||||
if (StatsManager.SimExtraStats != null)
|
||||
OnSendStatsResult += StatsManager.SimExtraStats.ReceiveClassicSimStatsPacket;
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
m_report.Elapsed -= statsHeartBeat;
|
||||
m_report.Close();
|
||||
}
|
||||
|
||||
public void SetUpdateMS(int ms)
|
||||
{
|
||||
statsUpdatesEveryMS = ms;
|
||||
|
|
|
@ -247,7 +247,58 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
|
||||
// Remove Sensors
|
||||
m_SensorRepeat[engine].UnSetSenseRepeaterEvents(localID, itemID);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the sensor repeat plugin for this script engine.
|
||||
/// </summary>
|
||||
/// <param name="engine"></param>
|
||||
/// <returns></returns>
|
||||
public static SensorRepeat GetSensorRepeatPlugin(IScriptEngine engine)
|
||||
{
|
||||
if (m_SensorRepeat.ContainsKey(engine))
|
||||
return m_SensorRepeat[engine];
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the dataserver plugin for this script engine.
|
||||
/// </summary>
|
||||
/// <param name="engine"></param>
|
||||
/// <returns></returns>
|
||||
public static Dataserver GetDataserverPlugin(IScriptEngine engine)
|
||||
{
|
||||
if (m_Dataserver.ContainsKey(engine))
|
||||
return m_Dataserver[engine];
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the timer plugin for this script engine.
|
||||
/// </summary>
|
||||
/// <param name="engine"></param>
|
||||
/// <returns></returns>
|
||||
public static Timer GetTimerPlugin(IScriptEngine engine)
|
||||
{
|
||||
if (m_Timer.ContainsKey(engine))
|
||||
return m_Timer[engine];
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the listener plugin for this script engine.
|
||||
/// </summary>
|
||||
/// <param name="engine"></param>
|
||||
/// <returns></returns>
|
||||
public static Listener GetListenerPlugin(IScriptEngine engine)
|
||||
{
|
||||
if (m_Listener.ContainsKey(engine))
|
||||
return m_Listener[engine];
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void StateChange(IScriptEngine engine, uint localID, UUID itemID)
|
||||
|
@ -290,7 +341,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
data.AddRange(timers);
|
||||
}
|
||||
|
||||
Object[] sensors=m_SensorRepeat[engine].GetSerializationData(itemID);
|
||||
Object[] sensors = m_SensorRepeat[engine].GetSerializationData(itemID);
|
||||
if (sensors.Length > 0)
|
||||
{
|
||||
data.Add("sensor");
|
||||
|
|
|
@ -38,6 +38,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
|
|||
{
|
||||
public AsyncCommandManager m_CmdManager;
|
||||
|
||||
public int DataserverRequestsCount
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (DataserverRequests)
|
||||
return DataserverRequests.Count;
|
||||
}
|
||||
}
|
||||
|
||||
private Dictionary<string, DataserverRequest> DataserverRequests =
|
||||
new Dictionary<string, DataserverRequest>();
|
||||
|
||||
|
|
|
@ -42,22 +42,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
|
|||
|
||||
public AsyncCommandManager m_CmdManager;
|
||||
|
||||
private IWorldComm m_commsPlugin;
|
||||
|
||||
public int ListenerCount
|
||||
{
|
||||
get { return m_commsPlugin.ListenerCount; }
|
||||
}
|
||||
|
||||
public Listener(AsyncCommandManager CmdManager)
|
||||
{
|
||||
m_CmdManager = CmdManager;
|
||||
m_commsPlugin = m_CmdManager.m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
|
||||
}
|
||||
|
||||
public void CheckListeners()
|
||||
{
|
||||
if (m_CmdManager.m_ScriptEngine.World == null)
|
||||
return;
|
||||
IWorldComm comms = m_CmdManager.m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
|
||||
|
||||
if (comms != null)
|
||||
if (m_commsPlugin != null)
|
||||
{
|
||||
while (comms.HasMessages())
|
||||
while (m_commsPlugin.HasMessages())
|
||||
{
|
||||
ListenerInfo lInfo = (ListenerInfo)comms.GetNextMessage();
|
||||
ListenerInfo lInfo = (ListenerInfo)m_commsPlugin.GetNextMessage();
|
||||
|
||||
//Deliver data to prim's listen handler
|
||||
object[] resobj = new object[]
|
||||
|
@ -81,17 +88,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
|
|||
|
||||
public Object[] GetSerializationData(UUID itemID)
|
||||
{
|
||||
IWorldComm comms = m_CmdManager.m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
|
||||
|
||||
return comms.GetSerializationData(itemID);
|
||||
return m_commsPlugin.GetSerializationData(itemID);
|
||||
}
|
||||
|
||||
public void CreateFromData(uint localID, UUID itemID, UUID hostID,
|
||||
Object[] data)
|
||||
{
|
||||
IWorldComm comms = m_CmdManager.m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
|
||||
|
||||
comms.CreateFromData(localID, itemID, hostID, data);
|
||||
m_commsPlugin.CreateFromData(localID, itemID, hostID, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -44,6 +44,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
|
|||
|
||||
public AsyncCommandManager m_CmdManager;
|
||||
|
||||
/// <summary>
|
||||
/// Number of sensors active.
|
||||
/// </summary>
|
||||
public int SensorsCount
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (SenseRepeatListLock)
|
||||
return SenseRepeaters.Count;
|
||||
}
|
||||
}
|
||||
|
||||
public SensorRepeat(AsyncCommandManager CmdManager)
|
||||
{
|
||||
m_CmdManager = CmdManager;
|
||||
|
|
|
@ -37,6 +37,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
|
|||
{
|
||||
public AsyncCommandManager m_CmdManager;
|
||||
|
||||
public int TimersCount
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (TimerListLock)
|
||||
return Timers.Count;
|
||||
}
|
||||
}
|
||||
|
||||
public Timer(AsyncCommandManager CmdManager)
|
||||
{
|
||||
m_CmdManager = CmdManager;
|
||||
|
|
|
@ -29,6 +29,7 @@ using System.Collections.Generic;
|
|||
using System.Text.RegularExpressions;
|
||||
using NUnit.Framework;
|
||||
using OpenSim.Region.ScriptEngine.Shared.CodeTools;
|
||||
using OpenSim.Tests.Common;
|
||||
|
||||
namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
|
||||
{
|
||||
|
@ -43,6 +44,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
|
|||
[Test]
|
||||
public void TestDefaultState()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -63,6 +66,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
|
|||
[Test]
|
||||
public void TestCustomState()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -93,6 +98,8 @@ state another_state
|
|||
[Test]
|
||||
public void TestEventWithArguments()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
at_rot_target(integer tnum, rotation targetrot, rotation ourrot)
|
||||
|
@ -113,6 +120,8 @@ state another_state
|
|||
[Test]
|
||||
public void TestIntegerDeclaration()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
touch_start(integer num_detected)
|
||||
|
@ -135,6 +144,8 @@ state another_state
|
|||
[Test]
|
||||
public void TestLoneIdent()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
// A lone ident should be removed completely as it's an error in C#
|
||||
// (MONO at least).
|
||||
string input = @"default
|
||||
|
@ -161,6 +172,8 @@ state another_state
|
|||
[Test]
|
||||
public void TestAssignments()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
touch_start(integer num_detected)
|
||||
|
@ -187,6 +200,8 @@ state another_state
|
|||
[Test]
|
||||
public void TestAdditionSubtractionOperator()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
touch_start(integer num_detected)
|
||||
|
@ -215,6 +230,8 @@ state another_state
|
|||
[Test]
|
||||
public void TestStrings()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
touch_start(integer num_detected)
|
||||
|
@ -242,6 +259,8 @@ state another_state
|
|||
[Test]
|
||||
public void TestBinaryExpression()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
touch_start(integer num_detected)
|
||||
|
@ -284,6 +303,8 @@ state another_state
|
|||
[Test]
|
||||
public void TestFloatConstants()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
touch_start(integer num_detected)
|
||||
|
@ -336,6 +357,8 @@ state another_state
|
|||
[Test]
|
||||
public void TestComments()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// this test tests comments
|
||||
default
|
||||
{
|
||||
|
@ -358,6 +381,8 @@ default
|
|||
[Test]
|
||||
public void TestStringsWithEscapedQuotesAndComments()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// this test tests strings, with escaped quotes and comments in strings
|
||||
default
|
||||
{
|
||||
|
@ -397,6 +422,8 @@ default
|
|||
[Test]
|
||||
public void TestCStyleComments()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"/* this test tests comments
|
||||
of the C variety
|
||||
*/
|
||||
|
@ -426,6 +453,8 @@ default
|
|||
[Test]
|
||||
public void TestGlobalDefinedFunctions()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// this test tests custom defined functions
|
||||
|
||||
string onefunc()
|
||||
|
@ -470,6 +499,8 @@ default
|
|||
[Test]
|
||||
public void TestGlobalDeclaredVariables()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// this test tests custom defined functions and global variables
|
||||
|
||||
string globalString;
|
||||
|
@ -525,6 +556,8 @@ default
|
|||
[Test]
|
||||
public void TestMoreAssignments()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// this test tests +=, -=, *=, /=, %=
|
||||
|
||||
string globalString;
|
||||
|
@ -579,6 +612,8 @@ default
|
|||
[Test]
|
||||
public void TestVectorConstantNotation()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
touch_start(integer num_detected)
|
||||
|
@ -606,6 +641,8 @@ default
|
|||
[Test]
|
||||
public void TestVectorMemberAccess()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
touch_start(integer num_detected)
|
||||
|
@ -632,6 +669,8 @@ default
|
|||
[Test]
|
||||
public void TestExpressionInParentheses()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
touch_start(integer num_detected)
|
||||
|
@ -660,6 +699,8 @@ default
|
|||
[Test]
|
||||
public void TestIncrementDecrementOperator()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// here we'll test the ++ and -- operators
|
||||
|
||||
default
|
||||
|
@ -690,6 +731,8 @@ default
|
|||
[Test]
|
||||
public void TestLists()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// testing lists
|
||||
|
||||
default
|
||||
|
@ -718,6 +761,8 @@ default
|
|||
[Test]
|
||||
public void TestIfStatement()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test if statements
|
||||
|
||||
default
|
||||
|
@ -822,6 +867,8 @@ default
|
|||
[Test]
|
||||
public void TestIfElseStatement()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test complex logical expressions
|
||||
|
||||
default
|
||||
|
@ -928,6 +975,8 @@ default
|
|||
[Test]
|
||||
public void TestWhileLoop()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test while loops
|
||||
|
||||
default
|
||||
|
@ -968,6 +1017,8 @@ default
|
|||
[Test]
|
||||
public void TestDoWhileLoop()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test do-while loops
|
||||
|
||||
default
|
||||
|
@ -1012,6 +1063,8 @@ default
|
|||
[Test]
|
||||
public void TestForLoop()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test for loops
|
||||
|
||||
default
|
||||
|
@ -1056,6 +1109,8 @@ default
|
|||
[Test]
|
||||
public void TestFloatsWithTrailingDecimal()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// a curious feature of LSL that allows floats to be defined with a trailing dot
|
||||
|
||||
default
|
||||
|
@ -1108,6 +1163,8 @@ default
|
|||
[Test]
|
||||
public void TestUnaryAndBinaryOperators()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test a few more operators
|
||||
|
||||
default
|
||||
|
@ -1144,6 +1201,8 @@ default
|
|||
[Test]
|
||||
public void TestTypecasts()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test typecasts
|
||||
|
||||
default
|
||||
|
@ -1189,6 +1248,8 @@ default
|
|||
[Test]
|
||||
public void TestStates()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test states
|
||||
|
||||
default
|
||||
|
@ -1229,6 +1290,8 @@ state statetwo
|
|||
[Test]
|
||||
public void TestHexIntegerConstants()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test hex integers
|
||||
|
||||
default
|
||||
|
@ -1261,6 +1324,8 @@ default
|
|||
[Test]
|
||||
public void TestJumps()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test jumps
|
||||
|
||||
default
|
||||
|
@ -1291,6 +1356,8 @@ default
|
|||
[Test]
|
||||
public void TestImplicitVariableInitialization()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test implicitly initializing variables
|
||||
|
||||
default
|
||||
|
@ -1334,6 +1401,8 @@ default
|
|||
[Test]
|
||||
public void TestMultipleEqualsExpression()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test x = y = 5 type expressions
|
||||
|
||||
default
|
||||
|
@ -1366,6 +1435,8 @@ default
|
|||
[Test]
|
||||
public void TestUnaryExpressionLastInVectorConstant()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test unary expressions some more
|
||||
|
||||
default
|
||||
|
@ -1390,6 +1461,8 @@ default
|
|||
[Test]
|
||||
public void TestVectorMemberPlusEquals()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"// let's test unary expressions some more
|
||||
|
||||
default
|
||||
|
@ -1424,6 +1497,8 @@ default
|
|||
[Test]
|
||||
public void TestWhileLoopWithNoBody()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -1447,6 +1522,8 @@ default
|
|||
[Test]
|
||||
public void TestDoWhileLoopWithNoBody()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -1472,6 +1549,8 @@ default
|
|||
[Test]
|
||||
public void TestIfWithNoBody()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -1495,6 +1574,8 @@ default
|
|||
[Test]
|
||||
public void TestIfElseWithNoBody()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -1521,6 +1602,8 @@ default
|
|||
[Test]
|
||||
public void TestForLoopWithNoBody()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -1544,6 +1627,8 @@ default
|
|||
[Test]
|
||||
public void TestForLoopWithNoAssignment()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -1569,6 +1654,8 @@ default
|
|||
[Test]
|
||||
public void TestForLoopWithOnlyIdentInAssignment()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -1594,6 +1681,8 @@ default
|
|||
[Test]
|
||||
public void TestAssignmentInIfWhileDoWhile()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -1631,6 +1720,8 @@ default
|
|||
[Test]
|
||||
public void TestLSLListHack()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -1653,9 +1744,12 @@ default
|
|||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof(System.Exception))]
|
||||
public void TestSyntaxError()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
bool gotException = false;
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -1671,17 +1765,22 @@ default
|
|||
}
|
||||
catch (System.Exception e)
|
||||
{
|
||||
// The syntax error is on line 6, char 5 (expected ';', found
|
||||
// The syntax error is on line 5, char 4 (expected ';', found
|
||||
// '}').
|
||||
Assert.AreEqual("(4,4) syntax error", e.Message);
|
||||
throw;
|
||||
Assert.AreEqual("(5,4) syntax error", e.Message);
|
||||
gotException = true;
|
||||
}
|
||||
|
||||
Assert.That(gotException, Is.True);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof(System.Exception))]
|
||||
public void TestSyntaxErrorDeclaringVariableInForLoop()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
bool gotException = false;
|
||||
|
||||
string input = @"default
|
||||
{
|
||||
state_entry()
|
||||
|
@ -1697,11 +1796,13 @@ default
|
|||
}
|
||||
catch (System.Exception e)
|
||||
{
|
||||
// The syntax error is on line 5, char 14 (Syntax error)
|
||||
Assert.AreEqual("(3,13) syntax error", e.Message);
|
||||
// The syntax error is on line 4, char 13 (Syntax error)
|
||||
Assert.AreEqual("(4,13) syntax error", e.Message);
|
||||
|
||||
throw;
|
||||
gotException = true;
|
||||
}
|
||||
|
||||
Assert.That(gotException, Is.True);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ using System.Collections.Generic;
|
|||
using Microsoft.CSharp;
|
||||
using NUnit.Framework;
|
||||
using OpenSim.Region.ScriptEngine.Shared.CodeTools;
|
||||
using OpenSim.Tests.Common;
|
||||
|
||||
namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
|
||||
{
|
||||
|
@ -92,6 +93,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
|
|||
//[Test]
|
||||
public void TestUseUndeclaredVariable()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
m_compilerParameters.OutputAssembly = Path.Combine(m_testDir, Path.GetRandomFileName() + ".dll");
|
||||
|
||||
string input = @"default
|
||||
|
@ -124,6 +127,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
|
|||
//[Test]
|
||||
public void TestCastAndConcatString()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
m_compilerParameters.OutputAssembly = Path.Combine(m_testDir, Path.GetRandomFileName() + ".dll");
|
||||
|
||||
string input = @"string s = "" a string"";
|
||||
|
@ -150,4 +155,4 @@ default
|
|||
Assert.AreEqual(0, m_compilerResults.Errors.Count);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -46,7 +46,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[TestFixture, LongRunning]
|
||||
public class LSL_ApiTest
|
||||
{
|
||||
|
||||
private const double ANGLE_ACCURACY_IN_RADIANS = 1E-6;
|
||||
private const double VECTOR_COMPONENT_ACCURACY = 0.0000005d;
|
||||
private const float FLOAT_ACCURACY = 0.00005f;
|
||||
|
@ -55,7 +54,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
|
||||
IConfigSource initConfigSource = new IniConfigSource();
|
||||
IConfig config = initConfigSource.AddConfig("XEngine");
|
||||
config.Set("Enabled", "true");
|
||||
|
@ -75,6 +73,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestllAngleBetween()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
CheckllAngleBetween(new Vector3(1, 0, 0), 0, 1, 1);
|
||||
CheckllAngleBetween(new Vector3(1, 0, 0), 90, 1, 1);
|
||||
CheckllAngleBetween(new Vector3(1, 0, 0), 180, 1, 1);
|
||||
|
@ -158,6 +158,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
// llRot2Euler test.
|
||||
public void TestllRot2Euler()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
// 180, 90 and zero degree rotations.
|
||||
CheckllRot2Euler(new LSL_Types.Quaternion(0.0f, 0.0f, 0.0f, 1.0f));
|
||||
CheckllRot2Euler(new LSL_Types.Quaternion(0.0f, 0.0f, 0.707107f, 0.707107f));
|
||||
|
@ -256,6 +258,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
// llSetPrimitiveParams and llGetPrimitiveParams test.
|
||||
public void TestllSetPrimitiveParams()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
// Create Prim1.
|
||||
Scene scene = SceneHelpers.SetupScene();
|
||||
string obj1Name = "Prim1";
|
||||
|
@ -486,9 +490,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
}
|
||||
|
||||
[Test]
|
||||
// llVecNorm test.
|
||||
public void TestllVecNorm()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
// Check special case for normalizing zero vector.
|
||||
CheckllVecNorm(new LSL_Types.Vector3(0.0d, 0.0d, 0.0d), new LSL_Types.Vector3(0.0d, 0.0d, 0.0d));
|
||||
// Check various vectors.
|
||||
|
|
|
@ -213,6 +213,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestConstructFromInt()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
|
||||
foreach (KeyValuePair<int, double> number in m_intDoubleSet)
|
||||
|
@ -228,6 +230,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestConstructFromDouble()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
|
||||
foreach (KeyValuePair<double, double> number in m_doubleDoubleSet)
|
||||
|
@ -243,6 +247,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestExplicitCastLSLFloatToInt()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
int testNumber;
|
||||
|
||||
foreach (KeyValuePair<double, int> number in m_doubleIntSet)
|
||||
|
@ -258,6 +264,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestExplicitCastLSLFloatToUint()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
uint testNumber;
|
||||
|
||||
foreach (KeyValuePair<double, int> number in m_doubleUintSet)
|
||||
|
@ -273,6 +281,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestImplicitCastLSLFloatToBooleanTrue()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
bool testBool;
|
||||
|
||||
|
@ -291,6 +301,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestImplicitCastLSLFloatToBooleanFalse()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat = new LSL_Types.LSLFloat(0.0);
|
||||
bool testBool = testFloat;
|
||||
|
||||
|
@ -303,6 +315,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestImplicitCastIntToLSLFloat()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
|
||||
foreach (int number in m_intList)
|
||||
|
@ -318,6 +332,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestImplicitCastLSLIntegerToLSLFloat()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
|
||||
foreach (int number in m_intList)
|
||||
|
@ -333,6 +349,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestExplicitCastLSLIntegerToLSLFloat()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
|
||||
foreach (int number in m_intList)
|
||||
|
@ -348,6 +366,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestExplicitCastStringToLSLFloat()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
|
||||
foreach (KeyValuePair<string, double> number in m_stringDoubleSet)
|
||||
|
@ -363,6 +383,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestExplicitCastLSLStringToLSLFloat()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
|
||||
foreach (KeyValuePair<string, double> number in m_stringDoubleSet)
|
||||
|
@ -378,6 +400,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestImplicitCastDoubleToLSLFloat()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
|
||||
foreach (double number in m_doubleList)
|
||||
|
@ -393,6 +417,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestImplicitCastLSLFloatToDouble()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
double testNumber;
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
|
||||
|
@ -411,26 +437,30 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestExplicitCastLSLFloatToFloat()
|
||||
{
|
||||
float testFloat;
|
||||
float numberAsFloat;
|
||||
LSL_Types.LSLFloat testLSLFloat;
|
||||
foreach (double number in m_doubleList)
|
||||
{
|
||||
testLSLFloat = new LSL_Types.LSLFloat(number);
|
||||
numberAsFloat = (float)number;
|
||||
testFloat = (float)testLSLFloat;
|
||||
TestHelpers.InMethod();
|
||||
|
||||
Assert.That((double)testFloat, new DoubleToleranceConstraint((double)numberAsFloat, _lowPrecisionTolerance));
|
||||
}
|
||||
float testFloat;
|
||||
float numberAsFloat;
|
||||
LSL_Types.LSLFloat testLSLFloat;
|
||||
|
||||
foreach (double number in m_doubleList)
|
||||
{
|
||||
testLSLFloat = new LSL_Types.LSLFloat(number);
|
||||
numberAsFloat = (float)number;
|
||||
testFloat = (float)testLSLFloat;
|
||||
|
||||
Assert.That((double)testFloat, new DoubleToleranceConstraint((double)numberAsFloat, _lowPrecisionTolerance));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Tests the equality (==) operator.
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void TestEqualsOperator()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloatA, testFloatB;
|
||||
|
||||
foreach (double number in m_doubleList)
|
||||
|
@ -450,6 +480,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestNotEqualOperator()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloatA, testFloatB;
|
||||
|
||||
foreach (double number in m_doubleList)
|
||||
|
@ -469,6 +501,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestIncrementOperator()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
double testNumber;
|
||||
|
||||
|
@ -493,6 +527,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestDecrementOperator()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
double testNumber;
|
||||
|
||||
|
@ -517,6 +553,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestToString()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
|
||||
foreach (KeyValuePair<double, string> number in m_doubleStringSet)
|
||||
|
@ -532,6 +570,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestAddTwoLSLFloats()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testResult;
|
||||
|
||||
foreach (KeyValuePair<double, double> number in m_doubleDoubleSet)
|
||||
|
@ -547,6 +587,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestSubtractTwoLSLFloats()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testResult;
|
||||
|
||||
foreach (KeyValuePair<double, double> number in m_doubleDoubleSet)
|
||||
|
@ -562,6 +604,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestMultiplyTwoLSLFloats()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testResult;
|
||||
|
||||
foreach (KeyValuePair<double, double> number in m_doubleDoubleSet)
|
||||
|
@ -577,6 +621,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestDivideTwoLSLFloats()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testResult;
|
||||
|
||||
foreach (KeyValuePair<double, double> number in m_doubleDoubleSet)
|
||||
|
@ -595,6 +641,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestImplicitCastBooleanToLSLFloat()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testFloat;
|
||||
|
||||
testFloat = (1 == 0);
|
||||
|
@ -610,4 +658,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
Assert.That(testFloat.value, new DoubleToleranceConstraint(1.0, _lowPrecisionTolerance));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -79,6 +79,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestExplicitCastLSLFloatToLSLInteger()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLInteger testInteger;
|
||||
|
||||
foreach (KeyValuePair<double, int> number in m_doubleIntSet)
|
||||
|
@ -94,6 +96,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestExplicitCastStringToLSLInteger()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLInteger testInteger;
|
||||
|
||||
foreach (KeyValuePair<string, int> number in m_stringIntSet)
|
||||
|
@ -109,6 +113,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestExplicitCastLSLStringToLSLInteger()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLInteger testInteger;
|
||||
|
||||
foreach (KeyValuePair<string, int> number in m_stringIntSet)
|
||||
|
@ -124,6 +130,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestImplicitCastBooleanToLSLInteger()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLInteger testInteger;
|
||||
|
||||
testInteger = (1 == 0);
|
||||
|
|
|
@ -71,6 +71,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestConstructFromLSLFloat()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLString testString;
|
||||
|
||||
foreach (KeyValuePair<double, string> number in m_doubleStringSet)
|
||||
|
@ -86,6 +88,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestExplicitCastLSLFloatToLSLString()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLString testString;
|
||||
|
||||
foreach (KeyValuePair<double, string> number in m_doubleStringSet)
|
||||
|
@ -101,6 +105,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestExplicitCastLSLStringToQuaternion()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
string quaternionString = "<0.00000, 0.70711, 0.00000, 0.70711>";
|
||||
LSL_Types.LSLString quaternionLSLString = new LSL_Types.LSLString(quaternionString);
|
||||
|
||||
|
@ -118,6 +124,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestImplicitCastBooleanToLSLFloat()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLString testString;
|
||||
|
||||
testString = (LSL_Types.LSLString) (1 == 0);
|
||||
|
|
|
@ -44,6 +44,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestConcatenateString()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.list testList = new LSL_Types.list(new LSL_Types.LSLInteger(1), new LSL_Types.LSLInteger('a'), new LSL_Types.LSLString("test"));
|
||||
testList += new LSL_Types.LSLString("addition");
|
||||
|
||||
|
@ -64,6 +66,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestConcatenateInteger()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.list testList = new LSL_Types.list(new LSL_Types.LSLInteger(1), new LSL_Types.LSLInteger('a'), new LSL_Types.LSLString("test"));
|
||||
testList += new LSL_Types.LSLInteger(20);
|
||||
|
||||
|
@ -84,6 +88,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestConcatenateDouble()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.list testList = new LSL_Types.list(new LSL_Types.LSLInteger(1), new LSL_Types.LSLInteger('a'), new LSL_Types.LSLString("test"));
|
||||
testList += new LSL_Types.LSLFloat(2.0f);
|
||||
|
||||
|
@ -104,6 +110,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestCastLSLIntegerItemToLSLInteger()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLInteger testValue = new LSL_Types.LSLInteger(123);
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
||||
|
@ -116,6 +124,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestCastLSLFloatItemToLSLFloat()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testValue = new LSL_Types.LSLFloat(123.45678987);
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
||||
|
@ -128,6 +138,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestCastLSLStringItemToLSLString()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLString testValue = new LSL_Types.LSLString("hello there");
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
||||
|
@ -140,6 +152,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestCastVector3ItemToVector3()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.Vector3 testValue = new LSL_Types.Vector3(12.34, 56.987654, 0.00987);
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
||||
|
@ -151,6 +165,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestCastQuaternionItemToQuaternion()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.Quaternion testValue = new LSL_Types.Quaternion(12.34, 56.44323, 765.983421, 0.00987);
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
||||
|
@ -165,6 +181,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestGetLSLIntegerItemForLSLIntegerItem()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLInteger testValue = new LSL_Types.LSLInteger(999911);
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
||||
|
@ -177,6 +195,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestGetLSLFloatItemForLSLFloatItem()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLFloat testValue = new LSL_Types.LSLFloat(321.45687876);
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
||||
|
@ -189,11 +209,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestGetLSLFloatItemForLSLIntegerItem()
|
||||
{
|
||||
LSL_Types.LSLInteger testValue = new LSL_Types.LSLInteger(3060987);
|
||||
LSL_Types.LSLFloat testFloatValue = new LSL_Types.LSLFloat(testValue);
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
TestHelpers.InMethod();
|
||||
|
||||
Assert.AreEqual(testFloatValue, testList.GetLSLFloatItem(0));
|
||||
LSL_Types.LSLInteger testValue = new LSL_Types.LSLInteger(3060987);
|
||||
LSL_Types.LSLFloat testFloatValue = new LSL_Types.LSLFloat(testValue);
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
||||
Assert.AreEqual(testFloatValue, testList.GetLSLFloatItem(0));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -202,6 +224,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestGetLSLStringItemForLSLStringItem()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.LSLString testValue = new LSL_Types.LSLString("hello all");
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
||||
|
@ -214,6 +238,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestGetLSLStringItemForKeyItem()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.key testValue
|
||||
= new LSL_Types.key("98000000-0000-2222-3333-100000001000");
|
||||
LSL_Types.LSLString testStringValue = new LSL_Types.LSLString(testValue);
|
||||
|
@ -228,6 +254,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestGetVector3ItemForVector3Item()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.Vector3 testValue = new LSL_Types.Vector3(92.34, 58.98754, -0.10987);
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
||||
|
@ -239,6 +267,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestGetQuaternionItemForQuaternionItem()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.Quaternion testValue = new LSL_Types.Quaternion(12.64, 59.43723, 765.3421, 4.00987);
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
||||
|
@ -251,6 +281,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
[Test]
|
||||
public void TestGetKeyItemForKeyItem()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
LSL_Types.key testValue
|
||||
= new LSL_Types.key("00000000-0000-2222-3333-100000001012");
|
||||
LSL_Types.list testList = new LSL_Types.list(testValue);
|
||||
|
@ -258,4 +290,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
Assert.AreEqual(testValue, testList.GetKeyItem(0));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -32,16 +32,17 @@ using OpenSim.Region.ScriptEngine.Shared;
|
|||
|
||||
namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Tests for Vector3
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public class LSL_TypesTestVector3
|
||||
{
|
||||
/// <summary>
|
||||
/// Tests for Vector3
|
||||
/// </summary>
|
||||
[Test]
|
||||
|
||||
public void TestDotProduct()
|
||||
{
|
||||
TestHelpers.InMethod();
|
||||
|
||||
// The numbers we test for.
|
||||
Dictionary<string, double> expectsSet = new Dictionary<string, double>();
|
||||
expectsSet.Add("<1, 2, 3> * <2, 3, 4>", 20.0);
|
||||
|
|
|
@ -50,7 +50,10 @@ using OpenSim.Region.ScriptEngine.Shared;
|
|||
using OpenSim.Region.ScriptEngine.Shared.ScriptBase;
|
||||
using OpenSim.Region.ScriptEngine.Shared.CodeTools;
|
||||
using OpenSim.Region.ScriptEngine.Shared.Instance;
|
||||
using OpenSim.Region.ScriptEngine.Shared.Api;
|
||||
using OpenSim.Region.ScriptEngine.Shared.Api.Plugins;
|
||||
using OpenSim.Region.ScriptEngine.Interfaces;
|
||||
using Timer = OpenSim.Region.ScriptEngine.Shared.Api.Plugins.Timer;
|
||||
|
||||
using ScriptCompileQueue = OpenSim.Framework.LocklessQueue<object[]>;
|
||||
|
||||
|
@ -454,6 +457,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
sb.AppendFormat("Work items waiting : {0}\n", m_ThreadPool.WaitingCallbacks);
|
||||
// sb.AppendFormat("Assemblies loaded : {0}\n", m_Assemblies.Count);
|
||||
|
||||
SensorRepeat sr = AsyncCommandManager.GetSensorRepeatPlugin(this);
|
||||
sb.AppendFormat("Sensors : {0}\n", sr.SensorsCount);
|
||||
|
||||
Dataserver ds = AsyncCommandManager.GetDataserverPlugin(this);
|
||||
sb.AppendFormat("Dataserver requests : {0}\n", ds.DataserverRequestsCount);
|
||||
|
||||
Timer t = AsyncCommandManager.GetTimerPlugin(this);
|
||||
sb.AppendFormat("Timers : {0}\n", t.TimersCount);
|
||||
|
||||
Listener l = AsyncCommandManager.GetListenerPlugin(this);
|
||||
sb.AppendFormat("Listeners : {0}\n", l.ListenerCount);
|
||||
|
||||
MainConsole.Instance.OutputFormat(sb.ToString());
|
||||
}
|
||||
|
||||
|
|
|
@ -136,7 +136,7 @@ namespace OpenSim.Tests.Common
|
|||
StartAuthenticationService(testScene);
|
||||
LocalInventoryServicesConnector inventoryService = StartInventoryService(testScene);
|
||||
StartGridService(testScene);
|
||||
LocalUserAccountServicesConnector userAccountService = StartUserAccountService(testScene);
|
||||
LocalUserAccountServicesConnector userAccountService = StartUserAccountService(testScene);
|
||||
LocalPresenceServicesConnector presenceService = StartPresenceService(testScene);
|
||||
|
||||
inventoryService.PostInitialise();
|
||||
|
|
|
@ -75,6 +75,10 @@ namespace OpenSim.Tests.Torture
|
|||
[TestFixtureTearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
scene.Close();
|
||||
GC.Collect();
|
||||
GC.WaitForPendingFinalizers();
|
||||
|
||||
// We must set this back afterwards, otherwise later tests will fail since they're expecting multiple
|
||||
// threads. Possibly, later tests should be rewritten not to worry about such things.
|
||||
Util.FireAndForgetMethod = Util.DefaultFireAndForgetMethod;
|
||||
|
|
|
@ -156,11 +156,6 @@ namespace OpenSim.Tests.Torture
|
|||
// objects will be clean up by the garbage collector before the next stress test is run.
|
||||
scene.Update();
|
||||
|
||||
// Currently, we need to do this in order to garbage collect the scene objects ready for the next test run.
|
||||
// However, what we really need to do is find out why the entire scene is not garbage collected in
|
||||
// teardown.
|
||||
scene.DeleteAllSceneObjects();
|
||||
|
||||
Console.WriteLine(
|
||||
"Took {0}ms, {1}MB ({2} - {3}) to create {4} objects each containing {5} prim(s)",
|
||||
Math.Round(elapsed.TotalMilliseconds),
|
||||
|
@ -170,7 +165,8 @@ namespace OpenSim.Tests.Torture
|
|||
objectsToAdd,
|
||||
primsInEachObject);
|
||||
|
||||
scene = null;
|
||||
scene.Close();
|
||||
// scene = null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -91,6 +91,14 @@ namespace OpenSim.Tests.Torture
|
|||
m_scene.StartScripts();
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
m_scene.Close();
|
||||
GC.Collect();
|
||||
GC.WaitForPendingFinalizers();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestCompileAndStart100Scripts()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue