Method coverage
Code Coverage for C++
Inputs to Procedures
Inputs identify the C++ methods executed.
/* Vector::getCoord() method */ /* -PROC
*/
int Vector::getCoord ( int index )
{
if ( index >= 0 && index < size ) return Values[index];
else return -1;
}
One branch per C++ method is defined.
Procedure Inputs, Outputs and Returns, and Terminal Instructions
These include the standard output (if coverable), all return instructions, and calls to exit(), abort(), or
terminate(), as well as the input.
/* Vector::getCoord() method */ /* -PROC=RET */
int Vector::getCoord ( int index )
{
if ( index >= 0 && index < size ) return Values[index];
else return -1;
}
/* Divide function */
void divide ( int a, int b, int *c )
{
if (b ==0 )
{
fprintf ( stderr, "Division by zero\n" );
exit (1 );
};
if (b ==1 )
{
*c =a;
return;
};
*c =a /b;
}
At least two branches per C++ method are defined. The input is always enumerated, as is the output if it can be covered. If it cannot, it is preceded by a terminal instruction involving returns or by a call to exit(), abort(), or terminate().
Potentially Terminal Statements
The following decision statements are potentially terminal if they contain at least one statement that transfers program control out of its sequence (RETURN, THROW, GOTO, BREAK, CONTINUE) or that terminates the execution (EXIT).
-
IF without an ELSE
-
SWITCH, FOR
-
WHILE or DO...WHILE
Related Topics
Selecting coverage types | Code Coverage settings