Commit Graph

15498 Commits (fa4ea2db1710ff8656716ea922054484cdee2be5)

Author SHA1 Message Date
Justin Clark-Casey (justincc) f1b49aaa99 Add regression test TestSaveNonRootFolderToIar 2013-02-20 23:37:18 +00:00
Dan Lake b779ab041b Use SortedDictionary in StatsManager instead of regular Dictionary so stats will interate and print in a defined order 2013-02-20 23:37:11 +00:00
Justin Clark-Casey (justincc) a402571a60 Enable one sub-test in TestJsonSetValue() which now works (using identifier with embedded .).
Need to look further at other still commented tests.
Still need to check coverage against some of Mic's scripts.
2013-02-20 23:37:07 +00:00
Justin Clark-Casey (justincc) 7e75fd7dcb Rename JsonSetValueJson() -> JsonSetJson() and JsonGetValueJson() -> JsonGetJson()
This is because JsonGetJson() is getting json from anywhere in the structure, not just values.
Equally, JsonSetJson() is setting any type of json, not just json which represents a value.
Agreed with cmickeyb
2013-02-20 23:37:00 +00:00
Justin Clark-Casey (justincc) 282123cb00 Comment out regression TestJsonTestPath and TestJsonTestPathJson as these will go away soon 2013-02-20 23:36:54 +00:00
Justin Clark-Casey (justincc) 476ad0550f Add regression TestJsonList2Path() 2013-02-20 23:36:48 +00:00
Justin Clark-Casey (justincc) 6e612937c7 Add regression TestGetArrayLength() 2013-02-20 23:36:41 +00:00
Justin Clark-Casey (justincc) c992037d50 Add regression TestJsonGetPathType() 2013-02-20 23:36:36 +00:00
Justin Clark-Casey (justincc) fe06b49dd6 Rename new JsonScript functions JsonPathType() -> JsonGetPathType() and JsonArrayLength() -> JsonGetArrayLength()
This is for consistentency with the verb:noun naming approach existing json script functions and other script functions.
Corresponding c# methods also changed since verb:noun is also the .net c# method naming guideline (as used by OpenSimulator) and for consistency with script functions.
As agreed with cmickeyb
2013-02-20 23:36:20 +00:00
Justin Clark-Casey (justincc) 1df97c2385 Make new JsonStore script constants separated with underscores, to be consistent with existing LSL/OSSL, etc script constants.
Agreed with cmickeyb
2013-02-20 23:36:15 +00:00
Justin Clark-Casey (justincc) 37ab587f27 Fix a very unlikely-to-occur NullReferenceException race condition in llPushObject() where the code assumed that the physics actor it null-checked would still be null when it invoked a method on it 2013-02-20 23:36:05 +00:00
Mic Bowman 12201bf7f4 Adds a couple requested functions to the JsonStore script
interface. JsonPathType returns the type of node pointed to by the
path and deprecates the functionality of both JsonTestPath
functions. JsonArrayLength returns the length of an array node.
2013-02-20 23:36:00 +00:00
Mic Bowman c7179ff454 Make path parsing more robust in the JsonStore. 2013-02-20 23:35:53 +00:00
Justin Clark-Casey (justincc) 841ca0fe38 Add more sub-tests to TestJsonSetValue for paths containing []{} without {} delineation.
As expected, values are not set and the set call returns FALSE (0).
As a reminder, these tests are not currently running on jenkins continuous integration as the functionality is only available on .net 4 (mono 2.8 and later).
2013-02-20 23:35:32 +00:00
Justin Clark-Casey (justincc) 1ee6822e39 Extend JsonTestSetValue() with tests for escaping brackets, periods and unbalanced braces from paths
The sub-tests that are commented out are currently those which fail unexpectedly based on my understanding of the path syntax
2013-02-20 23:35:27 +00:00
Justin Clark-Casey (justincc) 3fdeb559f0 Add test for array as root element in TestJsonCreateStore() 2013-02-20 23:35:20 +00:00
Justin Clark-Casey (justincc) 50811b02ab Extend TestJsonRemoveValue() with tests for non-penultimate nodes and arrays 2013-02-20 23:35:15 +00:00
Justin Clark-Casey (justincc) 009178d7dd Extend TestJsonCreateStore() with a one key input and an input with raw number values 2013-02-20 23:35:07 +00:00
Justin Clark-Casey (justincc) 7cacf5f8a0 Use an integer when specifying the XWorkItem wait rather than a TimeSpan to avoid a Windows casting issue in SmartThreadPool for large TimeSpans.
TimeSpan.Milliseconds is an int64.  However, STP casts this to an int (32-bit).
If TimeSpan.MaxValue is given then the casting results in an invalid value for the SDK WaitHandle.WaitAll() call.
This was causing the co-op script termination regression tests to fail on Windows but not Mono 2.10.8 (which is perhaps not strict in the negative values that it accepts).
Solution here is to use the int millisecondsTimeout STP call rather than the TimeSpan one.
This also allows us to more clearly specify Timeout.Infinite rather than TimeSpan.MaxValue
Thanks to Teravus for this spot.
2013-02-20 23:34:59 +00:00
Justin Clark-Casey (justincc) b1740e11de Re-enable subtest for single quoted token in TestJsonSetValueJson()
This is in response to the resolution of http://opensimulator.org/mantis/view.php?id=6540
2013-02-20 23:34:52 +00:00
Mic Bowman b6cbda61b3 Adds the parameter for OSD serialization to encode default values. This
makes the JsonStore get/set operations symmetric.
2013-02-20 23:34:21 +00:00
Mic Bowman 914ebd7476 Fix handling of string values in JsonSetValueJson(). There are
some oddities with empty strings: the Json serializer treats them
as default values and does not return them in serialized hashes.
2013-02-20 23:30:24 +00:00
Justin Clark-Casey (justincc) 7d68559e15 Add regression TestJsonSetValueJson()
The part to test setting of single leaf-node string tokens is currently commented out.
See http://opensimulator.org/mantis/view.php?id=6540
2013-02-20 23:30:19 +00:00
Justin Clark-Casey (justincc) 5c75e43a70 Add regression TestJsonGetValueJson() 2013-02-20 23:30:12 +00:00
Justin Clark-Casey (justincc) 79dd5f2692 Add regression TestJsonTestPathJson() 2013-02-20 23:30:07 +00:00
Justin Clark-Casey (justincc) 216ef7522a Add section to TestJsonGetValue() to test call on a sub-tree 2013-02-20 23:30:03 +00:00
Justin Clark-Casey (justincc) ccd1bac994 Extend TestJsonTestPath() for non-terminating section of path (i.e. one that does not point to a value/leaf) 2013-02-20 23:29:57 +00:00
Justin Clark-Casey (justincc) 182c66cea1 Add section to TestJsonSetValue() to test attempted set of value where the penultimate section of path does not exist 2013-02-20 23:29:52 +00:00
Justin Clark-Casey (justincc) 7fe768a98d Add test to try reading notecard into an invalid path in TestJsonReadNotecard() regression test 2013-02-20 23:29:47 +00:00
Melanie 4fd176f479 Fix code to check for no spawn points. Possibly a merge artefact? 2013-02-20 23:29:42 +00:00
BlueWall 2be88cd46c Fix teleport/telehub issue:
Fix bug that allowed only login access to regions with mis-configured telehubs. Administrators now have teleport access when there exists a mis-configured telehub in the region. Estate owners are now placed at region center in the absence of spawnpoints instead of being denied access. Grid Gods are unrestricted. All others are denied access to the region until spawnpoints are assigned to the telehub object.
2013-02-20 23:29:30 +00:00
Mic Bowman 5a2895977a Make JsonStore path parsing more robust. Should fix the
invalid path problem.
2013-02-20 23:28:46 +00:00
Oren Hurvitz 7fc820b3fd Fixed ReadSculptData(): the check whether there are enough bytes to read was incorrect 2013-02-20 23:22:29 +00:00
Oren Hurvitz 72838a04d6 Fixed check for 0 results in GetUserAccounts() 2013-02-20 23:22:22 +00:00
Mic Bowman 9ee6c06ec8 Broaden the internal OSD type checks to parse JSON that has
non string values.
2013-02-20 23:20:33 +00:00
Justin Clark-Casey (justincc) 5393ecfa75 Don't allow exceptions to propogate from FlotsamAssetCache which may occur when deleting expired files or stamping the region status file.
Changes various error level log lines to warn since these are not fatal to the operation of OpenSimulator
2013-02-20 23:10:49 +00:00
Mic Bowman f6ddd20413 Fix the return values for JsonDestroyStore, JsonRemoveValue, and JsonSetValue.
Fix the link message status when reading a notecard.
2013-02-20 23:10:42 +00:00
Justin Clark-Casey (justincc) b46a9cf57f If a component of a coalesced object fails to deserialization, do not add a null where the object should be.
This prevents a later load IAR failure.
This code is currently only used by IAR loading.
2013-02-20 23:10:34 +00:00
Justin Clark-Casey (justincc) aab719dc18 On IAR loading, if loading of a coaleseced item entirely fails, then continue with the IAR load rather than failing completely. 2013-02-20 23:10:28 +00:00
Justin Clark-Casey (justincc) 90d71d423c Refine TestJsonReadNotecard() and use / instead of . to separate paths.
An attack of the stupid meant that I was using / as a path separator.
Fixing this makes the tests behave better, though still with some questions.
Also, I imagine / shouldn't really put data in the root as that's not a valid identifier.
This commit also fix the / mistake in other tests those this does not affect their outcomes.
2013-02-20 23:10:22 +00:00
Justin Clark-Casey (justincc) 3f6feec914 Extend TestJsonReadNotecard() for reads to non-root locations and fake stores.
Assertions for loading to non-root paths are currently commented out because this doesn't seem to be working.  Will be raising mantis to resolve.
2013-02-20 23:10:15 +00:00
Justin Clark-Casey (justincc) 6874d56452 Stop wrongly create a receiving store already populated with "Hello":"World" in TestJsonReadNotecard() 2013-02-20 23:10:08 +00:00
Justin Clark-Casey (justincc) 23df5768c3 Extend TestJsonWriteNotecard() regression test for cases with fake paths and fake stores.
Also separates out TestJsonWriteReadNotecard() into separate write and read tests
2013-02-20 23:10:03 +00:00
Justin Clark-Casey (justincc) f52cee9732 Extend TestJsonSetValue() regressio ntes tto test against a fake store 2013-02-20 23:09:58 +00:00
Justin Clark-Casey (justincc) 37e4186ad8 Extend TestJsonTestPath() regression test with checks against fake values and fake stores 2013-02-20 23:09:54 +00:00
Justin Clark-Casey (justincc) 5be2483e93 Add tests for removing fake values/from fake store in TestJsonRemoveValue()
Again, need to check if returning true for removing a value that doesn't exist is most appropriate.
2013-02-20 23:09:49 +00:00
Justin Clark-Casey (justincc) 6418b89fd6 Add testing for getting non-existing values and values from a non-existing datastore to TestJsonGetValue() 2013-02-20 23:09:44 +00:00
Justin Clark-Casey (justincc) c67f791097 Add TestJsonDestoreStoreNotExists()
This still returns true even if we ask to destroy a store that does not exist.
Need to check that this is more appropriate behaviour.
2013-02-20 23:09:36 +00:00
Justin Clark-Casey (justincc) 001bbb0b16 Fix a recent regression in e17392a where JsonSetValue() stopped working (probably other functions as well).
Fix is to call through to the no-arg constructor from the string constructor in JsonStore, which I suspect was just forgotten.
This was actually picked up by the TestJsonSetValue() regression test failing
But this isn't being run on jenkins due to the .net version issue.
This commit also puts the full stack trace in logged messages and makes these error level messages instead of info
2013-02-20 23:08:46 +00:00
Justin Clark-Casey (justincc) 365292e38f Add TestJsonWriteReadNotecard() regression test 2013-02-20 23:00:08 +00:00
Justin Clark-Casey (justincc) fb2de29f77 Make json store tests operate on a single thread to ensure we don't run into any race related test failures in the future. 2013-02-20 22:59:38 +00:00
Dan Lake 251a70338a WebStats will now use actual logfile as specified in OpenSim.exe.config rather than hardcoded ./OpenSim.log. This allows for rotating logs and other file appender types 2013-02-20 22:59:31 +00:00
Justin Clark-Casey (justincc) e210dc188a Remove very long unused IScriptHost and NullScriptHost 2013-02-20 22:58:48 +00:00
Justin Clark-Casey (justincc) e61117669e Remove unused ScriptEngineLoader and ScriptEngineInterface in OpenSim.Region.Framework.dll
I believe this predates the generic system of registering interfaces and is very long unused.
2013-02-20 22:58:41 +00:00
Justin Clark-Casey (justincc) 97fcc97902 Remove wrong code in ScriptUtils.GetAssetIdFromKeyOrItemName which would return the item ID instead of the asset ID if the identifier was a uuid that matched an inventory item name.
This would practically never happen.
This makes this overloaded version of the function consistent with the other version.
It looks like this accidentally came over in commit c5af16a from Tue Oct 16 12:40:21 2012
However, there's arguably a case for looking for an item name that matches a UUID before assuming that the identifier is already an asset ID.
2013-02-20 22:58:37 +00:00
Justin Clark-Casey (justincc) eab1b1b9f8 Allow JsonReadNotecard() to accept the name of the notecard as well as the asset ID.
Agreed in discussion with cmickeyb.
This is to make this consistent with similar existing LSL/OSSL functions such as llTriggerSound() and osNpcLoadAppearance() that allow an item name or an asset id.
2013-02-20 22:58:31 +00:00
Justin Clark-Casey (justincc) 87d50974f8 refactor: Move functions that lookup asset ids from task inventory or pass them through to ScriptUtils class in OpenSim.Region.Framework.dll
Renames functions to better reflect what they do.
This is so that code registering with modInvoke() can reuse this code to provide functions that behave in a consistent manner with existing LSL/OSSL functions.
2013-02-20 22:57:33 +00:00
Justin Clark-Casey (justincc) 78814adf01 Update ScriptModuleComms and interface wholesale from 0.7.5 as of commit 99ebff94
The number of deltas are making this too hard to update through cherry-picking
2013-02-20 22:43:24 +00:00
SignpostMarv 341dcbede6 moving code that will be common into private static method 2013-02-20 22:36:36 +00:00
teravus 901aa4153e * the root prim was being given an OffsetPosition in addition to setting the position when creating the root prim. The offset position caused the positioning code to re-move the root prim when you selected it and released it. 2013-02-20 22:27:17 +00:00
Melanie f99ba6f506 Try to fix uploaded mesh rotations - code from Avination code base. 2013-02-20 22:27:00 +00:00
Justin Clark-Casey (justincc) 85f32f184c Fix bug where viewers would not see the "Module command functions not enabled" error if these were disabled and a viewer attempted to call one.
This was not working because the shouter was wrongly signalled as an agent rather than a prim
2013-02-20 22:26:53 +00:00
Justin Clark-Casey (justincc) 982d3d3faa minor: change comment about assuming script references are textures in UuidGatherer since this is no longer the behaviour. 2013-02-20 22:26:15 +00:00
Justin Clark-Casey (justincc) 744ed1b313 Log missing assets on "fcache assets" found. This ignores references found by scanning LSL/notecard files since these are the source of false positives.
This also changes UuidGatherer to reutn an AssetType.Unknown for embedded script/lsl references instead of Texture, since these are often not textures.
This is added to help people in determining when they have missing assets such as textures, etc.
In this case, one wants to run "fcache clear" first.
2013-02-20 22:26:04 +00:00
Mic Bowman 69ca1498ef Move the JsonStore regular expressions to static variables to avoid
recompiling on every operation. Added JsonList2Path script function
to simplify array iteration.
2013-02-20 22:25:47 +00:00
Mic Bowman 9a60039d36 Add JsonTestStore to determine if a JsonStore is associated with
a particular UUID.
2013-02-20 22:25:34 +00:00
Justin Clark-Casey (justincc) f030f1dbfb Add JsonDestroyStore() basic regression test 2013-02-20 22:25:18 +00:00
Justin Clark-Casey (justincc) 16641e5bd0 refactor: Make invocations of json store functions from the regression test simpler 2013-02-20 22:25:10 +00:00
Justin Clark-Casey (justincc) 10db078aa4 Add regression test for script func JsonRemoveValue() 2013-02-20 22:25:04 +00:00
Justin Clark-Casey (justincc) afc93d7ac4 minor: change name of json script tests to JsonStoreScriptModuleTests instead of copy/pasted LSL_ApiInventoryTests 2013-02-20 22:24:50 +00:00
Justin Clark-Casey (justincc) fa5e1dde64 minor: remove EnableLogging() left over in CoopTerminationTests 2013-02-20 22:24:30 +00:00
Justin Clark-Casey (justincc) 0810f5f449 Try ignoring json tests if they can't be run due to being on <=.net 3.5 2013-02-20 22:24:25 +00:00
Justin Clark-Casey (justincc) 56e245e5e9 minor: Tidy up disabled logging on AssetTransactionModule for future use. Make it clear that transaction parameter to HandleUDPUploadRequest is an ID. 2013-02-20 22:24:20 +00:00
Justin Clark-Casey (justincc) 89362dbc4e minor: remove some mono compile warnings in XEngine.cs 2013-02-20 22:24:13 +00:00
Melanie 2f6ddc68b0 Prevent items being destroyed by rename operations. Renaming of a wearable also
sends an asset transaciton but it is empty. So we can't ignore name data
when a transaction is present and can't treat every transaction as valid.

