background image
Bionic Buffalo Tech Note #112: Introduction to the Faroe Islands Test Tools
Alternatively, 
ssh or telnet may be used to start applications which include embedded MPTOs, or
the developer or user may provide a proprietary launch mechanism. 
Test Scripts
Process test objects (both MPTOs and SPTOs) are controlled by test scripts, which may be viewed as
“test programs”. The test scripts allow starting and and stopping applications (processes and threads),
starting other test scripts, passing data to applications, accepting data from applications, transmitting
and receiving files, and conditional execution of the scripts depending on data values. 
Test scripts are written in a subset of Perl, and can employ any features of the Perl language. However,
there are certain presumed aspects of the environment, including preambles, postambles, and variables,
which are used to interact with the rest of the test manager.
For machines which do not implement Perl, a small subset of the script language can be used. Subset
scripts must be compiled; a compiler is included with the Tools. 
Where Perl is available, it is possible to communicate interactively with the test environment. By
running a program (started with the shell or otherwise), script commands can be entered at the
keyboard and executed on-the-fly. This allows the ad hoc control of tests, data display, and setting of
parameters.  
Parallel Operation 
Parallelism can exist within a test script, using the thread capabilities of Perl. In addition, multiple test
scripts may run independently of each other. The only impediment to simultaneous execution of
multiple scripts is the limitations of the software being tested. (For instance, if a program is not
reentrant it cannot be run twice at the same time, unless in separate processes, in which case there
might be contention for external resources such as files, semaphores, or memory.) 
Each MPTO is a peer in the test topology. A test can be started at node alpha, interacting with node
beta, and, at the same time, a different or the same test can be started at node beta, interacting with
node alpha. Test scripts do not interact with one another unless explicitly asked to do so. 
Embedding the Library into Applications 
The test support library provides an API to testable applications, allowing interaction with the test
environment and with process test objects (MPTOs and SPTOs). Functions include process and thread
control; data preparation, transmission, and reception; and interaction with test scripts (rendezvous,
mutexes, and other actions). The library also allows embedding the test objects into the application,
where they exist as asynchronous and generally independent threads. 
Data Acquisition and Management
The Faroe Islands Test Tools standardize the naming and organization of data, including files, records,
Page 3 of 4