Squish Coco

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

Release note of Squish Coco v3.4.1
Changes between Squish Coco v3.4.0 and Squish Coco v3.4.1:
  • New FeatureCoverageScanner API propage the test name, test state and comments to all DLL (including its children) linked to an executable of DLL.
  • New Feature: Import warning which checks the coherence of the the test meta-informations (test name, status and comments)
License Server
  • Bug Fix: Crash fixed with new license key formats.
Release note of Squish Coco v3.4.0
Changes between Squish Coco v3.3.3 and Squish Coco v3.4.0:
  • New Feature: HTML Tree view of source and functions.
  • New Feature: Coverage for the cases in a switch statement is now counted separately even if the case contains no statements. The old (less precise) behavior can be restored with --cs-combine-switch-cases.
  • New Feature: The Decision Coverage level is now available as a distinct choice without the need to turn off Condition Coverage through --cs-decision.
  • To align naming of coverage levels with other vendors, --cs-branch is now called --cs-basic-blocks. Similarly, the C# pragma and region cov-branch have been renamed to cov-basic-block. The old names are still recognized for backward compatibility. If coverage analysis of ‘empty’ branches is desired, use Decision Coverage.
  • New Feature: Reverse patch analysis. With this feature, a patch file that is already part of the code can be used to find out which tests cover the patched code.
  • New Feature: Bug location: computation of the list of source code lines most likely responsible for a failure in the test suite. (see chapter Bug Location)
  • New Feature: The computation of the optimized execution order now occurs in the background.
  • New Feature: The dialog to import an execution report has now an integrated preview.
  • New Feature: Simplified report generation dialogs.
Release note of Squish Coco v3.3.3
Changes between Squish Coco v3.3.2 and Squish Coco v3.3.3:
Tool Selector
  • New Feature: Generation of compiler wrappers for CygWin and MinGW’s compilers.
  • New Feature: Splitting long lists over several pages in the HTML report.
Microsoft® Visual Studio® Add-In
  • Bug Fix: Installation issue on Microsoft® Visual Studio® 2005 fixed.
Release note of Squish Coco v3.3.2
Changes between Squish Coco v3.3.1 and Squish Coco v3.3.2:
  • New Feature: Wildcards are supported to specify the list of execution reports.

    Example: cmcsexeimport -m project.csmes --title="execution" *.csexe

  • New Feature: Wildcards are supported to specify the list of input databases.

    Example: cmmerge -o output.csmes inputs_*.csmes

  • Bug Fix: Support of C++11 shared_ptr template in expressions.
  • Bug Fix: C# 6.0 auto-property initializer supported.
Microsoft® Visual Studio® Add-In
  • New Feature: Microsoft® Visual Studio® 2015 support.
Release note of Squish Coco v3.3.1
Changes between Squish Coco v3.3.0 and Squish Coco v3.3.1:
  • Bug Fix: Simplified handling of node-locked licenses under UNIX® and Apple® Mac OS X.

    A Coco program with a node-locked license now expects that the license had been generated on the same account as that one under which it runs.

    Previously, the account to which a license was bound was that one under which the user that started it had initially logged in. Changing the account with su or sudo had no influence on the license. This means that under some circumstances a license was generated for an account different from that under which Squish Coco ran, but it worked nevertheless. In these cases, the license must now be renewed.

  • Bug Fix: Patch analysis: Issue related to parsing of date formats from different time zones resolved.
Release note of Squish Coco v3.3.0
Changes between Squish Coco v3.2.3 and Squish Coco v3.3.0:
  • Speed improvement in the detection of duplicate executions.
  • Speed improvements in the merge of instrumentation databases, the generation of HTML reports, the computation of the list of executions that execute a source line, and in the computation of the code coverage metrics.
  • New Feature: Import of comments and manual validations from projects which are checked out in different directories.
  • New Feature: Patch analysis.
  • Bug Fix: Full instrumentation of the C/C++ “ternary if” operator: In an expression a ? b : c, all boolean operands in the expressions a, b or c are instrumented too. Nested ternary operators are therefore instrumented completely.
  • New Feature: Automatic exclusion of the coverage analysis of all headers which are inconsistent (for example, built with different preprocessor options). A linker warning lists all files which are excluded.
  • New Feature: Speed improvement of the detection of duplicate executions.
  • New Feature: Patch analysis.
  • New Feature: In the HTML report, a list of the tests which execute a source code line is displayed in the tooltip.
  • New Feature: A list of the executions that cover an instrumented statement is displayed in the tooltip for a source code line.
  • General speed improvements.
  • New Feature: Importing comments and manual validations from projects which are checked out in different directories.
