General Working Principles
Testwell CTC++ measures Code Coverage for desktop / host applications and for embedded software. It works in three fundamental steps: instrumenting, testing and reporting.
For embedded software, Testwell CTC++ provides two different approaches to measure coverage on the target: HOTA and BITCOV.
With HOTA (Host-Target), an adaptable runtime is delivered to write coverage data to the target or to the host. This runtime code has to be compiled with the cross-compiler in use.
With BITCOV, the runtime is omitted completely. Instead of counters, only the binary information if a measure point was executed or not is recorded to reduce memory consumption.
This overview shows schematically the workflow and the differences between the approaches.
Standard / Desktop | HOTA | BITCOV | |
---|---|---|---|
Initially: Adapt and compile the runtime. | |||
Instrumenting |
Build an instrumented test executable (with the standard runtime for the OS) |
Build an instrumented test executable with the HOTA runtime. |
Define the counter array. Build an instrumented test executable (without any runtime). |
Testing |
Execute tests. Data file(s) (MON.dat) are generated. |
Execute tests. Data file(s) in text format (MON.txt) are generated. |
Execute tests. Dump coverage data from main memory. |
Convert to MON.dat. | Convert to MON.dat. | ||
Reporting | Generate structured HTML reports or single-file text formats with ctcreport. |