Variables

This is a reference for all variables to be used in structured HTML templates or in single-file text templates, filled with content by ctcreport.

Some variables can be used everywhere, others have a specific purpose for HTML or text templates, in a certain page or in one of the loops. This is described in columns Restriction. Single-file text templates do not process data referring to source code below functions.

When used, the variable name must be enclosed in $...$.

Variables Explanation Values / Pattern by Example Restriction
ProjectName defined by option -D ProjectName=
CreationTime time stamp the HTML report was generated 2023-04-24 11:39:16
NumberOfInstrumentedFiles Number of source files present in input symbol files, either directly instrumented or included. Variants are not counted. Integer
CtcReportOptions command-line of ctcreport call -html S -o MY-REPORT
Threshold defined by option -t 1 - 100

Level1Entity, Level2Entity

Level1Entities, Level2Entities

reporting entities chosen by layout with option -html

Directory | File | Function

Directories | Files | Functions

overview and detail pages of HTML templates
FileName symbol or data file name (with path) Symbolfiles and Datafiles loops
InstrumentationTime timestamp from symbol file Mon Apr 24 11:36:01 2023 Symbolfiles loop
TestTime timestamp from data file Mon Apr 24 12:09:12 2023 Datafiles loop
Measure name of coverage measure for display Function | Statement | Decision | Condition | MC/DC | MultiCond CoverageMeasures loop
MeasureTechnical name of coverage measure for technical purpose (e.g. HTML attributes) function | statement | decision | condition | mcdc | multicondition CoverageMeasures loop
Hits, MissingHits, Checkpoints, TER coverage figures and ratio Integers CoverageMeasures loop
RawHits, RawTER figures without the influence of justifications Integers CoverageMeasures loop
Qualification indicates if coverage ratio is above threshold for current entity and measure above | below CoverageMeasures loop
IsMeasureNotAvailable indicates if measure is available (due to instrumentation mode) MeasureNotAvailable | empty CoverageMeasures loop
EntityName name of current entity (determined from page and loop context)

\Projects\MissionImpossible\common\

main.c

foo

HTML templates
DirectoryName; SourceFileName; FunctionName and FunctionParameters name of specific entity

\Projects\MissionImpossible\common\

main.c

foo and ( int x )

text templates, in Directories / SoureFiles / Functions loops
RowNumber represents original order of entities as handed over by ctcreport Integer. Row numbers start from 1 for nested loops.

Level1 and Level2 loops of overview and detail pages;

Directories, SourceFiles, Functions loops of text templates

DrillToDetail URL for detail page of current entity, if applicable detail-00012.html

Level1 and Level2 loops of overview page

sibling loops of detail pages

DrillToSource URL for source view page of current entity, if applicable

source-00042.html

source-00003.html#F5

Level1 and Level2 loops of overview and detail pages
NumberOfJustifications total number of justifications for current entity Integer general scope; Level1 and Level2 loops of overview and detail pages (HTML templates)
ShortText, NumberOfJustifications short texts used in justifications / figures how often they are used 7 LameExcuse Justifications loop (HTML templates)
DetailEntity, DetailEntities type of entity the detail page is for

Directory | File | Function

Directories | Files | Functions

detail pages
FirstSiblingName,PreviousSiblingName, NextSiblingName, LastSiblingName used in context of navigation / browsing through same kind of pages (detail pages or source view pages)

alpha.c, gamma.c, epsilon.c, omega.c

(for delta.c)

detail and source view pages

FirstSiblingDrillToDetail, PreviousSiblingDrillToDetail, NextSiblingDrillToDetail, LastSiblingDrillToDetail

URL to other detail pages for these siblings detail-00081.html, ... detail pages

FirstSiblingDrillToSource, PreviousSiblingDrillToSource, NextSiblingDrillToSource, LastSiblingDrillToSource

