|Download Help (Windows Only)|
A model plug-in can receive step results after a UUT completes or on-the-fly.
After each UUT completes, the process model calls the Model Plugin – UUT Done entry point and uses the MainSequenceResult parameter to pass a reference to the result of the process model Sequence Call step that calls the client file. The Parameters.MainSequenceResult.TS.SequenceCall.ResultList array contains the step results of the top-level client sequence. If a result in the array is a Sequence Call step result, the TS.SequenceCall.ResultsList property of the subsequence includes the results of all steps in the subsequence. The TS.SequenceCall.Sequence, TS.SequenceCall.SequenceFile, and TS.SequenceCall.Status properties include the sequence name, sequence file path, and result status for the subsequence.
A plug-in that processes results, such as a report generator or a database logger, typically recursively traverses the TS.SequenceCall.ResultsList array, including results of subsequences, to generate a report or log results to a database.
If you enable a plug-in to process results on-the-fly by setting the ProcessOnTheFly subproperty to True, TestStand progressively collects results concurrent with the test execution. When TestStand collects a result and exceeds a threshold in time or in the number of collected results, the process model passes the results collected since the last time TestStand exceeded the threshold to the Model Plugin – OnTheFly Step Results entry point for processing.
A plug-in that processes results on-the-fly, such as a report generator or a database logger, typically appends data to a report or logs the data to a database while iterating through each array of results the model passes to the OnTheFly Step Results entry point.
TestStand cannot determine the result status of a Sequence Call step before the subsequence completes. Therefore, TestStand does not generate the final parent result for the steps of a subsequence until the subsequence completes. To support process model plug-ins that must immediately identify the parent result for each child result, TestStand generates a provisional result for a Sequence Call step before executing the steps in the subsequence.
Similarly, TestStand cannot determine the result status of a step that loops before all the loop iterations in the step complete. Therefore, TestStand does not generate the final step result of a step that loops until all loop iterations complete. To support process model plug-ins that display loop information, such as the loop index, the number of loops that passed, and the number of loops that failed, while the step loops and before loop iterations complete, TestStand generates a provisional result for steps that loop.
The ID of a provisional result is the same as the ID of the corresponding final result. TestStand passes provisional results only to the Model Plugin - OnTheFly Step Results plug-in entry point and PostResults engine callback. Use the existence of the TS.Provisional Boolean subproperty to identify provisional results.
Additionally, TestStand generates a provisional result after executing all the steps in a sequence that executes in a new thread. Some process model plug-ins can use this provisional result to reprocess results collected for steps that executed in a new thread. The ID of the provisional result is the same as the ID of the corresponding Sequence Call step that executed the sequence. Use the existence of the TS.ThreadComplete Boolean subproperty to identify this provisional result.
In a Model Plugin - OnTheFly Step Results plug-in entry point, you use or ignore provisional results depending on what the plug-in requires.