Difference between revisions of "Parcel Prim Limit Overflow test"
Jump to navigation
Jump to search
Dan Linden (talk | contribs) |
|||
(20 intermediate revisions by 2 users not shown) | |||
Line 9: | Line 9: | ||
== setup == | == setup == | ||
* UserA, own some land. | * UserA, own some land. | ||
* UserA, upload a mesh that has a prim equivalent less than 10 | * UserA, upload a mesh that has a prim equivalent less than 10 (Use duck.dae with the physics settings set to use level of detail 'lowest') | ||
* UserA, upload a mesh that has a prim equivalent greater than | * UserA, upload a mesh that has a prim equivalent greater than 40 (Use duck.dae with the physics settings set to use level of detail 'lowest', then scale it up.) | ||
* UserB, rez objects on UserA land until only 10 prims are available on the parcel. | * UserB, rez objects on UserA land until only 10 prims are available on the parcel. | ||
=== rez a mesh === | === rez a mesh === | ||
* UserA, rez a mesh that has a prim equivalent greater than 10. | * UserA, rez a mesh that has a prim equivalent greater than 10. | ||
* '''Verify''' UserA receives a descriptive message explaining that the rez failed because the parcel is full | |||
* '''Verify''' UserA receives a descriptive message explaining | * '''Verify''' Neither UserA's nor UserB's objects are not returned. | ||
* '''Verify''' UserB's objects are not returned. | |||
== rez a mesh via script == | == rez a mesh via script == | ||
* UserA, create a prim on your parcel and add the following script | * UserA, create a prim on your parcel and add the following script | ||
<pre>default{touch_start(integer total_number){llRezObject( | <pre>default{touch_start(integer total_number){llRezObject(llGetInventoryName(INVENTORY_OBJECT, 0), llGetPos()+<0,0,1>, ZERO_VECTOR, ZERO_ROTATION, 1);}}</pre> | ||
* UserA, put a mesh that has a prim equivalent greater than 10 inside the contents of the prim | * UserA, put a mesh that has a prim equivalent greater than 10 inside the contents of the prim. | ||
* Touch the prim. | * Touch the prim. | ||
* '''Verify''' UserA receives a descriptive message explaining that the rez failed because the parcel is full | |||
* '''Verify''' UserA receives a descriptive message explaining | * '''Verify''' Neither UserA's nor UserB's objects are not returned. | ||
* '''Verify''' UserB's objects are not returned. | |||
== resize a mesh == | == resize a mesh == | ||
* UserA, rez a mesh that has a prim equivalent less than 10. | * UserA, rez a mesh that has a prim equivalent less than 10. | ||
* UserA, resize the mesh | * UserA, resize the mesh larger, so its cost increases past 10 | ||
* UserA, deselect the object | * UserA, deselect the object | ||
* (Ideal behavior: The scale operation fails and the object snaps back to its previous scale. A helpful error message explains that the scale operation failed because it would have exceeded the parcel's resource limit.) | * (Ideal behavior: The scale operation fails and the object snaps back to its previous scale. A helpful error message explains that the scale operation failed because it would have exceeded the parcel's resource limit.) | ||
Line 36: | Line 34: | ||
* '''Verify''' UserA receives a descriptive message explaining why the object was returned. | * '''Verify''' UserA receives a descriptive message explaining why the object was returned. | ||
* '''Verify''' UserB's objects are not returned. | * '''Verify''' UserB's objects are not returned. | ||
* Also test: | |||
** A rezzes object, B rezzes object, A scales already-rezzed object beyond resource limit. | |||
** B rezzes object, A rezzes object, A scales B's already-rezzed object (B will need to give A permissions to do this) | |||
== change Physics shape type manually == | == change Physics shape type manually == | ||
Line 43: | Line 45: | ||
* '''Verify''' UserA receives a descriptive message explaining why the object was returned. | * '''Verify''' UserA receives a descriptive message explaining why the object was returned. | ||
* '''Verify''' UserB's objects are not returned. | * '''Verify''' UserB's objects are not returned. | ||
* UserA, link several torii together | |||
* UserB, rez other prims or meshes on the parcel until the parcel prim limit is reached. | |||
* UserA, edit the root prim of the torii linked set and set the Physics Shape Type to Convex Hull | |||
* '''Verify''' the Prim equivalent of the object increased , overflowing the parcel prim limit and causing the linked set to return. | |||
* '''Verify''' this caused no other objects to return. | |||
== change the physics shape type as a result of linking or unlinking. == | == change the physics shape type as a result of linking or unlinking. == | ||
Line 56: | Line 65: | ||
* '''Verify''' UserB's objects are not returned. | * '''Verify''' UserB's objects are not returned. | ||
= | * <span style="background:#FFFF33">It would be better if only the prims of the linked object were returned. Or better yet, the unlink should fail with a helpful error because it will cause a surprise object return situation.(SH-570)</span> | ||
== stand up from a vehicle == | == stand up from a vehicle == | ||
Line 67: | Line 71: | ||
* '''Verify''' no prims are returned. | * '''Verify''' no prims are returned. | ||
* UserA, stand up. | * UserA, stand up. | ||
* '''Verify''' UserA's mesh object is returned. | * '''Verify''' UserA's mesh object (the vehicle) is returned. | ||
* '''Verify''' UserA receives a descriptive message explaining why the | * '''Verify''' UserA receives a descriptive message explaining why the vehicle was returned. | ||
* '''Verify''' UserB's objects are not returned. | * '''Verify''' UserB's objects are not returned. | ||
== change a temporary prim into a temporary mesh == | == change a temporary prim into a temporary mesh == | ||
* UserA, | * UserA, create 15 torii on a different parcel. | ||
* Set the | * Link the torii together. | ||
* | * Set the torii to Temporary by checking the Temporary box in the Objects tab of the Edit Tools. | ||
* '''Verify''' UserA's mesh object is returned. | * Move the linked set onto your parcel and deselect the linked set. | ||
* '''Verify''' no objects return. (because temporary prims are not counted against the parcel resource limit) | |||
* Edit the torii and set the Physics Shape Type to Convex Hull then deselect the object. | |||
* '''Verify''' UserA's mesh object is returned. (because temporary meshes are counted against the parcel resource limit) | |||
* '''Verify''' UserA receives a descriptive message explaining why the object was returned. | * '''Verify''' UserA receives a descriptive message explaining why the object was returned. | ||
* '''Verify''' UserB's objects are not returned. | * '''Verify''' UserB's objects are not returned. | ||
== drop a mesh attachment that would overflow the parcel == | |||
* UserA, attach a mesh that has a resource cost greater than the resource available on your parcel. | |||
* UserA, stand on your parcel and attempt to Drop the attachment on the parcel. | |||
* '''Verify''' UserA's attachment is not dropped on the parcel. | |||
* '''Verify''' UserA receives the same standard error message as when you try to drop a prim attachment on a parcel that is full. | |||
== parcel resources shrink due to abandon, causing overflow == | |||
* UserA: subdivide your parcel into 2 halves | |||
* UserA: rez a mesh object onto one of the halves | |||
* UserB: rez another mesh object onto one of the halves. Choose an object which brings the parcel to over 50% full | |||
* UserA: abandon the empty parcel | |||
* '''Verify''' The parcel prim resource dropped accordingly (via About Land) | |||
* '''Verify''' UserA's object is not returned | |||
* '''Verify''' UserB's object is returned | |||
== parcel resources shrink due to decreased region object bonus, causing overflow == | |||
* Estate manager: set the region "object bonus" to 2.0, and hit "Apply" | |||
* UserA: rez a mesh object onto your parcel | |||
* UserB: rez another mesh object onto the parcel. Choose an object which brings the parcel to over 50% full | |||
* Estate manager: set the region "object bonus" to 1.0, and hit "Apply" | |||
* '''Verify''' The parcel prim resource dropped by a factor of 2 (via About Land) | |||
* '''Verify''' UserA's object is not returned | |||
* '''Verify''' UserB's object is returned | |||
== parcel prim limits do not immediately apply to selected objects == | |||
* UserA: rez a mesh object onto your parcel | |||
* UserA: rez a 2nd mesh object next to your parcel, with enough cost to cause overflow returns | |||
* UserA: drag the 2nd object onto your parcel, and don't deselect it | |||
* UserA: wait a minute or two | |||
* '''Verify''' neither of UserA's objects are returned | |||
* UserA: deselect the 2nd object | |||
* '''Verify''' that the 2nd object is returned within a few seconds |
Latest revision as of 16:19, 15 July 2011
Purpose
- Eliminate paths of accidental object return due to Mesh object editing.
- This means that when UserA is editing or creating objects on his parcel, there should be no way to accidentally return other people's objects on his land.
- When possible also avoid returning UserA's own objects, by failing to perform the operation that would have caused the overflow and providing a helpful error message.
setup
- UserA, own some land.
- UserA, upload a mesh that has a prim equivalent less than 10 (Use duck.dae with the physics settings set to use level of detail 'lowest')
- UserA, upload a mesh that has a prim equivalent greater than 40 (Use duck.dae with the physics settings set to use level of detail 'lowest', then scale it up.)
- UserB, rez objects on UserA land until only 10 prims are available on the parcel.
rez a mesh
- UserA, rez a mesh that has a prim equivalent greater than 10.
- Verify UserA receives a descriptive message explaining that the rez failed because the parcel is full
- Verify Neither UserA's nor UserB's objects are not returned.
rez a mesh via script
- UserA, create a prim on your parcel and add the following script
default{touch_start(integer total_number){llRezObject(llGetInventoryName(INVENTORY_OBJECT, 0), llGetPos()+<0,0,1>, ZERO_VECTOR, ZERO_ROTATION, 1);}}
- UserA, put a mesh that has a prim equivalent greater than 10 inside the contents of the prim.
- Touch the prim.
- Verify UserA receives a descriptive message explaining that the rez failed because the parcel is full
- Verify Neither UserA's nor UserB's objects are not returned.
resize a mesh
- UserA, rez a mesh that has a prim equivalent less than 10.
- UserA, resize the mesh larger, so its cost increases past 10
- UserA, deselect the object
- (Ideal behavior: The scale operation fails and the object snaps back to its previous scale. A helpful error message explains that the scale operation failed because it would have exceeded the parcel's resource limit.)
- Verify UserA's mesh object is returned.
- Verify UserA receives a descriptive message explaining why the object was returned.
- Verify UserB's objects are not returned.
- Also test:
- A rezzes object, B rezzes object, A scales already-rezzed object beyond resource limit.
- B rezzes object, A rezzes object, A scales B's already-rezzed object (B will need to give A permissions to do this)
change Physics shape type manually
- UserA, rez a mesh that has a prim equivalent less than 10.
- UserA, change the Physics Shape Type to Prim. (This should increase the cost past 10)
- Verify UserA's mesh object is returned.
- Verify UserA receives a descriptive message explaining why the object was returned.
- Verify UserB's objects are not returned.
- UserA, link several torii together
- UserB, rez other prims or meshes on the parcel until the parcel prim limit is reached.
- UserA, edit the root prim of the torii linked set and set the Physics Shape Type to Convex Hull
- Verify the Prim equivalent of the object increased , overflowing the parcel prim limit and causing the linked set to return.
- Verify this caused no other objects to return.
change the physics shape type as a result of linking or unlinking.
- UserA, on some parcel other than your own, rez a mesh that has a prim equivalent less than 10.
- Duplicate the mesh and link the 2 meshes together.
- Set the Physics Shape Type to None. (You'll see an error, but that's okay. The child mesh is now set to None)
- Take the linked mesh into inventory.
- Rez the linked mesh onto your parcel
- UserB, Fill up the parcel with objects
- UserA, Unlink the linked meshes.
- Verify one of UserA's mesh object is returned.
- Verify UserA receives a descriptive message explaining why the object was returned.
- Verify UserB's objects are not returned.
- It would be better if only the prims of the linked object were returned. Or better yet, the unlink should fail with a helpful error because it will cause a surprise object return situation.(SH-570)
stand up from a vehicle
- UserA, Sit on a Mesh that has a prim equivalent greater than 10 then drag it onto your parcel
- Verify no prims are returned.
- UserA, stand up.
- Verify UserA's mesh object (the vehicle) is returned.
- Verify UserA receives a descriptive message explaining why the vehicle was returned.
- Verify UserB's objects are not returned.
change a temporary prim into a temporary mesh
- UserA, create 15 torii on a different parcel.
- Link the torii together.
- Set the torii to Temporary by checking the Temporary box in the Objects tab of the Edit Tools.
- Move the linked set onto your parcel and deselect the linked set.
- Verify no objects return. (because temporary prims are not counted against the parcel resource limit)
- Edit the torii and set the Physics Shape Type to Convex Hull then deselect the object.
- Verify UserA's mesh object is returned. (because temporary meshes are counted against the parcel resource limit)
- Verify UserA receives a descriptive message explaining why the object was returned.
- Verify UserB's objects are not returned.
drop a mesh attachment that would overflow the parcel
- UserA, attach a mesh that has a resource cost greater than the resource available on your parcel.
- UserA, stand on your parcel and attempt to Drop the attachment on the parcel.
- Verify UserA's attachment is not dropped on the parcel.
- Verify UserA receives the same standard error message as when you try to drop a prim attachment on a parcel that is full.
parcel resources shrink due to abandon, causing overflow
- UserA: subdivide your parcel into 2 halves
- UserA: rez a mesh object onto one of the halves
- UserB: rez another mesh object onto one of the halves. Choose an object which brings the parcel to over 50% full
- UserA: abandon the empty parcel
- Verify The parcel prim resource dropped accordingly (via About Land)
- Verify UserA's object is not returned
- Verify UserB's object is returned
parcel resources shrink due to decreased region object bonus, causing overflow
- Estate manager: set the region "object bonus" to 2.0, and hit "Apply"
- UserA: rez a mesh object onto your parcel
- UserB: rez another mesh object onto the parcel. Choose an object which brings the parcel to over 50% full
- Estate manager: set the region "object bonus" to 1.0, and hit "Apply"
- Verify The parcel prim resource dropped by a factor of 2 (via About Land)
- Verify UserA's object is not returned
- Verify UserB's object is returned
parcel prim limits do not immediately apply to selected objects
- UserA: rez a mesh object onto your parcel
- UserA: rez a 2nd mesh object next to your parcel, with enough cost to cause overflow returns
- UserA: drag the 2nd object onto your parcel, and don't deselect it
- UserA: wait a minute or two
- Verify neither of UserA's objects are returned
- UserA: deselect the 2nd object
- Verify that the 2nd object is returned within a few seconds