STRIDE 3.0.02xx

From STRIDE Wiki
Jump to navigation Jump to search

Release Notes

This page documents the changes in STRIDE version 3.0.02xx (code name Beacon's).

Please review this information before upgrading from an earlier version.


Note that if you are upgrading from a previous installation you must uninstall your existing STRIDE before installing version 3.0.02xx.


What's New

Based on customer feedback, in this release we have many key usability improvements and bug fixes.

Usability Improvements

Test Double

Now in the context of a Test Unit a dependent function call can intercepted and replaced with a user defined Function Double. A set of new Test Double Samples for Test Units has been added.

Test Points

To support asynchronous tasks testing a set of new Testpoints APIs has been implemented. In the context of a Test Unit test point expectations could be set and validated. A new set of Test Point Samples for Test Units has been added.

Build Integration

A new STRIDE_ENABLED compiler switch (preprocessor directive) has been added to allow control over the compilation of STRIDE injected source (Test Macros or Name Mangling macros). The use of srIMON compiler switch (preprocessor directive) has been deprecated in favor of STRIDE_ENABLED.

Test Space

A new utility script is available to upload test results to STRIDE Test Space. (Consult your S2 Technologies representative for more information on STRIDE Test Space.) The s2Publish.pl script can be added to your STRIDE workspace script collection to upload your test results. Or, s2Publish.pl may be used from the command line.

Trace View Filtering

A new post-filter setting exists for Trace Views. The "Post Filtering" tab in the Filters dialog and the "Filter String" dialogs now both have check boxes that read "Do not filter out any matching events", which are unchecked by default. When checked, and when filters are in effect, for any remaining (ie. not filtered out) items that have corresponding return or call event items, these corresponding items will remain visible even if they would normally be filtered out.

Union Discriminant Access in Ascript

Using ascript to access an internal discriminant field of a union in a script may generate errors if the union member containing the discriminant field is inactive. A new synthesized "_Discriminant" field has been added as a member of the union object in ascript that is always active so that the discriminant value may be set or read regardless of the active member. The synthesized field exists for all unions with a discriminant, whether internal or external.

Change Details

Fixes

This section describes defects which have been corrected in STRIDE and the customer tracking number associated with them, if any, in brackets [].

  • In STRIDE Studio "Connectivity Options" dialog, "Serial Port" list is not automatically refreshed on open.
  • In STRIDE Studio automatic results upload to portal fails when server address ends with /
  • In STRIDE Studio "Link Statistics" dialog says "Not Connected" when there is a connection.
  • STRIDE Transport Server consumes 100% CPU when Serial Transport enabled.

SCL Pragmas

  • The syntax of scl_function and scl_func pragmas has been expanded with a set of new optional attributes that would allow specification of function interception.

Build Tools

Runtime

  • STRIDE Host Release 3.0.02xx is compatible with the Runtime Version 3.00, 3.01, 3.02, 3.03, and 3.04
  • Implemented a set of routines to support Function Double
  • Implemented a set of routines to support Testpoints
  • Implemented a set of logging macros
  • The signature of the PAL IO Service callback registrars (palOutPndReg(), palOutRdyReg() and palInReg()) has changed. Instread of palBOOL, now they return the previously registreted callback or palNULL if not such set.
  • The public Test Services srTestSuiteAddTest() API has been renamed to srTestSuiteAddCase()
  • In SLAP the user implemented s2slapDataReady() has been removed in favor of a new callback registrar s2slapRegDataReadyCb(). If implementing a custom PAL make sure to register your callback when initializing the IO services.
  • Most of the Runtime, GRS and SLAP files have been modified. It is recomended that you update them all.
  • The following Runtime files have been removed:
srtest.cpp
srtestmacros.h
srtestmacros.c
srtestmacros.cpp
  • The following new Runtime files have been added:
srtestpp.cpp

Host

  • The Host Runtime Daemon process (s2shost.exe) has been removed, its functionallity is now part of the Transport Server (s2stpsrv.exe).

AutoScript

  • A new synthesized "_Discriminant" field has been added as a member of the union object in AScript that is always active so that an internal discriminant value may be set or read regardless of the active member.

Migration to 3.0.02xx

Recommended steps for migration from a previous version:

Application's Code

  • Any inclusion of srtestmacro.h in the user's source should be replaced by inclusion of srtest.h:
#include <srtest.h>
  • Any reference to srIMON macro in the user's code should be replaced by reference to STRIDE_ENABLED macro:
#if STRIDE_ENABLED
... 
#endif /*STRIDE_ENABLED*/
  • Any reference to imDELEGATE macro in the user's code should be replaced by reference to imINTERCEPT macro:
int foo(int x, int y)
{
    return imINTERCEPT(depend)(x) + y;
}
  • Any captured function for the purpose of interception (formally known as delegation) should be enhanced with the new scl_function attributes:
void foo(void);
#pragma scl_function(foo, "DEFINITION", "IMPLICIT", "GROUP_ID")
  • Any use of Runtime Test Service srTestSuiteAddTest() API should be replaced with (renamed to) srTestSuiteAddCase().

Build Integration

  • Any Target compiler switch (preprocessor directive) using srIMON should be replaced with new one using STRIDE_ENABLED:
> cc -DSTRIDE_ENABLED=1 -I ...
  • Any use of STRIDE instrument tool "SPD[uoed]#<group_id>" mode option should be updated according to the new format "SPI[T]" (along with any needed changes to the associated scl_function pragma). This is necessary especially when as formally called Delegates were generated. For example:
void foo(void);
#pragma scl_function(foo)
> s2sinstrument --mode=Dued#mygroup(foo) ...

Should be changed to:

void foo(void);
#pragma scl_function(foo, "REFERENCE", "EXPLICIT", "mygroup")
> s2sinstrument --mode=PIT(foo) ...

Minor and Patch releases

3.0.0201a

Defects corrected in STRIDE and the customer tracking number associated with them, if any, in brackets []:

  • STRIDE Runtime install test causes linkage errors.
  • Setting a function double may cause a crash.
  • STRIDE Runtime file srtest.h may generate errors when compiled with old C++ compilers.

The following Runtime source files have been modified:

srapi.c
srinstall.h
srinstall.c
srtest.h

The following Linux SDK files have been modified:

Makefile

The following WinMobile SDK files have been modified:

stride.mak

3.0.0201b

Defects corrected in STRIDE and the customer tracking number associated with them, if any, in brackets []:

  • Intermittent palWait()/palNotify() failures when using Linux SDK in multi-process mode.
  • WinMobile SDK fails to build.
  • Fixed misalignment of conditional blocks involving pointers containing discriminated unions, during pointer setup in IM generation.
  • Added new "_Discriminant" member to union objects in AScript that is always active. This allows access to internal discriminants regardless of which member is currently active.
  • Enhancement to Trace View post filtering - to include matching call/return events.

The following Linux SDK files have been modified:

palcfg.h
palIO.c
palOS.c

The following WinMobile SDK files have been modified:

stride.mak
palIO.c
stride.c