Starting with v8.0 ATEasy supports running of multiple UUTs in sequential, parallel or mixed run modes. Programs running with sequential mode will run in the same thread while parallel programs will run a different thread. The Test Executive supports running multiple UUTs and the user can set how many UUTs he wishes to run, the run mode (parallel or sequential) and a program or a profile for each UUT. The test executive then displays a tab for each UUT. Each UUT tab display the program or profile tests, a log window and a test properties pane.
Selecting the Start button will start running the UUTs in the sequential mode pool (running under the same main thread) and according to the UUT Switch Level (set by options or using App.UutSwitchLevel property). In addition, UUTs that where set to parallel will also start at the same time and will be executed in their own thread.
Two Sequential mode UUTs with two different programs as follows:
UUT count is set to 2
Run mode of both UUTs is sequential
UUT1 was assigned to Program1 (3 tasks), UUT2 was assigned to program2 (2 tasks)
UUT Switch level (set from the Customize Option dialog) was set to switch every task
then selecting the Start will run as follows:
Program1 Task1, Program2 Task1, Program1 Task2, Program2 Task2, Program1 Task3. All the UUTs will run in the same thread as the main application thread.
Four UUTs, the first two as the first example, UUT 3 and 4 are parallel. In this example when you select Start to run the UUTs, 3 threads will be created. The main thread will run UUT1 and UUT2 in sequential mode as described in Example 1. UUT3 and UUT4 will run the program or profile assigned to them independently each in its own thread (UUT switch level will not be used for these UUTs).
Support for selecting one or different programs or profiles for UUTs
Support for setting Program, Task and Test UUT switch level
Multiple UUT tabs each with program tests, test properties and test logs. UUT tab are status based colored, display image of program or profile and run state mode (ready, paused or run).
New Commands: Start UUT and Abort UUT were added to the Run menu, the Start, Abort and Reset commands were enhanced to start or abort all selected UUTs.
New options: Enable Multiple UUTs, Enable UUT Count Setting, Default UUT Count, Default UUT Switch Level, Allow Different Program/Profile per UUT, Activate UUT tab on UUT Switch. See the Customize Dialog - Options Page for more information.
Support for entering Multiple Serial numbers for multiple UUTs. See the Serial Number Dialog for more information.
Set the Enable Multiple UUTs option to True using the Customize Dialog - Options Page.
Set the other UUT options as required by your application using the Customize Dialog - Options Page.
Select a program or a profile using the Select Program Dialog. Depends on the options you set the dialog will allow you to override and set the UUT count, select one or more program/profile for your UUTs and select the run mode for each UUT (parallel or sequential).
To test all UUTs, select the Start Command from the Run menu, to test single UUT, select the UUT tab for your UUT and select the Start UUT Command.
For Sequential run mode, You may add code in OnInitSwitchUut, OnEndSwitchIUut module events (driver, system or program). The code will be executed when ATEasy switches from one UUT to another as set by the App.UutSwitchLevel.
Modify your test code to use the App.UutIndex to perform switching and other UUT index based instrumentation access.
For parallel run mode, synchronize access to resources, test and procedures using the Semaphore property of the module (Driver, system or program) you are trying to lock. Use the Task, Test and Procedure Synchronize flag to allow access to code only from a single thread.
The following example shows how to setup execution for multiple UUT. Similar code exist in the test executive. If you are not using the test executive and would like to set up multiple execution similar code need to be executed. The example runs 3 UUTs. The first two UUTs in sequential mode (same thread and program) and the third in parallel (second thread):
app.UutCount=3
app.UutProgram(0)=app.Programs(0)
app.UutProgram(1)=app.Programs(0)
app.UutProgram(2)=app.Programs(1)
app.UutSwitchLevel=aUutSwitchLevelTask
app.UutRunMode(0)=aUutRunModeSeqential
app.UutRunMode(1)=aUutRunModeSeqential
app.UutRunMode(2)=aUutRunModeParallel
Run All