Release note of Squish Coco v3.2.3
Changes between Squish Coco v3.2.2 and Squish Coco v3.2.3:
  • Bug Fix: Memory usage reduced. This fixes an "out-of-memory" error message during the compilation.
  • New Feature: 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.1 and Squish Coco v3.2.2:
  • Bug Fix: More meaningful instrumentation of the C# keywords using, lock, unsafe and fixed.
  • New Feature: If the debugger is connected, CoverageScanner runtime information is displayed in the Microsoft® Visual Studio® console.
  • New Feature: In C# files, the “dump on event” feature can be enabled through a macro definition.
Microsoft® Visual Studio® Add-In
  • New Feature: Configuration of the debug output of Squish Coco.
  • New Feature: Configuration of the Windows event handler.
Release note of Squish Coco v3.2.1
Changes between Squish Coco v3.2.0 and Squish Coco v3.2.1:
  • New Feature: Support of Shift-JIS text encoding.
  • New Feature: Execution report of Silverlight C# binaries is stored on an Isolated Storage when storing on the local file system is not allowed.
  • Bug Fix: Support of strong-named C# assemblies.
  • New Feature: The Preferences dialog now allows to switch off syntax highlighting.
Release note of Squish Coco v3.2.0
Changes between Squish Coco v3.1.0 and Squish Coco v3.2.0:
  • New Feature: Precise error message when a merge failure occurs.
  • New Feature: Thresholds for the overall statistics.
  • New Feature: Statistics of manual validated instrumentation (for each function, source code and for the complete project).
  • New Feature:  Statistics of manual validated instrumentation (for each function, source code and for the complete project) for the HTML and CSV report.
  • Speed improvements.
  • New Feature--delete permits to delete all input files after a successful merge.
  • New Feature--blackbox permits to generate an instrumentation database for black-box testing.
Release note of Squish Coco v3.1.0

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

Squish Coco
  • New Feature: NUnit addin.
Tool Selector
  • Bug Fix: Detection of CygWin installations for x64 systems corrected.
  • VisualDSP® support.
  • Bug Fix: Support of UTF16 source files.
  • New Feature: 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.
  • New Feature: 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.
  • New Feature: Refactoring of the HTML report:
    • New Feature: Single HTML file and full HTML report have now the same look and feel.
    • New Feature: Source directories statistics in a clickable tree view.
    • New Feature: Class directories statistics in a clickable tree view.
    • New Feature: Statistic tables are interactively sortable.
    • New Feature: Tool-tip for a detailed information on each table item.
  • New Feature: CSV table export for all informations that can be exported through a HTML report.
  • New Feature: The source, execution and function dialog can now be interactively switched between a list and tree view.
  • New FeatureCoverageBrowser reacts automatically when the instrumentation database file is regenerated and reload it automatically.
  • New Feature: The source, execution and function dialog can now be interactively switched between a list and tree view.
  • New FeatureCoverageBrowser 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.1 and Squish Coco v3.0.2:

Squish Coco
  • New Feature: Solaris support.
  • Bug FixEMMA-XML Report generation corrected when excluding source files.
  • New Feature: Drag and drop of .csmes and .csexe files supported.
  • New Feature: Format specifier %c added to --cs-output.
  • Bug Fix: Issues with strings in __declspec extension fixed.
  • Bug Fix: Deal with non-instrumentable OpenMP code.
  • Bug Fix: C++11 string literal support. (example: R"delim(")delim")
  • Bug Fix: UTF-8 source file can now be compiled.
  • Bug Fix: C++ Line comments ending a source file are no more generating a parsing issue.
  • Bug Fix: C# linq expressions are now instrumented.
  • New Feature: New C# API function CoverageScanner.__coveragescanner_init().
  • New Feature: 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.
  • Bug Fix: New command line switch for C++ mixed mode: --cs-architecture=CLR
  • Bug Fix: Several parsing issue for C# and C++ code fixed.
  • Bug Fix: Support of multiple header files included with/FI when generating precompiled headers.
  • Bug Fix: C# support for Microsoft® Visual Studio® 2013.
