Release Notes

Coco v7.1.2

  • CoverageScanner:
    • Bug fix: Support of cases expressions with constant expressions (like "[case (uint{1}):}".
    • Bug fix: Issues with file name containing a star "*" or a single quote "'".
    • Bug fix: Issue fixed when more than one source file is compiled with a sincle command and MCC is used.
    • Bug fix: Several parsing issues.

Coco v7.1.1

  • CoverageScanner:
    • Bug fix: Wrong function name in the list of functions when a function returns a pointer to a function, as in "void (*foo())()".
  • Reports:
    • Bug Fix: Links to sources in HTML reports incorrectly pointed to the page with command line options instead of the source code. There is now an icon for each source file with a link to the command line options page.
  • Test Data Generation:
    • Bug Fix: CocoTestEngine did not work on MacOS.

Coco v7.1.0

  • CoverageScanner:
    • Bug fix: Parsing problem when C++ templates are used in if statements.
    • Bug fix: Fixed some bugs in the integration of the Texas Instruments cl6x compiler.
    • New Feature: Many system header files that cause instrumentation failures are now automatically excluded through the NATIVE_TOOLCHAIN_ROOT variable in the .cspro file.
    • New Feature: Detailed diagnostics regarding compiler flags when a file is compiled multiple times resulting in inconsistent instrumentation.
    • New Feature: Special handling of constexpr functions through the --cs-constexpr flag.
    • Bug fix: Broken multi-line comments using // in the source code stored in *.csmes files.
  • CoverageBrowser:
    • Bug Fix: Many small CoverageBrowser usability issues got fixed.
    • New Feature: The compiler flags for each source file are displayed in the Explanation pane of CoverageBrowser.
  • CocoQML:
    • Bug Fix: Fixed several QML parsing and instrumentation bugs
    • Removed the cocoqmlscanner option --no-tracker.
    • New Feature: Added a wildcard-based blacklist for cocoqmlscanner.
  • Reports:
    • Bug Fix: Problems when exporting Function Coverage to Cobertura and SonarQube report
    • Introduce aliases to some cmreport command line flags to make them more regular. This includes --sonarqube, --coverage-line and --coverage-function. The old flags remain for compatibility.
  • cmedit:
    • Bug Fix: Some source files in the .csmes file were not renamed by cmedit.
  • Installation:
  • Test Data Generation:
    • Bug Fix: Several smaller testdataeditor bugs got fixed.
  • Documentation:
    • Reorganization of the documentation to make its contents easier to find
    • Added a chapter to explain the CoverageScanner warning "Instrumentation is different"
  • License server:
    • Bug Fix: Missing library for license server under CentOS 7.

Coco v7.0.0

Changes between Coco v6.1.1 and Coco v7.0.0:

  • General:
    • New Feature: Automatic test data generation.
  • CoverageScanner:
    • New Feature: Support for TI C6000 C/C++ Compiler.
    • New Feature: C++ comment style for multi-line annotation.
    • Bug fix: Multiline strings generate an error when used in precompiled C/C++ headers.
    • Bug fix: Parsing issues with C++20 requires expression.
    • Bug fix: Inconsistent coverage of the opening curly bracket of the main() function under GCC and Microsoft Visual C++.
    • Bug fix: C++ static_assert() declaration creates compilation errors.
    • Bug fix: Support for new C# 9.0 pattern matching.
    • Bug fix: C# init only setters cause compilation errors.
    • Bug fix: The path to the native toolchain is ignored when set via --cs-native-toolchain.
    • Bug fix: The --cs-verbose-file option does not produce a log file.
    • Bug fix: Instrumenting nested ternary conditional operators produces incorrect results.
  • cmreport:
    • Bug fix: Consistency check of the coverage level between cmreport and the build.
  • Installation:
    • Bug fix: cocolicserver is not present in the macOS version.

Coco v6.1.1

Changes between Coco v6.1.0 and Coco v6.1.1:

  • CocoQML:
    • Bug Fix: Issue of files without instrumentation points causing cocoqmlscanner to fail.
  • Installation:
    • Bug Fix: Adding missing compiler wrappers on Linux and Windows for GreenHills, TI, Metaware and ARM-DS toolchains.

Coco v6.1.0

Changes between Coco v6.0.0 and Coco v6.1.0:

  • CoverageScanner:
    • New Feature: Metaware compiler support
    • New Feature: TI compiler support
    • Bug Fix: Allowing .obj as object extension on Linux.
    • Bug Fix: Parsing issue of C++ templates
    • New Feature: Support of constexpr instrumentation (experimental).
    • New Feature: GreenHills RH850 compiler support.
    • New Feature: Adding TI, Metaware and GreenHills compilers wrappers to the Linux distribution.
    • Bug Fix: C++23 if consteval statement supported.
    • Bug Fix: C++ final specifier supported.
    • Bug Fix: Issues with instrumenting applications for QNX.
    • Bug Fix: Issues with instrumenting Qt applications using MinGW.
    • Bug Fix: Issue of escaping strings in a response file.
    • Bug Fix: Issue with instrumenting captured variables in lambda expressions.
    • Bug Fix: Issue with response files in parallel builds on Visual Studio.
  • Build Environment Selection:
    • New Feature: TI Compiler support.
  • coveragebrowser:
    • Bug Fix: Crash when merging .csmes files fixed.
  • cmreport:
    • New Feature: SonarQube code coverage report generation.
  • CocoQML:
    • Bug Fix: Incorrect instrumentation of switch statements.
    • Bug Fix: Support for continue statements inside switch statements.
    • Bug Fix: Broken instrumentation of arrays initialized with an empty element.
    • Bug Fix: Issue with parsing arrow function expressions (=>) used in forEach loops.
    • New Feature: cocoqmlscanner is now fully controlled via command line arguments
    • Bug Fix: Temporary .csmes files are no longer created for each .qml and .js file.
    • Bug Fix: function() {...} declarations are now parsed and instrumented.
    • Bug Fix: Issue with .csmes files overwriting each other when created from the same .qml and .js base name.
    • Bug Fix: cocoqmlscanner now catches early instrumentation failures and does not just fail silently.
    • Bug Fix: Double instrumentation of return statements inside if blocks.
    • Bug Fix: Missing instrumentation of finally block in exception handling.

Coco v6.0.0

Changes between Coco v5.1.0 and Coco v6.0.0:

  • IDE Integrations:
    • New Feature: Code coverage information can be displayed in the editor window of most IDEs. This is possible with a new mode of CoverageBrowser that lets it act as a Language Server Protocol (LSP) server.

      At a minimum, an editor or IDE that supports LSP will display coverage information via annotations or tooltips. For Visual Studio, Visual Studio Code and Qt Creator, dedicated plugins are provided that highlight coverage through background colors. Sample setup instructions are provided in Integration of CoverageBrowser with an IDE.

  • CoverageScanner:
    • Bug Fix: Various C# and C++ parsing issues.
    • New Feature: The flag --cs-exit-function now supports fully-qualified names (e.g. Foo::bar()).
    • New Feature: Support of the C++20 keywords consteval, required and concept.
    • New Feature: Support of the C++ keyword override.
    • New Feature: Support of the BOOST_THROW_EXCEPTION macro.
    • New Feature: CoverageScanner now shows all header files even if they do not contain any code. If wanted, these files can later be excluded in CoverageBrowser or when generating a report.
    • Bug Fix: Support for the C# 9.0 new operator with type interference.
    • Bug Fix: Support for the C# 8.0 using keyword extension.
  • CoverageBrowser:
    • New Feature: The new --lsp-stdio command line switch turns CoverageBrowser into a Language Server Protocol (LSP) server that communicates via stdin and stdout with an IDE and sends Coverage information to it. Similarly, --lsp-stdio-proxy lets CoverageBrowser act as a proxy for an ordinary LSP server.
    • Bug Fix: Save/restore of window position for multi-screen setups.
    • New Feature: Improved save/restore for instrumentation database settings.
  • Platform Support:
    • Bug Fix: Support for version 9 of IAR Embedded Workbench.
    • New Feature: Support for clang-based cross-compilation to Linux™ from Microsoft® Windows.
    • New Feature: Support for the clang-cl compiler.
    • New Feature: New style of .csexe file locking that works on NFS file shares.
  • License:
    • New Feature: New license key supporting the subscription model.
  • Microsoft® Visual Studio® Add-In:
    • New Feature: Support Microsoft® Visual Studio® 2022.
    • New Feature: New Add-in that highlights coverage in the IDE.

Coco v5.1.0

Changes between Coco v5.0.3 and Coco v5.1.0:

  • Microsoft® Visual Studio® Add-In:
    • New Feature: Replaced the old Microsoft® Visual Studio® Add-In with a stand-alone program to edit the project configuration files; it also works with Microsoft® MSBuild and similar build systems.
  • Build Environment Selection:
    • New Feature: The program has now command line parameters that can be used for scripted installations.
  • CoverageBrowser:
    • Bug Fix: Diff functionality did not work correctly with code that was split over two lines.
    • Bug Fix: Accelerator keys were displayed incorrectly in the titles of docking windows.
  • cmreport:
    • Bug Fix: Issues with Cobertura reports for Azure DevOps corrected.
    • Bug Fix: Manual validations are now optionally reported in Cobertura reports.
  • CoverageScanner:
    • Bug Fix: The C++20 threeway comparison operator <=> is now supported.
    • Bug Fix: If a function name was surrounded by braces (like, "int (foo)() { return 0 ; }"), the wrong name was displayed in the reports.
    • Bug Fix: Build issues for Linux Kernel modules.
    • Bug Fix: C++11 handling of final fixed.
    • Bug Fix: C++11 handling of const_expr fixed.
    • Bug Fix: Issue with static initializer of C++ structures fixed.
    • New Feature: A command line flag to specify an additional source file which contains custom code that can be used in an instrumented program (--cs-custom-library-source=<file>).
    • New Feature: Command line flags to specify a trigger functions (--cs-trigger-function=<triggerfunction>) and a custom function which saves the coverage data (--cs-coverage-save-function=<savefunction>).
    • Bug Fix: Support of linker input files for csar (ar switch @).
    • New Feature: The memory pool provides now a custom exception to handle an out-of-memory exception. (--cs-memory-alloc-failure-function=<string>)
    • Bug Fix: Unclear error messages about licensing are reworded.
    • New Feature: .NET Core support on Windows.
    • New Feature: Guess typical --cs-libgen parameters for instrumentation of kernel modules and cross-compilations.
  • CocoQML:
    • New Feature: Instrumentation is now possible with cocoqmlscanner alone and a new "tracker object" that is compiled by the customer.

Coco v5.0.3

Changes between Coco v5.0.2 and Coco v5.0.3:

  • CoverageScanner:
    • Bug Fix: C++ ISO 646 keywords support of 'and', 'not' and 'or' for MC/DC and condition coverage.
    • Bug Fix: Removing comments in the preprocessed output that had been enabled in version v5.0.2.

Coco v5.0.2

Changes between Coco v5.0.1 and Coco v5.0.2:

  • CoverageScanner:
  • Microsoft® Windows installer:
    • Bug Fix: Silent installation no longer calls the license wizard.
  • Microsoft® Windows:
    • Bug Fix: Crash of the command line tools on Microsoft® Windows 10.

Coco v5.0.1

Changes between Coco v5.0.0 and Coco v5.0.1:

  • CoverageScanner:
    • Bug Fix: Compilation issues when profiling is used on Microsoft® Visual Studio® 2008.
    • New Feature: Instrumentation of boolean expressions whose arguments are class instances with a custom conversion to boolean or integer types.
    • Bug Fix: Compilation issues fixed when using boolean expressions in template parameters.
    • Bug Fix: Line coverage issues fixed.
    • Bug Fix: Compilation issue fixed when performing boolean operations on function pointers.
    • Bug Fix: Compilation issue fixed with precompiled headers when compiling with Microsoft® Visual Studio®.
  • cmreport:
    • Bug Fix: Issue with HTML reports when the sources are spread over several Windows drives (C:, D:, …)
  • Microsoft® Windows installer:
    • Bug Fix: Missing DLL installed.

Coco v5.0.0

Changes between Coco v4.3.3 and Coco v5.0.0:

  • CoverageBrowser:
    • New Feature: Function profiler.
    • New Feature: Metric difference between two releases.
    • New Feature: Possibility to exclude all uninstrumented files from patch analysis.
    • Bug Fix: Usability issue when displaying metrics fixed.
  • CoverageScanner:
    • Bug Fix: Issue with execution counter of 64 bits fixed.
    • New Feature: Support for ARM DS-5.
    • New Feature: Function profiler.
    • New Feature: Automatic integration with Squish for Qt.
    • Bug Fix: Compilation issues of C# and C++ code fixed. (Ternary operator, noexcept keyword, lambda functions,…)
    • Bug Fix: Annotations support for C#.
    • Bug Fix: dotnet exit issue on Linux.
  • cmedit:
    • New Feature: Possibility to rename functions. (Experimental)
  • cmreport:
    • Bug Fix: Verification of the coherence of the coverage settings selected through the command line.
    • New Feature: Possibility to exclude from the patch analysis the file which are not instrumented.
  • CocoQML:
    • Bug Fix: Multi-threaded QML applications can now be instrumented.
    • Bug Fix: Various other bug fixes: Instrumentation of case statements, complex ternary operators, other problems with complex syntax.
  • License Server:
    • New Feature: System wide configuration file (on /etc/) for an easier deployment.
  • Squish:
    • New Feature: Better integration of Squish and Coco.

Coco v4.3.3

Changes between Coco v4.3.2 and Coco v4.3.3:

  • Microsoft® Visual Studio® Add-In:
    • New Feature: Microsoft® Visual Studio® 2019 support.
    • Bug Fix: Installation issues with Microsoft® Visual Studio® 2017 add-in.
  • CoverageScanner:
    • Bug Fix: C# compilation issues fixed. (Issues with string literals, multi-arrays, out parameters and MCC instrumentations issues)
    • New Feature: .NET Core support on Linux™.
    • Bug Fix: Issue with C++ fallthrough attribute fixed.
    • Bug Fix: Error message compliant with Microsoft® MSBuild.
    • Bug Fix: Compilation issues fixed with C++ code instrumented at MCC level
    • Bug Fix: The .csexe extension is now added in the same way for C++ and C# when using COVERAGESCANNER_ARGS environment variable.
    • Bug Fix: Precompiled header issues fixed.

Coco v4.3.2

Changes between Coco v4.3.1 and Coco v4.3.2:

  • cmmerge:
    • Bug Fix: C++ files in which a namespace is set by a preprocessor symbol are now handled correctly.
  • CoverageScanner:
    • Bug Fix: Line coverage issues in nested blocks fixed.
    • Bug Fix: Compilation issues with GNU's statement expression extension corrected.
    • Bug Fix: Better handling of path case in Microsoft® Windows.
    • Bug Fix: Fixed "undefined symbol" linker issue with static libraries.
    • New Feature: CoverageScanner can now be disabled with the preprocessor symbol COVERAGESCANNER_COVERAGE_OFF.
    • New Feature: PureCoverage annotations can now be disabled.
    • Bug Fix: C# compilation issues fixed. (Issues with new operator, tertiary operators, nullables and bodied expressions.)
    • Bug Fix: Dead code detection after a throw statement.
    • Bug Fix: C++-14 and C++-11 compilation issues fixed. (Issues with "if constexpr" statements, noexcept, template ellipsis, lambda expressions and function tables.)

Coco v4.3.1

Changes between Coco v4.3.0 and Coco v4.3.1:

  • cmreport:
    • Bug Fix: Line coverage fixed for nested blocks with only sequential instructions inside.
    • Bug Fix: Coverage after merging differently preprocessed versions of a source is now correct.
  • cmmerge:
    • Bug Fix: Annotations from differently preprocessed source files are now imported correctly.
  • CoverageScanner:
    • Bug Fix: A C# parsing issue concerning the null-coalescing operator ('??') is fixed.
    • Bug Fix: Some C++ parsing issues are resolved.
    • Bug Fix: The annotation of some lines was ignored in some cases.
    • Bug Fix: Extremely long C# compiler command lines are now handled correctly.

Coco v4.3.0

Changes between Coco v4.2.2 and Coco v4.3.0:

  • CoverageScanner:
    • New Feature: Computing the execution time of tests.
    • Bug Fix: Compilation issue fixed for Qt5 code.
  • Microsoft® Visual Studio® Add-In:
    • Bug Fix: Repair of broken executable paths for Microsoft® Visual Studio® 2017.
  • CocoQML:
    • New Feature: Release of cocoqmlscanner, a program to instruments all QML and JavaScript files of a project in one step.
    • New Feature: New environment variable COCOQML_DEFAULT_BLACKLIST to exclude or include Qt QML system files from coverage.

Coco v4.2.2

Changes between Coco v4.2.1 and Coco v4.2.2:

  • CoverageScanner:
    • New Feature: Instrumentation of boolean expressions in return statements

Coco v4.2.1

Changes between Coco v4.2.0 and Coco v4.2.1:

  • CoverageScanner:
    • Bug Fix: Instrumentation of the ternary operator in C cast expressions.
    • Bug Fix: Compilation issue fixed for C++11 keyword noexecept.
    • New Feature: Qt5 support for QStringLiteral.
    • New Feature: Support for Windows Embedded Compact 2013.

Coco v4.2.0

Changes between Coco v4.1.2 and Coco v4.2.0:

  • Coco:
    • New Feature: Cyclomatic complexity (McCabe) metric.
    • New Feature: Source file renaming and merging of test results from different platforms.
  • CoverageScanner:
    • Bug Fix: Faster generation of execution reports.
    • On Windows, the absolute file names are no more converted to the lower case.
  • cmmerge:
    • Bug Fix: Merging issue of manual validations corrected when MCC or MC/DC metric is used.
  • cmreport:
    • Bug Fix: List of manual validations does no longer include uninstrumented lines.
    • New Feature: The text report now exports all manual validations.

Coco v4.1.2

Changes between Coco v4.1.1 and Coco v4.1.2:

  • CocoQML:
    • New Feature: The add-on has now a cache in which it stores the instrumented files. The cache is by default disabled.

Coco v4.1.1

Changes between Coco v4.1.0 and Coco v4.1.1:

  • Command line tools:
    • New Feature: Most command line tools now have a command line option @<filename> that lets you read options from a file.
  • Microsoft® Visual Studio® Add-In:
    • New Feature: Microsoft® Visual Studio® 2017 support.

Coco v4.1.0

Changes between Coco v4.0.4 and Coco v4.1.0:

  • CoverageBrowser:
    • New Feature: Streamlined the UI design of the Execution Report import dialog.
  • CoverageScanner:
    • New Feature: Support of sc_uint template of SystemC.
    • Bug Fix: Speed and memory usage improvement of instrumented applications.
    • New Feature: Support of C++ source files compiled with different preprocessor directives.
    • New Feature: Better support of lambda functions.
  • CocoQML:
    • Bug Fix: Problem with .pragma fixed.
  • Microsoft® Windows Installer:
    • Bug Fix: Fixed file permission issues.

Coco v4.0.4

Changes between Coco v4.0.3 and Coco v4.0.4:

  • CoverageScanner:
    • New Feature: Expansion of environment variables at runtime with command line options of the form --cs-output=<<string>>.

Coco v4.0.3

Changes between Coco v4.0.2 and Coco v4.0.3:

  • CocoQML:
    • New Feature: An experimental add-on for coverage of QML code is now available.
  • CoverageScanner:
    • New Feature: The option --cs-no-line-directive now also works for C#.
    • Speed improvement of the execution report generation.
  • Coco:
    • Bug Fix: ARM® Keil® Vision v5.23 support. (The installation is now performed by the "Build Environment Selection" tool)

Coco v4.0.2

Changes between Coco v4.0.1 and Coco v4.0.2:

  • CoverageScanner:
    • Bug Fix: Compilation issues fixed for projects with precompiled headers and MCC or MC/DC instrumentation.

Coco v4.0.1

Changes between Coco v4.0.0 and Coco v4.0.1:

  • Microsoft® Visual Studio® Add-In:
    • Bug Fix: Coverage settings of C# projects are now applied to all platforms of a specific configuration.
  • CoverageScanner:
    • Bug Fix: Compilation issues fixed for C# projects instrumented with MCC and MC/DC metric.

Coco v4.0.0

Changes between Coco v3.4.1 and Coco v4.0.0:

  • Coco:
    • New Feature: New coverage metrics MCC (Multiple Condition Coverage) and MC/DC (Modified Condition/Decision Coverage)
  • CoverageBrowser:
    • New Feature: Difference analysis between two software versions will highlight changes in instructions only and ignore changes in source code comments.
    • Bug Fix: Minor GUI usability improvements.
  • cmreport:
    • New Feature: The EMMA-XML report format has been extended to support Decision, MC/DC and MCC coverage. A new dedicated Jenkins EMMA-XML plugin is available.
    • New Feature: Difference analysis between two software versions will highlight changes in instructions only and ignore changes in source code comments.
  • CoverageScanner:
    • New Feature: To avoid potential overflows the execution counters are now 64 bits wide. The size can be changed with --cs-counter-size.
    • New Feature: --cs-mcc and --cs-mcdc switches activate instrumentation for all code coverage metrics up to MCC.

Coco v3.4.1

Changes between Coco v3.4.0 and Coco v3.4.1:

  • CoverageScanner:
    • New Feature: The CoverageScanner API will propagate the test name, status and comments from an executable or library to all linked DLLs and subordinate DLLs.
  • cmcsexeimport:
    • New Feature: Upon import a warning will be emitted if test meta-information (name, status and comments) is found to be incoherent.
  • License Server:
    • Bug Fix: Crash fixed with new license key formats.

Coco v3.4.0

Changes between Coco v3.3.3 and Coco v3.4.0:

  • cmreport:
    • New Feature: HTML Tree view of source and functions.
  • CoverageScanner:
    • 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.
  • CoverageBrowser:
    • 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 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.

Coco v3.3.3

Changes between Coco v3.3.2 and Coco v3.3.3:

  • Build Environment Selection:
    • New Feature: Generation of compiler wrappers for CygWin and MinGW's compilers.
  • cmreport:
    • 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.

Coco v3.3.2

Changes between Coco v3.3.1 and Coco v3.3.2:

  • cmcsexeimport:
    • New Feature: Wildcards are supported to specify the list of execution reports.

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

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

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

  • CoverageScanner:
    • 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.

Coco v3.3.1

Changes between Coco v3.3.0 and Coco v3.3.1:

  • Licenses:
    • Bug Fix: Simplified handling of node-locked licenses under UNIX® and macOS.

      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 Coco ran, but it worked nevertheless. In these cases, the license must now be renewed.

  • CoverageBrowser:
    • Bug Fix: Patch analysis: Issue related to parsing of date formats from different time zones resolved.

Coco v3.3.0

Changes between Coco v3.2.3 and Coco v3.3.0:

  • CoverageBrowser:
    • 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.
  • CoverageScanner:
    • 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.
  • cmcsexeimport:
    • New Feature: Speed improvement of the detection of duplicate executions.
  • cmreport:
    • 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.
  • cmmerge:
    • General speed improvements.
    • New Feature: Importing comments and manual validations from projects which are checked out in different directories.

Coco v3.2.3

Changes between Coco v3.2.2 and Coco v3.2.3:

  • CoverageScanner:
    • 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)

