TestCocoon

Code Coverage Measurement for C/C++ and C#

TestCocoon is no more maintained and every user are invited to use now Squish Coco.

Squish Coco is available for commercial and non-commercial projects. For commercial user froglogic GmbH provides also a professional support.

Many enhancements come with this new product:
  • Better support of C++0x by handling constant and lambda expressions.
  • CoverageBrowser has now a more intuitive analysis of the test quality of software modifications by providing:
    1. the list of protential regressions which are not validated.
    2. the list of tests which impacts the modification.
    3. the code coverage of the difference.
  • A new browsable HTML report which permits:
    1. to browse though the source code.
    2. compare executions together.
    3. to make a code coverage analysis on the difference of two releases.
  • reading execution comments directly from the .csexe file.


Squish Coco is compatible with TestCocoon and does not require that you adapt your build environment.

  Known Issues

Nothing relevant.

  Software Packages

 /pictures/linux.gifdownload [md5]   /pictures/windows.gifdownload [md5]   /pictures/macosx.gifdownload [md5] 
pictures/releasenote.png TestCocoon v2.0
Full installation of TestCocoon.
Changes between TestCocoon v1.6 and v2.0:
CoverageBrowser
  • New Feature: Supporting linking several times the same object into an application.
  • New Feature: Possibility to filter out in the execution list executions which doesn’t cover any code.
  • Bug Fix: Calculation of statistics is able to saturate all available CPU.
  • Bug Fix: After opening a new instrumentation database, no executions become selected.
  • New Feature: Possibility to choose between the native file dialog and the dialog provided by Qt.
  • New Feature: Displaying the execution of a reference release into the list of execution. Executions of the reference release are strikeout, new executions are underlined.
CoverageScanner
  • Empty functions are no more instrumented.
  • New Feature: C++0x support.
  • New Feature: Verbose output of the CoverageScanner output when using command line option --cs-verbose.
  • New Feature: Saving the contains of a tree view waits until all statistics are computed.
cmreport
  • Bug Fix: Correction of an EMMA-XML issue: global statistics are now ordered in EMMA-XML report as following: Line, Method, Class and then Block
 /pictures/linux.gifdownload [md5]   /pictures/windows.gifdownload [md5]   /pictures/macosx.gifdownload [md5] 
pictures/releasenote.png TestCocoon v1.6
Full installation of TestCocoon.
Changes between TestCocoon v1.5 and v1.6:
Windows installer
  • Bug Fix: On Microsoft® Windows the installer does no more wipe the PATH variable.
Build system
  • New Featuremake install and make uninstall supported (experimental).
  • New Featuremake package generates a debian installer (experimental).
CoverageScanner
  • Use response file only if the command line contains more than 30000 bytes.
  • New Feature: Do not instrument dead code after a return/goto/break statement.
  • Bug Fix: On Linux, profile files for Intel compiler are now installed correctly.
  • Bug Fix: Under some circumstances, functions are places in a wrong name space.
  • Bug Fix: The response file name includes now the PID. This should fix some issues when using a parallel build.
  • Bug Fix: Using more than one response file is now working.
  • Bug Fix: Linker includes instrumentation of libraries specified through a relative path.
  • Bug Fix: For Windows CE: removing windows.h include in the CoverageScanner library.
  • Bug Fix: For Microsoft® Visual Studio® compiler: Generation of the instrumentation to the static library associated to a DLL event if no /IMPLIB option is used.
  • Bug Fix: On Windows, export all CoverageScanner symbols of the instrumentation library in a DLL.
  • Bug Fix: C++ operator <<= and >>= supported.
  • Bug Fix: GNU __extension__ keyword supported.
  • Bug Fix: Character sequence <:: is now equivalent to < :: and no more <: :.
  • Bug Fix: For Microsoft® Visual Studio® compiler: using response file for the compiler and linker.
  • Bug Fix: Anonymous local struct are now supported.
  • Bug Fix: Instrumentation of for statement in the form: for (.....;void *p=....;....)
  • New Feature: If no code a executed, a coverage report will not saved.
  • New Feature: new CoverageScanner API functions: __coveragescanner_register_library and __coveragescanner_unregister_library.
  • Bug Fixtry/catch of an if statement was not instrumented correctly.
  • Bug Fix--cs-qt4 does no more instrument:
    • Q_EXPORT_PLUGIN
    • Q_DECLARE_METATYPE
  • Bug FixCoverageScanner does not produce any outdated warnings if the .csmes file produced is less than 10 second older as the corresponding object. This is necessary because some build script copy/rename the output just after building and so modify the date of the object files.
CoverageBrowser
  • Bug Fix: Under some circumstances headers are not displayed into the source view.
  • Bug Fix: Under some circumstances the instrumentation of some headers are missing in the reports.
  • New Feature: Exporting the execution report as simple text log.
  • New Feature: Verbose error reporting when merging execution database fails.
  • Bug Fix: Do not merge execution database with different instrumentations for the same file.
  • Profiling: Performance improvements when use a database which use list of source files.
  • Bug Fix: Test count was wrongly calculated if inline functions was instrumented.