Tool Selector
  • New Feature: 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.0 and Squish Coco v3.0.1:

  • New Feature: 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.
  • New Feature: Source code annotation though code comments.
  • Bug Fix: clang compiler support on Apple® Mac OS X.
Microsoft® Visual Studio® Add-In
  • Bug Fix: Excluding source directories from the instrumentation is working again.
Release note of Squish Coco v3.0.0

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

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

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

  • New Feature: 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.
  • New Feature: 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).
  • New Feature: Line coverage information is now also available in the preprocessed view of the source code.
  • New Feature: Automatic copying to the clipboard of a selected source code fragment.
  • New Feature: Generation of Cobertura reports.
  • New Feature: simple support of GNU linker script for MinGW.
  • New Feature: clang support on Apple® Mac OS X.
  • New Feature: Configuration of instrumentation warnings and errors.
  • Bug Fixthrow statement are now instrumented in expressions. (example: int a = b ? 0 : throw 0 ;)
  • Bug Fix/Yc and /Yu can now be used simultaneously for the Microsoft® Visual Studio® compiler.
  • New FeatureBETA: Tcl support.
  • New FeatureBETA: C# support.
  • New Feature: Generation of Cobertura reports.
Release note of Squish Coco v2.1.8
Changes between Squish Coco v2.1.7 and Squish Coco v2.1.8:
  • New Feature: Configuration of the color scheme.
  • New Feature: Excluding source files interactively from the instrumentation.
  • New Feature: Configuration of the maximum number of threads which can be used for a computation.
  • New Feature: Progress information during the generation of a code coverage report.
  • New Feature: Better detection of dead code after a switch/case statement.
  • New Feature: Optimized handling of C++ header which permits to reduce the size of the instrumentation database and the time for generating reports.
  • New Feature: Excluding source files from the report generation.
  • New Feature: 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.
  • New Featurecmcsexeimport 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.6 and Squish Coco v2.1.7:
  • 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.
  • New Feature: Source code viewer:
    • New Feature: Sources are displayed in a tabbed view.
    • New Feature: Preview of the instrumentation of a whole file into the scroll bar.
    • New Feature: Tooltip which displays the detail of an explanation of a source line.
    • New Feature: More intuitive text search function (search when typing into the source code window) and interactive highlighting of the matched patterns.
    • New Feature: Dock/undock line number column and statistic column.
  • Bug FixCoverageScanner is now able to handle "Whole Program Optimization" (option /GL) and "Use Link Time Code Generation" (option /LTCG) of Microsoft® Visual Studio®.
  • New Feature: Command line option --cs-vs2010-lambda which permits to instrument lambda functions of Microsoft® Visual Studio® 2010
  • New Feature: Support for "for each" C++ syntax extension of Microsoft® Visual Studio®.
  • Bug Fix: Support of ccache wrapper.
  • Bug FixCoverageScanner detects now dead code after a try/catch block.
  • Bug Fix: Precompiled header issues.
  • Bug Fix: 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.
  • New Feature: 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.5 and Squish Coco v2.1.6:
  • New Feature: Possibility to choose the source code type used for comparing software releases (original source code or preprocessed source code)
  • New Feature: New command line options which permits to specify command line arguments into a text file (--cs-option-file).
  • New Feature: New command line options which permits to specify to select directly the CoverageScanner profile (--cs-profile).
  • New Feature: possibility to customize the EMMA-XML report
Release note of Squish Coco v2.1.5
Changes between Squish Coco v2.1.4 and Squish Coco v2.1.5:
  • New Feature: Support for precompiled headers for Microsoft® Visual Studio® compiler.
  • New Feature: Xoreax IncrediBuild support (http://www.incredibuild.com/incredibuild-product-overview.html)
  • Bug Fix: 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)
  • New Feature: New command line options which permits to specify which extensions are used for C++ (--cs-cpp-ext) and C (--cs-c-ext) files.
  • New Feature: 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).
  • Bug Fix-m32 and -m64 command line support for GCC.
  • Bug Fix: Compilation issue on Microsoft® Visual Studio® for instrumented C++0x lambda function corrected.
  • Bug Fix: Support of __stdcall as default calling convention when compiling with Microsoft® Visual Studio®.
  • New Feature: New command line option for UNIX® platform which permits to generate a coverage report on the reception of a signal (--cs-dump-on-signal).
  • New Feature: 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.
  • Changecmreport 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.3 and Squish Coco v2.1.4:
  • New Feature: Import summary display the imported execution comment.
  • New Feature: 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.
  • Bug Fix: 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.
  • Bug Fix: The line coverage was wrongly calculated before some switch/case statements.
