We are pleased to announce the availability of Reactis® V2023.

Run-Time Error Assertions

V2023 offers a new feature to automatically generate and track run-time error assertions (RTE assertions). A Simulink® model can produce various kinds of error when the model executes, such as integer overflow or divide-by-zero. For many Simulink blocks Reactis now generates RTE assertions that check for the absence of error conditions. If an RTE assertion ever evaluates to false, then an error condition has occurred and Reactis records the failure.

Blocks that have an associated RTE assertion are shown with a circled check mark at the upper right corner of the block:

blocks with check mark to indicate they have RTE assertions

If an RTE assertion is violated (evaluates to false), then it is shown with a red foreground and yellow background:

red/yellow highlighting of violated RTE assertions

If Reactis determines by static analysis that an RTE assertion is impossible to violate, then the corresponding circled check mark is shown in green:

green highlighting if impossible to violate RTE assertions

The following categories of run-time error are currently detected:

  • Integer Overflow: The result of an integer arithmetic operation is not in the range of the integer type for the result.
  • Integer Division by Zero: The divisor of an integer division operation is zero.
  • Inf/NaN: The result of a floating-point operation is ±Inf or NaN.
  • Indexing: The index used to access an array element is out of range.

RTE assertions are generated for the following block types: Add, Abs, Data Type Conversion, Divide, Gain, Multi-Port Switch, Product, Product of Elements, Subtract, Sum, Sum of Elements, Unary Minus. Support for additional blocks and assertion categories will be introduced in future Reactis releases.

Reporting of test results, both within the Reactis GUI and in exported HTML reports, now includes summary statistics for RTE assertions (the number of assertions in each category that are violated, not violated, or impossible to violate) as well as the test and step in which any violations occur.

When Reactis Tester generates tests, it uses guided simulation, which analyzes model structure and the results of previous execution steps to pick inputs that cause RTE assertions to be violated. If an assertion is violated, the test leading to the violation is saved in the generated test suite, making it easier to reproduce all error conditions.

Newly Supported Simulink Features

  • MATLAB® R2023a.
  • In Sqrt blocks, fixed-point data types.
  • In Interpolation Using Prelookup blocks, the Number of sub-table selection dimensions setting.
  • In models using the variable-step discrete solver, the MaxStep solver setting.
  • In Lookup Table (n-D) and Interpolation Using Prelookup blocks, Reactis does not support the Speed option for the Internal rule priority setting; however, Reactis V2023 adds a setting that allows simulation and test generation to continue if Speed is selected by automatically substituting Precision instead.
  • In Embedded MATLAB, the functions realmax and realmin.

Other Improvements

The When detecting subnormal floating-point values setting in Reactis now includes a flush-to-zero option, which automatically replaces all subnormal values computed by the model with zero.

Reactis is a registered trademark of Reactive Systems, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc.

Best Regards,
The Reactis Team

Back to Communicator Archive