April 10, 2014

Dear Reactis User:

We are pleased to announce the availability of Reactis for C V2014.

Reactis for C V2014

V2014 includes the following new features and enhancements.

Build Files and Harnesses

  • C structures can now be used in test harnesses. Each individual field of a structure can be selected to serve as a harness input or output. Structure fields are accessed using standard C syntax and automatically appear in the lists of harness input/output candidates in the Reactis Harness Editor.
  • It is now possible to create a new harness by importing the input/output information stored in an .rsi file created by Reactis for Simulink.
  • A new stub generator produces a source file that contains definitions of missing functions and variables.
  • The Reactis Build File Editor now allows the use of libraries which have been pre-compiled by Reactis, for cases where testing of the library source code is not desired. This allows for faster load times and does not require the source code to be available after the the library has been compiled by Reactis.
  • Build button. The Reactis Build File Editor now includes a Build button, which lets you build a library or executable without leaving the editor.

Simulator

  • Reverse stepping a statement at a time through source code is now supported. This feature is particularly useful when execution is interrupted by an error, as it allows you to inspect values as you move backward through a program to the root cause of an error.
  • HTML report documenting simulation run. A new menu item Simulate -> Fast Run With Report will run the currently loaded test suite and generate an HTML report detailing any errors encountered during simulation as well as differences seen between the output values stored in the test suite and those computed by the executing C code. The report also includes function call counts and the maximum recursive depth reached by each function.
  • Back up directly from within a mini-step. The "back" button is now available while in a mini-step. Clicking it returns the simulation to the beginning of the currently executing step.
  • Simulation run can now be paused within a step. Previously, clicking the "pause" button during a regular (not fast) simulation run would finish the current simulation step before pausing. This could take a significant amount of time when simulating large programs. Reactis for C V2014 pauses immediately at the current mini-step
  • When exporting a test suite to CSV format or importing from CSV format, there are several new options for configuring the format of the exported or imported data. These include:
    • Each element of an array can be placed in its own column.
    • Each element of a structure can be placed in its own column.
    • The number of significant digits in exported floating point values can be specified.
  • Allow control over significant number of digits displayed in watched variables window. Right-clicking on a variable in the watched variables window now includes an option to set the number of significant digits displayed for that variable.
  • On-the-fly stubbing of undefined functions. Reactis for C can be configured to automatically treat any undefined function as having no side-effects and returning a value of zero, which allows code to be tested without the hassle of creating stub functions. This feature can be enabled from the C Code tab of the Global Settings dialog.

Test Suite Browser

  • Hide inports and outports when browsing a test suite. Right-clicking on a row now shows a menu item to hide the row. It is also possible to select and hide multiple rows. Rows can be un-hidden using an entry in the new Filter menu.
  • Filter the steps (columns) shown in the browser using a Boolean expression referring to data items within the test suite. For example, to see each step where the cruise control is active enter a filter expression "active == 1". A filter can be defined either by selecting Filter -> Edit Column Filter... or by directly entering an expression in the filter expression box at the right side of the Test Suite Browser toolbar.

Coverage Metrics

  • Track MCC coverage. Reactis for C now supports tracking Multiple Condition Coverage (MCC) for decisions. MCC tracks whether all combinations of condition outcomes for a decision have been tested.
  • Optional expanded decision targets. Reactis for C can now be configured to create decision targets for Boolean expressions which appear throughout a program, such as the first argument of the ternary operator (e1? e2: e3) or on the right-hand side of an assignment x = y || z;. Each additional decision target also causes more condition, MC/DC, and MCC targets to be created, resulting in a set of more comprehensive metrics for the code under test. What constitutes a decision is configured from the C Code tab of the Global Settings dialog.

C99 Features

  • C99 Compound literals. Prior to the C99 revision of the ANSI C standard, first-class literals (e.g., a literal which can appear in a function call, such as f(2)) were largely restricted to scalar types, such as int or float. A compound literal is a literal expression whose type is a structure, union, or array. The syntax for a compound literal is a type enclosed in parentheses, followed by a brace-enclose list of initializers, such as (double[3]){2.7,-0.1,11.1} or (struct Pair){1,5}.
  • C99 inline functions. The handling of inline functions has been brought into compliance with C99.
  • _Pragma operator. Support has been added for the C99 _Pragma operator.
  • _Bool type. Support for the _Bool type is improved. variables of type Bool now appear as Boolean harness elements.

Other Improvements

  • Export coverage reports via API. The Reactis for C API now includes new functions to create coverage reports after creating a new test suite (rsTesterWithReport) and running existing test suites (rsSimRunSuiteWithReport).
  • Each individual compile error can now be selected in Error dialog and highlighted in the source code.
  • Windows UNC (Universal Naming Convention) paths are now supported.
  • When you hover on a #include directive, the location of the included header file is displayed.
  • You can now specify a maximum time interval after which execution is interrupted if no outputs have been produced. This makes it easier to determine the cause of infinite or excessively long loops.
  • Capability for administrator to disconnect user from license manager in order to free license.

You may download the patches or full installers from the Reactis User Pages.

Best Regards,
The Reactis Team

Back to Patches Archive