Main Content

sldv.test

Test objective function for Stateflow charts and MATLAB Function blocks

Description

example

sldv.test(expr) specifies that expr is true when generating tests. Use any valid Boolean expression for expr.

This function has no output and no impact on its parenting function, other than any indirect side effects of evaluating expr. If you issue this function from the MATLAB® command line, the function has no effect.

Intersperse sldv.test test objectives within code or separate the objectives into a verification script.

The Test objectives option in the Test generation pane applies to test objectives represented by the sldv.test function and by the Test Objective block.

Examples

collapse all

Add a test objective and test conditions by using the MATLAB Function block.

Open the sldvdemo_cruise_control model and save it as ex_sldvdemo_cruise_control.

Remove the Test Condition block from the speed signal. Instead of the Test Condition block, this example uses sldv.test and sldv.condition.

From the User-Defined Functions library, add a MATLAB Function block.

  • Name the block tests.

  • Open the block and add this code:

    function define_tests(speed, target)
    %#codegen
    
    sldv.condition(speed >= 0 && speed <= 100);
    sldv.test(speed > 60 && target > 40 && target < 50);
    sldv.test(speed < 20 && target > 50);
  • In the Editor tab, click Save and close the editor.

  • Connect the block to the signals for the speed block and for the target block.

Save the changes to the ex_sldvdemo_cruise_control model.

To generate test cases, on the Design Verifier tab, click Generate Tests.

Input Arguments

collapse all

MATLAB expression, for example, x > 0.

Alternatives

Instead of using the sldv.test function, you can insert a Test Objective block in your model. Using sldv.test instead of a Test Objective block offers several benefits, described in What Is Test Case Generation?.

Introduced in R2009b