SocialTwist Tell-a-Friend

Comments --

Add

New TesterTools – GCT

GCT was my third coverage tool.  It instruments C code in a source-to-source translation, then passes the instrumented code to a compiler.  Its first major use was on a Unix kernel, so it is suitable for measuring the coverage of embedded systems.
In addition to branch and multiple-condition coverage, it also has boundary-condition and loop coverage. 

Advertisment
My Twitter Friends
Friends: 939 Followers: 394
SocialTwist Tell-a-Friend

2

Comments

Add

New TesterTools – GCT

GCT was my third coverage tool.  It instruments C code in a source-to-source translation, then passes the instrumented code to a compiler.  Its first major use was on a Unix kernel, so it is suitable for measuring the coverage of embedded systems.

In addition to branch and multiple-condition coverage, it also has boundary-condition and loop coverage.  I find those useful and inexpensive types of coverage, and I’m disappointed that more coverage tools don’t include them.

It also contains a type of coverage we used for evaluating stress testing of a multiprocessor kernel.

However: GCC was written in 1992 using the GNU C compiler (gcc) as a base.  For reasons too boring to explain, it still has most of the original GCC code in it.   The practical effect of that is that porting GCT is not as trivial as it should be. Although there are Linux and Solaris ports, I do not have appropriate configuration files for them.  (If you do, please send them to me.)  There are no ports to any version of Windows or other non-Unix operating systems.  I would be stunned to see one.

Since GCT is based on gcc 1.x, it does not handle some gcc 2.x constructs.  There has been a mostly-completed port from gcc 1.x to 2.x, but I have not used it myself.

GCC has no GUI for looking at coverage results.  The output is formatted like error messages from a compiler.  It comes with an Emacs mode (based on M-x next-error) that I rather liked.  But non-Emacs users are left out in the cold – as they are in so many things. :)

View TesterTools dedicated page for this tool.