Coco v3.2.2

Changes between Coco v3.2.1 and Coco v3.2.2:

  • CoverageScanner:
    • 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 Coco.
    • New Feature: Configuration of the Windows event handler.

Coco v3.2.1

Changes between Coco v3.2.0 and Coco v3.2.1:

  • CoverageScanner:
    • 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.
  • CoverageBrowser:
    • New Feature: The Preferences dialog now lets you switch off syntax highlighting.

Coco v3.2.0

Changes between Coco v3.1.0 and Coco v3.2.0:

  • CoverageScanner:
    • New Feature: Precise error message when a merge failure occurs.
  • CoverageBrowser:
    • New Feature: Thresholds for the overall statistics.
    • New Feature: Statistics of manual validated instrumentation (for each function, source code and for the complete project).
  • cmreport:
    • New Feature: Statistics of manual validated instrumentation (for each function, source code and for the complete project) for the HTML and CSV report.
  • cmmerge:
    • Speed improvements.
    • New Feature: --delete deletes all input files after a successful merge.
    • New Feature: --blackbox generates an instrumentation database for black-box testing.

Coco v3.1.0

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

  • Coco:
    • New Feature: NUnit addin.
  • Build Environment Selection:
    • Bug Fix: Detection of CygWin installations for x64 systems corrected.
  • CoverageScanner:
    • 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.
  • cmreport:
    • 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 information 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 Feature: CoverageBrowser reacts automatically when the instrumentation database file is regenerated and reload it automatically.
  • CoverageBrowser:
    • New Feature: The source, execution and function dialog can now be interactively switched between a list and tree view.
    • New Feature: CoverageBrowser reacts automatically when the instrumentation database file is regenerated and reload it automatically.

