Main Content

overflowsaturationinfo

Retrieve saturation on integer overflow coverage fromcvdataobject

Description

example

coverage= overflowsaturationinfo(covdata,object)returns saturation on integer overflow coverage results from thecvdataobjectcovdatafor the model object specified byobjectand its descendants.

coverage= overflowsaturationinfo(covdata,object,ignore_descendants)returns saturation on integer overflow coverage results from thecvdataobjectcovdatafor the model object specified byobjectand, depending on the value ofignore_descendants, descendant objects.

example

[coverage,description] = overflowsaturationinfo(covdata,object)returns saturation on integer overflow coverage results from thecvdataobjectcovdatafor the model object specified byobject, and textual descriptions of each coverage outcome.

Examples

collapse all

This example shows how to useoverflowsaturationinfo提取饱和强度ger overflow data for aMinMaxblock from acvdataobject.

Generate coverage data

Open the model and set coverage settings.

load_system('slcoverage_fuelsys');

Create aSimulink.SimulationInputobject to change configuration parameters without modifying the model.

covSet = Simulink.SimulationInput('slcoverage_fuelsys');

Turn on coverage analysis and configure Simulink® to save the coverage data in a separatecvdataobject in the workspace.

covSet = covSet.setModelParameter('CovEnable','on'); covSet = covSet.setModelParameter('CovSaveSingleToWorkspaceVar','on'); covSet = covSet.setModelParameter('CovSaveName','covData'); covSet = covSet.setModelParameter('CovScope','EntireSystem');

Enable collection of saturation on integer overflow Coverage and simulate the model by callingsimwith theSimulationInputobject as the input.

covSet = covSet.setModelParameter('CovMetricSaturateOnIntegerOverflow','on'); simOut = sim(covSet);

Extract saturation on integer overflow results

Get the block handle to the MinMax block usingget_paramand then get the saturation on integer overflow results.

blockHandle = get_param(['slcoverage_fuelsys/',...'Engine Gas Dynamics/Mixing & Combustion/MinMax'],'Handle'); saturationResults = overflowsaturationinfo(covData,blockHandle) percentSaturationCoverage = 100 * saturationResults(1)/saturationResults(2)
saturationResults = 1 2 percentSaturationCoverage = 50

One out of two saturation on integer overflow decision outcomes were satisfied for theMinMaxblock in theMixing & Combustionsubsystem, so it received 50% saturation on integer overflow coverage.

This example shows how to useoverflowsaturationinfoto determine whether or not integer overflow occurs for a block in a model.

Generate coverage data

Load theslvnvdemo_saturation_on_overflow_coverageexample model.

load_system('slvnvdemo_saturation_on_overflow_coverage');

Set coverage setting using aSimulink.SimulationInputobject. Turn coverage on and configure Simulink® to output acvdataobject into the workspace.

covSet = Simulink.SimulationInput('slvnvdemo_saturation_on_overflow_coverage'); covSet = covSet.setModelParameter('CovEnable','on'); covSet = covSet.setModelParameter('CovSaveSingleToWorkspaceVar','on'); covSet = covSet.setModelParameter('CovSaveName','covData'); covSet = covSet.setModelParameter('CovScope','EntireSystem');

Extract saturation on integer overflow results

Retrieve saturation on integer overflow coverage results and description for theSumblock in theControllersubsystem of theTest Unitsubsystem.

covSet = covSet.setModelParameter('CovMetricSaturateOnIntegerOverflow','on'); simOut = sim(covSet); [covResults, covDesc] = overflowsaturationinfo(covData,...['slvnvdemo_saturation_on_overflow_coverage/Test Unit /'...'Controller/Sum']) percentSaturation = 100 * covResults(1)/covResults(2)
covResults = 1 2 covDesc = struct with fields: isFiltered: 0 isJustified: 0 justifiedCoverage: 0 filterRationale: '' decision: [1x1 struct] percentSaturation = 50

One out of two saturation on integer overflow decision outcomes were satisfied for the Sum block, so it received 50% saturation on integer overflow coverage.

Review the number of times theSumblock evaluated to each saturation on integer overflow outcome during simulation.

outcome1 = covDesc.decision.outcome(1) outcome2 = covDesc.decision.outcome(2)
outcome1 = struct with fields: execCount: 3 executionCount: 3 text: 'false' isFiltered: 0 isJustified: 0 filterRationale: '' executedIn: [] outcome2 = struct with fields: execCount: 0 executionCount: 0 text: 'true' isFiltered: 0 isJustified: 0 filterRationale: '' executedIn: []

During simulation, integer overflow didnotoccur in theSumblock because the'true'outcome has an execution count of0.

If integer overflow is not possible for a block in your model, consider clearing theSaturate on integer overflowblock parameter to optimize efficiency of your generated code.

Input Arguments

collapse all

Coverage results data, specified as acvdataobject.

Model or model component, specified as a full path, handle, or array of paths or handles.

Object Specification Description

BlockPath

Full path to a model or block

BlockHandle

Handle to a model or block

slObj

Handle to a Simulink®API object

sfID

Stateflow®ID

sfObj

Handle to a Stateflow API object

{BlockPath, sfID}

Cell array with the path to a Stateflow chart or atomic subchart and the ID of an object contained in that chart or subchart

{BlockPath, sfObj}

Cell array with the path to a Stateflow chart or atomic subchart and a Stateflow object API handle contained in that chart or subchart

{BlockHandle, sfID}

Cell array with a handle to a Stateflow chart or atomic subchart and the ID of an object contained in that chart or subchart

Example:'slvnvdemo_saturation_on_overflow_coverage'

Example:get_param('slvnvdemo_cv_small_controller/Saturation', 'Handle')

Preference to ignore coverage of descendant objects, specified as a logical value.

1— Ignore coverage of descendant objects
0— Collect coverage for descendant objects

Data Types:logical

Output Arguments

collapse all

Saturation on overflow coverage results, stored in a two-element vector of the form[covered_outcomes total_outcomes]. The two elements are:

covered_outcomes Number of saturation on integer overflow outcomes satisfied forobject
total_outcomes Total number of saturation on integer overflow outcomes forobject

Data Types:double

Textual description of coverage outcomes for the model component specified byobject, returned as a structure array. Depending on the types of model coverage collected, the structure array can have different fields. If only saturation on overflow coverage is collected, the structure array contains the following fields:

isFiltered

0if the model component specified byobjectis not excluded from coverage recording.1if the model component specified byobjectis excluded from coverage recording. For more information about excluding objects from coverage, seeCoverage Filtering.

decision.text 'Saturate on integer overflow'
decision.outcome

Structure array containing two fields for each coverage outcome:

executionCount Number of times saturation on integer overflow forobjectevaluated to the outcome described bytext.
text 'true'or'false'

Saturation on integer overflow has two possible outcomes,'true'and'false'.

decision.isFiltered

0if the model component specified byobjectis not excluded from coverage recording.1if the model component specified byobjectis excluded from coverage recording. For more information about excluding objects from coverage, seeCoverage Filtering.

decision.filterRationale

Rationale for filtering the model component specified byobject, ifobjectis excluded from coverage and a rationale is specified. For more information about excluding objects from coverage, seeCoverage Filtering.

Data Types:struct

Version History

Introduced in R2013a