License Manager
  • New Feature: The license manager is now a wizard dialog.
  • New Feature: 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.2 and Squish Coco v2.1.3:
  • New Feature/MP command line (parallel build) supported for Microsoft® Visual Studio® compiler.
  • Bug Fix: Parsing issues of C++11 templates corrected.
  • New Feature: The Build Environment Selection tool generate CoverageScanner wrapper for CygWin.
Microsoft® Visual Studio® Add-In
  • New Feature: 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
  • New Feature: Possibility to specify a custom installation directory.
  • New Feature: Command line interface on Unix.
  • Bug Fix: More verbose error message in the case of network failures.
Release note of Squish Coco v2.1.2
Changes between Squish Coco v2.1.1 and Squish Coco v2.1.2:
  • Bug Fix: Multi line #pragma supported.
  • Bug Fix::new keyword supported.
Microsoft® Visual Studio® Add-In
  • Bug Fix: Support of solutions with folder.
  • Bug Fix: Support of solutions which mix C++ and C# projects.
Release note of Squish Coco v2.1.1
Changes between Squish Coco v2.1.0 and Squish Coco v2.1.1:
  • ChangeCoverageScanner 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).
  • New Feature: 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.
  • Bug Fix: Crash when using wildcard expression on file name on UNIX®.
  • New Feature: The instrumentation table are now generated during the runtime. This permits to handle stubs, which overwrite objects from libraries.
  • New Feature: Constructor which use member initialization list are instrumented even if their body is does not contain code.
  • New Feature: C++ CLR language extension of Microsoft® Visual Studio® supported.
  • New Feature: Navigation buttons are disables if they are irrelevant. After reaching the end of search, the navigation buttons start from the beginning again.
  • Bug Fix: Clicking on a function in the method list, show it entirely in the source window.
  • Bug Fix: Statistics count was wrongly computed when the instrumentation is computed with line coverage support and the test count mode was activated.
  • New Feature: 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.
  • New Feature: Windows x64 package available.
  • New FeatureEMMA-XML report generated now condition coverage statistics. This requires Jenkins EMMA-XML plugin version 1.29 or above.
  • New Feature: JUnit report generation.
Release note of Squish Coco v2.1.0
Changes between Squish Coco v2.0.3 and Squish Coco v2.1.0:
Squish Coco
  • New Feature: Recognition of dead code inside a function.
  • New Feature: Function coverage.
  • New Feature: Line coverage.
  • Code coverage count is enabled per default.
  • Bug FixEMMA-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
  • Bug Fix: 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.
  • Bug Fix__try and __finally keyword now handled on Windows for C files.
  • Bug Fix: g++ compiler wrapper treats files with .c extension as C++ files.
  • Bug Fix: On Windows, command line containing directory name which ends with a backslash are now correctly escaped.
  • Bug Fix: ar and ld wrapper are now working, and do not report that the profile cannot be found.
  • New Feature: The code behind the macro BOOST_FOREACH is no more analyzed, unless the command line --cs-no-boost is used.
  • New Feature: 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:
  • Bug Fix: Support setting define which contains escaped quotes per command line (ex: "-DVERSION=\"version 1.1\"")
  • Bug Fix: Compilation issue of TextEdit sample when spaces are in the path corrected.
License Dialog
  • Bug Fix: 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
  • New Feature: Support for Microsoft® Visual Studio® 2010.
  • Bug Fix: x64 platform are now recognized and handled.
  • New Feature: Supporting linking several times the same object into an application.
  • New Feature: Possibility to filter out execution which does not cover any code.
  • New Feature: Possibility to filter out source files and functions which are not instrumented.
  • 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.
  • New Feature: Generation of browsable HTML output.
  • 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 contents of a tree view waits until all statistics are computed.
  • New FeatureQ_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.
  • New Feature: Execution comments in HTML form are parsed from the execution report. This permits to add extra log information to the execution report.
  • 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
  • New Feature: Generation of browsable HTML output.
email squish@froglogic.com