Squish Coco

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

Release note of Squish Coco v3.2.3
Changes between Squish Coco v3.2.3 and Squish Coco v3.2.2:
  • BugFix:Memory usage reduced. This fixes an "out-of-memory" error message during the compilation.
  • NewFeature:Explicit initialization of the CoverageScanner API is no longer necessary for C# DLLs. (The program InjectModuleInitializer.exe is no longer needed)
Release note of Squish Coco v3.2.2
Changes between Squish Coco v3.2.2 and Squish Coco v3.2.1:
  • BugFix:More meaningful instrumentation of the C# keywords using, lock, unsafe and fixed.
  • NewFeature:If the debugger is connected, CoverageScanner runtime information is displayed in the Microsoft® Visual Studio® console.
  • NewFeature:In C# files, the “dump on event” feature can be enabled through a macro definition.
Microsoft® Visual Studio®Add-In
  • NewFeature:Configuration of the debug output of Squish Coco.
  • NewFeature:Configuration of the Windows event handler.
Release note of Squish Coco v3.2.1
Changes between Squish Coco v3.2.1 and Squish Coco v3.2.0:
  • NewFeature:Support of Shift-JIS text encoding.
  • NewFeature:Execution report of Silverlight C# binaries is stored on an Isolated Storage when storing on the local file system is not allowed.
  • BugFix:Support of strong-named C# assemblies.
  • NewFeature:The Preferences dialog now allows to switch off syntax highlighting.
Release note of Squish Coco v3.2.0
Changes between Squish Coco v3.2.0 and Squish Coco v3.1.0:
  • NewFeature:Precise error message when a merge failure occurs.
  • NewFeature:Thresholds for the overall statistics.
  • NewFeature:Statistics of manual validated instrumentation (for each function, source code and for the complete project).
  • NewFeature: Statistics of manual validated instrumentation (for each function, source code and for the complete project) for the HTML and CSV report.
  • Speed improvements.
  • NewFeature:--delete permits to delete all input files after a successful merge.
  • NewFeature:--blackbox permits to generate an instrumentation database for black-box testing.
Release note of Squish Coco v3.1.0

Changes between Squish Coco v3.1.0 and Squish Coco v3.0.2:

Squish Coco
  • NewFeature:NUnit addin.
  • BugFix:Detection of CygWin installations for x64 systems corrected.
  • VisualDSP® support.
  • BugFix:Support of UTF16 source files.
  • NewFeature:For embedded systems, CoverageScanner is able to generate execution reports in 8.3 format. In this case the report extension is .cse and not .csexe.
  • NewFeature:New command line switch --cs-no-abort-on-error: if used, instrumentation errors raised while processing C/C++ source code no longer abort the build.
  • NewFeature:Refactoring of the HTML report:
    • NewFeature:Single HTML file and full HTML report have now the same look and feel.
    • NewFeature:Source directories statistics in a clickable tree view.
    • NewFeature:Class directories statistics in a clickable tree view.
    • NewFeature:Statistic tables are interactively sortable.
    • NewFeature:Tool-tip for a detailed information on each table item.
  • NewFeature:CSV table export for all informations that can be exported through a HTML report.
  • NewFeature:The source, execution and function dialog can now be interactively switched between a list and tree view.
  • NewFeature:CoverageBrowser reacts automatically when the instrumentation database file is regenerated and reload it automatically.
  • NewFeature:The source, execution and function dialog can now be interactively switched between a list and tree view.
  • NewFeature:CoverageBrowser reacts automatically when the instrumentation database file is regenerated and reload it automatically.
Release note of Squish Coco v3.0.2

Changes between Squish Coco v3.0.2 and Squish Coco v3.0.1:

