Commit Graph

18041 Commits (c992037d503470b7672392f1e396914c1e35b3ae)

Author SHA1 Message Date
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