Coco v3.0.2

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

  • Coco:
    • New Feature: Solaris support.
  • CoverageBrowser:
    • Bug Fix: EMMA-XML Report generation corrected when excluding source files.
    • New Feature: Drag and drop of .csmes and .csexe files supported.
  • CoverageScanner:
    • 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.
  • Build Environment Selection:
    • New Feature: generation of all wrappers for all installed version of GCC compilers.

Coco v3.0.1

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

  • CoverageBrowser:
    • 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.
  • CoverageScanner:
    • New Feature: Source code annotation though code comments.
    • Bug Fix: clang compiler support on macOS.
  • Microsoft® Visual Studio® Add-In:
    • Bug Fix: Excluding source directories from the instrumentation is working again.

Coco v3.0.0

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

  • CoverageScanner:
    • 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 Fix: lib.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.
  • CoverageBrowser:
    • New Feature: Disabling the difference view of a source file is possible.
    • New Feature: Importing reviewer comments from a previous instrumentation database.
  • cmmerge:
    • New Feature: Importing reviewer comments (–reviews-only command line option)

Coco v3.0.0-pre1

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

  • CoverageBrowser:
    • 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.
  • CoverageScanner:
    • New Feature: simple support of GNU linker script for MinGW.
    • New Feature: clang support on macOS.
    • New Feature: Configuration of instrumentation warnings and errors.
    • Bug Fix: throw 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 Feature: Tcl support.
    • New Feature: C# support.
  • cmreport:
    • New Feature: Generation of Cobertura reports.

