Testwell CTC++: Classical Host-Target Arrangement
Typically for targets having- file system under it
- Some kilos of available RAM
- runtime library to be added (2-3K typically),
- integer counters
- transfer via file, file handle, serial port or proprietary interface
Target library
A target library consisting of 3 files have to be compiled and linked to the application. This linking can be arranged to transparent or automaticallyInitiating data transfer
Transfer can be stimulated by atexit routine, or some other handy arrangements. Technically a function ctc_send_data() in target library gets just called.Data transfer
Data transfer is done in one file of the target library, the typical flow is like:
if ((fp = fopen("MON.txt", "a")) != NULL) {
while ((c = ctc_get_character()) > 0) {
fputc(c, fp);
}
fclose(fp);
}
Datastream can be transferred whatever you like.
fopen("/dec/serio001","a")
or over network or through a proprietary channel.
Host receive data
An applicationhostmain updates the coverage files from
e.g.
- Asynchronous, from a text file "MON.txt",
hostmain < MON.txt - Synchronous, from e.g. a serial port,
hostmain < /dev/ttyS0
How the metrics are generated
The code gets instrumented with the "ctc" compiler frontend, per default it increments then file static array elements.How the metrics are collected on the Host
CTC++ accumulated per default coverage data a file "MON.dat" on the host. This is used for input of the report generating tools.Performances
Usually we calculate with 20%, depends very much on coding style and used cross compiler. With the Linux kernel in multicondition mode we got 16% performance impact (test done in 100sec, now in 116sec). Some desktop applications had only 7% performance impact, on some weird cross-compilers we had at max. 53% until now...
last updated: 14.05.2008
© 2008 Verifysoft Technology
CTA++, CTC++, CMT++ and CMTJava are products of Testwell Oy, Tampere (Finland)
all other trademarks of this site are the property of their respective owners.