Difference between revisions of "Studio:WorkspaceSetup.pl"

From STRIDE Wiki
Jump to: navigation, search
 
Line 97: Line 97:
 
== Prerequisites ==
 
== Prerequisites ==
  
This component is written in the Perl scripting language and therefore requires that Perl be installed. See [[Desktop Installation#Third Party Requirements|Perl requirements]] for more information.
+
This component is written in the Perl scripting language and therefore requires that Perl be installed. See [[Studio:Desktop Installation#Third Party Requirements|Perl requirements]] for more information.
  
 
[[Category:Studio:Scripts]]
 
[[Category:Studio:Scripts]]

Latest revision as of 22:54, 6 May 2010

The WorkspaceSetup.pl script (found in the STRIDE scripts directory) provides a command line tool for creating canonical STRIDE Studio workspaces suitable for organizing your test scripts. This script requires perl for execution as well as the STRIDE Test Utilities.

Usage

Summary

WorkspaceSetup.pl -w MyWorkspace -d "MyDir" [-c customconfig -l]
Parameters
-w | --workspacename = WorkspaceName
Specifies the name new workspace to be created. This workspace will be created in the directory specified by the --dirworkspace argument or in the current directory (if no workspace directory is specified). Defaults to 'MyWorkspace'.
-d | --dirworkspace = WorkspaceDirectory
Specifies the directory in which to create the new workspace. Defaults to the current directory.
-c | --workspaceconfig = MyConfig.pm
Allows users to specify a different an optional WorkspaceConfig.pm file to use when creating the workspace. This allows users to generate a workspace with custom config parameters.
-l | --launch
Launches STRIDE Studio and opens the newly created workspace.

Workspace Layout

The workspaces that are created by WorkspaceSetup will have the following files and folders (items in <brackets> indicate folders):

 < Script Files > 
   <setup>
     s2StartPrintLog.pl
   <test> 
   <teardown>
     s2StopPrintLog.pl
     s2TweakResults.pl
   <utility>
     <recovery>
       s2OnError.pl
 < Source Files >


setup Folder

This folder is intended to contain the scripts necessary to prepare the device for testing. For the canonical workspace, we add a script that opens a traceview to capture srPrint* output messages. Users might choose to add scripts for starting and initializing the device under test.

test Folder

This folder is intended to contain the test scripts to be executed on the device. It is created by this setup and test script writers are free to organize test scripts however they want in this folder. This folder also has the "OnRunConnect" property set to true so that a target connection will be initiated when it is executed. The connection is established using your global connection settings (see STRIDE Studio reference guide for more information).

teardown Folder

This folder contains the scripts necessary to cleanup after testing is completed. This might involve, for example, stopping the device. The canonical workspace contains one script to process the srPrint* info sent to the logging traceview and another to adjust the hierarchy of the final report results.

utility Folder

This folder should be used to hold utility libraries that are associated with the workspace. This directory is not included in execution; as such, the files therin are provided for convenience to the users.

recovery Folder

This folder contains the sample s2OnError script that we provide. This is intended as a template for customization depending on your device's needs.

WorkspaceConfig.pm

WorkspaceSetup.pl provides a limited way to configure the settings used when creating the new workspace. This file (WorkspaceConfig.pm), if specified, is executed during workspace creation and is used to configure the compiler, target, and workspace level settings for each new workspace.

WorkspaceConfig must define, at a minimum, a single hash variable named %WorkspaceConfig::Settings (i.e., the hash is called Settings and is in the WorkspaceConfig package namespace). This hash may contain any or all of the following members:

  • Compiler
  • Target
  • Database
  • Workspace

Each of these elements are themselves hashes (anonymous), each of which has entries that correspond to the properties of the corresponding automation studio automation model, e.g.:

  • Compiler corresponds to studio.Workspace.Settings.Compiler
  • Target corresponds to studio.Workspace.Settings.Target
  • Database corresponds to studio.Workspace.Settings.Database
  • Workspace corresponds to studio.Workspace

Provided Scripts

s2StartPrintLog.pl

This script creates one or more traceviews to capture messages from the STRIDE Runtime.

s2StopPrintLog.pl

This script processes the content of the traceview(s) that were created by s2StartPrintLog.pl. The contents of the traceview(s) is added to the resulting test report as annotations.

s2TweakResults.pl

Since the workspace organization includes several folders that produce no test results, this script consolidates the result from the test folder into a more convenient test report hierarchy. The final report that is generated contains all test results from the test folder under the top-level workspace suite.

s2OnError.pl

This script demonstrates how one might implement a recovery script for use in STRIDE Studio (as an OnError or OnTimeout property). This implementation verifies that the connection to the device is still active. If the connection has been lost, it attempts to "restart" the device by running the scripts in the setup and teardown folders. For most devices, the restart logic should probably be customized to better suit the device.

Once the device connection is determined to be healthy, the script attempts to verify that the intercept module thread is active by calling a stock function called __strideIMProbe__. If this function exists and returns an expected value when returned, the target is deemed to be functional and ready for more tests. Otherwise, the device is assumed to be non-functional and testing is halted.

Prerequisites

This component is written in the Perl scripting language and therefore requires that Perl be installed. See Perl requirements for more information.