Coco v2.1.8

Changes between Coco v2.1.7 and Coco v2.1.8:

  • CoverageBrowser:
    • 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.
  • CoverageScanner:
    • New Feature: Better detection of dead code after a switch/case statement.
    • New Feature: Optimized handling of C++ headers which reduces the size of the instrumentation database and the time for generating reports.
  • cmreport:
    • 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.
  • cmcsexeimport:
    • New Feature: cmcsexeimport is now able to import more than one execution report file.

Coco v2.1.7

Changes between Coco v2.1.6 and Coco v2.1.7:

  • CoverageBrowser:
    • 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.
  • CoverageScanner:
    • Bug Fix: CoverageScanner 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 lets you instrument lambda functions in Microsoft® Visual Studio® 2010
    • New Feature: Support for "for each" C++ syntax extension of Microsoft® Visual Studio®.
    • Bug Fix: Support of ccache wrapper.
    • Bug Fix: CoverageScanner 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.
  • cmreport:
    • 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.

Coco v2.1.6

Changes between Coco v2.1.5 and Coco v2.1.6:

  • CoverageBrowser:
    • New Feature: Possibility to choose the source code type used for comparing software releases (original source code or preprocessed source code)
  • CoverageScanner:
    • New Feature: New command line option which lets you specify other command line arguments from a text file (--cs-option-file).
    • New Feature: New command line option which specifies directly the CoverageScanner profile (--cs-profile).
  • cmreport:
    • New Feature: possibility to customize the EMMA-XML report