Squish Coco
  • NewFeature:Solaris support.
  • BugFix:EMMA-XML Report generation corrected when excluding source files.
  • NewFeature:Drag and drop of .csmes and .csexe files supported.
  • NewFeature:Format specifier %c added to --cs-output.
  • BugFix:Issues with strings in __declspec extension fixed.
  • BugFix:Deal with non-instrumentable OpenMP code.
  • BugFix:C++11 string literal support. (example: R"delim(")delim")
  • BugFix:UTF-8 source file can now be compiled.
  • BugFix:C++ Line comments ending a source file are no more generating a parsing issue.
  • BugFix:C# linq expressions are now instrumented.
  • NewFeature:New C# API function CoverageScanner.__coveragescanner_init().
  • NewFeature:Dead code detection in constant boolean expressions:
    • Dead code detection for if ( false ) ... or for if ( true ) ... branches.
    • Expression do statement while ( false ) is treated if the statement was not included into a do ... while ( ... ) construct.
    • Dead code detection of while ( false ) .... loops.
    • Statements ’while ( true ) ...’ and ’do ... while ( true );’ are now treated as the infinite loop ’for(;;) ...’. The conditions are no more instrumented to avoid false negative coverage instrumentations.
  • BugFix:New command line switch for C++ mixed mode: --cs-architecture=CLR
  • BugFix:Several parsing issue for C# and C++ code fixed.
  • BugFix:Support of multiple header files included with/FI when generating precompiled headers.
  • BugFix:C# support for Microsoft® Visual Studio®2013.
  • NewFeature:generation of all wrappers for all installed version of GCC compilers.
Release note of Squish Coco v3.0.1

Changes between Squish Coco v3.0.1 and Squish Coco v3.0.0:

  • NewFeature:Validating manually an instrumentation validates also all depending instrumentations. For example, when marking a return statement as validated, all sequential lines before are also automatically validated.
  • NewFeature:Source code annotation though code comments.
  • BugFix:clang compiler support on Apple® MacOSX.
Microsoft® Visual Studio®Add-In
  • BugFix:Excluding source directories from the instrumentation is working again.
Release note of Squish Coco v3.0.0

Changes between Squish Coco v3.0.0 and Squish Coco v3.0.0-pre1:

  • BugFix:Line coverage information of nested compound statements are now computed correctly.
  • Change:--cs-include-path/--cs-exclude-path works now recursively on all subdirectories.
  • NewFeature:--cs-output supports now format specifiers (%f, %P, …)
  • BugFix:lib.exe wrapper support now Module-Definition (.def) files
  • BugFix:Compilation of expression in the form CLASS c = a && b are now supported even if the operator || or && are not logical operators.
  • NewFeature:Disabling the difference view of a source file is possible.
  • NewFeature:Importing reviewer comments from a previous instrumentation database.
  • NewFeature:Importing reviewer comments (–reviews-only command line option)
Release note of Squish Coco v3.0.0-pre1

Changes between Squish Coco v3.0.0-pre1 and Squish Coco v2.1.8:

  • NewFeature:Usability enhancement of the folding functionality in the source window:
    • possibility to define a number of lines before and after the folded line part of the context and which are not folded.
    • folded lines are chosen the instrumentation filter dialog.
  • NewFeature:For the code coverage at branch or decision/condition level, the executed (resp. not executed) lines which are not instrumented are displayed in pastel green (resp. pastel red).
  • NewFeature:Line coverage information is now also available in the preprocessed view of the source code.
  • NewFeature:Automatic copying to the clipboard of a selected source code fragment.
  • NewFeature:Generation of Cobertura reports.
  • NewFeature:simple support of GNU linker script for MinGW.
  • NewFeature:clang support on Apple® MacOSX.
  • NewFeature:Configuration of instrumentation warnings and errors.
  • BugFix:throw statement are now instrumented in expressions. (example: int a = b ? 0 : throw 0 ;)
  • BugFix:/Yc and /Yu can now be used simultaneously for the Microsoft® Visual Studio® compiler.
  • NewFeatureBETA:Tcl support.
  • NewFeatureBETA:C# support.
  • NewFeature:Generation of Cobertura reports.