Conflicts:

	OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
2013-02-20 22:23:54 +00:00
Justin Clark-Casey (justincc) 25b539e593 Fix issue where the "set terrain texture" console command did not tell the viewers that textures had updated (hence they did not display the changes).
Addresses http://opensimulator.org/mantis/view.php?id=6513
2013-02-20 22:23:46 +00:00
Talun 25a9ad1722 Mantis 6343: Turn a prim to flexy to OFF don't work llSetPrimParams
Correction so that scripts can turn Flexi off as well as on.
2013-02-20 22:23:30 +00:00
Justin Clark-Casey (justincc) d3bbfcc97b minor: Fix full scene part console report to show proper Light* names rather than all wrongly FlexiDrag 2013-02-20 22:22:32 +00:00
Justin Clark-Casey (justincc) c3cbba7778 minor: Call down to base OpenSimTestCase.SetUp() in NPCModuleTests to disable any enabled logging from previous tests 2013-02-20 22:22:26 +00:00
Justin Clark-Casey (justincc) 648932458a Disable json tests for now - I see this is failing on jenkins because mono 2.4.3 doesn't have Funcs >5 params, though mono 2.6 onwards does.
Standardize logging in JsonStoreScriptModule and some minor code formatting.
2013-02-20 22:21:50 +00:00
Justin Clark-Casey (justincc) f1b978cdf0 See if getting the registering JsonReadNotecard with MethodInfo works around an apparent issue with registering methods with more than 5 parameters on mono 2.4.3 2013-02-20 22:21:44 +00:00
Justin Clark-Casey (justincc) cb26e8a6c6 Increase logging by enabling during test setup rather than during individual tests of for JsonStore 2013-02-20 22:21:38 +00:00
Justin Clark-Casey (justincc) 7b8dc102d2 Enable logging in new json store tests to find out why they fail on jenkins but not locally. 2013-02-20 22:21:33 +00:00
Justin Clark-Casey (justincc) cf04e09521 Add JsonTestPath() regression test 2013-02-20 22:21:25 +00:00
Justin Clark-Casey (justincc) 3f50de6445 Add regression test for JsonSetValue() 2013-02-20 22:21:20 +00:00
Justin Clark-Casey (justincc) 18659dfaea minor: remove mono compiler warning in SceneCommandsModule 2013-02-20 22:21:03 +00:00
Justin Clark-Casey (justincc) ba175ee50b Add basic JsonGetValue() regression test. 2013-02-20 22:20:09 +00:00
Justin Clark-Casey (justincc) 995976c6db Add basic JsonCreateStore() regression test 2013-02-20 22:17:49 +00:00
Melanie cfc9270bae Update ScriptModuleComms name space to CoreModules 2013-02-20 22:12:59 +00:00
Melanie b2b6fd6aad Add a method to query all registered script constants to allow non-XEngine
script engines to use them.
2013-02-20 22:12:52 +00:00
Mic Bowman 96454ddee2 Moving ScriptModuleComms into the CoreModules tree. 2013-02-20 22:12:41 +00:00
Justin Clark-Casey (justincc) 4a0b9c411e Fix issue where lsl -> c# generation in co-operative termination mode did not correctly handle single statement versions of for, while and do-while loops.
Add regression tests to validate the fix.
This problem will not affect the default abort termination mode.
2013-01-30 03:59:22 +00:00
Justin Clark-Casey (justincc) e67b84613d Fix build break where implicit animation console output code crept back into AnimationsCommandModule but it doesn't exist in this branch 2013-01-24 03:09:49 +00:00
Justin Clark-Casey (justincc) d4f9982936 Remove unnecessary System.Linq reference from Compiler.cs
Hopefully will fix windows build via compile.bat
2013-01-24 03:05:11 +00:00
Justin Clark-Casey (justincc) 873ce644d3 Disable the not very useful infinite recursion co-op termination tests for now as they appear to cause failures with testing in jenkins.
These tests are not very useful anyway as they never actually get a chance to try termination before the script runs out of stack
2013-01-24 03:04:27 +00:00
Justin Clark-Casey (justincc) 1f8e43dd93 Fix mono 2.4.3 build break by using CreateInstanceAndUnwrap 9 method call deprecated in later .net versions 2013-01-24 03:04:19 +00:00
Justin Clark-Casey (justincc) 1da5a1ab21 Pass narrower WaitHandle rather than EventWaitHandle as co-op termination wait handle to script APIs.
APIs don't need to reference any methods on EventWaitHandle
2013-01-24 03:03:59 +00:00
Justin Clark-Casey (justincc) af30d9b07e Improve logging by making it clearer which script is failing if an assembly fails to load.
Moves the noise co-op start/stop debug log messages to only display if xengine debug level >= 1
Logs which stop strategy is being used (abort or co-op)
Adjusts some other logging to remove not very useful stuff
2013-01-24 03:03:52 +00:00
Justin Clark-Casey (justincc) b2c893a7be If ScriptStopStrategy hasn't been set to co-op in [XEngine] config, then continue to generate C# that is functionality identical to historical generation
This is to eliminate disruption until co-op termination has been well-tested.
In non co-op mode, XEngine will continue to load DLLs of the existing Script class and the new XEngineScript class.
Moving to co-op mode still requires existing script DLL deletion to force recompilation, either manually or by setting DeleteScriptsOnStartup = true for one run.
This change also means that scripts which fail to initialize do not still show up as running scripts.
2013-01-24 03:03:36 +00:00
Justin Clark-Casey (justincc) 3f80ac23b6 Add co-op termination regression test for infinite recursive manual call on event function.
Such code would normally terminate quickly with a stack overflow exception anyway.
2013-01-24 03:03:28 +00:00
Justin Clark-Casey (justincc) 701109c8c9 Set script delay factor to 0 in co-op termination tests
This is to ensure loops aren't actually terminating from a wait on an LSL function.
This was not the case with any of the existing tests.
2013-01-24 03:03:21 +00:00
Justin Clark-Casey (justincc) 5cbda393cd Add regression test for co-op termination on infinite user function call regression.
Such a script would probably run out of stack pretty quickly anyway.
2013-01-24 03:03:10 +00:00
Justin Clark-Casey (justincc) 98d0440c42 Add regression test for co-op stop of an infinite jump loop
Also fixes bug in do-while test
Improves detection of failure due to invalid script in test
Sets up xengine anew for each test rather than once for the while testsuite to improve isolation between tests.
Stop listening for chat after the first 'script is running' chat is received to reduce test run time.
2013-01-24 03:03:04 +00:00
Justin Clark-Casey (justincc) 8148d7e204 Add do-while co-op termination test
Minor changes to scripts in other tests.
2013-01-24 03:02:54 +00:00
Justin Clark-Casey (justincc) b43a6b0199 Add single and comound while loop co-op termination test 2013-01-24 03:02:47 +00:00
Justin Clark-Casey (justincc) d01943fa40 Fix bug in generating termination checks in compound statement for loop.
Add regression test for this case.
2013-01-24 03:02:39 +00:00
Justin Clark-Casey (justincc) b6daf4d4c6 factor out common code in existing co-op termination regression tests 2013-01-24 03:02:33 +00:00
Justin Clark-Casey (justincc) 4495ecd158 Increase WaitForEventCompletionOnScriptStop to 120 secs to show that the co-op setting is active in its regression tests. 2013-01-24 03:02:24 +00:00
Justin Clark-Casey (justincc) 85df66db51 minor: comment out Console.WriteLine debugging message in XEngine 2013-01-24 03:02:17 +00:00
Justin Clark-Casey (justincc) 3024d0e61c Add regression test TestStopOnLongForLoop() 2013-01-24 03:02:11 +00:00
Justin Clark-Casey (justincc) 5ac0447e0f refactor: rename XEngineTest to more descriptive XEngineBasicTests 2013-01-24 03:02:04 +00:00
Oren Hurvitz bb42862639 Assign the SmartThreadPool name in the constructor
This is required because some threads are created in the constructor, so assigning the name afterwards would be too late.
2013-01-24 03:01:26 +00:00
Justin Clark-Casey (justincc) 39b8f339ce Fix use of scene debug commands when region is set to root or a specific region where there is more than one region on the simulator. 2013-01-24 03:01:02 +00:00
Justin Clark-Casey (justincc) af99e5e74a Add "debug set set animations true|false" region console command.
Setting this logs extra information about animation add/remove, such as uuid and animation name
Unfortunately cannot be done per client yet
2013-01-24 03:00:39 +00:00
Justin Clark-Casey (justincc) f79800246a Implement non-wait co-operative termination of scripts for XEngine in addition to termination on wait.
This involves inserting opensim_reserved_CheckForCoopTermination() calls in lsl -> c# translation at any place where the script could be in a loop with no wait calls.
These places are for, while, do-while, label, user function call and manual event function call.
Call goes through to an XEngineScriptBase which extends ScriptBase.
IEngine is extended to supply necessary engine-specific parent class references and constructor parameters to Compiler.
Unfortunately, since XEngineScriptBase has to be passed WaitHandle in its constructor, older compiled scripts will fail to load with an error on the OpenSim console.
Such scripts will need to be recompiled, either by removing all *.dll files from the bin/ScriptEngines/<region-id> or by setting DeleteScriptsOnStartup = true in [XEngine] for one run.
Automatic recompilation may be implemented in a later commit.
This feature should not yet be used, default remains termination with Thread.Abort() which will work as normal once scripts are recompiled.
2013-01-24 03:00:18 +00:00
Melanie 4c1b1d89eb Complete removal of the now unused state queue 2013-01-24 02:04:41 +00:00
Diva Canto a473482413 Changed a couple of debug messages at the request of osgrid. 2013-01-24 02:04:33 +00:00
Justin Clark-Casey (justincc) 535ec23646 Implement co-operative script termination if termination comes during a script wait event (llSleep(), etc.)
This makes use of EventWaitHandles since various web references indicate that Thread.Interrupt() can also cause runtime instability.
If co-op termination is enabled, then termination sets the wait handle instead of waiting for a timeout before possibly aborting the thread.
This allows the script to cleanly terminate if it's in a llSleep/LL function delay or the next time it enters such a wait without any timeout period.
Co-op termination is not yet testable since checking for termination request within loops that never trigger a wait is not yet implemented.
This commit, unlike 1b5c41c, passes the wait handle as an extra parameter through IScript.Initialize() instead of passing IScriptInstance itself.
2013-01-24 02:03:49 +00:00
Justin Clark-Casey (justincc) 245d6435e3 Revert "Implement co-operative script termination if termination comes during a script wait event (llSleep(), etc.)"
Doing this as a favour to Melanie.  This will be back with passing the wait handles directly to the api.