Coco v2.1.5

Changes between Coco v2.1.4 and Coco v2.1.5:

  • CoverageScanner:
    • New Feature: Support for precompiled headers for Microsoft® Visual Studio® compiler.
    • New Feature: Xoreax IncrediBuild support (
    • 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 to specify which extensions are used for C++ (--cs-cpp-ext) and C (--cs-c-ext) files.
    • New Feature: New command line option which sets the tool chain path (--cs-native-toolchain).
    • Change: Verbose command line option (--cs-verbose) lets you select if the build, the instrumentation or the CoverageScanner API is instrumented. The verbose output of the instrumented file is sent to 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 generates a coverage report on the reception of a signal (--cs-dump-on-signal).
    • New Feature: New command line option for Microsoft® Windows platform which generates a coverage report on the reception of an event (--cs-dump-on-event).
    • Change: Instrumentation tables of libraries are chained together at runtime when compiling with Microsoft® Visual Studio®. The old behavior can be restored with --cs-link-instrumentation-tables.
  • cmreport:
    • 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.

Coco v2.1.4

Changes between Coco v2.1.3 and Coco v2.1.4:

  • CoverageBrowser:
    • New Feature: Import summary display the imported execution comment.
    • New Feature: New instrumentation mode available which displays the computed line coverage of uninstrumented lines. This enables the readability of the source code but has no impact on the coverage statistics.
  • CoverageScanner:
    • 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

Coco v2.1.3

Changes between Coco v2.1.2 and Coco v2.1.3:

  • CoverageScanner:
    • 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 CoverageScanner instruments all non system folders, the selection dialog for a list of directories to include is removed. A dialog which permits selection of the list of directories to exclude replaces it.
  • Linux™ installer:
    • New Feature: Possibility to specify a custom installation directory.
  • cocolic:
    • New Feature: Command line interface on Unix.
    • Bug Fix: More verbose error message in the case of network failures.

Coco v2.1.2

Changes between Coco v2.1.1 and Coco v2.1.2:

  • CoverageScanner:
    • 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.

Coco v2.1.1

Changes between Coco v2.1.0 and Coco v2.1.1:

  • CoverageScanner:
    • 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).
    • 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 tables are now generated at the runtime. This lets us handle stubs, which overwrite objects from libraries.
    • New Feature: Constructors which use member initialization lists are instrumented even if they have an empty body.
    • New Feature: C++ CLR language extension of Microsoft® Visual Studio® supported.
  • CoverageBrowser:
    • 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 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.
  • cmreport:
    • New Feature: EMMA-XML report generated now condition coverage statistics. This requires Jenkins EMMA-XML plugin version 1.29 or above.
    • New Feature: JUnit report generation.

