Main Content

conditioninfo

Retrieve condition coverage information fromcvdataobject

Description

covInfo= conditioninfo(cvdo,modelObject)returns the condition coverage results from thecvdataobjectcvdofor the model component specified bymodelObject.

covInfo= conditioninfo(cvdo,modelObject,simMode)returns the condition coverage results from thecvdataobjectcvdofor the simulation modesimMode.

covInfo= conditioninfo(cvdo,modelObject,ignoreDescendants)returns the condition coverage results formodelObject, including or ignoring descendant objects based on the value ofignoreDescendants.

[covInfo,description] = conditioninfo(cvdo,modelObject)returns the condition coverage results and textual descriptions for each condition inmodelObject.

Examples

collapse all

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 aSimulink.SimulationInputobject.

simIn = Simulink.SimulationInput(modelName); simIn = simIn.setModelParameter('CovEnable','on'); simIn = simIn.setModelParameter('CovMetricStructuralLevel','MCDC'); simIn = simIn.setModelParameter('CovSaveSingleToWorkspaceVar','on'); simIn = simIn.setModelParameter('CovSaveName','covData');

模拟模型by passingsimInas the input tosim.

simOut = sim(simIn); covData = simOut.covData;

View the condition coverage results for the Logic block in the Gain subsystem by callingconditioninfowith the block path.

condCov = conditioninfo(covData,[modelName,'/Gain/Logic'])
condCov = 2 4

conditioninforeturns 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

Input Arguments

collapse all

Coverage data, specified as acvdataobject.

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

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 from a singly instantiated Stateflow chart

{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 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

To specify an S-Function block or its contents, use one of these formats:

Object Specification Description

{BlockPath, fName}

Cell array with the path to anS-Functionblock and the name of a source file

{BlockHandle, fName}

Cell array with anS-Functionblock handle and the name of a source file

{BlockPath, fName, funName}

Cell array with the path to anS-Functionblock, the name of a source file, and a function name

{BlockHandle、帧,funName}

Cell array with anS-Functionblock 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

{fileName, funName}

Cell array with the name of a source file and a function name

{Model, fileName}

Cell array with a model name or model handle and the name of a source file

{Model, fileName, funName}

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

"Normal"

Model in normal simulation mode.

"SIL" or "PIL"

Model in software-in-the-loop (SIL) or processor-in-the-loop (PIL) simulation mode.

"ModelRefSIL" or "ModelRefPIL"

Model reference in SIL or PIL simulation mode.

"ModelRefTopSIL" or "ModelRefTopPIL"

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 logical1 (true)or0 (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

collapse all

Coverage information, returned as a two-element array of the form[covered_outcomes,total_outcomes]ifcvdocontains condition coverage data, or an empty array if it does not.

covered_outcomes Number of condition outcomes satisfied formodelObject
total_outcomes Total number of condition outcomes formodelObject

Data Types:double

Condition coverage description, returned as a structure with the following fields:

Block exclusion flag, returned as1if the block is excluded and0if 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 as1if the block is justified or0if it is not.

Data Types:double

Information for individual condition outcomes, returned as a structure with the following fields:

Condition exclusion flag, returned as1if the condition is excluded or0if it is not.

Data Types:double

Condition justification flag, returned as1if the condition is justified or0if 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 istrue, returned as a scalar.

Data Types:double

Number of time steps the condition isfalse, returned as a scalar.

Data Types:double

Coverage filter information for thetruecondition outcome, returned as a structure array with the following fields:

isFiltered Filter flag for the condition outcome, returned as1if the outcome is filtered or0if it is not.
isJustified Justification flag for the condition outcome, returned as1if the outcome is justified or0if it is not.
filterRationale The filter rationale, returned as a character array.

Data Types:struct

Coverage filter information for thefalsecondition outcome, returned as a structure array with the following fields:

isFiltered Filter flag for the condition outcome, returned as1if the outcome is filtered or0if it is not.
isJustified Justification flag for the condition outcome, returned as1if the outcome is justified or0if it is not.
filterRationale The filter rationale, returned as a character array.

Data Types:struct

聚合informa覆盖测试用例的可追溯性tion, returned as a structure array. If your coverage data does not contain aggregated results from multiple simulations,trueExecutedInis an empty array. If your coverage data contains aggregated results,trueExecutedInindicates which test runs executed thetruecondition outcome and has the following fields:

uniqueId Unique identifier for thecvdataobject 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 thecvdataobject, 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:

'RE'for the Coverage Results Explorer

'ST'for the Test Manager inSimulink Test™

Data Types:struct

聚合informa覆盖测试用例的可追溯性tion, returned as a structure array. If your coverage data does not contain aggregated results from multiple simulations,falseExecutedInis an empty array. If your coverage data contains aggregated results,falseExecutedInindicates which test runs executed thefalsecondition outcome and has the following fields:

uniqueId Unique identifier for thecvdataobject 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 thecvdataobject, 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:

'RE'for the Coverage Results Explorer

'ST'for the Test Manager inSimulink Test

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:

  1. Open the model for which you want to collect condition coverage.

  2. In the Simulink Editor, in theModelingtab, selectModel Settings.

  3. On theCoveragepane of the Configuration Parameters dialog box, selectEnable coverage analysis.

  4. Under覆盖率度量, selectCondition Decisionas the structural coverage level.

  5. ClickOKto close the Configuration Parameters dialog box and save your changes.

  6. 模拟模型by clickingRun. Review the results.

版本历史

Introduced in R2006b