CTC++ pour Visual Studio

[English][Deutsch]

Testwell CTC++ / Integration to Visual Studio

For installation please have a look to installation page

Here our context is Windows platform. On it, when the application code is built in command line mode (or from makefiles), and let the compiler be VC++ 5.0, VC++6.0, VC++ 7.1 or VC++ 8.0, CTC++ is readily usable. See the  basic CTC++ description for more. The help of these IDE integration packages are not needed in such usage.

When the application code is built via the Visual Studio IDE the following is also supported:
usage via Visual Studio 7.0 / 7.1 / 8.0 / 9.0 / 10.0 (.NET / 2003 / 2005 / 2008 / 2010) IDE

These facilitate intuitive and seamless use of CTC++ via the coresponding IDE. These integration add-on packages are different from their technical implementation, and slightly also how they are used. However, the general look-and-feel is the same in all of them. Below these integrations are described in more detail.


Testwell CTC++ Integration to Visual Studio 7.0 / 7.1 / 8.0 / 9.0 / 10.0 (.NET / 2003 / 2005 / 2008 / 2010) IDE

(Please call for Visual Studio 11.0 (2011/2012) integration)

The CTC++ integrations to these IDEs are similar.  Actually they are implemented by the same dialog programs, which are also used in some other IDE integrations, notably with CodeWarrior, Eclipse and Carbide.c++.
But first a side-story of this Visual Studio use context. At Visual Studio the builds can be done also in command line mode, for example as follows:

devenv mysolution.sln /useenv  /rebuild debug
These kind of builds can be made "ctc-builds" using ctcwrap command, as follows:
ctcwrap -i m -v devenv mysolution.sln /useenv  /rebuild debug
Next we talk of CTC++ usage in the GUI of these Visual Studio IDEs.

At installation phase two CTC++ specific commands have been inserted  to the Visual Studio Tools menu, as follows:

CTC++ commands in Tools menu

Selecting CTC++ Set/Clean... brings you to the following dialog program where you set CTC++ Mode ON and select the instrumentation options that you wish to use during the coming build.

CTC++ Set/Clean...


Next you (re)build your solution or project normally via the IDE commands, for example as follows:

Building with CTC++

As a result the project target (all project targets of the solution) get born as instrumented according to the Visual Studio build rules.

Next the instrumented code (.EXE, .DLL, .LIB) is executed. It may run in the Visual Studio context or elsewhere, in the same way as the original code.

Finally the coverage reports can be obtained using the ctcpost/ctchtml programs either from the command line or integrated to Visual Studio IDE. In the latter case you start the CTC++ Report... dialog program from the Tools menu. It looks as follows:

Getting CTC++ report via the IDE


Various types CTC++ reports can be selected. The possible forms of reporting are:
  • HTML report
  • Untested report to Visual Studio
  • Profile listing (textual)
  • Untested listing (textual)
  • Summary listing (textual)
  • Timing listing (textual)
When you select HTML report, your machine's default browser is started on the generated report (unless you check the viewer starting off). For textual reports your specify your favorite editor (default notepad) to be started on the generated report. See the basic CTC++ description on how the reports look like.


Cleaning the project from CTC++

The CTC++ Visual Studio .NET / 2003 / 2005 / 2008 IDE integration behaves so that the instrumented project targets (object fies, executables) overwrite the original ones. Thus, for getting back to a non-instrumented level, you just rebuild your project without CTC++. Further, in the CTC++ Build/Clean... dialog there is a subdialog Clean..., which you can use for polishing the project directory from the CTC++ generated reports and other CTC++ auxiliary files.

last updated: 26.10.2011

© 2007-2011 Testwell Oy / Verifysoft Technology GmbH
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.