Executions

When you run a sequence, TestStand creates an Execution object that contains all the information TestStand needs to run the sequence and subsequences, as shown in the following figure.

When an execution is active, you can start other executions by running the same sequence again or by running different sequences. TestStand does not limit the number of executions you can run concurrently.

An execution can start with a single thread. You can use Sequence Call multithreading options to create additional threads within an execution or to launch new executions. An execution groups related threads so that setting a breakpoint suspends all threads in the execution. When you suspend, terminate, or abort an execution, you stop all threads in the execution.

Multiple instances of a sequence can run at the same time, such as when you call a sequence recursively or when a sequence runs in multiple concurrent threads. For each instance of the sequence, TestStand creates a copy of the sequence parameters, local variables, and custom properties of each step. When a sequence completes, TestStand discards the values of the parameters, local variables, and discards the values of custom properties when you set the value of the Optimize Non-Reentrant Calls to This Sequence option on the General tab of the Sequence Properties dialog box to False.

When TestStand begins executing a sequence, it creates a run-time copy of the sequence local variables and the custom properties of the steps in a sequence. If the sequence calls itself recursively, TestStand creates a separate run-time copy of the local variables and custom step properties for each running instance of the sequence. Modifications to the values of local variables and custom step properties apply only to the run-time copy and do not affect the sequence file in memory or on disk.

Note TestStand shares built-in properties of steps and sequences at run time. For these shared properties, TestStand does not create a unique run-time copy but instead references the edit-time copy. Any changes to the run-time reference of these built-in properties edits the original Step or Sequence object in the sequence file.

For each execution thread, TestStand maintains an execution pointer that points to the current step, a call stack, and a run-time copy of the local variables and custom properties for all sequences and steps on the call stack.

The Execution tab of the Station Options dialog box tab provides a number of execution options that control tracing, breakpoints, and result collection.