conditioninfo
Retrieve condition coverage information from cvdata
object
Syntax
Description
returns the condition coverage results from the covInfo
= conditioninfo(cvdo
,modelObject
)cvdata
object
cvdo
for the model component specified by
modelObject
.
returns the condition coverage results from the covInfo
= conditioninfo(cvdo
,modelObject
,simMode
)cvdata
object
cvdo
for the simulation mode
simMode
.
returns the condition coverage results for covInfo
= conditioninfo(cvdo
,modelObject
,ignoreDescendants
)modelObject
,
including or ignoring descendant objects based on the value of
ignoreDescendants
.
[
returns the condition coverage results and textual descriptions for each condition
in covInfo
,description
]
= conditioninfo(cvdo
,modelObject
)modelObject
.
Examples
This example shows how to view condition coverage for a block in your model.
Load the model.
modelName = 'slvnvdemo_cv_small_controller';
load_system(modelName);
Configure the coverage settings for the model by using a Simulink.SimulationInput
object.
simIn = Simulink.SimulationInput(modelName); simIn = simIn.setModelParameter('CovEnable','on'); simIn = simIn.setModelParameter('CovMetricStructuralLevel','MCDC'); simIn = simIn.setModelParameter('CovSaveSingleToWorkspaceVar','on'); simIn = simIn.setModelParameter('CovSaveName','covData');
Simulate the model by passing simIn
as the input to sim
.
simOut = sim(simIn); covData = simOut.covData;
View the condition coverage results for the Logic block in the Gain subsystem by calling conditioninfo
with the block path.
condCov = conditioninfo(covData,[modelName,'/Gain/Logic'])
condCov = 2 4
conditioninfo
returns an array with two scalars. The first value is the number of satisfied condition outcomes, and the second value is the number of total condition outcomes. Use these to determine the percentage of satisfied condition outcomes for the Logic block.
percentCondCov = 100 * condCov(1) / condCov(2)
percentCondCov = 50
Open the example and load the model.
openExample("slcoverage/RetrieveCodeCoverageResultsExample");
Use the
setupSILCoverage
function to configure the model for code coverage analysis. The output is aSimulink.SimulationInput
object.simIn = setupSILCoverage("slvnvdemo_counter_harness");
Simulate the model.
simOut = sim(simIn);
To retrieve coverage results for the generated code that represents a specific block, use the block path. For example, retrieve the condition coverage results for the Relational Operator block named
upper GE input
by passing the block path relative to the top model.covDataSIL = simOut.covdata; condBlockSIL = conditioninfo(covDataSIL,... "slvnvdemo_counter/upper GE input")
condBlockSIL = 2 2
To retrieve coverage results for a function in the generated code, use a cell array that contains the generated source file name and function name. For example, retrieve the condition coverage results for the function
slvnvdemo_counter
located in the source fileslvnvdemo_counter.c
.condSILFunction = conditioninfo(covDataSIL,{"slvnvdemo_counter.c",... "slvnvdemo_counter"})
condSILFunction = 6 6
Open the example and load data into the workspace.
openExample("slcoverage/RetrieveSFunCoverageResultsExample"); load slcoverage_lct_data.mat
Use the
setupSFcnCoverage
function to configure the model for coverage analysis. The output is aSimulink.SimulationInput
object.simIn = setupSFcnCoverage("slcoverage_lct_bus");
Simulate the model.
simOut = sim(simIn);
To retrieve coverage results for an S-function, use the
conditioninfo
function and specify a cell array that contains the handle or full path of the block, followed by the file name of the S-function source file. Optionally, you can also specify a specific function inside that source file. For this example, retrieve the condition coverage results for the function namedcounterbusFcn
in the S-function filecounterbus.c
, which the S-Function blockslcoverage_sfun_counterbus
calls. The S-Function block is inside theTestCounter
subsystem in the modelslcoverage_lct_bus
.covDataSFcn = simOut.covdata; condSFun = conditioninfo(covDataSFcn,... {"slcoverage_lct_bus/TestCounter/slcoverage_sfun_counterbus",... "counterbus.c","counterbusFcn"})
condSFun = 4 6
Input Arguments
Coverage data, specified as a cvdata
object.
Data Types: cvdata
Model object, specified as a character array, string array, Simulink handle, Stateflow ID, or cell array.
To specify a model object, such as a block or a Stateflow chart, use one of these formats:
Object Specification | Description |
---|---|
| Full path to a model or block |
| Handle to a model or block |
| Handle to a Simulink API object |
| Stateflow ID |
| Handle to a Stateflow API object from a singly instantiated Stateflow chart |
| Cell array with the path to a Stateflow chart or atomic subchart and the ID of an object contained in that chart or subchart |
| Cell array with the path to a Stateflow chart or subchart and a Stateflow object API handle contained in that chart or subchart |
| Cell array with a handle to a Stateflow chart or atomic subchart and the ID of an object contained in that chart or subchart |
To specify an S-Function block or its contents, use one of these formats:
Object Specification | Description |
---|---|
| Cell array with the path to an S-Function block and the name of a source file |
| Cell array with an S-Function block handle and the name of a source file |
| Cell array with the path to an S-Function block, the name of a source file, and a function name |
| Cell array with an S-Function block handle, the name of a source file, and a function name |
To specify a code coverage result, such as coverage data collected during software-in-the-loop (SIL) or processor-in-the-loop (PIL) analysis, use one of these formats:
Object Specification | Description |
---|---|
| Cell array with the name of a source file and a function name |
| Cell array with a model name or model handle and the name of a source file |
| Cell array with a model name or model handle, the name of a source file, and a function name |
Data Types: char
| string
| cell
| Stateflow.State
| Stateflow.Transition
Simulation mode during coverage analysis, specified as one of these options:
Object Specification | Description |
---|---|
| Model in normal simulation mode. |
| Model in software-in-the-loop (SIL) or processor-in-the-loop (PIL) simulation mode. |
| Model reference in SIL or PIL simulation mode. |
| Model reference in SIL or PIL simulation mode with the code interface set to top model. |
Data Types: char
| string
Whether to ignore descendants in coverage results, specified as a numeric or logical
1 (true)
or 0 (false)
, where:
0 (false)
includes coverage results of descendant objects.1 (true)
ignores coverage results of descendant objects.
Data Types: single
| double
| logical
Output Arguments
Coverage information, returned as a two-element array of the form
[covered_outcomes,total_outcomes]
if
cvdo
contains condition coverage data, or an empty
array if it does not.
covered_outcomes | Number of condition outcomes satisfied for
modelObject |
total_outcomes | Total number of condition outcomes for
modelObject |
Data Types: double
Condition coverage description, returned as a structure with the following fields:
Block exclusion flag, returned as 1
if the
block is excluded and 0
if it is not.
Data Types:
Block coverage filter rationale, returned as a character array.
Data Types: char
Number of justified coverage objective outcomes, returned as a scalar double.
Data Types: double
Block justification flag, returned as 1
if
the block is justified or 0
if it is
not.
Data Types: double
Information for individual condition outcomes, returned as a structure with the following fields:
Condition exclusion flag, returned as
1
if the condition is excluded
or 0
if it is not.
Data Types: double
Condition justification flag, returned as
1
if the condition is justified
or 0
if it is not.
Data Types: double
Coverage filter rationale, returned as a character array.
Data Types: char
Description of the condition, returned as a character array.
Data Types: char
Number of time steps the condition is
true
, returned as a
scalar.
Data Types: double
Number of time steps the condition is
false
, returned as a
scalar.
Data Types: double
Coverage filter information for the
true
condition outcome,
returned as a structure array with the following fields:
isFiltered | Filter flag for the condition outcome,
returned as 1 if the outcome is
filtered or 0 if it is
not. |
isJustified | Justification flag for the condition
outcome, returned as 1 if the
outcome is justified or 0 if it
is not. |
filterRationale | The filter rationale, returned as a character array. |
Data Types: struct
Coverage filter information for the
false
condition outcome,
returned as a structure array with the following fields:
isFiltered | Filter flag for the condition outcome,
returned as 1 if the outcome is
filtered or 0 if it is
not. |
isJustified | Justification flag for the condition
outcome, returned as 1 if the
outcome is justified or 0 if it
is not. |
filterRationale | The filter rationale, returned as a character array. |
Data Types: struct
Aggregated coverage test case traceability
information, returned as a structure array. If your
coverage data does not contain aggregated results
from multiple simulations,
trueExecutedIn
is an empty
array. If your coverage data contains aggregated
results, trueExecutedIn
indicates
which test runs executed the true
condition outcome and has the following fields:
uniqueId | Unique identifier for the
cvdata object created by the test
case that executed this condition outcome,
returned as a character array. |
analyzedModel | The name of the model analyzed, returned as a character array. |
description | The test case description, returned as a character array. |
date | The date and time of the simulation that
created the cvdata object,
returned as a character array. |
traceLabel | The short name of the test case, returned as a character array. |
testRunInfo | Test details, returned as a structure array. |
testRunInfo.runid | The identifier of the run that generated the coverage result, returned as a scalar double. |
testRunInfo.runName | The name of the test case that generated the coverage result, returned as a character array. |
testRunInfo.testId | Identifying data for the test case that generated the coverage result, returned as a structure array. |
testRunInfo.testId.uuid | The unique identifier for the test case that generated the coverage result, returned as a character array. |
testRunInfo.testId.contextType | The test context in which the coverage result was obtained, returned as one of these values:
|
Data Types: struct
Aggregated coverage test case traceability
information, returned as a structure array. If your
coverage data does not contain aggregated results
from multiple simulations,
falseExecutedIn
is an empty
array. If your coverage data contains aggregated
results, falseExecutedIn
indicates which test runs executed the
false
condition outcome and has
the following fields:
uniqueId | Unique identifier for the
cvdata object created by the test
case that executed this condition outcome,
returned as a character array. |
analyzedModel | The name of the model analyzed, returned as a character array. |
description | The test case description, returned as a character array. |
date | The date and time of the simulation that
created the cvdata object,
returned as a character array. |
traceLabel | The short name of the test case, returned as a character array. |
testRunInfo | Test details, returned as a structure array. |
testRunInfo.runid | The identifier of the run that generated the coverage result, returned as a scalar double. |
testRunInfo.runName | The name of the test case that generated the coverage result, returned as a character array. |
testRunInfo.testId | Identifying data for the test case that generated the coverage result, returned as a structure array. |
testRunInfo.testId.uuid | The unique identifier for the test case that generated the coverage result, returned as a character array. |
testRunInfo.testId.contextType | The test context in which the coverage result was obtained, returned as one of these values:
|
Data Types: struct
Data Types: struct
Data Types: struct
Alternatives
You can also collect condition coverage for a model in the Simulink Editor. Set the model configuration parameters and run the model:
Open the model for which you want to collect condition coverage.
In the Simulink Editor, in the Modeling tab, select Model Settings.
On the Coverage pane of the Configuration Parameters dialog box, select Enable coverage analysis.
Under Coverage metrics, select
Condition Decision
as the structural coverage level.Click OK to close the Configuration Parameters dialog box and save your changes.
Simulate the model by clicking Run. Review the results.
Version History
Introduced in R2006b
See Also
complexityinfo
| cvsim
| decisioninfo
| getCoverageInfo
| mcdcinfo
| overflowsaturationinfo
| sigrangeinfo
| sigsizeinfo
| tableinfo
| executioninfo
| relationalboundaryinfo
Topics
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: United States.
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)