URL to other source view pages for these siblings source-00001.html, ... source view pages
MeMarker used in context of navigation to mark the current entity in a list of all sibling entities Me | empty sibling loops of detail and source view pages
LocationOfDisplayedCode full path and name of source file used for report generation source view pages
GroupingEntity type of entity "above" source files, used for navigation

Directory | AllFiles

source view pages
GroupingEntityName name of grouping entity for current source file

\Projects\MissionImpossible\common\

All Files

source view pages
FunctionName name of function as recorded by ctc foo() Functions loop
FunctionID provides unique ID inside one HTML page for functions F5 Functions loop
LineNumber of source code line Lines loop
Indent assisting measure to indent code

Integer

1 per space, 3 per tab

Lines loop
IsExecutable indication if the code in this line is generally executable Executable | Empty | BracesOnly | CommentOnly | PreprocessorLine | Inactive Lines loop
IsExecuted indication if code in this line was or would have been executed (independent from IsExecutable) Executed | NotExecuted | PartiallyExecuted | empty Lines loop
IsJustified indication if code in this line was or would have been justified (independent from IsExecutable and from IsExecuted) Justified | PartiallyJustified | empty Lines loop
CodeSnippet piece of source code if CodeSnippets loop
CodeKind for syntax highlighting Plain | Keyword | Comment | PreprocessorDirective | String | JustificationKey | JustificationShortText | JustificationLongText CodeSnippets loop
ProbeDescription probe type and code fragment recorded by ctc const-if (3 > 4) Probes loop
TrueCounter, FalseCounter counter values, pure hits are collected in TrueCounter integer | empty Probes and ConditionDetails loops
IsTrueAchieved, IsFalseAchieved is counter value > 0 (if present)? Achieved | NotAchieved | empty Probes and ConditionDetails loops
IsTrueJustified, IsFalseJustified is counter justified? Justified | empty Probes loop and ConditionDetails loops
TrueJustificationShortText, TrueJustificationLongText / FalseJustificationShortText, FalseJustificationLongText User-defined justification texts ERROR_HANDLING: Checked by review, testing is too expensive. Probes loop
TrueJustificationOrigin, FalseJustificationOrigin Justifications can be defined in source code comments or in justification files. For depending counters, they are derived. FromComment | FromFile | Derived | empty Probes loop
IsSingle marks if a probe is the only one on its source code line. Used to collapse these probe descriptions per default. Single | empty Probes loop
CounterLevel minimal coverage level for which a counter is relevant

LevelFunction | LevelDecision | LevelDecisionPlus

Remark: Further values are used in HTML directly inside detail loops for higher coverage measures

Probes loop
Condition text of an atomic condition inside a complex decision x == 2 ConditionDetails and MCDCDetails loops
TFCombination textual representation for a true-false combination (T || _) && (T || _) MulticonditionDetails loop
TFID page-unique ID for true-false combination (used for highlighting when hovering over MC/DC pairs) TF117 MulticonditionDetails loop
TFNumber consecutive number, starting from 1 for each multicondition 1, 2, 3, .. MulticonditionDetails loop
TFCounter, IsTFAchieved counter value for the combination and indication if > 0 Integer; Achieved | NotAchieved MulticonditionDetails loop
IsTFJustified is counter justified? Justified | empty MulticonditionDetails loop
MulticonditionValue Boolean value of the whole multicondition for this combination MCCTrue | MCCFalse MulticonditionDetails loop
IsMCDCAchieved is MC/DC criterium achieved for current condition? Achieved | NotAchieved MCDCDetails loop
IsMCDCJustified is MC/DC criterium justified for current condition? Justified | empty MCDCDetails loop
MCDCMarker textual mark if MC/DC criterium is achieved + | - MCDCDetails loop
IsPairAchieved is MC/DC pair achieved? PairAchieved | PairNotAchieved MCDCPairs loop
IsPairJustified is MC/DC pair justified? Justified | empty MCDCPairs loop
TFNumberOne, TFNumberTwo, TFIDOne, TFIDTwo references for an MC/DC pair to its two true-false combinations 2, 7, TF117, TF122 MCDCPairs loop