aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Instance/Tests/CoopTerminationTests.cs49
1 files changed, 41 insertions, 8 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/Tests/CoopTerminationTests.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/Tests/CoopTerminationTests.cs
index 33d2175..3365c92 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Instance/Tests/CoopTerminationTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Instance/Tests/CoopTerminationTests.cs
@@ -50,14 +50,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance.Tests
50 private TestScene m_scene; 50 private TestScene m_scene;
51 private OpenSim.Region.ScriptEngine.XEngine.XEngine m_xEngine; 51 private OpenSim.Region.ScriptEngine.XEngine.XEngine m_xEngine;
52 52
53 private AutoResetEvent m_chatEvent = new AutoResetEvent(false); 53 private AutoResetEvent m_chatEvent;
54 private AutoResetEvent m_stoppedEvent = new AutoResetEvent(false); 54 private AutoResetEvent m_stoppedEvent;
55 55
56 private OSChatMessage m_osChatMessageReceived; 56 private OSChatMessage m_osChatMessageReceived;
57 57
58 [TestFixtureSetUp] 58 [SetUp]
59 public void Init() 59 public void Init()
60 { 60 {
61 m_osChatMessageReceived = null;
62 m_chatEvent = new AutoResetEvent(false);
63 m_stoppedEvent = new AutoResetEvent(false);
64
61 //AppDomain.CurrentDomain.SetData("APPBASE", Environment.CurrentDirectory + "/bin"); 65 //AppDomain.CurrentDomain.SetData("APPBASE", Environment.CurrentDirectory + "/bin");
62// Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory); 66// Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);
63 m_xEngine = new OpenSim.Region.ScriptEngine.XEngine.XEngine(); 67 m_xEngine = new OpenSim.Region.ScriptEngine.XEngine.XEngine();
@@ -76,8 +80,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance.Tests
76 xEngineConfig.Set("AppDomainLoading", "false"); 80 xEngineConfig.Set("AppDomainLoading", "false");
77 81
78 xEngineConfig.Set("ScriptStopStrategy", "co-op"); 82 xEngineConfig.Set("ScriptStopStrategy", "co-op");
83
84 // This is really just set for debugging the test.
79 xEngineConfig.Set("WriteScriptSourceToDebugFile", true); 85 xEngineConfig.Set("WriteScriptSourceToDebugFile", true);
80 86
87 // Set to false if we need to debug test so the old scripts don't get wiped before each separate test
88// xEngineConfig.Set("DeleteScriptsOnStartup", false);
89
81 // This is not currently used at all for co-op termination. Bumping up to demonstrate that co-op termination 90 // This is not currently used at all for co-op termination. Bumping up to demonstrate that co-op termination
82 // has an effect - without it tests will fail due to a 120 second wait for the event to finish. 91 // has an effect - without it tests will fail due to a 120 second wait for the event to finish.
83 xEngineConfig.Set("WaitForEventCompletionOnScriptStop", 120000); 92 xEngineConfig.Set("WaitForEventCompletionOnScriptStop", 120000);
@@ -174,7 +183,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance.Tests
174 llSay(0, ""Thin Lizzy""); 183 llSay(0, ""Thin Lizzy"");
175 184
176 while (1 == 1) 185 while (1 == 1)
177 llSay(0, ""Iter "" + (string)i); 186 llSay(0, ""Iter "" + (string)i++);
178 } 187 }
179}"; 188}";
180 189
@@ -197,7 +206,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance.Tests
197 206
198 while (1 == 1) 207 while (1 == 1)
199 { 208 {
200 llSay(0, ""Iter "" + (string)i); 209 llSay(0, ""Iter "" + (string)i++);
201 } 210 }
202 } 211 }
203}"; 212}";
@@ -221,8 +230,31 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance.Tests
221 230
222 do 231 do
223 { 232 {
224 llSay(0, ""Iter "" + (string)i); 233 llSay(0, ""Iter "" + (string)i++);
225 } while (1 == 1) 234} while (1 == 1);
235 }
236}";
237
238 TestStop(script);
239 }
240
241 [Test]
242 public void TestStopOnInfiniteJumpLoop()
243 {
244 TestHelpers.InMethod();
245// TestHelpers.EnableLogging();
246
247 string script =
248@"default
249{
250 state_entry()
251 {
252 integer i = 0;
253 llSay(0, ""Thin Lizzy"");
254
255 @p1;
256 llSay(0, ""Iter "" + (string)i++);
257 jump p1;
226 } 258 }
227}"; 259}";
228 260
@@ -276,7 +308,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance.Tests
276 308
277 private void OnChatFromWorld(object sender, OSChatMessage oscm) 309 private void OnChatFromWorld(object sender, OSChatMessage oscm)
278 { 310 {
279// Console.WriteLine("Got chat [{0}]", oscm.Message); 311 m_scene.EventManager.OnChatFromWorld -= OnChatFromWorld;
312 Console.WriteLine("Got chat [{0}]", oscm.Message);
280 313
281 m_osChatMessageReceived = oscm; 314 m_osChatMessageReceived = oscm;
282 m_chatEvent.Set(); 315 m_chatEvent.Set();