Main Content

cvdata

Access Simulink Coverage data in the MATLAB workspace

Description

cvdata objects store model coverage data.

Creation

A cvdata object is generated automatically when you simulate a model that has coverage enabled. You can access the coverage data by using coverage functions. The cvdata object becomes invalid if you close or modify its parent model.

Properties

expand all

This property is read-only.

Coverage data origin release, returned as a character array.

Data Types: char

This property is read-only.

Internal coverage data ID, returned as a scalar.

Data Types: double

This property is read-only.

Internal coverage type, returned as either TEST_DATA for a single coverage simulation, or DERIVED_DATA for aggregated or cumulative coverage data.

Data Types: char

This property is read-only.

Test data, returned as a cvtest object. This property describes the coverage configuration.

Data Types: cvtest

This property is read-only.

Internal root ID, returned as a scalar.

Data Types: double

This property is read-only.

Coverage data checksum, returned as a structure array. Some changes to the model cause the checksum to change, for example, editing the model structure like removing or adding blocks, or changing some configuration parameters. To aggregate coverage results, the cvdata.checksum properties must match.

Data Types: struct

This property is read-only.

Model information, returned as a structure array. This property contains metadata about the model analyzed for coverage.

cvdata.modelinfo has the following fields:

Field

Description

Values

modelVersion

Version of the model analyzed for coverage.

character array containing version number

creator

Original creator of the model.

System name or organization name

lastModifiedDate

Date and time the model was last modified.

character array containing date and time

defaultParameterBehavior

Indicates the default parameter behavior setting.

'Tunable' | 'Inlined'

blockReductionStatus

Indicates whether Block Reduction is enabled.

See Block Reduction for more information.

'off' | 'on'

conditionallyExecuteInputs

Conditional input execution switch. A value of 1 is 'on', and a value of 0 is 'off'.

1 | 0

mdcdMode

Definition used for modified condition decision coverage (MCDC) analysis. A value of 1 indicates the model used the masking definition of MCDC and a value of 0 indicates the model used the unique-cause definition of MCDC.

For more information, see Modified Condition and Decision Coverage (MCDC) Definitions in Simulink Coverage.

1 | 0

analyzedModel

Name of the analyzed model or model object. If analysis is scoped to a subsystem, Stateflow® Chart, or other model object, this is the path to that model object.

character array

reducedBlocks

List of blocks reduced by the block reduction parameter, if it is enabled and any blocks are reduced.

character array

ownerModel

Model that is or contains the component under test. If you have a block diagram harness, this is the model that the harness tests. If you have a subsystem harness, this is the model that contains that subsystem.

character array

ownerBlock

If the model includes a subsystem harness, this is the subsystem that the harness is testing.

character array

harnessModel

Harness model name. If you have data aggregated from multiple test runs, where each run used a different harness with the same ownerModel, this field shows Not Unique.

character array

logicBlkShortcircuit

Indicates whether the short-circuiting option is enabled.

0 | 1

Data Types: struct

System time at simulation start, returned as a character array.

Data Types: char

System time at simulation stop, returned as a character array.

Data Types: char

Coverage interval start time, returned as a scalar. This value comes from the CovStartTime parameter. For more information, see Coverage interval start time.

Data Types: double

Coverage interval stop time, returned as a scalar. This value comes from the CovStopTime parameter. For more information, see Coverage interval stop time.

Data Types: double

Coverage filter file name, returned as a character array or a cell array of character arrays. This property contains the coverage filter file name. If a coverage filter is not applied, this field is empty. You can apply a coverage filter after simulation by assigning the name of a valid filter file to this property.

Data Types: char | cell

Simulation mode, returned as a character array. For more information, see Simulation mode.

Data Types: char

Whether to exclude inactive variants in coverage report, specified as 0 or 1. Set this property to 0 to report inactive variants in the coverage report, and set this property to 1 to exclude inactive variants from the coverage report.

This property affects only Simulink® variants with startup activation time and inactive variant configurations in Stateflow charts.

If you aggregate two or more cvdata objects with different values of excludeInactiveVariants, the resulting aggregated cvdata object has an excludeInactiveVariants property value of 0.

Example: covData.excludeInactiveVariants = 1;

Data Types: double

Object Functions

expand all

cvhtmlCreate HTML coverage report from model coverage objects
cvmodelviewDisplay model coverage results with model highlighting
cvresultsReturns active coverage data, clears and loads active coverage data from a file
cvsaveSave coverage settings and results to file
extractExtract subsystem coverage data from system-level coverage data
complexityinfoRetrieve cyclomatic complexity coverage information from cvdata object
conditioninfoRetrieve condition coverage information from cvdata object
decisioninfoRetrieve decision coverage information from cvdata object
executioninfoRetrieve execution coverage information from cvdata object
getCoverageInfoRetrieve coverage information for Simulink Design Verifier blocks from cvdata object
mcdcinfoRetrieve modified condition/decision coverage information from cvdata object
overflowsaturationinfoRetrieve saturation on integer overflow coverage from cvdata object
relationalboundaryinfoRetrieve relational boundary coverage from cvdata object
sigrangeinfoRetrieve signal range coverage information from cvdata object
sigsizeinfoRetrieve signal size coverage information from cvdata object
tableinfoRetrieve lookup table coverage information from cvdata object

You can use these specialized MATLAB® operators with cvdata objects.

+

Returns the union of two cvdata objects. The returned cvdata object contains the total aggregated coverage for two simulations or tests.

-

Returns the set difference between the left and right operands. The returned cvdata object contains the coverage objective outcomes that are satisfied by the left operand but not the right operand. Use - to determine how much additional coverage is attributed to a specific simulation or test.

* and .*

Returns the intersection between two cvdata objects. The returned cvdata object contains only the coverage satisfied by both operands. Use * to detect overlapping coverage between two simulations or tests.

Examples

collapse all

This example shows how to view decision coverage data 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 = setModelParameter(simIn,'CovEnable','on');
simIn = setModelParameter(simIn,'CovMetricStructuralLevel','Decision');
simIn = setModelParameter(simIn,'CovSaveSingleToWorkspaceVar','on');
simIn = setModelParameter(simIn,'CovSaveName','covData');

Simulate the model by passing simIn as the input to sim.

simOut = sim(simIn);

Extract the coverage data as a cvdata object from the SimulationOutput object, simOut.

covData = simOut.covData;

View the decision coverage results for the Saturation block by calling decisioninfo with the block path.

blockPath = [modelName,'/Saturation'];
decisionCov = decisioninfo(covData,blockPath)
decisionCov =

     3     4

decisioninfo returns an array with two scalars. The first value is the number of satisfied decision outcomes, and the second value is the number of total decision outcomes. Use these to determine the percentage of satisfied decision outcomes for the Saturation block.

percentDecisionCov = 100 * decisionCov(1) / decisionCov(2)
percentDecisionCov =

    75

Version History

Introduced before R2006a