Difference between revisions of "Running and Publishing the Expectations Sample"

From STRIDE Wiki
Jump to: navigation, search
(How the SDK Makefile Includes Tests)
(How the SDK Makefile Includes Tests)
Line 5: Line 5:
  
 
=== How the SDK Makefile Includes Tests ===
 
=== How the SDK Makefile Includes Tests ===
The SDK Makefile is set up so that all <tt>.c</tt> <tt>.cpp</tt> and <tt>.h</tt> files found in the directory <tt>SDK/Linux/sample_src</tt> (or, alternatively <tt>SDK\Windows\sample_src</tt>) are included in the compile and link of the '''testapp''' target.
+
The SDK Makefile is set up so that all <tt>.c</tt> <tt>.cpp</tt> and <tt>.h</tt> files found in the directory <tt>SDK/Linux/sample_src</tt> (or, alternatively <tt>SDK\Windows\sample_src</tt>) are included in the compile and link of the '''TestApp''' target.
  
 
Further--as a pre-compilation step--any <tt>.h</tt> files found in <tt>sample_src</tt> are submitted to the [[s2scompile|S2 compiler]] and subsequent [[Build Tools]]. This will result in  
 
Further--as a pre-compilation step--any <tt>.h</tt> files found in <tt>sample_src</tt> are submitted to the [[s2scompile|S2 compiler]] and subsequent [[Build Tools]]. This will result in  

Revision as of 16:14, 2 February 2010

Building the TargetApp to Include Instrumented Source Under Test

In this step, will will add pre-instrumented examples source that provide an overview of STRIDE instrumentation techniques. The Expectations Sample sources are described in the linked article.

This step requires an installation of the STRIDE Framework package. If not installed, please see Framework Installation for more information.

How the SDK Makefile Includes Tests

The SDK Makefile is set up so that all .c .cpp and .h files found in the directory SDK/Linux/sample_src (or, alternatively SDK\Windows\sample_src) are included in the compile and link of the TestApp target.

Further--as a pre-compilation step--any .h files found in sample_src are submitted to the S2 compiler and subsequent Build Tools. This will result in

  • the detection of test pragmas used to declare Test Units in these .h files
  • the detection of function pragmas used to declare remoting of functions also found in .h files
  • the inclusion of metadata into the sidb file created
  • the generation of an intercept module required for executing tests

Build Steps

To begin, be sure that TestApp is not running, then copy the .c and .h files found in Samples/test_in_scrips/Expectations to SDK/Linux/sample_src (or Windows equivalent). As described above, the presence of these files in the sample_src will result in the submission of the .h files to the STRIDE Build Tools (thus generating test harnessing code from the scl pragmas found within them) and inclusion of both the sources and the generated harnessing code in the build.

Once the files have been copied to sample_src, simply build testapp using the SDK makefile.

Linux

  1. Build the test app
    cd ~/stride/SDK/Linux/src
    make testapp
    
  2. The file ~/stride/SDK/Linux/out/bin/TestApp will be produced
  3. Note also that the STRIDE database file ~/stride/SDK/Linux/out/TestApp.sidb is also produced

Windows

  1. If using Microsoft Visual Studio, open a Visual Studio command prompt[1] to ensure that the compiler and linker are on your PATH.
  2. Build the test app using the supplied GNU make. (You will get Makefile errors if you use the default make.)
    cd stride\SDK\Windows\src
    ..\bin\make testapp
    
  3. The file stride\SDK\Windows\out\bin\TestApp.exe will be produced
  4. Note that the STRIDE database file stride\SDK\Windows\out\TestApp.sidb is also produced

Running Expectation Samples and Publishing Results to Test Space

Here we will run the test module that is provided in this example .

  1. Run TestApp in a console window as in earlier steps.
  2. Invoke stride as shown below and verify Summary results.

Here are the command line parameters that we will submit to stride

--run=stride\Samples\test_in_script\Expectations\s2_expectations_testmodule.pm
--database TestApp.sidb 
--device TCP:localhost:8000
--upload
--testspace https://USER:PASS@mycompany.stridetestspace.com
--project Sandbox
--space Expectations

A couple of things to note:

  • the run parameter specifies the test module to execute
  • You will have to replace USER:PASS with your S2-assigned TestSpace user name and password
  • You will have to replace mycompany with your S2-assigned subdomain name
  • The project "Sandbox" and TestSpace "Expectations" have been pre-created within your company STRIDE TestSpace

The command line is very long, so we'll want to create a text file named RunSamples.txt in the out directory as a command file to submit to stride.

If you haven't done so already, start TestApp running in a separate console window.


Now run stride as follows:

stride -O RunSamples.txt

The output should look like this:


Loading database...
Connecting to device...
  runtime version: 4.1.04
Executing test units...
  Executing script "C:\stride\Samples\test_in_script\Expectations\s2_expectations_testmodule.pm"...
    > 3 passed, 1 failed, 0 in progress, 0 not in use.
  ---------------------------------------------------------------------
  Summary: 3 passed, 1 failed, 0 in progress, 0 not in use.

Disconnecting from device...
Saving result file...

Viewing Results in Test Space

First navigate to the S2-provided TestSpace with your browser. The URL has the form: https://companyname.stridetestspace.com. On the page that is presented, enter your login credentials.

At the top of the next page, click on the All Projects link to view the status of existing projects. Here you should see the Sandbox project listed, with its contained TestSpace Expectations shown.

Clicking the Expectations link will present you with the Expectations TestSpace page. From the top-line results at the bottom of the page you can drill down into the Sequence_1 results to see the test details.

Analyzing the Results

At this point, we recommend that you take some time to review the techniques used in the Expectations sample tests and correlate the results shown in Test Space with the various STRIDE constructs in the sample source. The article Expectations Sample describes the tests in detail.


  1. To open a Visual Studio Command prompt: Click the Start button, point to All Programs, Microsoft Visual Studio 200X, Visual Studio Tools, and then click Visual Studio 200X Command Prompt.