Coco v2.1.0

Changes between Coco v2.0.3 and Coco v2.1.0:

  • Coco:
    • New Feature: Recognition of dead code inside a function.
    • New Feature: Function coverage.
    • New Feature: Line coverage.
  • CoverageScanner:
    • Code coverage count is enabled per default.
  • cmreport:
    • Bug Fix: EMMA-XML report corrected: the line field correspond now to the line coverage.

Coco v2.0.3

Changes between Coco v2.0.2 and Coco v2.0.3:

  • Coco:
    • Bug Fix: License activation issues.

Coco v2.0.2

Changes between Coco v2.0.1 and Coco v2.0.2:

  • cmreport:
    • Improving the speed of the production of HTML reports through parallelization of the generation of the source code view.
  • CoverageScanner:
    • 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.

Coco v2.0.1

Changes between Coco v2.0.0 and Coco v2.0.1:

  • CoverageScanner:
    • 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.

Coco v2.0.0

Changes between TestCocoon v1.6 and 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.
  • CoverageBrowser:
    • 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.
  • 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 contents of a tree view waits until all statistics are computed.
    • New Feature: 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.
  • cmcsexeimport:
    • New Feature: Execution comments in HTML form are parsed from the execution report. This lets us add extra log information to the execution report.
  • 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
    • New Feature: Generation of browsable HTML output.

Coco v7.2.0 ©2024 The Qt Company Ltd.
Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.