LLVM 19.0.0git
|
MCDC Record grouping all information together. More...
#include "llvm/ProfileData/Coverage/CoverageMapping.h"
Classes | |
class | TestVector |
Emulate SmallVector<CondState> with a pair of BitVector. More... | |
Public Types | |
enum | CondState { MCDC_DontCare = -1 , MCDC_False = 0 , MCDC_True = 1 } |
CondState represents the evaluation of a condition in an executed test vector, which can be True or False. More... | |
using | TestVectors = llvm::SmallVector< std::pair< TestVector, CondState > > |
using | BoolVector = llvm::SmallVector< bool > |
using | TVRowPair = std::pair< unsigned, unsigned > |
using | TVPairMap = llvm::DenseMap< unsigned, TVRowPair > |
using | CondIDMap = llvm::DenseMap< unsigned, unsigned > |
using | LineColPairMap = llvm::DenseMap< unsigned, LineColPair > |
Public Member Functions | |
MCDCRecord (const CounterMappingRegion &Region, TestVectors &&TV, TVPairMap &&IndependencePairs, BoolVector &&Folded, CondIDMap &&PosToID, LineColPairMap &&CondLoc) | |
CounterMappingRegion | getDecisionRegion () const |
unsigned | getNumConditions () const |
unsigned | getNumTestVectors () const |
bool | isCondFolded (unsigned Condition) const |
CondState | getTVCondition (unsigned TestVectorIndex, unsigned Condition) |
Return the evaluation of a condition (indicated by Condition) in an executed test vector (indicated by TestVectorIndex), which will be True, False, or DontCare if the condition is unevaluatable. | |
CondState | getTVResult (unsigned TestVectorIndex) |
Return the Result evaluation for an executed test vector. | |
bool | isConditionIndependencePairCovered (unsigned Condition) const |
Determine whether a given condition (indicated by Condition) is covered by an Independence Pair. | |
TVRowPair | getConditionIndependencePair (unsigned Condition) |
Return the Independence Pair that covers the given condition. | |
float | getPercentCovered () const |
std::string | getConditionHeaderString (unsigned Condition) |
std::string | getTestVectorHeaderString () const |
std::string | getTestVectorString (unsigned TestVectorIndex) |
std::string | getConditionCoverageString (unsigned Condition) |
MCDC Record grouping all information together.
Definition at line 378 of file CoverageMapping.h.
Definition at line 440 of file CoverageMapping.h.
Definition at line 443 of file CoverageMapping.h.
Definition at line 444 of file CoverageMapping.h.
using llvm::coverage::MCDCRecord::TestVectors = llvm::SmallVector<std::pair<TestVector, CondState> > |
Definition at line 439 of file CoverageMapping.h.
Definition at line 442 of file CoverageMapping.h.
using llvm::coverage::MCDCRecord::TVRowPair = std::pair<unsigned, unsigned> |
Definition at line 441 of file CoverageMapping.h.
CondState represents the evaluation of a condition in an executed test vector, which can be True or False.
A DontCare is used to mask an unevaluatable condition resulting from short-circuit behavior of logical operators in languages like C/C++. When comparing the evaluation of a condition across executed test vectors, comparisons against a DontCare are effectively ignored.
Enumerator | |
---|---|
MCDC_DontCare | |
MCDC_False | |
MCDC_True |
Definition at line 385 of file CoverageMapping.h.
|
inline |
Definition at line 455 of file CoverageMapping.h.
|
inline |
Definition at line 589 of file CoverageMapping.h.
References assert(), getConditionIndependencePair(), getNumConditions(), isCondFolded(), isConditionIndependencePairCovered(), and OS.
|
inline |
Definition at line 527 of file CoverageMapping.h.
References OS.
Return the Independence Pair that covers the given condition.
Because condition IDs are not associated based on their position in the expression, accessing conditions in the TestVectors requires a translation from a ordinal position to actual condition ID. This is done via PosToID[].
Definition at line 506 of file CoverageMapping.h.
References assert(), and isConditionIndependencePairCovered().
Referenced by getConditionCoverageString().
|
inline |
Definition at line 463 of file CoverageMapping.h.
|
inline |
Definition at line 464 of file CoverageMapping.h.
References assert().
Referenced by getConditionCoverageString(), getPercentCovered(), getTestVectorHeaderString(), and getTestVectorString().
|
inline |
Definition at line 470 of file CoverageMapping.h.
References llvm::SmallVectorBase< Size_T >::size().
Referenced by getTestVectorHeaderString(), and getTestVectorString().
|
inline |
Definition at line 511 of file CoverageMapping.h.
References llvm::CallingConv::C, getNumConditions(), isCondFolded(), isConditionIndependencePairCovered(), and llvm::Total.
|
inline |
Definition at line 535 of file CoverageMapping.h.
References getNumConditions(), getNumTestVectors(), I, and OS.
|
inline |
Definition at line 551 of file CoverageMapping.h.
References assert(), getNumConditions(), getNumTestVectors(), getTVCondition(), getTVResult(), isCondFolded(), MCDC_DontCare, MCDC_False, MCDC_True, and OS.
|
inline |
Return the evaluation of a condition (indicated by Condition) in an executed test vector (indicated by TestVectorIndex), which will be True, False, or DontCare if the condition is unevaluatable.
Because condition IDs are not associated based on their position in the expression, accessing conditions in the TestVectors requires a translation from a ordinal position to actual condition ID. This is done via PosToID[].
Definition at line 479 of file CoverageMapping.h.
Referenced by getTestVectorString().
Return the Result evaluation for an executed test vector.
See MCDCRecordProcessor::RecordTestVector().
Definition at line 485 of file CoverageMapping.h.
Referenced by getTestVectorString().
Definition at line 471 of file CoverageMapping.h.
Referenced by getConditionCoverageString(), getPercentCovered(), and getTestVectorString().
|
inline |
Determine whether a given condition (indicated by Condition) is covered by an Independence Pair.
Because condition IDs are not associated based on their position in the expression, accessing conditions in the TestVectors requires a translation from a ordinal position to actual condition ID. This is done via PosToID[].
Definition at line 494 of file CoverageMapping.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and llvm_unreachable.
Referenced by getConditionCoverageString(), getConditionIndependencePair(), and getPercentCovered().