Commit Graph

18152 Commits (fa4ea2db1710ff8656716ea922054484cdee2be5)

Author SHA1 Message Date
Justin Clark-Casey (justincc) 420b94d358 Convert JsonTestPath() use in json regression tests to JsonGetPathType() instead 2013-02-20 23:38:28 +00:00
Justin Clark-Casey (justincc) dd5f9b0103 minor: Rename regression test method TestGetArrayLength() -> JsonTestGetArrayLength() to match others 2013-02-20 23:38:07 +00:00
Justin Clark-Casey (justincc) 7d5613bc16 Separate IAR tests into separate files for load/save/loadpath tests 2013-02-20 23:37:30 +00:00
Justin Clark-Casey (justincc) f7de17c9d9 Make it so that "load iar / ..." does not save the 'root' "My Inventory" folder.
Really "My Inventory" is just the name of the root, it isn't a folder in its own right.
This also makes it more intuitive for users to save whole inventory iars for backup/later restoration, as they don't need to remember to use /*
/* will still work and this is a special case just for the root
If you want to save only the contents of other folders (rather than the folder itself), you still need to specify something like a/b/*
Added a regression test for this case.
2013-02-20 23:37:26 +00:00
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