This reverts commit 1b5c41c14a.
2013-01-24 02:00:13 +00:00
Justin Clark-Casey (justincc) 8728d4ce6a Implement co-operative script termination if termination comes during a script wait event (llSleep(), etc.)
This makes use of EventWaitHandles since various web references indicate that Thread.Interrupt() can also cause runtime instability.
If co-op termination is enabled, then termination sets the wait handle instead of waiting for a timeout before possibly aborting the thread.
This allows the script to cleanly terminate if it's in a llSleep/LL function delay or the next time it enters such a wait without any timeout period.
Co-op termination is not yet testable since checking for termination request within loops that never trigger a wait is not yet implemented.
2013-01-24 02:00:04 +00:00
Justin Clark-Casey (justincc) 44901f0b31 Instead of passing separate engine, part and item components to script APIs, pass down IScriptInstance instead.
This is to allow the future co-operative script thread terminate feature to detect and act upon termination requests.
This splits the assembly and state loading out from the ScriptInstance() constructor to a separate Load() method
in order to facilititate continued script logic regression testing.
2013-01-24 01:59:42 +00:00
Justin Clark-Casey (justincc) 5054a07be2 Print full stacktrace from plugin loading failure to help determine what went wrong, rather than a possibly unhelpful simple exception message. 2013-01-24 01:35:08 +00:00
Justin Clark-Casey (justincc) 2f1cc6a06a refactor: Simplify ScriptInstance by retaining reference to SceneObjectPart instead of sometimes but not always looking it up. 2013-01-24 01:34:58 +00:00
Robert Adams ff7693a14b Fix exception reporting in SceneObjectPart so it logs what the exception is rather than just saying it happened. 2013-01-24 01:34:35 +00:00
Justin Clark-Casey (justincc) e89f93c78c Implement a workaround solution for saving manual script state changes by the user before logout instead of wrongly removing the script early.
This workaround relies on the fact that a closing client goes inactive before the attachments derez calls happen.
This reverts the change to remove scripts too early instead of stopping them, since the the two step stop then remove is necessary to execute the detach event.
2013-01-24 01:34:05 +00:00
Justin Clark-Casey (justincc) d51aee876d Save attachments on detach/exit if a contained script state has been changed.
This involves making Attachments module listen for start/stop script changes.
It also involves removing the script from the region on detach in the same manner as every other DeleteSceneObject() call rather than simply stopping it
This is necessary tue to the bad assymetry of start and stop script triggers but it appears to be the correct behaviour anyway, as detached objects are completely gone from the sim.
Not just in a state where their scripts have been stopped.
2013-01-24 01:30:37 +00:00
Justin Clark-Casey (justincc) 3ad03d41e6 Fix a regression in the last few scene commands changes where setting these via the viewer estate dialog stopped working.
Forgot to register the new interface.
Also removes some code which got included by adpating an existing module.
2013-01-24 01:30:21 +00:00
Justin Clark-Casey (justincc) 69104f38f9 Add "debug scene get" console command to list current scene options 2013-01-24 01:29:49 +00:00
Justin Clark-Casey (justincc) c6bb0d9662 Move scene debug commands into separate module. Command changes from "debug scene <key> <value>" to "debug scene set <key> <value>" to accomodate future settings 2013-01-24 01:29:40 +00:00
Justin Clark-Casey (justincc) 73717f2ce7 refactor: route the final scene backup through the same code that handles periodic backup
This is rather than making unnecessary duplicate checks that the SOG later performs again.
2013-01-24 01:29:29 +00:00
Justin Clark-Casey (justincc) 03bc92d112 minor: Capitalize GroupsModule command category 2013-01-24 01:29:12 +00:00
Justin Clark-Casey (justincc) fd015c1ed7 minor: add missing newline to "debug scene" console command 2013-01-24 01:29:03 +00:00
Justin Clark-Casey (justincc) 8e548e4c8a Remove unimplemented "debug teleport" console command 2013-01-24 01:28:55 +00:00
Justin Clark-Casey (justincc) 44adf909b0 Add "debug scene pbackup true|false" console command. This enables or disable periodic scene backup. For debug purposes.
If false, scene is still saved on shutdown.
2013-01-24 01:28:47 +00:00
Justin Clark-Casey (justincc) d43863af78 On baked texture save, replace any HG ID with an ordinary asset ID so the HGAssetBroker doesn't try to save back to the avatar's originating region 2013-01-24 01:28:29 +00:00
Justin Clark-Casey (justincc) 83c70dc914 revert accidental change to MemoryWatchdog stat calculation in previous b1b4687 2013-01-24 01:28:16 +00:00
Justin Clark-Casey (justincc) 10c1b15f12 Add "show script timers" command to show script timers. For debug purposes.
Also, "show sensors" changes to "show script sensors".
2013-01-24 01:28:05 +00:00
Justin Clark-Casey (justincc) be5c6658bb Add "show sensors" command to show script sensor information for debug purposes. 2013-01-24 01:27:58 +00:00
Justin Clark-Casey (justincc) f0a936832b minor: Remove unnecessary commented out code from last commit c28a2f05 and fix up code comment 2013-01-24 01:27:49 +00:00
Justin Clark-Casey (justincc) ce5c2ee506 minor: make spacing consistent in console help output 2013-01-24 01:27:32 +00:00
Justin Clark-Casey (justincc) bd33953c60 minor: Fix command match of "debug script" command to "debug scripts" to match other scripts commands (and it's own short help text) 2013-01-24 01:27:20 +00:00
Justin Clark-Casey (justincc) ab22de03b8 minor: Allow "script *" console commands to take multiple script item ids 2013-01-24 01:27:13 +00:00
Melanie 61af272956 Add the new UpdateAgentInformation cap to make maturity on more recent viewers
work.
2013-01-24 01:27:06 +00:00
Justin Clark-Casey (justincc) 4041cb54f3 refactor: simplify llGetNumberOfPrims() to return prim count + sitting avatar count rather than independently inspecting every scene presence 2013-01-24 01:26:05 +00:00
Justin Clark-Casey (justincc) 87b4f335af minor: Add some doc to the extremely unhelpful 'fudge....' comment as to why we're deselecting the prim in code before scheduling an update on attachment 2013-01-24 01:25:28 +00:00
SignpostMarv f9bb9191cf Improving documentation of AttachToAvatar and GetLine methods in LSL_Api.cs based on doxygen error output 2013-01-24 01:24:26 +00:00
SignpostMarv 4ab7697f00 updating documentation in SampleMoneyModule based on doxygen error log output; changing an xml-style hint to a uri-style hint in the class summary, improving documentation of Initialise method and removing a superfluous parameter, improving documentating of ClientClosed method and documenting an omitted parameter 2013-01-24 01:24:16 +00:00
Justin Clark-Casey (justincc) 561626fe1b minor: Change channel digger replacement message in TerrainModule to Info from Warn.
This is to stop this unnecessarily triggering log analysis code which reports warn and error level statements.
2013-01-24 01:23:43 +00:00
Oren Hurvitz 86519bd407 Added locking in NullRegionData.
This prevents errors when one thread iterates over the regions (e.g., from RegenerateMaptileAndReregister()) while another thread is adding a region.
2013-01-24 01:22:54 +00:00
Justin Clark-Casey (justincc) 35a1949fb8 Fix indenting on ConsoleDisplayTable, align indenting on "show animations" console command 2013-01-24 01:22:46 +00:00