Running Tests (old): Difference between revisions

From STRIDE Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 5: Line 5:


=== Host ===
=== Host ===
* [[Stride Host Tools]] installed on the host computer
* [[Stride Host Tools]] installed on the host computer; specifically, the [[Stride Executable|stride]] application.


=== Target ===
=== Target ===
Line 13: Line 13:
* Target app running <ref>If target is multi-process, both the target and the STRIDE I/O daemon process must be started.</ref>
* Target app running <ref>If target is multi-process, both the target and the STRIDE I/O daemon process must be started.</ref>


=== Verifying Transport Settings ===
== Preparing to Run Your Tests ==
You can quickly verify your transport settings by running
Tests are executed on the target by running the program [[Stride Executable|stride]] on the host computer. See the linked article for reference information.


== Running Your Tests ==
In all cases,
Tests are executed on the target by running the program [[stride.exe]] on the host computer.
* The stride executable must be able to read the STRIDE database (.sidb) file that corresponds to the target build
 
By default, tests are run in the order in which their corresponding SCL pragmas were seen by the [[s2scompile|STRIDE compiler]] (This can be overridden; see below.)
 
== Examples ==


Command line options allow you to tailor the the script's operation, but at a minimum:
=== Running Diagnostics ===
S2 Technologies supplies a set of diagnostic tests that can be used to verify correct operation.


* The stride executable must be able to read the STRIDE database (.sidb) file that corresponds to the target build
By building in the files srdiag.h and srdiag.c (located in the SDK/Runtime directory of each SDK), these tests become available.
 
Assuming that:
* your STRIDE database is named TestApp.sidb and resides in the current directory, and
* the corresponding target application is running on the host computer
the command line to run diagnostic tests is:
 
stride --database TestApp.sidb --device TCP:localhost:8000 --diagnostics
 
==== Console Output ====
Information is written to the console while the test progresses (note that the link tests can take ~30 seconds), and a results summary is written at the conclusion of the test.
 
<pre>
Loading database...
Connecting to device...
Diagnosing target application...
  runtime version: 4.1.01
  link
  payload fragmentation
  runtime configuration
  stub-proxy deadlock
  target characteristics
Summary: 64 passed, 0 failed, 0 in progress, 0 not in use.
Disconnecting from device...
Saving result file...
</pre>
 
==== Detailed Output ====
Detailed results output are also created and written to the local disk.


By default, tests are run in the order in which their corresponding SCL pragmas were seen by the [[s2scompile|STRIDE compiler]] (This can be overridden; see below.)
Since we did not specify an output file to stride above, the xml output is written by default to the directory containing the designated STRIDE database. The name of the file is taken from the database file name with the .sidb replaced by .xml.


=== Examples ===
Additionally, a companion .xsl file is downloaded and written alongside the xml file if you are connected to the Internet. If you open the xml file in a browser, the xsl stylesheet will be automatically applied to render html to the browser.
Commonly useful flags for [[TestUnitRun.pl]] include -v and -u. (See the link for complete information). For example:


==== Desktop Interactive Testing ====
=== Desktop Interactive Testing ===
Useful for 'pre-flight' desktop testing as well as target debugging, the following command line runs the target tests without publishing results to [[STRIDE Test Space]].
Useful for 'pre-flight' desktop testing as well as target debugging, the following command line runs the target tests without publishing results to [[STRIDE Test Space]].


  stride -r --database "/my/path/stride.sidb" --device TCP:localhost:8000
  stride -r --database "/my/path/stride.sidb" --device TCP:localhost:8000


==== Testing with Publication to Test Space ====
=== Testing with Publication to Test Space ===
This example will run the target tests and then publish the results to [[STRIDE Test Space]] according to the configuration specified in your [[Test Spaces Configuration File]].
This example will run the target tests and then publish the results to [[STRIDE Test Space]] according to the configuration specified in your [[Test Spaces Configuration File]].



Revision as of 22:52, 28 May 2009

Target-based Test Units are controlled by a host computer, physically connected to the target via a configurable communication channel (TCP/IP or serial port). This article describes some common usage patterns and presents several examples.

Prerequisites

In order to run target-based Test Units, the following prerequisites are required.

Host

Target

  • Target transport configured
    • TCP/IP over port 8000 is the default target transport. To apply other configurations, see Host Transport
  • Target built with STRIDE library built in and one or more test cases
  • Target app running [1]

Preparing to Run Your Tests

Tests are executed on the target by running the program stride on the host computer. See the linked article for reference information.

In all cases,

  • The stride executable must be able to read the STRIDE database (.sidb) file that corresponds to the target build

By default, tests are run in the order in which their corresponding SCL pragmas were seen by the STRIDE compiler (This can be overridden; see below.)

Examples

Running Diagnostics

S2 Technologies supplies a set of diagnostic tests that can be used to verify correct operation.

By building in the files srdiag.h and srdiag.c (located in the SDK/Runtime directory of each SDK), these tests become available.

Assuming that:

  • your STRIDE database is named TestApp.sidb and resides in the current directory, and
  • the corresponding target application is running on the host computer

the command line to run diagnostic tests is:

stride --database TestApp.sidb --device TCP:localhost:8000 --diagnostics

Console Output

Information is written to the console while the test progresses (note that the link tests can take ~30 seconds), and a results summary is written at the conclusion of the test.

Loading database...
Connecting to device...
Diagnosing target application...
  runtime version: 4.1.01
  link
  payload fragmentation
  runtime configuration
  stub-proxy deadlock
  target characteristics
Summary: 64 passed, 0 failed, 0 in progress, 0 not in use.
Disconnecting from device...
Saving result file...

Detailed Output

Detailed results output are also created and written to the local disk.

Since we did not specify an output file to stride above, the xml output is written by default to the directory containing the designated STRIDE database. The name of the file is taken from the database file name with the .sidb replaced by .xml.

Additionally, a companion .xsl file is downloaded and written alongside the xml file if you are connected to the Internet. If you open the xml file in a browser, the xsl stylesheet will be automatically applied to render html to the browser.

Desktop Interactive Testing

Useful for 'pre-flight' desktop testing as well as target debugging, the following command line runs the target tests without publishing results to STRIDE Test Space.

stride -r --database "/my/path/stride.sidb" --device TCP:localhost:8000

Testing with Publication to Test Space

This example will run the target tests and then publish the results to STRIDE Test Space according to the configuration specified in your Test Spaces Configuration File.

TestUnitRun.pl -d stride.db -u -n="My Test Run"


Specifying Tests to Run

By default all tests are run in the order in which their corresponding SCL pragmas were seen by the STRIDE compiler. This is typically what you want, but you may also specify which test suites to run and in what order they are to be run.[2]

  • Specify test(s) to run and their order on the TestUnitRun.pl command line (using -r)
  • Specify test(s) to run and their order by means of an Order File

Notes

  1. If target is multi-process, both the target and the STRIDE I/O daemon process must be started.
  2. A test suite here is the grouping of tests by SCL pragma; this corresponds to either:
    • a test class
      • #pragma scl_test_class()
    • a set of free functions, or
      • #pragma scl_test_flist()
    • a C-based class)
      • #pragma scl_test_cclass()