Release note of Squish Coco v2.1.8
Changes between Squish Coco v2.1.8 and Squish Coco v2.1.7:
  • NewFeature:Configuration of the color scheme.
  • NewFeature:Excluding source files interactively from the instrumentation.
  • NewFeature:Configuration of the maximum number of threads which can be used for a computation.
  • NewFeature:Progress information during the generation of a code coverage report.
  • NewFeature:Better detection of dead code after a switch/case statement.
  • NewFeature:Optimized handling of C++ header which permits to reduce the size of the instrumentation database and the time for generating reports.
  • NewFeature:Excluding source files from the report generation.
  • NewFeature:Configuration of the maximum number of threads which can be used for a computation.
  • Change:Function parameter are now appended to each function in the EMMA-XML report.
  • NewFeature:cmcsexeimport is now able to import more than one execution report file.
Release note of Squish Coco v2.1.7
Changes between Squish Coco v2.1.7 and Squish Coco v2.1.6:
  • Change:Navigation buttons are now grouped into one toolbar.
  • Speed improvement of the source code viewer.
  • Speed improvement of the computing of the list of tests which are executing a source line.
  • Speed improvement of the of the text search in the source code function.
  • NewFeature:Source code viewer:
    • NewFeature:Sources are displayed in a tabbed view.
    • NewFeature:Preview of the instrumentation of a whole file into the scroll bar.
    • NewFeature:Tooltip which displays the detail of an explanation of a source line.
    • NewFeature:More intuitive text search function (search when typing into the source code window) and interactive highlighting of the matched patterns.
    • NewFeature:Dock/undock line number column and statistic column.
  • BugFix:CoverageScanner is now able to handle "Whole Program Optimization" (option /GL) and "Use Link Time Code Generation" (option /LTCG) of Microsoft® Visual Studio®.
  • NewFeature:Command line option --cs-vs2010-lambda which permits to instrument lambda functions of Microsoft® Visual Studio®2010
  • NewFeature:Support for "for each" C++ syntax extension of Microsoft® Visual Studio®.
  • BugFix:Support of ccache wrapper.
  • BugFix:CoverageScanner detects now dead code after a try/catch block.
  • BugFix:Precompiled header issues.
  • BugFix:Handling source code lines which are ending with a backslash.
  • Speed improvement of the generation of EMMA-XML reports.
  • Speed improvement of the generation of HTML reports.
  • NewFeature:HTML report displays the detailed instrumentation report in a tooltip.
  • Change:HTML report is generated in a directory whose name ends with _html. This avoids a name clash under Unix where the executable has in most of the cases no extension.
Release note of Squish Coco v2.1.6
Changes between Squish Coco v2.1.6 and Squish Coco v2.1.5:
  • NewFeature:Possibility to choose the source code type used for comparing software releases (original source code or preprocessed source code)
  • NewFeature:New command line options which permits to specify command line arguments into a text file (--cs-option-file).
  • NewFeature:New command line options which permits to specify to select directly the CoverageScanner profile (--cs-profile).
  • NewFeature:possibility to customize the EMMA-XML report