cmreport
  • New Feature: Exporting the execution report as simple text log.
  • New Feature: Possibility to set the maximum number of executions listed which executes a line of code.
  • Bug Fix: Correction of an EMMA-XML issue: block coverage for the package was always 50%.
cmmerge
  • New Feature: Verbose error reporting.
  • New Feature: Possibility to merge in an existing instrumentation database (command line option -a)
  • Bug Fix: Do not merge execution database with different instrumentations for the same file.
 /pictures/linux.gifdownload [md5]   /pictures/windows.gifdownload [md5]   /pictures/macosx.gifdownload [md5]   /pictures/src_tbz2.gifdownload [md5] 
pictures/releasenote.png TestCocoon v1.5
Full installation of TestCocoon.
Changes between TestCocoon v1.4 and v1.5:
CoverageScanner
  • Bug Fix--cs-lock-csexe is no more broken for Microsoft® Visual Studio® compilers.
CoverageBrowser
  • New Feature: Importing unit tests instrumentation database ((see chap. unit-test)).
  • New Feature: Speed improvement of the optimized execution order algorithm.
  • Bug Fix: Headers are no more present twice in EMMA XML.
cmreport
  • Bug Fix: Headers are no more present twice in EMMA XML.
cmmerge
  • New Feature: Importing unit tests instrumentation database ((see chap. unit-test)).
  • Command line syntax changed to be similar to cmreport and cmcsexeimport.
 /pictures/linux.gifdownload [md5]   /pictures/windows.gifdownload [md5]   /pictures/macosx.gifdownload [md5]   /pictures/src_tbz2.gifdownload [md5] 
pictures/releasenote.png TestCocoon v1.4
Full installation of TestCocoon.
Changes between TestCocoon v1.3 and v1.4:
CoverageScanner
  • Bug Fix#pragma does not more produce incorrect line information.
  • New Feature__pragma and _Pragma can be used to enable/disable the coverage analysis.
  • Bug Fix.cc extension for C++ file are now supported.
  • New FeatureCoverageScanner library does no more refer to the C library when CUSTOM_SETUP is set to NONE.
CoverageBrowser
  • New Feature: Memory usage minimization during the import of .csexe files (disabling Undo/Redo and revert possibility).
  • New Feature: Explanation is computed in background.
cmcsexeimport
  • New Feature: Memory usage minimization during the import of .csexe files.
 /pictures/linux.gifdownload [md5]   /pictures/windows.gifdownload [md5]   /pictures/macosx.gifdownload [md5]   /pictures/src_tbz2.gifdownload [md5] 
pictures/releasenote.png TestCocoon v1.3
Full installation of TestCocoon.
Changes between TestCocoon v1.2 and v1.3:
CoverageScanner
  • New Feature: Instrumenting compounds literals in inline assembly of the GCC compiler.
  • Bug Fix: instrumentation at decision and condition level of expressions similar to if ( (a && b) == true ) ...
  • Bug Fix: cast operator supported before not operator. Example:if ( (int)!a ) ...
CoverageBrowser
  • New Feature: EMMA XML report generation (experimental)
cmreport
  • New Feature: EMMA XML report generation (experimental)
Tool Selector
  • Bug FixTool Selector creates now the console environment correctly.
 /pictures/linux.gifdownload [md5]   /pictures/windows.gifdownload [md5]   /pictures/macosx.gifdownload [md5]   /pictures/src_tbz2.gifdownload [md5] 
pictures/releasenote.png TestCocoon v1.2
Full installation of TestCocoon.
Changes between TestCocoon v1.1 and v1.2:
CoverageScanner
  • Bug Fix: Regression about \pragma CoverageScanner(pop) corrected.
  • New Feature: Wildcard expression supported on Microsoft® Windows.
  • Bug Fix: Support of Microsoft® Visual Studio® __try, __expect and __finally language extension.
  • New Feature: Instrumentation of boolean expressions in assignments.
CoverageBrowser
  • New Feature: Displaying the coverage statistic in form of a fraction (number of executed instrumentations/total number of instrumentations)
 /pictures/linux.gifdownload [md5]   /pictures/windows.gifdownload [md5]   /pictures/macosx.gifdownload [md5]   /pictures/src_tbz2.gifdownload [md5] 
pictures/releasenote.png TestCocoon v1.1
Full installation of TestCocoon.
Changes between TestCocoon v1.0 and v1.1:
CoverageScanner
  • New Feature: All temprorary files are now generated in the system TEMP folder (%TEMP% on Windows and /tmp on Unix).
  • New FeatureCMake support. (see chap. cmake)
  • No .csmes file are generated if an object does not contain instrumentations.
CoverageBrowser
  • Internal: SVG icons used.
pictures/releasenote.png TestCocoon v1.0
Full installation of TestCocoon.

  Source Code

The source code of TestCocoon is hosted on Gitorious: https://gitorious.org/testcocoon/testcocoon