One approach to the problem is to generate pseudo-random stimulus. A procedure uses a random number generator to repetitively choose from any one of the possible operator widget interactions available to the user, and invokes it. While this can generate stimulus with high productivity, it presents other problems:
Flag | Type | Default Value | Description |
-opLimit | int | (0) | Limit on the number of operations to be performed in the test, 0 implying unlimited |
-opLog | string | () | Pathname of a file to which a continuous audit of operations will be written |
-seed | int | (88888) | Seed, passed to srand () on the first call to this procedure |
-monWin | boolflag | (true) | Display a special toplevel window with the status of the testing. Unfortunately, depending on the window manager that you use, this may not appear on top, although this is necessary if it is to be of use. |
-userErrorLog | string | () | File to which statistics on the occurrence of user errors are written |
-maxMultiView | int | (5) | Maximum number of MultiViews that may be created simultaneously |
-minMultiView | int | (0) | Minimum number of MultiViews that may be created simultaneously |
-maxMotion | int | (25) | Number of motion binding invocations between press and release |
-minSelect | float | (0.0) | Rubber band selection must select from an area of at least this amount of the view in each direction |
-minZoom | float | (0.7) | Zoom is constrained to change the view within the range (minZoom, 1/minZoom) |
-minTool | float | (0.4) | Modeling tool definitions are constrained to cover the view within the range (minTool, 1/minTool) |
-minCreate | float | (0.1) | Objects must be sized by at least this amount of the view in each direction |
-motionDelta | int | (30) | Number of pixels change between consecutive motion binding invocations |
-milliseconds | int | (0) | Period between internal consistency checks within each MultiView. USE "-checkSelected" instead. |
-checkSelected | boolflag | (false) | After each operation, check the consistency of the canvas selection with selectedObjects |
-checkShaders | boolflag | (false) | After each operation, check the correctness of the AutoDestruct usage counters of all Shaders |
-checkVertexSet | boolflag | (false) | After each operation, check that all Polygon vertex linking is bi-directional |
-checkAggregate | boolflag | (false) | After each operation, check that all Aggregations are properly owned by Freehand and MultiView |
-maxRender_ms | int | (100) | Rendering operations are aborted after the specified number of milliseconds (never if zero) |
-maxMemory | float | (100.0) | MultiViews will be deleted if the program is using more than the specified percentage of memory. NOT RECOMMENDED |
In addition, the operations and their parameters are selected using a weighted random deviate, to guide the test while not precluding unusual paths. The weightings are hard-coded in lists within the randomTest procedure code. For example, the probability of MultiView deletion is slightly higher than MultiView creation, and object deletion more likely than copying. These biases keep the memory usage down. An experimental option "-maxMemory" is not recommended: it relies on the memory size of the program reported by "ps" - this does not appear to reduce when objects are deleted. Consequently, using the feature is likely to result in all MultiViews being deleted. Even if this problem could be overcome, tests may not be reproducible because memory usage could reach a threshold at a different point in time on each run due to competition for resource from other programs.
Constraints on the amount of Zoom and the sizes
of objects which are created helps to avoid size constraints in SIPP/TSIPP.
7534 | Need to render this frame before it can be fixed |
1772 | New items created since rendering - use the "Render" button to correct this |
3891 | STD_CAMERA cannot be copied - other items will be copied |
3737 | STD_CAMERA cannot be deleted - other items will be deleted |
1 | TSIPP returned the following error while processing a Cone - "". Try to edit the image to avoid this. |
7 | TSIPP returned the following error while processing a Cuboid - "sizes X Y and Z must be > 0.0". Try to edit the image to avoid this. |
14 | TSIPP returned the following error while processing a Ellipsoid- " radius X Y and Z must be > 0.0". Try to edit the image to avoid this. |
9 | TSIPP returned the following error while processing a StdCamera - "The position and point may not be the same". Try to edit the image to avoid this. |
1 | TSIPP returned the following error while processing a StdCamera - "The view vector (position to point) and up vector may not be parallel". Try to edit the image to avoid this. |
382 | This handle motion on an item of class StdCamera has caused a problem - "divide by zero". Try to edit the image differently to avoid this. |