Release note of Squish Coco v2.1.5
Changes between Squish Coco v2.1.5 and Squish Coco v2.1.4:
  • NewFeature:Support for precompiled headers for Microsoft® Visual Studio® compiler.
  • NewFeature:Xoreax IncrediBuild support (http://www.incredibuild.com/incredibuild-product-overview.html)
  • BugFix:Wildcard expressions on relative paths are computed on the canonical path. (example: --cs-include-file-wildcard=include/* matches include/foo.h and module/../include/bar.h)
  • NewFeature:New command line options which permits to specify which extensions are used for C++(--cs-cpp-ext) and C(--cs-c-ext) files.
  • NewFeature:New command line option which permits to set the tool chain path (--cs-native-toolchain).
  • Change:Verbose command line option (--cs-verbose) permits to select if the build, the instrumentation or the CoverageScanner API is instrumented. The verbose output of the instrumented file is generated into a log file (name of the execution report with the extension.cslog).
  • BugFix:-m32 and -m64 command line support for GCC.
  • BugFix:Compilation issue on Microsoft® Visual Studio® for instrumented C++0x lambda function corrected.
  • BugFix:Support of __stdcall as default calling convention when compiling with Microsoft® Visual Studio®.
  • NewFeature:New command line option for UNIX® platform which permits to generate a coverage report on the reception of a signal (--cs-dump-on-signal).
  • NewFeature:New command line option for Microsoft® Windows platform which permits to generate a coverage report on the reception of an event (--cs-dump-on-event).
  • Change:Instrumentation tables of libraries are chained together during the runtime when compiling with Microsoft® Visual Studio®. The old behaviour can be restored with --cs-link-instrumentation-tables.
  • Change:cmreport generate now per default a code coverage report at decision/condition level with line coverage for uncovered lines.
Microsoft® Visual Studio®Add-In
  • Change:Microsoft® Visual Studio®Add-In does not disable the precompiled headers anymore.
Release note of Squish Coco v2.1.4
Changes between Squish Coco v2.1.4 and Squish Coco v2.1.3:
  • NewFeature:Import summary display the imported execution comment.
  • NewFeature:New instrumentation mode available which permits to displays the computed line coverage of uninstrumented lines. This enables the readability of the source code but have no impact on the coverage statistic.
  • BugFix:Support for /clr:safe and clr:pure command line option.
  • Optimization: CoverageScanner calls now directly the native compiler without calling a second instance of it.
  • BugFix:The line coverage was wrongly calculated before some switch/case statements.
License Manager
  • NewFeature:The license manager is now a wizard dialog.
  • NewFeature:Command line tool to activate a license on Windows and Unix
Release note of Squish Coco v2.1.3
Changes between Squish Coco v2.1.3 and Squish Coco v2.1.2:
  • NewFeature:/MP command line (parallel build) supported for Microsoft® Visual Studio® compiler.
  • BugFix:Parsing issues of C++11 templates corrected.
  • NewFeature:The Build Environment Selection tool generate CoverageScanner wrapper for CygWin.
Microsoft® Visual Studio®Add-In
  • NewFeature:Since that CoverageScanner instruments now all non system folders, the selection dialog of the list of directories to include is removed. A dialog which permits to select the list of directories to exclude replace it.
Linux installer
  • NewFeature:Possibility to specify a custom installation directory.
  • NewFeature:Command line interface on Unix.
  • BugFix:More verbose error message in the case of network failures.
Release note of Squish Coco v2.1.2
Changes between Squish Coco v2.1.2 and Squish Coco v2.1.1:
  • BugFix:Multi line #pragma supported.
  • BugFix:::new keyword supported.
Microsoft® Visual Studio®Add-In
  • BugFix:Support of solutions with folder.
  • BugFix:Support of solutions which mix C++ and C# projects.
Release note of Squish Coco v2.1.1
Changes between Squish Coco v2.1.1 and Squish Coco v2.1.0:
  • Change:CoverageScanner instruments now per defaults all sources files except those which are in the system directory (/usr, /opt or C:\Windows) or the application installation directory (C:\Program Files).
  • NewFeature:Automatic detection of the runtime library necessary when compiling using Microsoft® Visual Studio®. Adding /MD or /MT to the build command argument of the CoverageScanner library is no more necessary.
  • BugFix:Crash when using wildcard expression on file name on UNIX®.
  • NewFeature:The instrumentation table are now generated during the runtime. This permits to handle stubs, which overwrite objects from libraries.
  • NewFeature:Constructor which use member initialization list are instrumented even if their body is does not contains code.
  • NewFeature:C++ CLR language extension of Microsoft® Visual Studio® supported.
  • NewFeature:Navigation buttons are disables if they are irrelevant. After reaching the end of search, the navigation buttons start from the beginning again.
  • BugFix:Clicking on a function in the method list, show it entirely in the source window.
  • BugFix:Statistics count was wrongly computed when the instrumentation is computed with line coverage support and the test count mode was activated.
  • NewFeature:Importing an execution report does not generate an error message any more. If some executions cannot be imported, the information window is automatically shown. A list of imported executions and errors are displayed on it.
  • NewFeature:Windows x64 package available.
  • NewFeature:EMMA-XML report generated now condition coverage statistics. This requires Jenkins EMMA-XML plugin version 1.29 or above.
  • NewFeature:JUnit report generation.
Release note of Squish Coco v2.1.0
Changes between Squish Coco v2.1.0 and Squish Coco v2.0.3:
Squish Coco
  • NewFeature:Recognition of dead code inside a function.
  • NewFeature:Function coverage.
  • NewFeature:Line coverage.
  • Code coverage count is enabled per default.
  • BugFix:EMMA-XML report corrected: the line field correspond now to the line coverage.
Release note of Squish Coco v2.0.3
Changes between Squish Coco v2.0.2 and Squish Coco v2.0.3:
Squish Coco
  • BugFix:License activation issues.
Release note of Squish Coco v2.0.2
Changes between Squish Coco v2.0.1 and Squish Coco v2.0.2:
  • Improving the speed of the production of HTML reports through parallelization of the generation of the source code view.
  • BugFix:__try and __finally keyword now handled on Windows for C files.
  • BugFix:g++ compiler wrapper treats files with .c extension as C++ files.
  • BugFix:On Windows, command line containing directory name which ends with a backslash are now correctly escaped.
  • BugFix:ar and ld wrapper are now working, and do not report that the profile cannot be found.
  • NewFeature:The code behind the macro BOOST_FOREACH is no more analyzed, unless the command line --cs-no-boost is used.
  • NewFeature:New command line option --cs-output-abs.
  • Change:The support for Qt3, Qt4 and Boost is per default activated. Disabling it can be performed using command line switches --cs-no-qt3, --cs-no-qt4 and --cs-no-boost.
  • Change:The full instrumentation at decision and condition level is now the default setting for the instrumentation.
Release note of Squish Coco v2.0.1
Changes between Squish Coco v2.0.0 and Squish Coco v2.0.1:
  • BugFix:Support setting define which contains escaped quotes per command line (ex: "-DVERSION=\"version 1.1\"")
  • BugFix:Compilation issue of TextEdit sample when spaces are in the path corrected.
License Dialog
  • BugFix:Retrieving a license key is now interruptible and displays a progress bar.
Release note of Squish Coco v2.0.0

Changes between TestCocoon v1.6 and Squish Coco v2.0.0:

Microsoft® Visual Studio®Add-In
  • NewFeature:Support for Microsoft® Visual Studio®2010.
  • BugFix:x64 platform are now recognized and handled.
  • NewFeature:Supporting linking several times the same object into an application.
  • NewFeature:Possibility to filter out execution which doesn’t cover any code.
  • NewFeature:Possibility to filter out source files and functions which are not instrumented.
  • BugFix:Calculation of statistics is able to saturate all available CPU.
  • BugFix:After opening a new instrumentation database, no executions become selected.
  • NewFeature:Possibility to choose between the native file dialog and the dialog provided by Qt.
  • NewFeature:Displaying the execution of a reference release into the list of execution. Executions of the reference release are strikeout, new executions are underlined.
  • NewFeature:Generation of browsable HTML output.
  • Empty functions are no more instrumented.
  • NewFeature:C++0x support.
  • NewFeature:Verbose output of the CoverageScanner output when using command line option --cs-verbose.
  • NewFeature:Saving the contains of a tree view waits until all statistics are computed.
  • NewFeature:Q_FOREACH macro es now handled to avoid false negative code coverage statistics. Once a look is executed once, the Q_FOREACH macro is considered as 100% covered.
  • NewFeature:Execution comments in HTML form are parsed from the execution report. This permits to add extra log information to the execution report.
  • BugFix:Correction of an EMMA-XML issue: global statistics are now ordered in EMMA-XML report as following: Line, Method, Class and then Block
  • NewFeature:Generation of browsable HTML output.