69
Release Notes - VectorCAST: 2020 SP7 Release 49284: Compile error when const_cast<int *> value instrumented for MC/DC VectorCAST/C++ and VectorCAST Cover previously incorrectly instrumented some const_cast expressions, causing a compile error when MC/DC instrumentation was used. This problem has been resolved in VectorCAST version 2020 SP7. 86651: Perform MC/DC Test Case Analysis should report an error when test info is not created due to MC/DC sub-condition limit exceeded In VectorCAST version 2020 SP7 Cover environments, selecting a source file and then Tools => Perform MC/DC Test Case Analysis now brings up a warning message if tests are not created due to the source code having conditions with more sub-conditions than the MC/DC sub-condition limit. 89921: PyEDG license error shown when using Control Flow Graph Previously, when using the Custom Tool "Control Flow Graph" on a VectorCAST/Cover environment whose CCAST_.CFG file contained a TESTABLE_SOURCE_DIR or LIBRARY_INCLUDE_DIR that did not exist (or could not be found), VectorCAST displayed an unrelated license error dialog stating that a Python parse data ("PyEDG") license was needed. This problem has been fixed in VectorCAST version 2020 SP7. 90288: Generate diagnostic report from clicast A new clicast command is available in VectorCAST version 2020 SP7 to produce a diagnostic report: clicast reports diagnostic [OUTPUT.txt] This command replaces the previous vcast_diag command executable, which has been removed. 90577: Control Flow Graph fails on Class Deconstructor Previously, when using the custom tool "Control Flow Graph" on C++ source code with a deconstructor or operator, VectorCAST/C++ failed to generate the Control Flow Graph properly and displayed error messages in standard output. These problems have been fixed in VectorCAST version 2020 SP7. 90595: Add Intelligent code completion to user code tags editor VectorCAST version 2020 SP7 includes a new feature: Intelligent code completion for user code tags. Intelligent user code completion enables the user to know when and where user code is needed and helps where constructs and global variables are available. This is similar to other auto-complete functionality in IDEs and editors. The auto complete function can be enabled or disabled via a right-click menu in the user code editor. This option is available for the following user code: > Parameter Input/Expected User Code ©Copyright 2021 Vector Informatik, GmbH Page 1

VectorCAST version 2020 SP7 Release Notes

  • Upload
    others

  • View
    82

  • Download
    1

Embed Size (px)

Citation preview

Page 1: VectorCAST version 2020 SP7 Release Notes

Release Notes - VectorCAST: 2020 SP7 Release

49284: Compile error when const_cast<int *> value instrumented for MC/DC

VectorCAST/C++ and VectorCAST Cover previously incorrectly instrumented some const_castexpressions, causing a compile error when MC/DC instrumentation was used. This problem hasbeen resolved in VectorCAST version 2020 SP7.

86651: Perform MC/DC Test Case Analysis should report an error when test info isnot created due to MC/DC sub-condition limit exceeded

In VectorCAST version 2020 SP7 Cover environments, selecting a source file and then Tools=> Perform MC/DC Test Case Analysis now brings up a warning message if tests are notcreated due to the source code having conditions with more sub-conditions than the MC/DCsub-condition limit.

89921: PyEDG license error shown when using Control Flow Graph

Previously, when using the Custom Tool "Control Flow Graph" on a VectorCAST/Coverenvironment whose CCAST_.CFG file contained a TESTABLE_SOURCE_DIR orLIBRARY_INCLUDE_DIR that did not exist (or could not be found), VectorCAST displayed anunrelated license error dialog stating that a Python parse data ("PyEDG") license was needed.This problem has been fixed in VectorCAST version 2020 SP7.

90288: Generate diagnostic report from clicast

A new clicast command is available in VectorCAST version 2020 SP7 to produce a diagnosticreport:

clicast reports diagnostic [OUTPUT.txt]

This command replaces the previous vcast_diag command executable, which has beenremoved.

90577: Control Flow Graph fails on Class Deconstructor

Previously, when using the custom tool "Control Flow Graph" on C++ source code with adeconstructor or operator, VectorCAST/C++ failed to generate the Control Flow Graph properlyand displayed error messages in standard output. These problems have been fixed inVectorCAST version 2020 SP7.

90595: Add Intelligent code completion to user code tags editor

VectorCAST version 2020 SP7 includes a new feature: Intelligent code completion for user codetags.

Intelligent user code completion enables the user to know when and where user code isneeded and helps where constructs and global variables are available.

This is similar to other auto-complete functionality in IDEs and editors. The auto completefunction can be enabled or disabled via a right-click menu in the user code editor.

This option is available for the following user code:

> Parameter Input/Expected User Code

©Copyright 2021 Vector Informatik, GmbH Page 1

Page 2: VectorCAST version 2020 SP7 Release Notes

> Test Case User Code Input/Expected> Configure Stubs User Code

90604: Unable to remove specification of vcshell.db in Update Environment Wizard

Previously, clearing a specified vcshell database path from the VectorCAST/C++ unit testCreate New Environment or Update Environment wizards would not clear the value for theassociated option (VCDB_FILENAME) from the CCAST_.CFG. As a result, VectorCAST wouldcontinue using a previously-specified vcshell database even when the user had specified not to.This problem is fixed in VectorCAST version 2020 SP7.

90756: Probe Point test compile error due to incompatible IAR pre-includedeclarations

Previously, probe points could not be test compiled when using the default IAR ARM preprocesspreinclude file. This problem has been resolved in VectorCAST version 2020 SP7.

90798: Test script .tst files with :: before INPUT_BASE and EXPECTED_BASE fail toimport

Previously, VectorCAST/C++ would return an error for imported test script files withTEST.ATTRIBUTES lines having a double colon "::" before the INPUT_BASE or EXPECTED_BASEspecification. This problem has been resolved in VectorCAST version 2020 SP7.

91234: Add support for std::basic_string_view

VectorCAST version 2020 SP7 now allows std::basic_string_view types in VectorCAST/C++ tobe set without user code. To get the new behavior, simply rebuild any existing environments.

91302: Incorrect P_Object initialization of class template with explicit constructor

Previously, VectorCAST/C++ created test harness code that did not compile when a functionhad an explicitly cast default parameter argument of a type having an explicit constructor. Thisproblem has been fixed in VectorCAST version 2020 SP7.

91527: Unit test environments are excluded from incremental rebuild report

Previously, an error in the VectorCAST Project Manager version 2020 incremental rebuildreport omitted some results when the VectorCAST project contained both Unit and Coverenvironments in the same group. This problem is fixed in VectorCAST version 2020 SP7.

91540: Parse Error "__builtin_va_list" is undefined for IAR ARM 8.4

Previously, VectorCAST/C++ and VectorCAST Cover returned an error for IAR code containing__builtin_va_list. This problem has been resolved in VectorCAST version 2020 SP7.

91561: RSPs using GUI alert boxes don't work with external python

In previous releases of VectorCAST/RSP, the Microchip and VxWorks execution scriptspresented alert boxes which were unlikely to work when used with a non-VectorCAST pythonexecutable. In VectorCAST version 2020 SP7, the alert boxes can be generated with thestandard Python tkinter package so they can work with an external python executable.

91864: Coverage data shown despite no checked results in System Testingenvironment when using vcshell

Previously, when using a vcshell database (vcshell.db) to assist in creating a System Testingenvironment, coverage data was displayed in the Source Files pane upon opening, despite no

©Copyright 2021 Vector Informatik, GmbH Page 2

Page 3: VectorCAST version 2020 SP7 Release Notes

test results being checkmarked. This problem has been fixed in VectorCAST version 2020 SP7.

91898: vcast_c_options.h incorrect code generated if VCAST_CUDA and no unitsinstrumented

Previously, VectorCAST/QA environments incorrectly generated harness files wheninstrumenting CUDA environment source files. This error has been fixed in VectorCAST version2020 SP7.

To apply the fix, re-instrument the source files.

91908: Option "Report Header" now supports a File input to add a section to the topof the Full Report

Previously, the Report option "Reports header" supported only a character string as input,which was prepended to the title of the Full Report in VectorCAST C/C++ or Ada unit testenvironments.

In VectorCAST version 2020 SP7, the option additionally supports a file input in TEXT or HTMLformat, whose contents is added to the Full Report in a new section just below the title.

If an HTML file is provided, its contents should include a <div> section with a table. Forexample:

<div class='report-block'> <h2>Additional Data</h2> <table class='table table-small'> <tr><th>Tests created by</th><td>Fred Williams</td></tr> <tr><th>Source revision</th><td>123abc789</td></tr> </table> </div>

In addition, the option is now located in the Options dialog, Report tab, Content sub-tab.

clicast -lc | -lada option VCAST_RPTS_HEADER <text to prepend to title> | <full path to htmlfile> | <full path to text file>

91925: Incorrect empty result error when using dump coverage in binary mode

Previously, when adding results to an environment using dump coverage in binary mode undercertain conditions, an incorrect error appeared that the result file is empty. This incorrect erroris fixed in VectorCAST version 2020 SP7.

91946: Restore the meaning behind the mangled name field in the function table, addthe parameterized name field

VectorCAST version 2020 SP7 fixes an error in VectorCAST/QA with parameterized data storedincorrectly in the coverage database. Reinstrument any prior Cover environments to apply thefix.

91962: Unnamed function pointer parameter causes build failure with Visual Studioand /WX option

In VectorCAST/C++ unit test environments using a Visual Studio compiler with the /WXcompiler option, there previously was a compile error in VectorCAST-generated stub-by-function code when the stubbed function contained an unnamed parameter of a pointer type.This has been resolved in VectorCAST version 2020 SP7.

©Copyright 2021 Vector Informatik, GmbH Page 3

Page 4: VectorCAST version 2020 SP7 Release Notes

91987: Syntax error in vcast_undef_xy.h because of very long field name

Previously, for a VectorCAST C/C++ unit test environment, if an enum data type containing anenum literal with a very long name was used in a unit under test, a compile error wasencountered during the environment build. This has been resolved in VectorCAST version 2020SP7.

91988: VectorCAST crash when executing a test after closing Job Monitor

Previously, executing a testcase using the keyboard shortcut F5 in a VectorCAST unit testenvironment immediately after closing the Job Monitor caused a crash, closing the mainwindow unexpectedly. This problem has been fixed in VectorCAST version 2020 SP7.

92022: Copy constructor not stubbed when class contains anonymous union

Starting in VectorCAST/C++ version 2020 SP4, copy constructors could fail to be stubbed if aclass contained an anonymous union. This problem is fixed in VectorCAST version 2020 SP7.

92115: Reports show incorrect time of creation when TZ is set in Cygwin

Previously, When launching VectorCAST from a Cygwin shell, reports sometimes displayed withthe incorrect timezone. This error is fixed in VectorCAST version 2020 SP7.

92249: Manage ignores --source-file parameter with respect to MCDC tables inAggregate Coverage Report

Previously, when generating an Aggregate Coverage report in a VectorCAST Project using thecommand-line argument "--source-file", the MC/DC truth table for that report was not filteredcorrectly. This problem is resolved in VectorCAST version 2020 SP7.

92338: Harness compile error when field type is const-qualified via template meta-programming

Previously, some VectorCAST/C++ environments did not compile when a field type was const-qualified via template meta-programming. This problem has been resolved in VectorCASTversion 2020 SP7. To get the new behavior, you must rebuild any affected environments.

92339: Report an error for bad symbolic constant in test script input range

VectorCAST/C++ did not report an error during test script import if a bad symbolic constantwas used in an input range or delta. In VectorCAST version 2020 SP7, an error is reported inthis situation.

92344: Improve stdout for vcutil instrument command

VectorCAST version 2020 SP7 includes an improved standard output for the vcutil instrumentcommand.

92348: Include all Notes in Testcase Management Report when "VerboseManagement Report" option is True, rather than only first line

Previously, when generating the Testcase Management Report in a Unit Test environment (C,C++, or Ada), or when generating the Management Report in a Cover environment, only thefirst line of the Notes section for a testcase or test result was displayed in the report when theoption "Verbose Management Report" was set to True.

Starting with VectorCAST version 2020 SP7, the entire Notes text is included in theManagement Reports for both Unit Test and Cover environments.

©Copyright 2021 Vector Informatik, GmbH Page 4

Page 5: VectorCAST version 2020 SP7 Release Notes

clicast -lc | -lada option VCAST_VERBOSE_MANAGEMENT_REPORT True | FalseThe default value is False.

92349: Environment builder crash in TDD mode when "Enable SBF capability fortemplate functions" on and template function pure virtual

The VectorCAST/C++ environment builder crashed in TDD mode when using version 2020 SP1or later if the option "Enable SBF capability for template functions" was enabled and the sourcecode contained a pure virtual template function. This problem has been resolved in VectorCASTversion 2020 SP7.

92355: Test script import error incorrectly blames (cl)

In previous versions of VectorCAST/C++, importing a .tst script that set an unknown classinstance would show an error message that appeared to identify the '(cl)' syntax as theproblem. In VectorCAST version 2020 SP7, the error message clarifies and additionallyidentifies the class name of the unknown instance. For example:

>>> Unknown parameter/object name (cl).MyClass

92357: std::function parameters are missing function options in the parameter treeand in test scripts in some cases

Previously, VectorCAST/C++ std::function parameters for functions that did not get called withnon-null values did not have functions available in the parameter tree or in test scripts. Thisproblem has been resolved in VectorCAST version 2020 SP7. To get the new behavior, youmust rebuild any affected environments.

92375: Instrumented harness deleted when starting debugger for non-instrumentedcode

In previous versions of VectorCAST/C++, executing a test case with the debugger for the non-coverage harness would incorrectly delete the coverage harness if the user code needed to becompiled. This problem is fixed in VectorCAST version 2020 SP7.

92380: Column data misaligned for compound slot listing in HTML reports

In previous versions of VectorCAST/C++ and VectorCAST/Ada, the Compound Data Listingsection of HTML-format Test Case Data and Full reports showed the column data misalignedunder the column headings. This problem is fixed in VectorCAST version 2020 SP7.

92394: Test case for const version of method calls non-const version under IAR

In previous versions of VectorCAST/C++, IAR environments with testable member functionsoverloaded on a const 'this' pointer would call the non-const version of the method even fortests created for the const method. This problem has been resolved in VectorCAST version2020 SP7. To get the new behavior, you must rebuild any affected environments.

92433: 2018sp3 and later versions unable to stub function that returns type with amember template constructor

VectorCAST/C++ version 2018 SP3 and later versions were not able to stub functions returningtypes having a template constructor taking a reference to the type as a parameter. Thisproblem has been resolved in VectorCAST version 2020 SP7.

92436: Setting coverage type to none resulted in uninstrumented coupling files

©Copyright 2021 Vector Informatik, GmbH Page 5

Page 6: VectorCAST version 2020 SP7 Release Notes

Previously, setting the coverage type of source files to "none" before instrumenting forcoupling resulted in some files not being instrumented correctly. This problem is fixed inVectorCAST version 2020 SP7.

92445: Link error report duplicates link error message content

In previous versions of VectorCAST Unit, the link error report would often contain the contentsof the linker error message twice. This problem is fixed in VectorCAST version 2020 SP7.

92452: Environment builder hangs during type processing

Previously, VectorCAST/C++ hung during type processing for some source code where classesinherited from other classes. This problem has been resolved in VectorCAST version 2020 SP7.

92462: Coverage XML needs function open brace location

VectorCAST/C++ and VectorCAST/Cover previously had the incorrect position in the source fileperspective for the open brace of C++ functions. In VectorCAST version 2020 SP7, the positionhas been corrected.

92463: Do not touch append cover io units when running enc script

VectorCAST version 2020 SP7 optimizes and improves the performance of VectorCAST whenbuilding large Cover environments with many units.

92467: Reduced output when building a Cover environment from .enc script

Previously, when running the command 'clicast cover environment script_run <cover_env>.enc'to build a Cover environment from an .enc script, a large amount of informative text wasprinted to standard output. This text sometimes took a long time to print, and sometimesinhibited visibility of any error output.

In VectorCAST version 2020 SP7, when using this command, the default behavior is to removeunnecessary success messaged from the output, yet continue to display any warnings orerrors.

The new default behavior can be changed by using the new 'verbose' argument, which directsVectorCAST Cover to print all output to standard output.

clicast Cover ENvironment SCRIPT_Run <.enc scriptfile> [force] [verbose]

92477: B2.c static array eventFlagObject is not initialized in some targets

In previous versions of VectorCAST/C++, the harness array eventFlagObject relied on staticinitialization for proper functioning, but not all targets supported such initialization. Starting inVectorCAST version 2020 SP7, the array is initialized via executable code.

92521: A concrete class should not be made when pure virtual function returnstemplate type that cannot be copied or moved

Previously, VectorCAST/C++ environments created concrete class code which did not compilewhen the source code contained an abstract class with a pure virtual function returning atemplate type that could not be copied or moved. This problem has been resolved inVectorCAST version 2020 SP7. To get the new behavior, you must rebuild the environment.

92531: Link error for TDD environment when template member is testable but notdefined

©Copyright 2021 Vector Informatik, GmbH Page 6

Page 7: VectorCAST version 2020 SP7 Release Notes

Previously, VectorCAST/C++ generated test harness code which did not link when a test drivendevelopment (TDD) environment was created for source code with an undefined testabletemplate member function. This problem has been resolved in VectorCAST version 2020 SP7.To get the new behavior, you must rebuild any affected environments.

92543: Branch and MCDC instrumentation incorrectly added to enumeratorinitialization expression

In previous versions of VectorCAST/C++, MC/DC instrumentation was incorrectly added tosome enum initialization expressions containing logical or comparison operators, causing acompile error in the instrumented test harness. This problem has been resolved in VectorCASTversion 2020 SP7.

92553: Clicast debug logs should have process id appended to uniqify the file

In previous versions of VectorCAST, clicast debug logs did not use the process id in the file.This made it more difficult to capture separate debug logs for multiple clicast processes. InVectorCAST version 2020 SP7, clicast debug log names have the process id appended to thename.

92563: VectorCAST project slow to respond when hundreds of environments present

Previously VectorCAST Project Manager could become unresponsive when working with largeprojects containing hundreds of environments. As part of an ongoing effort to optimize andimprove the performance of VectorCAST with large projects and large environments,VectorCAST version 2020 SP7 improves the performance of large projects.

92601: Crash during environment building for some source code where testablefunction has __decltype template argument

Previously, the VectorCAST/C++ environment builder terminated for some source code wherea testable function had __decltype template argument. This problem is resolved in VectorCASTversion 2020 SP7.

92602: Harness compile error when uncopyable classes are made visible with theusing keyword

Previously, VectorCAST/C++ generated test harness code that did not compile when someuncopyable classes were made visible with the "using" keyword. This problem has beenresolved in VectorCAST version 2020 SP7.

92604: Add regressionable source optimization for Cover

VectorCAST version 2020 SP7 improves the performance for VectorCAST Cover when usingappend_cover_io on large Cover environments.

92614: Improve error message from clicast tools execute_commands

In previous versions of VectorCAST, when a subcommand failed in a file processed with'clicast tools execute_commands', clicast would misleadingly indicate that the command wasinvalid. In VectorCAST version 2020 SP7, the subcommand is identified as failed instead.

92617: Environment builder crashes for some source files with template classes withunnamed field

Previous versions of VectorCAST/C++ crashed when building environments for some sourcefiles with unnamed fields in template classes. This problem has been resolved in VectorCAST

©Copyright 2021 Vector Informatik, GmbH Page 7

Page 8: VectorCAST version 2020 SP7 Release Notes

version 2020 SP7.

92620: Environment builder incorrectly tries to continue even when test harnesscannot be written

In previous versions of VectorCAST/C++, if disk writes started failing during the environmentbuild process (such as due to lack of disk space), the environment builder could start printingharness code to stdout, rather than failing immediately. This problem is fixed in VectorCASTversion 2020 SP7.

92632: Move VCAST_MULTIBYTE_CHARACTERS option to C/C++ Language tab

In previous versions of VectorCAST, the C/C++ option "Source code files use Shift JIS"appeared in 2 places in the Tools => Options dialog, which could lead to the option beingsaved with a value different from expected. In VectorCAST version 2020 SP7, the optionappears under the C/C++ => Language tab of the Options dialog.

92635: Parser fails to accept va_list for __Va_list parameter in IAR mode

Previously, VectorCAST/C++ incorrectly returned an error for code with the IAR intrinsic typestruct __va_list. This problem has been resolved in VectorCAST version 2020 SP7.

92641: Parsing error when Cosmic preprocessor splits @far qualifier across 2 lines

Previously, a parse error was incorrectly given for Cosmic code where the '@' character wasfollowed by whitespace before the rest of the keyword. This problem has been resolved inVectorCAST version 2020 SP7.

92643: Memory access errors while executing tests in System Test environment withCUDA

Previously, when executing a System Test environment with VCAST_CUDA defined, a memoryaccess error could occur due to VectorCAST incorrectly accessing memory past the end of acoverage array. This problem has been fixed in VectorCAST version 2020 SP7.

92663: Parser crashes when reading clang code with __builtin_operator_new or__builtin_operator_delete call having a template param arg

Previously, VectorCAST could crash when reading clang code with a __builtin_operator_new or__builtin_operator_delete call having a template parameter argument. This problem has beenresolved in VectorCAST version 2020 SP7.

92687: C/C++ Coverage Field Width affects coverage view when larger than neededfor the source file

In version 2020 and later versions, the Coverage Field Width option does not need to be setwhen instrumenting coverage for C and C++, because VectorCAST will calculate the necessarywidth at instrumentation time. However, since version 2020, if the Coverage Field Width optionwas specified as a value larger than the calculated value, then the coverage viewer might notdisplay C and C++ branch and call coverage correctly. This problem has been resolved inVectorCAST version 2020 SP7.

92735: VectorCAST/Ada's exported test script (.tst) fails to use direct array index forsome types

In previous versions of VectorCAST/Ada since 6.4t, exported test case scripts could specifyincorrect array indexes for arrays that are subtypes of an access to an array type and the

©Copyright 2021 Vector Informatik, GmbH Page 8

Page 9: VectorCAST version 2020 SP7 Release Notes

array's starting index is not 1. This problem is fixed in VectorCAST version 2020 SP7.Environments being rebuilt with the new version may need to adjust the array indexes used intests affected by this change.

92753: DataAPI Error when setting expected value of type char to a value > 0xA0

Previously, VectorCAST/C++ displayed an error message about a DataAPI error when testresults had an unmatched Expected Value for a large unprintable char value. This problem hasbeen resolved in VectorCAST version 2020 SP7. To get the new behavior, you must run anyaffected tests again.

92768: Change-Based Testing (CBT) not working correctly with Statement+MCDCcoverage with Function Call turned on

Previously, when build/executing incrementally a unit test environment instrumented with acoverage type that included Statement and the configuration optionVCAST_ENABLE_FUNCTION_CALL_COVERAGE set to True, VectorCAST Project Manager did notproperly detect the correct tests that were affected by a source modification, and instead,executed all tests. This problem has been resolved in VectorCAST version 2020 SP7.

92779: Unit options in Cover environment script (.enc) discarded when building fromregression script

Previously, when running a Cover environment's regression script (.enc), unit options wereinadvertently discarded for sources listed under a base directory. This problem has been fixedin VectorCAST version 2020 SP7.

92785: New parser flag --c++98 to correspond to GNU's -std=c++98

VectorCAST/C++ version 2020 SP7 supports a new parser flag --c++98 that can be used whenthe preprocess command uses GNU or clang flags -std=c++98 or -std=gnu++98. In previousversions of VectorCAST, use parser flag --c++03 instead.

92948: Allow "clicast -d all" to enable full debug logging

In previous versions of VectorCAST, to enable full debug logging from the command line, alldebug levels had to be explicitly enumerated:

normal,trace,exception,syscmd,timing,vresult_trace,sql,gui

In VectorCAST version 2020 SP7, full debug logging can be enabled by specifying "all" as thedebug level. For clicast this means adding "-d all" to the command line will enable full debuglogging. For other applications, set environment variable VCAST_DEBUG_LEVELS to "all".

92958: Incremental reinstrument always reinstruments all for S+MCDC+F coverage

Previously, in a Cover environment with the optionVCAST_ENABLE_FUNCTION_CALL_COVERAGE enabled and instrumented for Statement+MCDCcoverage type, an incremental reinstrument incorrectly reinstrumented all files instead of onlythe modified files. This error is fixed in VectorCAST version 2020 SP7.

93034: Change template instantiation behavior for CUDA host TUs

Previously, VectorCAST/C++'s instantiation of non-constexpr template functions when parsinghost compilation mode CUDA code, caused parse errors for some code. This problem isresolved in VectorCAST version 2020 SP7. VectorCAST now determines if a unit is beingcompiled in host mode by checking that VCAST_CUDA is defined and __CUDA_ARCH__ is not

©Copyright 2021 Vector Informatik, GmbH Page 9

Page 10: VectorCAST version 2020 SP7 Release Notes

defined.

Release Notes - VectorCAST: 2020 SP6 Release

55805: Function coverage percentage inaccurate when instrumented for basis path

Previously, VectorCAST would incorrectly show the 'Function coverage bar' percentage in thecoverage viewer when the reporting option VCAST_DISPLAY_FUNCTION_COVERAGE wasenabled, in the unit test tool only. In VectorCAST version 2020 SP6, the coverage bar is notshown.

87418: Object Initialization User Code is not offered for stubbed ctor when themember has two ctors

Previously, VectorCAST/C++ did not offer the option in a stubbed constructor to set ObjectInitialization user code for fields with an accessible default constructor, leaving the userwithout a way to choose another constructor when available. In VectorCAST version 2020 SP6,Object Initialization user code is now offered when a field's type has multiple publicconstructors.

88753: New option '--no_build' instructs vcutil to instrument but not build Coverenvironment

Currently, the VectorCAST utility command "vcutil instrument" instruments and builds a Coverenvironment. That is, it instruments all sources found in the vcshell database in parallel,creates a Cover environment in directory vc-inst by default or in the specified --destination_dir, and adds all sources to the Cover environment.

In VectorCAST version 2020 SP6, a new option, --no_build, provides the user with the ability toinstrument but not add the sources to the Cover environment, saving time while working outinstrumentation issues. The Cover environment can then be built afterwards.

For example:

vcutil instrument --jobs=4 --destination_dir=COVER_ENV --coverage_type=branch --no_build

clicast -e COVER_ENV cover environment build

88927: Harness compile error when std::array element type is not assignable

Previously, VectorCAST/C++ generated test harness code that did not compile for std::arraycontainers having element types that were not assignable. This problem has been resolved inVectorCAST version 2020 SP6.

90245: Stale output in Execution Report with Redirect stdout/stderr and automaticinitialization/finalization

In previous versions of VectorCAST/C++ or VectorCAST/Ada, execution reports containingredirected stdout or stderr output could show stale output from a different execution if anautomatic initialization or finalization test was configured. This problem is fixed in VectorCASTversion 2020 SP6.

90350: *.c missing from C source files filter when adding a new source file to a Coverenvironment

Previously, when adding a C source file to a Cover environment, the dialog inconveniently

©Copyright 2021 Vector Informatik, GmbH Page 10

Page 11: VectorCAST version 2020 SP7 Release Notes

displayed various C++ file extensions instead of ".c". This problem has been fixed inVectorCAST version 2020 SP6.

90552: Test harness compile error when template constructor does not compile

Previously, VectorCAST/C++ allowed template constructors with field accesses in theconstructor initializers where the classes did not contain the fields to be testable in theVectorCAST environment, causing a compile error during environment build. This problem hasbeen resolved in VectorCAST version 2020 SP6.

90777: Ada harness compile error when separate contains protected type with entrysubprograms

In previous versions of VectorCAST/Ada, a unit under test with a protected type with entrysubprograms declared in a separate would result in harness compile error due to duplicatedparameter names used by VectorCAST. This problem is fixed in VectorCAST version 2020 SP6.

90922: Parser support for clang apex vector operations

Previously, VectorCAST/C++ and VectorCAST/Cover incorrectly gave errors for some clangapex vector operations while parsing source files with clang apex header files. This problemhas been resolved in VectorCAST version 2020 SP6 via a new preinclude file now available inthe VectorCAST distribution. To use it with existing or new environments, open the Tools =>Options dialog, choose the C/C++ tab, Misc sub-tab, and set the option "Preprocess preincludefile" to $(VECTORCAST_DIR)/DATA/clang/apex.h.

clicast -lc option VCAST_PREPROCESS_PREINCLUDE $(VECTORCAST_DIR)/DATA/clang/apex.h

90984: Exception specification not recognized in example built for VS 2019 C++17

Previously, VectorCAST/C++ environments for Visual Studio 2019 C++17 did not take intoaccount function exception specifications. The omission prevented setting stubs to throw thoseexceptions. This problem has been resolved in VectorCAST version 2020 SP6.

91313: Unit specific build info XML name conflicts

In VectorCAST version 2020 SP6, the build_info.xml file for VectorCAST Unit and Coverenvironments has been renamed to vcast_build_info.xml. This change prevents file nameconflicts during instrumentation.

91483: Parser error using boost: error: no operator "<<" matches these operands

For VectorCAST/C++ and VectorCAST/Cover environments, VectorCAST previously incorrectlygave the error "no operator "<<" matches these operands" for some code which compiles. Thisproblem has been resolved in VectorCAST version 2020 SP6.

91497: Coverage instrumentation for range-based for-loops does not compile whenrange declaration is a structured binding declaration

Previously, when instrumenting sources with range-based for-loops having range declarationsthat were structured binding declarations, the instrumented files did not compile inVectorCAST/C++ or VectorCAST/Cover. This problem has been resolved in VectorCAST version2020 SP6.

91499: Remove the limitation for function pointer calls which trigger unsupportedreferences

VectorCAST includes an improvement to Coupling, and removes the limitation for code using

©Copyright 2021 Vector Informatik, GmbH Page 11

Page 12: VectorCAST version 2020 SP7 Release Notes

function pointer calls which previously resulted in an unsupported references error. Thisimprovement is available in VectorCAST version 2020 SP6.

91512: Ada coverage instrumentation problem with named loops and blocks

In previous versions of VectorCAST/Ada, the coverage instrumenter could cause code followinga labeled loop or block to lose white space between tokens, making it fail to compile or causingthe code listing to appear incorrectly. This problem is fixed in VectorCAST version 2020 SP6.

91623: Stub fixed-point type parameters are not assigned to global P-objects

Previously, when using VectorCAST/C++, stubs with fixed point parameters did not assign theparameter values to the global P-objects, making it impossible to check if the stub was passedthe correct values. This problem has been fixed in VectorCAST version 2020 SP6.

91669: Class instance user code tag fails when multiple instances exist in multipleunits

Previously, in VectorCAST/C++ environments built with the configuration optionVCAST_CLASS_INST_SHARING set to false, adding parameter user code from the GUI with theclass instance user code tag for units other than the first unit where the class appears caused acompile error. Also, importing a test script with a class instance user code tag for a unit otherthan the first unit where the class appears would incorrectly cause the user code to be appliedto the first unit. These problems have been resolved in VectorCAST version 2020 SP6.

91672: Implicit default constructor treated as testable when undefined membertemplate exists and VCAST_TEST_ALL_INLINES enabled

Previously, for VectorCAST/C++ environments, the implicit default constructor for a class withan undefined member template (and no other defined functions) was testable if theconfiguration option VCAST_TEST_ALL_INLINES was set to true. Starting with version 2020SP6, the implicit default constructor is no longer testable on its own. To get the changes,rebuild any affected environments.

91673: Ctor not selectable in multi unit environment with VCAST_TEST_ALL_INLINESTRUE and VCAST_CLASS_INST_SHARING FALSE

Previously, VectorCAST/C++ environments where more than one unit #included the sameheader only allowed the implicit default constructor to be selected for classes in the headerfrom a single unit. This problem has been resolved in VectorCAST version 2020 SP6. To get thenew behavior, you must rebuild the environment.

91684: Highlight in yellow the parameter tree node for function under test

For Unit environments in VectorCAST version 2020 SP6, the test case parameter tree node forthe function under test is now highlighted in yellow, as is done for the class instance in a C++member function test case.

91734: Function-local classes should not be testable

Previously, some VectorCAST/C++ environments did not compile when the source code had atemplate argument with a type defined locally in a function. This problem has been resolved inVectorCAST version 2020 SP6. To get the new behavior, you must rebuild any affectedenvironments.

91859: Basis Path Report is missing asterisks to indicate covered paths

©Copyright 2021 Vector Informatik, GmbH Page 12

Page 13: VectorCAST version 2020 SP7 Release Notes

In previous versions of VectorCAST 2020, Basis Path Reports generated when Basis PathCoverage was enabled failed to indicate which paths were covered. In VectorCAST version2020 SP6, covered paths are indicated in HTML format by coloring the path label (e.g. "TestPath 1") with a green or red background, and in TEXT format by adding an asterisk next to thelabel. In TEXT format the uncovered paths may optionally be indicated by the characterspecified by the "Uncovered line indicator" option.

91870: Symbolic Constants missing in C environments after compound string#defines

VectorCAST/C++ could not determine the values for some macros if they appeared following a#define which was a list of strings, leading to those macros being omitted from the symbolicconstants window and unavailable in test scripts. This problem has been resolved inVectorCAST version 2020 SP6. To get the new behavior, you must rebuild any affectedenvironments.

91893: Incorrect calculation of subdecisions

Previously, some Unit test environments reported the incorrect number of MC/DC sub-conditions. This error is fixed in VectorCAST version 2020 SP6. To fix an existing environmentwith this error, delete the report and regenerate it with the latest version of VectorCAST.

91909: VectorCAST co-preprocessor doesn't handle #pragma once

Previously, in VectorCAST/C++ and VectorCAST/Cover, the '#pragma once' compiler directivewas ignored during parsing for instrumentation when using the VectorCAST co-preprocessor(VCAST_USE_VCPP). This omission could lead to header content being incorrectly expandedmultiple times, further leading to parse or compile errors. This problem has been resolved inVectorCAST version 2020 SP6.

91943: Invalid line directives with VCAST_USE_VCPP when #include lacks spacebefore specified file

Previously, when the VectorCAST co-preprocessor was enabled for C/C++, #include directivesthat lacked spaces before the specified file would result in invalid line directives for the contentincluded from those files. For example:

#include<iostream>#include"foo.h"

The invalid line directives could result in improper treatment of the included content or compileerrors. This problem is fixed in VectorCAST version 2020 SP6.

91997: Return object for std::pair<T1, T2&> does not compile

Previously, VectorCAST/C++ environments for some code containing an std::pair with areference member did not compile. This problem has been resolved in VectorCAST version2020 SP6.

92056: Constructor not selectable when defined with "default" keyword

Previously, in a VectorCAST/C++ unit test environment, some constructors defined with the"default" keyword were not selectable in the Parameter Tree or with test scripts. This problemhas been resolved in VectorCAST version 2020 SP6. To get the new behavior, you must rebuildany affected environments.

92057: Execution warning "Called with null class instance" and test failures when

©Copyright 2021 Vector Informatik, GmbH Page 13

Page 14: VectorCAST version 2020 SP7 Release Notes

constructor defined with "default" keyword

Previously, VectorCAST/C++ unit test environments with multiple units ignored some calls toconstructors defined with the "default" keyword, causing test failures. This problem has beenresolved in VectorCAST version 2020 SP6. To get the new behavior, you must rebuild anyaffected environments.

92095: Parse error when source code's "using" statement specifies class-qualifiedname

Previously, VectorCAST/C++ and VectorCAST/Cover incorrectly gave the error "a class-qualified name is not allowed" when parsing source code with "using" statements with class-qualified names. This problem has been resolved in VectorCAST version 2020 SP6.

92134: Missing test script import error from non-SBFable routine

In VectorCAST/C++ environments, an error was not reported during test script import in somecases when a stub return value was given for a function which was not stubbed. This problemhas been resolved in VectorCAST version 2020 SP6.

92157: In Multi-unit environment inline function of base class not testable for SBFwhen VCAST_TEST_ALL_INLINES FALSE

Starting with VectorCAST version 2019 SP2, VectorCAST/C++ environments created with theconfiguration option VCAST_TEST_ALL_INLINES set to false did not allow testing of inlinemember functions of a stubbed-by-function unit when a previous unit had stubbed thefunction. Those functions are testable again starting with VectorCAST version 2020 SP6. To getthe new behavior, rebuild any affected environments.

92158: In Multi-unit environment the inline member function appears in wrong unitwith VCAST_TEST_ALL_INLINES TRUE

In VectorCAST version 2019 SP2, VectorCAST/C++ made inline member functions testable inthe first unit where they appeared. VectorCAST version 2020 SP6 restores the pre-2019 SP2behavior, where the inline member functions are testable in the unit where the non-inlinefunctions are defined.

92186: Incremental rebuild fails to import compound tests

In previous versions of VectorCAST/Manage, incremental rebuilds could fail to reimportcompound test cases. The problem is fixed in VectorCAST version 2020 SP6.

92189: Multi-unit environment: Class instance selected in parameter tree is nullwhen executed

VectorCAST/C++ version 2019 SP2 and later incorrectly made multiple class instances for thesame name for some multi-unit environments even when the configuration optionVCAST_CLASS_INST_SHARING was set to true, leading to test execution problems as theincorrect class instance got allocated. This problem has been resolved in VectorCAST version2020 SP6. To get the new behavior, you must rebuild any affected environments.

92216: SBF for template harness compile error: _SBF_enabled in unnamed class

In previous versions of VectorCAST/C++, SBF stubs for template-based member functionswould fail to compile if the class type was named only via a typedef or using declaration. Thisproblem is fixed in VectorCAST version 2020 SP6.

©Copyright 2021 Vector Informatik, GmbH Page 14

Page 15: VectorCAST version 2020 SP7 Release Notes

92217: Inherited inline functions appearing as testable in more than one unit

In VectorCAST version 2019 SP2, VectorCAST/C++ made inherited inline functions testable inevery unit which #included the header. VectorCAST version 2020 SP6 restores the pre-2019SP2 behavior where the inherited inline functions are testable in the unit where the non-inlinefunctions are defined.

92253: Test script created with incorrect syntax for fields which are references toabstract classes

Previously, VectorCAST/C++ created test scripts with the incorrect syntax for fields that arereferences to abstract classes, leading to an error when the script was imported. This problemhas been resolved in VectorCAST version 2020 SP6.

92254: Fix file_index migration in DataApi

Previously, migration in the Data API from version 41 to 42 did not work correctly, causing aproblem in the source file index. This problem has been resolved in VectorCAST version 2020SP6.

92381: Range-based for loops with a break statement incorrectly report the Fcondition as covered if the break is reached

Previously, the Aggregate Coverage report in VectorCAST/C++ and VectorCAST/Coverincorrectly reported that the False condition was covered in sources with for-loops whichcontained a break statement that was reached. This problem has been fixed in VectorCASTversion 2020 SP6. To get the new behavior, you must reinstrument any affected units.

92403: VectorCAST CodeSonar integration broken in 2020 SP5

Previously, VectorCAST version 2020 SP5 introduced an error to the VectorCAST integrationwith CodeSonar where VectorCAST did not properly display the results from CodeSonar. Thisproblem is fixed in VectorCAST version 2020 SP6.

92441: Coverage instrumentation for some GNU statement expressions inside range-based for-loops does not compile

Previously, in VectorCAST/C++ and VectorCAST/Cover, instrumentation for some GNUstatement expressions inside range-based for-loops did not compile. This problem has beenresolved in VectorCAST version 2020 SP6.

Release Notes - VectorCAST: 2020 SP5 Release

87077: Support for always using parameterized names in test scripts

In VectorCAST version 2020 SP5, a new configuration option calledVCAST_SCRIPT_ALWAYS_USES_PARAMS has been added for VectorCAST/C++ environments.The option is available in the Tools => Options dialog, Execute tab.

When True, this option causes C++ function parameter and return types to always be includedwith the function name in test scripts. The default value is False, which causes parameterizednames to only be used when a function is treated as overloaded.

The True value is useful mainly for tools that generate test scripts independently of anenvironment, when it isn't certain whether a function will be treated as overloaded. Note thattoggling this option can lead to import failures with test scripts that were generated before the

©Copyright 2021 Vector Informatik, GmbH Page 15

Page 16: VectorCAST version 2020 SP7 Release Notes

option was toggled.

87828: Support Static Analysis with Axivion displayed within VectorCAST

VectorCAST version 2020 SP5 implements a static analysis integration with Axivion, forefficient use of VectorCAST/C++ for Axivion users. The integration is available by choosingStatic Analysis => Edit Analysis Tools, and selecting the Axivion custom tool template.

To add a custom tool that fetches a known Axivion analysis and displays the results inVectorCAST, follow these steps:

1. Click the custom tool template, enter a new name and click Add. This action creates a newcustom tool specifically for your organization's use of Axivion.

2. Edit the new custom tool by specifying the following arguments:

a) --AXIVION_HOME="dir"Specify the full path to your Axivion installation directory, without symlinks (Linux).

b) --project_dir="dir"Specify the full path (without symlinks on Linux) to the source code used in both theknown Axivion analysis and the VectorCAST/C++ unit test or Cover environment. Becertain to end the directory path with a forward slash "/" (Linux) or two backslashes"\\" (Windows).

If your Axivion analysis is served (locally or remotely), fill out the next two arguments:

c) --project_name="name"Specify the name of the project in Axivion.

d) --dashboard_url="url"Specify the host:port URL for the Axivion analysis. If served locally, for example, the --dashboard_url could be "http://localhost:9090/axivion". If served remotely, enter themachine's name instead of "localhost". Your organization may be using a different portnumber when serving the analysis.

If your analysis is not served, but you know the location of the project database and plan toserve it on the fly, fill out this argument instead:

e) --project_db="db"Specify the full path to the Axivion analysis database, ending with ".db".

3. Click Update to revise the contents of your new custom tool.

4. Put checkmarks next to "Menu" and/or "Toolbar" to indicate that you want the custom toolaccessible via the Static Analysis menu, the right-click context menu on a unit, and/or themain toolbar.

5. Open a VectorCAST environment that includes one or more source code units that are alsopart of the Axivion analysis. Select the custom tool. VectorCAST queries the specified Axivionanalysis and displays the results in the Custom Analysis Tools window, including the familiarissue categories and their icons for:

> Cycles> Dead Entities> Architecture Violations

©Copyright 2021 Vector Informatik, GmbH Page 16

Page 17: VectorCAST version 2020 SP7 Release Notes

> Clones> Style Violations> Metric Violations

If there is an error accessing the analysis, the Jobs Window opens automatically and displaysthe standard error tab, which provides information about the problem.

88328: Confusing error when executing cover commands on non-existent directory

Previously, executing a clicast command on a Cover environment that did not exist gave aconfusing error message. This message has been improved in VectorCAST version 2020 SP5 tomore easily identify the problem.

88993: Add comment hint to generated code that uses uninstantiated constructortemplates

VectorCAST/C++ environments sometimes generate unit test harness code that invokespreviously uninstantiated constructor templates. Because full type information is not availablefor such template-based constructors, compilation errors are more likely in the generatedcode. VectorCAST version 2020 SP5 now adds a source comment to such generated code toindicate that it can be overridden using Object Initialization User Code.

89128: Incorrect instrumentation with C++17 selection statements with separateinitializers

In VectorCAST/C++ and Cover environments, Coverage instrumentation for C++17 selectionstatements with separate initializers would fail or produce instrumentation that failed tocompile. This problem has been resolved in VectorCAST version 2020 SP5.

89422: vcdb getpaths performance

Previously, use of the Vctools command "vcdb getpaths" on a vcshell database with manycompile commands and relative paths was very slow. VectorCAST version 2020 SP5 improvesthe performance significantly.

89436: Harness compile error occurs when function pointer type matches signatureof main

Previously, VectorCAST/C++ environments encountered a test harness compile error forsource code where a function pointer could be set to main. This problem has been resolved inVectorCAST version 2020 SP5.

90152: Parameter User Code for char array parameter user code exported from GUIwith wrong syntax

Previously, in a C/C++ unit test environment, when user code for a single character in acharacter array was exported to a test script, incorrect syntax was used, leading to an errorwhen the test script was imported. This problem has been resolved in VectorCAST version2020 SP5.

90259: Test case data report sometimes repeats parameter name before user codearray index

Previously, in some C/C++ unit test environments, the parameter name was repeatedimmediately prior to an array index for user code values in the Test Case Data Report. Thisproblem has been resolved in VectorCAST version 2020 SP5.

©Copyright 2021 Vector Informatik, GmbH Page 17

Page 18: VectorCAST version 2020 SP7 Release Notes

90333: Harness compile error in default argument for stubbed Ada subprogram whenparameter type is access subprogram

In previous versions of VectorCAST/Ada, the unit test environment builder could incorrectlyparse the parameters of a subprogram where a parameter type was an access subprogramtype, leading to a compile error when such subprograms were stubbed. This problem is fixed inVectorCAST version 2020 SP5.

Note that subprograms with such types are not supported within UUTs unless the access typeis declared separately and then used as the parameter type. For example:

type ACCESS_PROCEDURE is access procedure ( UUT_PARAM2 : in out integer );

procedure UUT_PROCEDURE ( UUT_PARAM1 : in integer; UUT_PROC_PTR : ACCESS_PROCEDURE );

90543: Compile error during environment build with source code with a volatilereturn type

Previously, VectorCAST/C++ generated unit test harness code that did compile for somesource code where a testable function returned a volatile type. This problem has been resolvedin VectorCAST version 2020 SP5.

90590: New option VCAST_CYGPATH_LINE_DIRECTIVES

A new C/C++ option, "Use cygpath to convert Cygwin line directives," has been added toVectorCAST version 2020 SP5.

Located in the Options dialog, C/C++ tab, Misc sub-tab, this option controls whether linedirectives in preprocessor output are converted from Cygwin-style paths to Windows-stylepaths. Enable this option when using a compiler that produces Cygwin-style paths. This optionrequires that the cygpath executable can be found via the PATH environment variable.

This option is enabled by default when selecting a compiler template for GNU Native compilersversion 5.0 or greater on Windows platforms. Previously, the VCAST_USE_VCPP option wasenabled for correcting paths with such compiler versions, but is no longer needed for thatpurpose.

clicast -lc option VCAST_CYGPATH_LINE_DIRECTIVES True | FalseThe default value is True for GNU Native compilers version 5.0 or greater on Windows. For allother compilers, the default value is False.

90806: No longer display instrumentation directory field in the Cover EnvironmentWizard

In VectorCAST version 2020 SP5, setting the instrumentation directory from the "CoverageOptions" page in the Cover Environment Wizard is no longer supported. By default, theinstrumented source files reside in <cover env>/vc-inst directory.

To change where instrumented files are stored, use this command after creating the Coverenvironment but before instrumenting:

clicast -e <cover env> Cover Options SET_Instrumentation_directory <directory>

91358: Harness compile error with Visual Studio 2019 when std::vector templateparameter type has a deleted move constructor

©Copyright 2021 Vector Informatik, GmbH Page 18

Page 19: VectorCAST version 2020 SP7 Release Notes

Previously, VectorCAST/C++ environments for Visual Studio 2019 code with an std::vectorcontaining a type which has no available copy assignment operator and no available moveconstructor did not compile when the configuration optionVCAST_DISABLE_STD_CONTAINER_DETECTION was set to false. This problem has beenresolved in VectorCAST version 2020 SP5.

91438: Environment Coverage Report does not accept the --source-file arg

Previously, the Manage command to create the Environment Coverage Report using the --source-file argument incorrectly contained listings for all sources instead of the specified file.

manage -p Project --create-report=environment --source-file source.c

This problem has been fixed in VectorCAST version 2020 SP5.

91560: enums with elements with values larger than signed int maximum can causea test failure

Previously, the VectorCAST/C++ harness incorrectly cast enum values to signed types whenthey were greater than the signed type's maximum, causing them to be treated as smallervalues than desired. This problem has been resolved in VectorCAST version 2020 SP5. To getthe new behavior, you must rebuild any affected environments.

91582: Stack overflow in parser for large translation units on 64-bit Windows

In VectorCAST version 2020 SP5, the reserve stack size on 64-bit Windows has been increasedto avoid crashes when parsing very large preprocessed C++ files.

91595: Stubs with unbound char[] parameters VCAST_memcpy and VCAST_strncpystub code is not correct

Previously, in VectorCAST/C++ unit test environments, stubs for functions with unconstrainedarray parameters inadvertently copied from the global P-object to the parameter, sometimesgoing past the end of the array. Starting in VectorCAST version 2020 SP5, the copy is not donein the stub.

91688: A concrete class should not be made when pure virtual function returns typethat cannot be copied or moved

Previously, for some VectorCAST/C++ Unit environments, VectorCAST attempted to make anautomatic concrete class when a pure virtual function returns a type that cannot be copied ormoved, causing a compile error. This problem has been resolved in VectorCAST version 2020SP5.

91699: Parse error for code accepted by clang-cl with unknown size array fields

In some VectorCAST/C++ and Cover environments, VectorCAST incorrectly gave an errorwhen parsing source code with a struct having an array field of unknown size in a positionbefore the last when the parser flags --clang and --ms_extensions were used. This problem hasbeen resolved in VectorCAST version 2020 SP5.

91717: Only pre-initialize R-object prior to testable function call if not already set

In VectorCAST/C++ unit test environments, a special code pattern is used in the generatedtest harness whenever a testable function returns a type that cannot be copied or moved butcan be assigned. The pattern is to first create an instance of the return type using the type'sdefault constructor, then use assignment to capture the value from the function under test:

©Copyright 2021 Vector Informatik, GmbH Page 19

Page 20: VectorCAST version 2020 SP7 Release Notes

R_object = new Type_that_cannot_be_copied; *R_object = Function_under_test();

In order to allow test cases to specify different initialization of the R_object via the parametertree, VectorCAST version 2020 SP5 generates the harness code such that a new instance iscreated only if the R_object variable is not already set:

if ( ! R_object ) R_object = new Type_that_cannot_be_copied; *R_object = Function_under_test();

91762: Support for the Vector Test Data Editor on all platforms

With the VectorCAST version 2020 SP2 release, using the Vector Test Data Editor to generatetest cases in C/C++ unit test environments was limited to the 64-bit Windows platform, whichis the native platform for the Classification Tree Editor from vTESTstudio (VCT). VectorCASTversion 2020 SP5 implements a work-around for users on other platforms to use this featureas well, assuming they have access to a 64-bit Windows machine via a network drive or bycopying specific files.

If the environment variable VCAST_ENABLE_REMOTE_VCT is set, and a VectorCAST Enterpriselicense is in use, the user initiates the process on the platform of their choice. VectorCASTinstructs the user how to access the VCT data from a 64-bit Windows machine, and the user isable to create or edit test cases in the Test Data Editor on 64-bit Windows. When done, theuser returns to the original platform to finish the process.

For users unfamiliar with the VCT feature, see our Knowledge Base article The Vector Test DataEditor.

91782: Refactor QNX templates and add support for QNX 7 and higher

VectorCAST version 2020 SP5 includes updated QNX compiler templates and includes supportfor QNX version 7 and later.

91793: Set environment variable VCV_ENVIRONMENT_DIR before invoking testharness

In VectorCAST version 2020 SP5, in a C/C++ or Ada unit test environment, a new environmentvariable, VCV_ENVIRONMENT_DIR, is set to the full path to the current environment directorywhenever the environment is opened.

The existing environment variable VCV_ENVIRONMENT_NAME is also now set while theenvironment is open.

These environment variables are thus available to all commands invoked by VectorCAST fromthe open environment, including:C_PREPROCESS_CMD,C_COMPILE_CMD,C_LINK_CMD,VCAST_CMD_DURING_ENV_OPEN,VCAST_CMD_DURING_ENV_CLOSE,VCAST_PRE_EXECUTE_CMD, andC_EXECUTE_CMD.

91818: New GHS ARM Integrity 11 and GHS ARM64 Bare Board templates

VectorCAST version 2020 SP5 implements new C++ compiler templates for Green Hills

©Copyright 2021 Vector Informatik, GmbH Page 20

Page 21: VectorCAST version 2020 SP7 Release Notes

Systems (GHS) ARM Integrity 11+ and ARM64 Bare Board. To select one of the new compilersin the VectorCAST Options dialog, C/C++ tab, choose:

Compilers > Green Hills > ARM > INTEGRITY 11+ > Simulator and one of: Dynamic > C Dynamic > C++ Static > C Static > C++

clicast -lc template ARM_GH_INT11_SIM_DYNAMIC_Cclicast -lc template ARM_GH_INT11_SIM_DYNAMIC_CPP

clicast -lc template ARM_GH_INT11_SIM_STATIC_Cclicast -lc template ARM_GH_INT11_SIM_STATIC_CPP

Compilers > Green Hills > ARM64 > Bare Board > Simulator and one of: C C++

clicast -lc template ARM64_GH_SIMclicast -lc template ARM64_GH_SIM_CPP

91835: Configure stubs user code dropped for functions specified with (cl) whenbuilding with newer VectorCAST

In previous versions of VectorCAST/C++ 2020, unit test environments would show errorsimporting configure stubs user code from regression scripts that were created in older versionswhere the legacy '(cl)' prefix was used before some function names. This problem is fixed inVectorCAST version 2020 SP5.

91839: Call coverage instrumentation incorrectly placed at file scope

Previously, in C/C++ unit test and cover environments, function call instrumentation for somevariable declarations that called constructors was incorrectly placed at file scope inStatement+Branch and Statement+MC/DC coverage and omitted entirely in Statement andFunction Call coverage. This problem has been resolved in VectorCAST version 2020 SP5.

91860: Wrong size for `__bit` in xc8

Previously, VectorCAST C++ and Cover environments returned an error when parsing coderelying on the size of the MPLAB __bit type. This problem has been resolved in VectorCASTversion 2020 SP5.

91862: Lambdas in inline functions from header missing coverage when included bymultiple units

Previously, some VectorCAST C++ and Cover environments only showed some lambdafunctions defined in header files as covered in a single unit despite the header file being#included in other units. This problem has been resolved in VectorCAST version 2020 SP5. Toget the new behavior, you must reinstrument any affected environment.

91874: DataAPI error occurs when CCAST_.CFG contains a line without ':'

Previously, a malformed line in the CCAST_.CFG caused an error while generating a report. Theerror has been fixed in VectorCAST version 2020 SP5. The malformed lines in the configurationfile are ignored.

©Copyright 2021 Vector Informatik, GmbH Page 21

Page 22: VectorCAST version 2020 SP7 Release Notes

91932: vcutil instrument generates wrong size vcast_coverage_bytes

Previously, an error in C/C++ cover environments using the vcutil instrument commandgenerated incorrect values for the vcast_coverage_bytes array. This error only occured with theoption VCAST_GLOBAL_BUFFER_OPTIMIZATIONS: TRUE. This error could result in arrays outof bounds errors while compiling or incorrectly matched coverage. This error is fixed inVectorCAST version 2020 SP5.

91957: Failed precompile script command should halt further compilation of unit testharness

In VectorCAST unit test environments, the command given by theVCAST_PRECOMPILE_SCRIPT option is executed prior to full compilation of the unit testharness. In previous versions, a failed exit status from this command would not abort thecompilation process. In VectorCAST version 2020 SP5, a failed exit status halts furthercompilation. In addition, output from the command is recorded in the Compile Errors reportregardless of the exit status.

91959: Optimize result importing by ignoring duplicate lines

VectorCAST version 2020 SP5 includes a performance improvement to the coverage resultimporting process. When using Real-Time or Buffered Coverage I/O types, some scenarios willnotice a decrease in the time it takes to import large coverage result files from either .dat or.cvr files. Note that this improvement will vary depending on the contents of the coverage databeing imported.

91967: ENVIRO.STUB:ALL_BY_PROTOTYPE environment is missing testable inheritedtemplate functions available with ENVIRO.STUB:NONE

Previously, the VectorCAST/C++ unit test environment builder did not make some inheritedtemplate functions testable in environments with a single unit under test if the stub methodwas all-by-prototype. This problem has been resolved in VectorCAST version 2020 SP5. To getthe new behavior, you must rebuild any affected environments.

91982: Inaccessible subclass causes value error in test script import

Previously, when working with environments having source code where a class had a childclass which was inaccessible from file scope, VectorCAST/C++ generated test scripts withincorrect syntax for the parent class values. If the script was manually corrected and the testexecuted, the test harness did not set the proper values for the parent class. This problem hasbeen resolved in VectorCAST version 2020 SP5. To get the new behavior, you must rebuild anyaffected environments.

92000: Harness compile error when FUT returns const std::unique_ptr<T>

Previously, VectorCAST/C++ generated test harness code that did not compile when a testablefunction returned const std::unique_ptr<T>. This problem has been resolved in VectorCASTversion 2020 SP5.

92009: Parse error when void* function returns void __data20 * with implicit castfor --iar_version=msp430

Previously, VectorCAST/C++ and VectorCAST/Cover gave a parse error for IAR MSP430 codewith a function returning a __data20 type when the function return type did not contain__data20. This problem has been resolved in VectorCAST version 2020 SP5.

92058: Vcshell option "VCDB flag parameter" now available in Options dialog

©Copyright 2021 Vector Informatik, GmbH Page 22

Page 23: VectorCAST version 2020 SP7 Release Notes

VectorCAST version 2020 SP5 now allows access to the "VCDB flag parameter" option in theOptions dialog, on the C/C++ tab, Compiler Integration sub-tab.

clicast -lc option VCAST_VCDB_FLAG_STRING <flag string such as -I=1,-D=1>

92064: VectorCAST I/O helper utilities fail to start when VECTORCAST_DIR not partof PATH

In previous VectorCAST versions since 2020 SP2, the following I/O helper utilities used byVectorCAST unit test environments could fail to start unless the VectorCAST installationdirectory was part of the PATH environment variable: comreader, pty, unix2dos, andvcast_plink. This problem is fixed in VectorCAST version 2020 SP5.

92084: Parse error with --diab when char cast to struct

Previously, VectorCAST/C++ and VectorCAST/Cover incorrectly gave the error "cast to type<type name> is not allowed" for Diab code where a char was cast to a struct. This problem isresolved in VectorCAST version 2020 SP5.

92098: Compile error in test harness for code containing IAR M16C __bitvar keyword

VectorCAST/C++ environments for some source code with the IAR M16C keyword __bitvar didnot compile if the VectorCAST version was 2018 SP3 or later. This problem has been resolvedin VectorCAST version 2020 SP5. To get the new behavior, you must rebuild any affectedenvironments.

92109: VectorCAST crash when location of vcshell database changes

In previous versions of VectorCAST/C++, a crash could occur in the unit test environmentwizard if a vcshell.db was specified which did not exist or could not be opened. This problem isfixed in VectorCAST version 2020 SP5.

92146: Improvements to CUDA workflow

VectorCAST version 2020 SP5 implements various improvements to the CUDA workflow.Specifically, the '-x' switch is supported, which enables the user to force processing of code aseither CUDA or C++, overriding the default lookup that is based on the file extension. Inaddition, previous versions of VectorCAST/CUDA supported only inclusion of the c_cover_io.cfile when it was appended during instrumentation. This release supports building with anexternal copy of c_cover_io.c.

92181: Python exception when upgrading a vcshell database from a previous versionwith a single quote in PATH

Previously, VectorCAST's vcdb utility would crash when attempting to update the schema of avcshell database from a previous version when the PATH environment variable contained asingle quote with no matching single quote. This problem has been fixed in VectorCAST version2020 SP5.

Release Notes - VectorCAST: 2020 SP4 Release

19273: Member initializer for copy ctor stub should use member/parent copy ctors

In previous versions of VectorCAST/C++, the member initializer list that was automaticallygenerated for stubbed copy constructors would not necessarily use the base class copyconstructor or copy the individual class members of the parameter object. In VectorCAST

©Copyright 2021 Vector Informatik, GmbH Page 23

Page 24: VectorCAST version 2020 SP7 Release Notes

version 2020 SP4, generated stubbed copy constructors copy the base and members of theparameter object where possible.

53750: Test Case Termination User Code is called twice with Multi-Unit Whitebox inAda

In previous versions of VectorCAST/Ada, test case termination user code would be called twicefor each test if the Ada unit test environment was built with Multi-unit Whitebox enabled. Thisproblem is fixed in VectorCAST version 2020 SP4.

87124: VectorCAST co-preprocessor confuses paths of symbolically linked files

In previous versions of VectorCAST/C++, when the VectorCAST co-preprocessor was enabledand the search path to a unit under test (UUT) was a symlink, line directives in the translationunit were printed with symlinks fully resolved. This change could then cause functions to beconsidered not testable or coverable if the target of the symlink was not in a search directory.This problem is fixed in VectorCAST version 2020 SP4.

88315: Defining coverage components changes "Apply Coverage to Source Tree"mode

Previously, after building a System Testing Environment with components, appliedinstrumentation would change from "During Build" to "Always." This problem has been fixed inVectorCAST version 2020 SP4.

88733: Environment builder exhausts memory after processing IL for very large .tufile

In VectorCAST version 2020 SP4, the C/C++ environment builder has been optimized to betterhandle extremely large translation units (.tu files) with very many types and functions.

88953: Invalid cast due to missing global scope operator

Previously, VectorCAST/C++ unit test environments for some source code containing functionswith parameter types from file scope with the same name as other types in the samenamespace did not compile. This problem has been resolved in VectorCAST version 2020 SP4.

89066: vcast_c_options.h has compile error: #elif VCAST_COVER_NO_INIT

Previously, in vcast_c_options.h, VCAST_COVER_NO_INIT would cause a compile error ininstrumented code because the preprocessor directive was incorrectly formed. This error hasbeen fixed in VectorCAST version 2020 SP4.

89079: Digit separator parser error : extra text after expected end of number

Previously, in VectorCAST/C++ unit test environments and Cover environments, VectorCASTincorrectly gave the error "extra text after expected end of number" when the ' digit separatorwas used in some contexts. This problem has been resolved in VectorCAST version 2020 SP4.

90273: Incorrect default user code for std::map elements

In VectorCAST/C++ environments, the test case editor previously provided invalid default usercode for std::map elements. In VectorCAST version 2020 SP4, user code entry is disallowed atthe level of individual std::map elements. User code to set or check std::map elements can stillbe entered at the std::map instance level.

90293: New Visual Studio templates to support specific language standards

©Copyright 2021 Vector Informatik, GmbH Page 24

Page 25: VectorCAST version 2020 SP7 Release Notes

VectorCAST version 2020 SP4 implements new C++ compiler templates for Microsoft VisualStudio 2017 C++14 and C++17, as well as Microsoft Visual Studio 2019 C++14 and C++17.

To select one of the new compilers in VectorCAST's Options dialog, C/C++ tab, choose:

Compilers > Microsoft VisualC++ > 2017 >and one of:

CC++C++14C++17

clicast -lc template VISUAL_CPP_CPP14_2017clicast -lc template VISUAL_CPP_CPP17_2017

Compilers > Microsoft VisualC++ > 2019 >and one of:

CC++C++14C++17

clicast -lc template VISUAL_CPP_CPP14_2019clicast -lc template VISUAL_CPP_CPP17_2019

90309: Compile error after instrumentation when using "AVLTree" or "AVLNode" insource code

Previously, when instrumenting source code that contained "AVLTree" or "AVLNode", theinstrumented sources failed to compile. This problem has been fixed in VectorCAST version2020 SP4.

90430: "--VCAST_DONT_INSTRUMENT" tags ignored when Ada source uses CRLF

In previous versions of VectorCAST, the special comment tags:-- VCAST_DONT_INSTRUMENT_START-- VCAST_DONT_INSTRUMENT_ENDthat the user added to Ada source files in a unit test or Cover environment were not honoredwhen instrumenting if some lines ended with carriage-return line-feed (CRLF) on the Linuxplatform. This problem has been fixed in VectorCAST version 2020 SP4.

90500: Add templates for gnu gcc 10.1

VectorCAST version 2020 SP4 adds support for Native GNU compiler version 10.1.

To select one of the new templates in the Options dialog, C/C++ tab, choose:Compilers => GNU Native 10.x => 10.1 => C or C++ or C++11 or C++14 or C++17.

90661: Add type support for std::function from #include <functional>

Previously, C++ unit test environments only allowed std::function types to be set with usercode. In VectorCAST version 2020 SP4, functions can be selected for std::function types in theParameter Tree if they are used as parameters and the Builder configuration option "Enablefunction pointer and std::function type support" is True.

©Copyright 2021 Vector Informatik, GmbH Page 25

Page 26: VectorCAST version 2020 SP7 Release Notes

clicast -lc option VCAST_FUNCTION_POINTER_SUPPORT True | FalseThe default value is True.

90694: Aggregate Coverage and Original Source Coverage Reports fail whengenerated from Manage if unit's .LIS file is Latin-1 encoded

In previous versions of VectorCAST, the Aggregate Coverage Report and Original SourceCoverage Report did not create successfully when generated from a unit containing non-printable characters in a VectorCAST project. This problem has been fixed in VectorCASTversion 2020 SP4.

90763: Full Report missing some Environment User Code types

In previous version of VectorCAST, the Full Report for both Ada and C/C++ unit testenvironments was missing several sections of Environment User Code:

> User Globals> Unit Prefix User Code> Unit Appendix User Code> Configure Stubs Dependency User Code

In VectorCAST version 2020 SP4, these sections are now included, and in the HTML format, thereport includes a convenient entry for each type of User Code present in the environment inthe Table of Contents as well.

90812: vcastqt crash when master.db version is from future version

Previously, VectorCAST would crash if an environment was opened with a future master.dbversion. This error has been fixed in VectorCAST version 2020 SP4.

90834: Record test harness execution start and end time

In previous versions of VectorCAST, the DataAPI member 'start_time', intended to hold theDateTime of the start of test harness execution, incorrectly noted the end time instead.

In VectorCAST version 2020 SP4, the start and end times of C++ and Ada test harnessexecution are available using the DataAPI members 'start_time' and 'end_time' on a'unit_test_models.TestCase'.

90844: Make manage environment variables set at level accessible in Manage DataApi

VectorCAST version 2020 SP4 includes an improvement to the Manage Data API. The ManageData API includes the ability to access the value of any Manage environment variables set at aparticular level of the Manage project configuration.

e.g.from vector.apps.DataAPI.manage_api import VCProjectApi

api = VCProjectApi('Project.vcm')print api.Compiler.first().level.options['enums']

90856: Configuration options set at compiler level are not listed in ManageApi

Previously, when using the VCProjectApi via the DataAPI, VectorCAST would erroneously reportthe root configuration when requesting the configuration options for one level below the root(e.g. the compiler level). Additionally, get_string_path() would return root for objects one level

©Copyright 2021 Vector Informatik, GmbH Page 26

Page 27: VectorCAST version 2020 SP7 Release Notes

below the root. This problem has been fixed in VectorCAST version 2020 SP4.

90889: Test Execute fails in GUI when Environment name contains characters ".DAT"

In previous versions of VectorCAST/C++ and VectorCAST/Ada, an error occurred whenexecuting a test in the VectorCAST graphical user interface when the environment nameincluded the characters ".DAT". This problem has been fixed in VectorCAST version 2020 SP4.

90908: DataAPI always returns EXEC_SUCCESS_NONE for Test Caseexecution_status attribute

Previously, when using DataAPI to gather VectorCAST test case data, the execution_statusparameter did not return the correct value for some states. This error has been fixed inVectorCAST version 2020 SP4.

90918: VCAST_MANAGE_PROJECT_DIRECTORY not set during project load

Previously, project-level environment variables referring to theVCAST_MANAGE_PROJECT_DIRECTORY environment variable would not resolve properly onproject load. This problem is fixed in VectorCAST version 2020 SP4.

90983: Parse error with GHS arm code that relies on accurate field offset calculation

Previously, parse errors occurred in C++ unit test environments when using the defaultsettings for some Green Hills code which relied on type sizes and alignments being known. Thisproblem is resolved in VectorCAST version 2020 SP4.

91113: Line directive from vcast_preprocess incorrectly present in instrumented file

In previous versions of VectorCAST, generation of instrumented files in C/C++ unit testenvironments or Cover environments could leave line directives from preprocessing in thesource file, leading to warnings with some compilers. This problem is fixed in VectorCASTversion 2020 SP4.

91123: Parse error for MSVS: __declspec(dllimport) leads to "defaulted defaultconstructor cannot be constexpr"

Previously, VectorCAST/C++ and VectorCAST/Cover incorrectly gave the error "defaulteddefault constructor cannot be constexpr" when parsing some source code that compiled. Thisproblem has been resolved in VectorCAST version 2020 SP4.

91193: c_cover_io.c file to allow custom header files via new macros

VectorCAST version 2020 SP4 enables the user to #include a custom header file in thec_cover_io.c/cpp file.

To the use the new feature, define one of the following macros in your compile command ofthe instrumented sources, and set it to point to a file to #include in the c_cover_io.c orc_cover_io.cpp file. The path can be absolute or relative to the location of the c_cover_io file.

VCAST_CUSTOM_CREATE_FILE_INCLUDE=<path/to/include_file.h>#include the specified file, whose contents is to be used when creating a file, overriding thedefault code.

VCAST_CUSTOM_CLOSE_FILE_INCLUDE=<path/to/include_file.h>#include the specified file, whose contents is to be used when closing a file, overriding thedefault code.

©Copyright 2021 Vector Informatik, GmbH Page 27

Page 28: VectorCAST version 2020 SP7 Release Notes

VCAST_COVER_CUSTOM_HEADER_INCLUDE=<path/to/include_file>#include the specified file, whose contents is to be used as miscellaneous custom code.

91335: Data API classes UnitTestApi, CoverApi, and VCProjectApi made into contextmanagers

Previously, when interfacing with the DataAPI via a UnitTestApi, CoverApi, or VCProjectApi, theuser was required to manually close the API object after use. For example, previously the userwould write code like this, much like a file must be closed after opening:

api = UnitTestApi('TUTORIAL_C') print api.Unit.first().name api.close()

However, just like a file, it is possible to forget to close the object, or for an exception tointerrupt the control flow, preventing the call.

In VectorCAST version 2020 SP4, these classes have been made into context managers,allowing the use of 'with' with an API object. Using the context manager causes the API to beautomatically closed at the end of the 'with' block:

with UnitTestApi ('/path/to/TUTORIAL_C.vce') as api:

print api.Unit.first().name

with CoverApi ('/path/to/COVER.vcp') as capi:

for res in capi.Result.all(): print res.name

with VCProjectApi ('/path/to/Project.vcm') as vcapi:

print vcapi.Environment.first(is_active=True).name

Using the context managers in this way ensures the API, and any sub-APIs that may havebeen opened, are automatically closed, even if an exception is thrown.

91362: Environment build hangs after trying to abort quickparse error

In previous versions of VectorCAST, C/C++ unit test environment builds could hang afterattempting to abort after quickparse errors occurred. This problem is fixed in VectorCASTversion 2020 SP4.

91380: Template constructors with boost::variant initializers of non-copyable typeswere not recognized as untestable

Previously, VectorCAST's C++ unit test environment builder did not recognize that sometemplate constructors with boost::variant initializers of non-copyable types would not compileif instantiated and made those functions testable, causing a compile error. Those functions arenow detected as untestable in VectorCAST version 2020 SP4.

91390: Manage tooltip incorrectly counts compound-only test with import error as anexecuted test case

In previous versions of VectorCAST, Manage incorrectly counted a compound-only test with astrict import error as having been executed with the other tests. This problem resulted inincorrect summary data in the tooltip summary in the Project Tree for a unit test environment.

©Copyright 2021 Vector Informatik, GmbH Page 28

Page 29: VectorCAST version 2020 SP7 Release Notes

This problem has been corrected in VectorCAST version 2020 SP4.

91393: GUI crash when editing command verb and Vcshell database path uses anenvironment variable

In previous versions of VectorCAST, editing the command verb in the Manage ConfigurationEditor could crash the GUI if the vcshell database path was using an environment variable. Thisproblem is fixed in VectorCAST version 2020 SP4.

91419: Indicate execution of VCAST_PRECOMPILE_SCRIPT in message window orstdout

In VectorCAST version 2020 SP4, whenever the command specified byVCAST_PRECOMPILE_SCRIPT is executed, a message indicating such is displayed in theMessage Window (for the GUI) or stdout (for CLI applications). If the specified commandexecutes with an error status, an error message is displayed.

91431: Parse error for identifier "__ev64_opaque__" is undefined

For VectorCAST/C++ and Cover environments, VectorCAST previously gave an error forPowerPC code containing the __ev64_opaque__ type. Now that type is recognized when --powerpcis added to the parser flags. This problem is resolved in VectorCAST version 2020 SP4.

91451: Importing CBA results between Unit Test and Cover environments forfunctions in anonymous namespace not working

Previously, Coverage by Analysis results (CBA) for functions with internal linkage could not beexported from a unit test environment and imported to a Cover environment or the other wayaround. This problem has been resolved in VectorCAST version 2020 SP4. To get the newbehavior, you must reinstrument all affected environments and export the results again.

91508: Block coverage exclusion support

VectorCAST version 2020 SP4 includes a new functionality for VectorCAST/Coverenvironments. VectorCAST no longer instruments files for block statements that contain thecomment or pragma "vcast_dont_do_block_statements".

91518: A concrete class should not be created if vcast_concrete<class name> is inenvironment script as ENVIRO.NOT_SUPPORTED_TYPE

VectorCAST version 2020 SP4 fixes an error in C++ unit test environments and avoids creatingan automatic concrete class for an abstract class if the environment script specifiesENVIRO.NOT_SUPPORTED_TYPE: vcast_concrete_<class name>.

91544: Ability to have empty VCAST_WRITE_TO_INST_FILE_COVERAGE() function inc_cover_io.c file

In VectorCAST version 2020 SP4,when the macro VCAST_CUSTOM_STD_OUTPUT_NONE isdefined, the c_cover_io.c/cpp file implements an emptyVCAST_WRITE_TO_INST_FILE_COVERAGE() function, useful for resolving link errors whenreading results directly from a hardware buffer in a debugger.

91564: Allow environments to be opened without forcing the user to sync with theenvironment repository

In previous versions of VectorCAST/Enterprise Testing, when a dependency change wasdetected on a workspace environment (source code change, test script change, etc.), the

©Copyright 2021 Vector Informatik, GmbH Page 29

Page 30: VectorCAST version 2020 SP7 Release Notes

environment would have to sync with its dependencies before the environment could beopened. In VectorCAST version 2020 SP4, it is now possible to decline syncing the environmentbefore opening.

91597: Incorrect instrumentation of first if-statement when using function+functioncall coverage

Previously, when instrumenting source files in a VectorCAST/C++ unit test environment orCover environment, in some cases, the function calls in the first if-statement of a function wereinstrumented twice in a row, leading to incorrect coverage reports for function+function callcoverage. This problem has been resolved in VectorCAST version 2020 SP4.

91606: VectorCAST crashes when building environment with `std::vector` to sameclass

Previously, VectorCAST crashed when building C++ environments for some source code wherea class had a list of itself if the language version was C++11 or higher. This problem has beenresolved in VectorCAST version 2020 SP4.

91611: Improved CUDA support scripts

VectorCAST version 2020 SP4 implements an improved workflow for VectorCAST with CUDAfiles. The new method creates a single Cover environment, providing more efficient filemanagement. Users have the option to transition to the new method or stay with the oldmethod, and are encouraged to contact their VectorCAST support personnel.

To stay with the same workflow as in previous versions, either recreate the VectorCAST Projectin the Automation Controller in the usual way using VectorCAST version 2020 SP4, or add thefollowing define to the C_DEFINE_LIST option: VCAST_LEGACY_CUDA.

A parse error similar to the following during instrumentation indicates that either theVCAST_LEGACY_CUDA define needs to be added or the Project needs to be transitioned to thenew workflow:

Error: Parse failed"/path/to/source_file.cu", line 39: error: identifier "threadIdx" is undefined const int tid = threadIdx.x;

In addition, in previous versions, VectorCAST's MC/DC instrumentation for CUDA would writeincorrect bits into the coverage arrays. This problem has been fixed in VectorCAST version2020 SP4.

91613: Environment build fails when Ada non-package spec file declares rename ofsubprogram

In previous versions of VectorCAST/Ada, the environment builder would fail when parsing anon-packaged subprogram that had no body (such as a subprogram that is a rename ofanother subprogram). This problem is fixed in VectorCAST version 2020 SP4.

91627: Compile error instrumenting MC/DC coverage after range-based for-loop

Using VectorCAST version 2020 SP3, MC/DC instrumentation did not compile in a C/C++ unittest or Cover environment when a range based for-loop was the first statement in a functionand a subsequent statement in the file contained a branch. This problem has been resolved inVectorCAST version 2020 SP4.

©Copyright 2021 Vector Informatik, GmbH Page 30

Page 31: VectorCAST version 2020 SP7 Release Notes

91676: Non-Latin-1 characters entered in Parameter Tree are not preserved

In previous versions of VectorCAST, string input and expected values in a Unit Testenvironment's test case Parameter Tree would not be saved properly if any character was notvalid in a Latin-1 encoding. This problem is fixed in VectorCAST version 2020 SP4.

91716: Selecting a vcshell database in the environment wizard causes environmentvariables to become unset

Previously, when specifying a vcshell database in the C/C++ Create New Environment wizard,any environment variables beginning with "_VC" or "VC_" used in the calling shell wereinadvertently unset. This problem has been fixed in VectorCAST version 2020 SP4.

91745: Missing function call instrumentation for some calls inside template functions

Previously, when instrumenting for Function+Function Call coverage in a C/C++ unit test orCover environment, instrumentation was omitted for some calls inside template functions. Thisproblem has been resolved in VectorCAST version 2020 SP4.

91779: Function call coverage instruments function calls from default parameters butshouldn't

Previously, when instrumenting for Function Call Coverage in a unit test or Cover environment,VectorCAST instrumented function calls bound to default parameters, thus affecting theAggregate Coverage Report. This problem has been corrected in VectorCAST version 2020 SP4.

91814: Basis Path coverage records incorrect start and end lines for functions whenVCAST_BASIS_PATHS_FOR_CONSTANT_BRANCHES is False

In previous versions of VectorCAST, the C/C++ basis path instrumenter incorrectly located theinstrumentation start and end locations for some functions when the option "Generate basispaths for constant branch conditions" was False. This problem has been corrected inVectorCAST version 2020 SP4. The correct information is available via the DataAPI objectInstrumentedFunction and its attributes inst_start_line and inst_end_line.

Release Notes - VectorCAST: 2020 SP3 Release

23313: Improve placement of timer user code to allow more accurate timing

In previous versions of VectorCAST, start timer user code in a C/C++ unit test harness wouldbe invoked before recording the call to the function under test. This invocation would causetiming intervals to be longer than appropriate. The location of the timing calls is improved inVectorCAST version 2020 SP3 for more accurate timing.

27796: New macro: VCAST_CUSTOM_END

In VectorCAST version 2020 SP3, a new harness customization feature has been added to theVectorCAST driver for use with C/C++ unit test environments. This feature enables a user-defined function to be called at the very end of test harness processing, right before the exit()function is called.

To use the feature, add the macro VCAST_CUSTOM_END to the Defined Variables list:

clicast -lc option C_DEFINE_LIST VCAST_CUSTOM_END=myEndwhere myEnd is a function with C linkage and with the signature: 'void myEnd(void);'.

©Copyright 2021 Vector Informatik, GmbH Page 31

Page 32: VectorCAST version 2020 SP7 Release Notes

Alternatively, a #define directive in User Code can be used to define the macro, orVCAST_CUSTOM_END can be added to the Compile command as a command line macro.

57339: Visually differentiate sources with no coverable lines in Cover environment

Previously, when some source files in a Cover environment had no coverable lines at all, theuser could not differentiate them from sources that had many coverable lines but no coverageachieved.

In VectorCAST version 2020 SP3, the Environment View in a Cover environment shows sourcefiles with no coverable statements, branches, or MC/DC pairs as having an empty graycheckmark in the appropriate column, which indicates it cannot achieve any coverage. Sourceswith no coverage achieved are still shown with an empty coverage bar.

85607: Coverage Results pane in Cover environments updated to filterable table

In VectorCAST version 2020 SP3, the Coverage Results pane in Cover environments has beenupdated to the filterable table, making it easier to filter out some results when working with alarge set of test results.

By entering text or a regular expression in the familiar <<filter>> field, the user can filter byname, and in addition, results from a specific source can be filtered out. The sources are:

> Test results> Coverage by Analysis (CBA) results> Imported results

For example, in an environment with Test Results as well as CBA results, the Coverage Resultspane displays a new button with a menu to select whether to display the Test results or theCBA results or all (default). Similarly, if a Cover environment contains Imported results, asecond button is available to select whether to display Imported results or non-Importedresults or all (default). For environments with several types of results, both buttons aredisplayed, allowing filtering in many combinations.

Clearing the filter also clears the settings in these buttons.

85937: ENVIRO.SEARCH_LIST being written to the environment repository

Previously, applying changes made to an environment's settings in Manage would causeoptions from the parent node to be erroneously applied to the environment across contexts.For example, options set at the compiler level configuration would be applied to theenvironment level configuration, causing a build failure. This problem has been fixed inVectorCAST version 2020 SP3.

86333: Localization of HTML and TEXT reports

With VectorCAST version 2020 SP3, all reports in unit test environments, cover environments,and VectorCAST projects are translated to the language set on the GUI tab in the Optionsdialog. Both TEXT and HTML reports are translated.

86611: New option "No sprintf defined" to compile harness with macroVCAST_NO_SPRINTF

VectorCAST version 2020 SP3 implements a new Target option, "No sprintf defined," to directthe C/C++ unit test harness to build with the macro VCAST_NO_SPRINTF. Located in the Optionsdialog, Target tab, Header Options sub-tab, set this option to True when the library functionsprintf() is not defined in the compiler being used.

©Copyright 2021 Vector Informatik, GmbH Page 32

Page 33: VectorCAST version 2020 SP7 Release Notes

clicast -lc option VCAST_NO_SPRINTF True | False

The default value is False.

86739: Can't retrieve commands from vcshell.db if the same file is processedmultiple times

Previously, the vcdb command line utility could only report the most recent (last executed)command for any given file. This means that it was impossible to find all compilationcommands if a single source file was compiled multiple times in a build.

For example, the following build commands could not be retrieved, as only the secondcompilation of file.c would be reported:

gcc -c file.c -DPART=1 -o file_part1.ogcc -c file.c -DPART=2 -o file_part2.ogcc file_part1.o file_part2.o -o my_app

In VectorCAST version 2020 SP3, the user should add the new '--multiple' flag to existing vcdbcommand invocations to report all commands for a given source file.

vcdb getallcmdlines --multiple

Without '--multiple' the previous behavior is invoked (only report the most recent commandper file).

87703: Better error messages when creating test script templates and prerequisitefiles aren't available

Previously, VectorCAST gave a misleading error when generating a test script template ifRANGE_CHECK was set to NONE. This problem has been resolved in VectorCAST version 2020SP3.

87757: Using <<min>> or <<max>> on a bit-field enum leads to a crash

Previously, the VectorCAST/C++ unit test harness crashed when executing tests with<<MIN>> or <<MAX>> set for bit field enumerals. This problem has been resolved inVectorCAST version 2020 SP3.

87947: Compilation error for container code

Previously, VectorCAST/C++ generated unit test harness code which did not compile for stdcontainers when assigning one container to another, causing a compile error. This problem hasbeen resolved in VectorCAST version 2020 SP3.

88891: Execute with Debug should go through Jobs monitor

In previous versions of VectorCAST, executing a test case via "Execute with Debug" launchedthe debugger without adding the command to the Jobs monitor. This problem is fixed inVectorCAST version 2020 SP3.

89404: Test Scripts contain lines with trailing whitespace

In previous versions of VectorCAST, test scripts generated in unit test environments mightcontain trailing whitespace on some lines. In VectorCAST version 2020 SP3, this whitespace isnot added. Note that whitespace in user-provided data is not changed.

89994: Functions declared with '__attribute__((naked))' should not be instrumented

©Copyright 2021 Vector Informatik, GmbH Page 33

Page 34: VectorCAST version 2020 SP7 Release Notes

Previously, VectorCAST added stub-by-function modifications and coverage instrumentation to'__attribute__((naked))' functions, causing a compile error in the test harness of C/C++ unittest environments and when compiling the instrumented sources in Cover environments. InVectorCAST version 2020 SP3, those functions are no longer stubbed or instrumented for codecoverage by VectorCAST.

90073: Debug log file name prefix now defaults to "debug.log"

In VectorCAST 2020 SP3, when debug logging is enabled, the debug log output location nowdefaults to a file with the name prefix "debug.log". To override this prefix, the environmentvariable VCAST_DEBUG_FILENAME can be specified. The clicast /F: (-f) argument is no longersupported for specifying a debug log file name prefix. To direct debug log output to stdoutinstead of a file, set VCAST_DEBUG_FILENAME to "-".

90168: VectorCAST window titles shortened to show "VectorCAST 2020"

Previously, the titlebar of the main window in the VectorCAST application showed "VectorCAST2020 <product name>". In VectorCAST version 2020 SP3, the main window's title shows only"VectorCAST" and the main version number, 2020.

90179: Environment Coverage Type

VectorCAST version 2020 SP3 includes a new feature called Environment Coverage Type. Thisfeature is for Cover environments.

The user now chooses a coverage type for the entire environment during environmentcreation, and then just instruments each file without having to specify the same coverage typeagain and again.

Any files added to the environment after the environment coverage type has been set will havethe environment coverage type configured by default. This simplifies the process of workingwith and adding many files to an existing coverage environment. Note that specific files canstill have a coverage type different than the coverage type specified for the environment, ifnecessary.

In the Environment wizard, there is a new Coverage Type menu used to select theenvironment coverage type. The Coverage has been updated and is used to specify theenvironment coverage type.

The right-click “Instrument” menu has been updated and is now labeled “Set Coverage Type”.This allows for files to be set to either the default environment coverage type or anothercoverage type.

A new clicast command exists for specifying the coverage type for a file or the entireenvironment:

clicast -lc -e <env> [-u <unit>] Cover ENvironment SET_Coverage_type --clear | None |STATEMENT+MC/DC | STATEMENT+BRANCH | FUNCTION+FUNCTION_CALL | FUNCTION | MC/DC | BASIS_PATHS| BRANCH | STATEMENT | PROBE_POINT | COUPLING

Description: Set the coverage type for a cover environment or source file. Use –-clear to clearthe coverage type for a source file or for all source files within the environment. Note: Either acoverage type or the "-–clear" argument must be specified in the command.

90180: Option to skip instrumenting unreachable code

©Copyright 2021 Vector Informatik, GmbH Page 34

Page 35: VectorCAST version 2020 SP7 Release Notes

VectorCAST version 2020 SP3 includes a new coverage option namedVCAST_INSTRUMENT_UNREACHABLE_CODE.

Located in the VectorCAST options dialog, Coverage Tab, Instrumentation Options sub-tab, theoption is called "Instrument unreachable code." This option applies to Unit and Coverenvironments for C and C++, C++11, C++14. The coverage option is on by default and thereis no change in behavior.

Disabling this option allows the VectorCAST instrumenter to skip instrumenting code that itdetermines to be unreachable. Examples include if(0), while(0), or code that follows a returnstatement. Like other instrumentation options, changing this setting requires a reinstrument ofall source files.

To configure via clicast:clicast -lc Option VCAST_INSTRUMENT_UNREACHABLE_CODE True | False

90222: Parse error for stdlib.h GCC 8.3.1: identifier undefined _Float32, _Float32x,_Float64, _Float64x, _Float128

Previously, VectorCAST/C++ and Cover environments returned the error "identifier... isundefined" for the GNU C keywords _Float32, _Float32x, _Float64, _Float64x, and _Float128.This problem has been resolved in VectorCAST version 2020 SP3.

90231: Rename Right-click=>Execute=>Full to Incremental

VectorCAST version 2020 SP3 updates the system testing environment user interface. Theright-click menu is updated and clarifies that the Execute command performs an Incrementalexecute.

90514: clang __builtin functions not recognized

Previously, in VectorCAST C++ and Cover environments VectorCAST did not recognize someclang __builtin functions such as __builtin_ia32_readeflags_u64. This problem has beenresolved in VectorCAST version 2020 SP3.

90532: VectorCAST exit after network disabled results in lost work in the Test CaseEditor

Previously, a loss of network connection to the license server in some situations would causeVectorCAST to close and cause any pending test case changes to be lost. This problem hasbeen fixed in VectorCAST version 2020 SP3. Unsaved test case changes are automaticallysaved before closing.

90551: Harness compile error occurs when template-based function returns anincomplete class

Previously, VectorCAST C++ environments created stub code for function templates returningincomplete classes and could also treat those functions as testable, causing a compile error.This problem has been resolved in VectorCAST version 2020 SP3.

90563: Harness compile error for stubbed thread-local static member variable

Previously, VectorCAST generated the stub for undefined static __thread members incorrectly,causing a compile error. This problem is resolved in VectorCAST version 2020 SP3.

90567: Size check for harness input data incorrectly uses symbolic name

Previously, VectorCAST/C++ incorrectly used the symbolic constant name instead of the value

©Copyright 2021 Vector Informatik, GmbH Page 35

Page 36: VectorCAST version 2020 SP7 Release Notes

of the symbolic constant when detecting whether harness input data exceededVCAST_MAX_STRING_LENGTH. This problem meant some test cases using long symbolicconstant names were unnecessarily prevented from executing. In addition, some test caseswith long symbolic constant values were permitted to run but they crashed during harnessexecution. These problems have been resolved in VectorCAST version 2020 SP3.

90571: Last statement in GNU statement expression missing Function Call coverage

In previous versions of VectorCAST, Function Call coverage could be omitted on the laststatement in a GNU statement expression when instrumenting Statement coverage withVCAST_ENABLE_FUNCTION_CALL_COVERAGE set to True. This problem is fixed in VectorCASTversion 2020 SP3.

90600: New options to call script on environment open and close

VectorCAST version 2020 SP3 implements two new options to enable the user to execute acommand while a C/C++ or Ada unit test environment is opening or closing.

Located in the Options dialog, Target tab, the options are called "Environment initializationcommand" and "Environment finalization command", and can be set by entering the path to asystem command, an executable application, or a shell and script to be executed in theenvironment directory.

When using clicast, the user should be aware that every command taking the argument "-e<env>" opens and closes the environment. Therefore, the options can be set immediately beforecalling the clicast command of interest, and unset afterwards.

The "Environment initialization command" is executed right before building the range dataduring environment open, and the "Environment finalization command" is executed just as theenvironment begins to close.

clicast -lc|-lada option VCAST_CMD_DURING_ENV_OPEN <cmd>clicast -lc|-lada option VCAST_CMD_DURING_ENV_CLOSE <cmd>where <cmd> is an executable application or script to be executed in the environment directory.

90602: Internal error: record_substitution_for_type

Previously, VectorCAST gave the error "Internal error: assertion failed at: "lower_name.c",line 9445 in record_substitution_for_type" when parsing some source code containingtemplates in C++ unit test and cover environments. This problem has been resolved inVectorCAST version 2020 SP3.

90643: Parser fails to give error for invalid code using undeclared std::exception

Previously, when parsing code using a namespace qualified type without a prior declaration ofthe type, VectorCAST/C++ and VectorCAST/Cover did not report an error. This problem hasbeen resolved in VectorCAST version 2020 SP3.

90649: Invalid coverage instrumentation when switch statement contains GNU locallabel

Previously, VectorCAST inserted branch coverage instrumentation that did not compile inC/C++ unit test and Cover environments, when the source code contained a function with botha GNU local label and a switch statement. This problem has been resolved in VectorCASTversion 2020 SP3.

90663: Basis path report not showing correct name for lambda function

©Copyright 2021 Vector Informatik, GmbH Page 36

Page 37: VectorCAST version 2020 SP7 Release Notes

Previously, Basis path reports were incorrect for source code containing lambda functionsinside GNU statement expressions. Basis path reports for Cover environments did not take anycontents of the GNU statement expressions into account. Basis path reports for C++ unit testenvironments used an incorrect subprogram name for the lambda functions. These problemshave been resolved in VectorCAST version 2020 SP3.

90770: vcshell --echo output file is missing commands that are in the vcshell.db file

Previously, when running 'vcshell --echo --out' to see the commands that vcshell capturedduring database creation, some commands were sporadically missing. This problem has beenfixed in VectorCAST version 2020 SP3.

90789: Harness compile error when vector or deque contains a type with a deletedcopy assignment operator

Previously, VectorCAST/C++ generated unit test harness code which did not compile for somesource code containing an std::vector or std::deque of a class with an explicitly deleted copyassignment operator. This problem has has been resolved in VectorCAST version 2020 SP3.

90829: Parser should accept unsigned long int as size_t for IAR RX mode

Previously, in C/C++ Unit Test and Cover environments, VectorCAST gave a parse error forIAR RX code where size_t was unsigned long. This problem has been resolved in VectorCASTversion 2020 SP3.

90855: Manage slowdown during build

VectorCAST version 2020 SP3 includes a fix for slowdowns observed during a build in someVectorCAST Projects version 2019 SP2 and later. The slowdown was caused by an error in acleanup process and has been fixed. Rebuild the VectorCAST Project with the latest version ofVectorCAST to fix the problem.

90860: Ambiguous overload when generating driver call to function in multiplenamespaces

Previously, VectorCAST/C++ generated test harness code that did not compile for some sourcecode containing a testable function with the same name as a function in a namespace. Thisproblem has been resolved in VectorCAST version 2020 SP3.

90873: '--source-file=<unit>' ignored by Manage when creating Aggregate CoverageReport

Previously, the manage command line ignored the '--source-file' argument when creating theAggregate Coverage report. This problem has been fixed in VectorCAST version 2020 SP3.

manage -p <project> --source-file=<path to unit> --create-report-aggregate

90896: Crash during function call instrumentation of constructor

In some VectorCAST/C++ and Cover environments, function call instrumentation crashed forsome source code containing constructor initializers involving other constructors. This problemhas been resolved in VectorCAST version 2020 SP3.

90906: Performance improvements generating the Coupling Coverage Report

VectorCAST version 2020 SP3 has improved VectorCAST's performance while generating theCoupling Coverage Report. The time needed to generate the report has been reduced by 97%,and the memory consumption reduced by 90%.

©Copyright 2021 Vector Informatik, GmbH Page 37

Page 38: VectorCAST version 2020 SP7 Release Notes

90911: enviroedg crash when using #pragma ghs interrupt

Previously, VectorCAST crashed when building C++ unit test environments for some sourcecode containing #pragma ghs interrupt. This problem has been resolved in VectorCAST version2020 SP3.

90912: Support clang vector extension: attribute ext_vector_type

Previously, VectorCAST C++ and Cover gave errors when parsing some clang source codecontaining '__attribute__ ext_vector_type'. This problem has been resolved in VectorCASTversion 2020 SP3.

90925: Parse error with IAR code where __root-qualified type is used for non-__rootparameter

Previously, in C/C++ Unit Test or Cover environments, VectorCAST gave the error "argument oftype... is incompatible with parameter" when parsing IAR source code in which a __rootvariable was passed to a function taking a non-__root parameter. This problem has beenresolved in VectorCAST version 2020 SP3.

90935: Probe point test compile reports success if exit status is 0 but no objectcreated

In previous versions of VectorCAST, test compiling probe points could fail to show errormessages if the compiler exit status was 0 but no object file was created. This problem is fixedin VectorCAST version 2020 SP3.

90946: Suppress Coverable Functions does not work on Windows for headers withupper-case letters in name

Previously, using the suppress coverable functions for a header using uppercase letters in thename would not work correctly on a VectorCAST C/C++ environment for Windows. Thecoverable function was not suppressed correctly. This error is fixed in VectorCAST version 2020SP3.

90954: Calling a stub from expected value user code triggers infinite recursion

Previously, VectorCAST/C++ environments built with version 2020 or later went into an infiniteloop if expected value user code contained a stub call. This problem has been resolved inVectorCAST version 2020 SP3. To get the new behavior, you must rebuild any affectedenvironments.

90986: New Coupling Access Reports provide more detail, faster generation

In VectorCAST version 2020 SP3, the Coupling Coverage Report has been streamlined,improving the generation time for the report. The Coupling Coverage Report now contains ahigh level overview of the Coupling coverage in the application.

Detailed information on data couples and control couples has been moved to two new reports:

> Coupling Access Order Full Report> Coupling Access Order Error Report

The reports are available from the Menu Bar by selecting:

Environment => View => Coupling Access Order Full ReportEnvironment => View => Coupling Access Order Error Report

©Copyright 2021 Vector Informatik, GmbH Page 38

Page 39: VectorCAST version 2020 SP7 Release Notes

or by selecting:

Tools => Coupling => Access Order Report => Generate Full ReportTools => Coupling => Access Order Report => Generate Error Report

Coupling Access Order Full Report

The Coupling Access Order Full Report is a detailed Coupling verification report for each test.This report verifies that the architecture was correctly followed for all tests, and details the testcoverage in access order for each test result added. The report consists of the followingsections:

> Configuration Data - Contains environment name as well as the date and time of thereport creation.> Summary - Shows metrics for test results with access errors and for data coupleaccess errors.> Data Couple Access Errors - Shows details of access errors for data couples.> Control Couples per Test Result - Shows the access order for each control couple.References with an error are marked.> Data Couples per Test Result - Shows the access order for each data couple.References with an error are marked.

Coupling Access Order Error Report

The Coupling Access Order Error Report details the test coverage in access order for each testresult added that contains an error. Only couples with access errors are displayed in thisreport. The report consists of the following sections:

> Configuration Data - Contains environment name as well as the date and time of thereport creation.> Summary - Shows metrics for test results with access errors and for data coupleaccess errors.> Data Couple Access Errors - Shows details of access errors for data couples.> Incorrect Control Couples and Data Couples - Shows details of access errors ofcontrol and data couples.

clicast -e <cover env> COUpling REport ACCESS_ORDER_Full [<output-file>]

clicast -e <cover env> COUpling REport ACCESS_ORDER_Error [<output-file>]

91020: Vector license daemon exits with nonzero status

In recent versions of VectorCAST, the FLEXlm tools would fail to start if the Windows UniversalC Runtime was not installed. In VectorCAST 2020 SP3, the necessary libraries are installed inthe FLEXlm subdirectory to avoid this problem.

91027: DataAPI reports environment having MCDC data after reinstrumenting forstatement

Previously, in some circumstances when VectorCAST unit test environments were instrumentedfor MC/DC coverage and then re-instrumented for another coverage type, MC/DC coverageconditions data was not cleared correctly. This error has been fixed in VectorCAST version2020 SP3.

91081: Harness compile error in call to function under test when #pragma nomisracused in UUT

©Copyright 2021 Vector Informatik, GmbH Page 39

Page 40: VectorCAST version 2020 SP7 Release Notes

VectorCAST/C++ unit test environments generated test harness code which did not compile forsome source code containing #pragma nomisrac. This problem has been resolved in VectorCASTversion 2020 SP3.

91107: Treat discretionary errors as warnings during parse

In VectorCAST version 2020 SP3, when parsing C or C++ code in unit test or Coverenvironments, errors that were previously considered discretionary are now treated aswarnings.

91114: Python sys.executable is not set properly

Previously, when VectorCAST's vpython was used to call a python script on the Linux platform,VectorCAST was inadvertently using the local system's Python rather than VectorCAST'svpython. This problem has been corrected in VectorCAST version 2020 SP3.

91170: Increase default stack size to avoid crashes when parsing large TUs

Previously, VectorCAST/C++ and VectorCAST/Cover crashed on Linux when parsing somecomplex files due to running out of stack space. In VectorCAST version 2020 SP3, the defaultstack size has been increased on all platforms.

91173: Parser crash when class declares non-const copy constructor

Previously, C++ unit environments and Cover environments crashed when parsing somesource code with copy constructors having non-const parameters. This problem has beenresolved in VectorCAST version 2020 SP3.

91181: Existing Clicast option SUBSTITUTE_CODE_FOR_C_FILE added to Optionsdialog

VectorCAST version 2020 SP3 implements an existing clicast-only link-time option in theOptions dialog, C/C++ tab, Linker/Debug sub-tab. The option is named "Substitute code forincluded files."

When constructing the test harness, some VectorCAST-generated source files may #includeother source files that contain function definitions. Some debuggers are not able to showsource code for functions defined in #included files.

Enable this option to direct VectorCAST to replace such #includes with the content of the#included file before compiling. Enabling this option requires environment rebuild.

clicast -lc option SUBSTITUTE_CODE_FOR_C_FILE True | FalseThe default value is False.

91187: Coverage instrumentation point inserted between #pragma DATA_SECTIONand the next statement

Previously, VectorCAST/Cover and C++ environments inserted coverage instrumentationbetween the Code Composer #pragma DATA_SECTION and the next statement, causing a compileerror. This problem has been resolved in VectorCAST version 2020 SP3.

91204 : Manage C/C++ > Startup files does not offer convert path to useenvironment variables

In VectorCAST version 2020 SP3, the Manage configuration editor now allows converting pathsto environment variables when editing startup files, Lint option files, and Lint additional include

©Copyright 2021 Vector Informatik, GmbH Page 40

Page 41: VectorCAST version 2020 SP7 Release Notes

directories.

91222: Invalid coverage lines for overloaded template functions that differ only intemplate arguments

Previously, in Cover environments and C++ unit test environments, VectorCAST incorrectlyreported some coverage result lines as invalid when a unit contained more than one functionwith the same name but different template arguments. This problem occurred for bothcoverage results and imported coverage by analysis results. This problem has been resolved inVectorCAST version 2020 SP3. To get the new behavior, you must reinstrument any affectedfiles.

91225: "Scanning Project Files..." dialog does not disappear

Previously, when opening an environment within a VectorCAST project with many suites, thescanning files operation hung, displaying a progress bar that would not go away. This problemhas been fixed in VectorCAST version 2020 SP3.

91272: Probe Point is lost when adding an existing envrionment to a project

Previously, when migrating an existing environment into a project, some existing probe pointscould be dropped. The problem is fixed in VectorCAST version 2020 SP3.

91284: Crash when using Vector Test Data Editor

Previously, VectorCAST would occasionally crash while using the Test Data Editor feature witha VectorCAST/C++ Unit Test environment. This issue has been fixed in VectorCAST version2020 SP3.

91292: Environment builder crashes with SBF for templates enabled

Previously, when a C++ unit test environment contained a source file with a variadic templatefunction that was used without template arguments, the environment builder would crash. Thisproblem has been fixed in VectorCAST version 2020 SP3.

91369: Test harness for Code Composer code with bitfields larger than their typedoes not compile

Previously, VectorCAST/C++ generated test harness code that did not compile for CodeComposer code where a bitfield was larger than its type. This problem has been resolved inVectorCAST version 2020 SP3.

91490: System Testing environment does not properly record change of "Instrumentblocks for statement coverage" option in cover.db

Previously, when the user changed the setting for the coverage optionVCAST_COVER_STATEMENTS_BY_BLOCK on a previously-instrumented environment, thatchange was not honored, and therefore did not correctly perform the reinstrumentation duringenvironment build/execute. This problem has been fixed in VectorCAST version 2020 SP3.

91495: Global buffer optimizations are missing when running regression script

Previously, a Cover environment with global buffer optimizations enabled would not rebuildcorrectly from a regression script. This problem has been fixed in VectorCAST version 2020SP3.

Release Notes - VectorCAST: 2020 SP2 Release

©Copyright 2021 Vector Informatik, GmbH Page 41

Page 42: VectorCAST version 2020 SP7 Release Notes

16143: Changing test case option "Check/display global data after" alone does nottrigger save

In previous versions of VectorCAST, selecting a different choice in unit test environments forthe Test Case option "Check/display global data after" would not get saved if no other aspectsof the test case had changed. This problem is fixed in VectorCAST version 2020 SP2.

60903: Parse error when using --16_bit_target flag

VectorCAST gave the error "assertion failed" for source code containing strlen functions if theparser flag --16_bit_target or --visual_dsp_version=blackfin was used. This problem has beenresolved in VectorCAST version 2020 SP2.

73736: Regression scripts changed to halt further processing when failure occurs

In VectorCAST version 2020 SP2, the regression script file (.bat/.csh) for Cover environmentsand C++ and Ada unit test environments has been changed to halt further processing after anerror occurs, such as when the environment already exists.

By default, the TOols EXEcute_commands <command file> [True|False] command halts processingwith the True argument, but in previous versions of VectorCAST, the regression scripts weregiven the False argument.

The following line in the regression script has changed from:

%VECTORCAST_DIR%\CLICAST" /L:C tools execute commands.tmp falseto%VECTORCAST_DIR%\CLICAST" /L:C tools execute commands.tmp true

78212: Error "RGW Database not initialized" displayed

Previously, when working with a Requirements Gateway (RGW) database, sometimes an errordialog with the text "RGW Database not initialized" displayed repeatedly, leading to a crash inVectorCAST unit test or cover environments. This situation usually occurred when the RGWdatabase was located in another directory, and the user set the option "RGW databaselocation" in the Options dialog before opening the environment. This problem has been fixed inVectorCAST version 2020 SP2.

80570: Lambda returned from auto return function should not appear in ParameterTree

Previously, in VectorCAST C++ unit test environments, functions returning lambda functionsappeared in the Parameter Tree as having a ClassPtr type but with no available subclasses.Starting with VectorCAST version 2020 SP2, those return values do not appear in theParameter Tree.

81885: Eliminate harness global vCAST_TEST_NAME

In VectorCAST version 2020 SP2, the vCAST_TEST_NAME global variable has been removed fromthe test harness in C/C++ unit test environments to improve performance. Any user codewhich references this global should be updated to use vCAST_ORDER_OBJECT.testName instead.

83527: Macros defined in a vcshell database, CCAST_.CFG file, and unit compilationarguments added to Symbolic Constants table

In previous versions of VectorCAST, the Symbolic Constants table in C/C++ unit test

©Copyright 2021 Vector Informatik, GmbH Page 42

Page 43: VectorCAST version 2020 SP7 Release Notes

environments displayed integer, float, and string macros defined in the source code (listed as"code" in the table), and symbols defined in a user dictionary (listed as "user").

In VectorCAST version 2020 SP2, the Symbolic Constants table also displays macros from avcshell database that is used to build the environment ("vcdb"), macros defined in the optionC_DEFINE_LIST in the CCAST_.CFG file ("config"), and macros defined in the Unit Options inthe Environment script's UNIT_COMPILATION_ARGUMENTS option ("config"). If changes to theconfiguration are made, the environment must be rebuilt for the newly-defined macros todisplay in the Symbolic Constants table.

See the VectorCAST Utilities User's Guide for more information on creating a vcshell database.

84550: Support "Suppressed Coverable Functions" in C/C++ Unit Test environments

In previous versions of VectorCAST, the "Suppressed Coverable Functions" option was onlyaccessible in the Options dialog when Cover environments were open. In VectorCAST version2020 SP2 this option is accessible in both Cover environments and unit test environments.

This feature is now located in the Options dialog, Coverage tab => Options tab => SuppressedCoverable Functions tab. Click the [+] button to add a file or function to be suppressed duringinstrumentation, using the following syntax:

file.ext:function (for C sources) file.ext:class::function (for C++ sources)

The wildcard character can be used to match any text.

For example:

• manager.c:* suppresses instrumentation of all functions in manager.c• manager.c:Place* suppresses instrumentation of any functions in manager.c startingwith "Place"• manager.cpp:Manager::Place* suppresses instrumentation of any functions inmanager.cpp, in the class Manager, starting with "Place"• templates.cpp:List<*>::push_back suppresses instrumentation for all types of thepush_back function in the List template class. Suppressing only one type but notanother is not supported.

Changes to this option require reinstrumentation to take effect.

clicast -lc option VCAST_SUPPRESS_COVERABLE_FUNCTIONS <file.ext>:<function>,[<file.ext>:<function>]

85914: Add -ftrack-macro-expansion=0 and remove -C for preprocess command forGNU versions >= 5

VectorCAST version 2020 SP2 has modified the compiler template for GNU Native compilers,version 5.x and greater, for C, C++, C++11, C++14, and C++17 templates.

The compiler option "Preprocessor command" has the following changes to <cmd>: -ftrack-macro-expansion=0 is added

clicast -lc option C_PREPROCESS_CMD <cmd>

Compiler templates for GNU Native version 4.9 and earlier are unchanged.

86904: Incorrect conversion for character values from Numeric to Character for

©Copyright 2021 Vector Informatik, GmbH Page 43

Page 44: VectorCAST version 2020 SP7 Release Notes

printable chars

In VectorCAST unit test environments, the test case editor allows right-click actions to convertchar values between character and numeric mode. In previous versions of VectorCAST,conversions from printable char values in character mode to numeric mode and then back tocharacter mode did not convert properly. This problem is fixed in VectorCAST version 2020SP2.

87040: Create a vcshell database from an existing Cover environment for parallelinstrumentation

VectorCAST version 2020 SP2 provides an easy way for Cover environment users to generate avcshell database from an existing environment, which can then be used for parallelinstrumentation. The new functionality is implemented as two new clicast commands:

clicast -e <cover-env> Cover ENvironment Generate_vcshell_from_existing <vcshell-filename>

and

clicast -e <cover-env> Cover ENvironment SEtup_vcshell_from_existing

The first command, 'cover environment generate', creates a vcshell database named <vcshell-filename> in the working directory. VectorCAST detects the source files, include directories, andany defines from the CCAST_.CFG file and Unit Options in use in the Cover environment(<cover-env>), and puts this information in the vcshell database. Standard commands such as'vcdb getfiles' and 'vcdb getoptions' can be used on this vcshell database.

The clicast command then associates the <vcshell-filename> with the Cover environment<cover-env>, so they can work together.

If you plan to use parallel instrumentation with this Cover environment, it is recommended youfollow-up by running the second command, 'cover environment setup.' This command updatesthe vcshell database associated with the specified Cover environment for use with parallelinstrumentation. It is required that all sources be instrumented to the same Coverage type.

Existing vcshell database workflows are not impacted by this change.

88435: Unit Options updated to filtered table format

The Unit Options dialog in unit test environments and the Compilation Arguments dialog inCover environments have been updated in VectorCAST version 2020 SP2 to use the familiarfiltered table format.

88799: Test script import error when environment contains more than 27,000 globalvariables

In previous versions of VectorCAST, test scripts with values specified for global variables mightfail to import into the unit test environment if the environment contained more than 27,000global variables. This problem is fixed in VectorCAST version 2020 SP2.

88951: VectorCAST Integration with vTESTstudio's Vector Classification Tree (VCT)

VectorCAST version 2020 SP2 integrates the Vector Test Data Editor to generate automatedtest cases in C/C++ unit test environments. Included in the Windows64 distribution is a newutility called the Test Data Editor, located in the $VECTORCAST_DIR/test_data_editor directory.Also in that directory is a help file named TestDataEditor.chm, which can be opened by double-clicking the file in the Windows Explorer.

©Copyright 2021 Vector Informatik, GmbH Page 44

Page 45: VectorCAST version 2020 SP7 Release Notes

Generating test cases using the Vector Classification Tree editor (VCT) is a multi-step process,similar to using comma-separated value files (.csv) to specify the parameter values. You canlearn more about the Vector Test Data Editor and follow a tutorial by viewing the onlineKnowledge Base article VectorCAST Classification Tree Editor.

The following is an overview of the process.

1. Make a new VCT MAP test case

In a C/C++ unit test environment on Windows64, insert a VCT MAP test case under asubprogram using the new menu item "Generate VCT Map." The inserted MAP test caseis named (MAP)<subprogram name>.001. This MAP test case cannot be executed; only thegenerated children are executed.

The MAP test case opens in the Parameter Tree, enabling you to place a checkmark nextto any Input or Expected Values that you intend to exercise in the generated tests.

No data is set in this window; only the parameters you plan to use in the Test DataEditor are indicated.

2. Use the Test Data Editor to set Input and Expected Values for theparameter

Once you have created a MAP test case, use the new right-click menu item "Edit VCT" toopen the Test Data Editor. The Test Data Editor creates one file per MAP test case,naming it VCT-nnnnnn.vct in the environment directory, where nnnnnn represents a six-digit unique identification number corresponding to the MAP test case.

The Test Data Editor displays the Vector Classification Tree, showing an item for eachInput Value you checkmarked in the MAP test case.

In this editor, you define test values to be used as Input by right-clicking an item andchoosing "Class." In the Class Properties, set a representative value to be used as theInput Value for this parameter.

Along the bottom of the Test Data Editor is the Test Case Data window. Each Input Valueheads a column, and can be used in a generated test by putting a checkmark in thatcolumn. Any Expected Values you selected in the MAP test case are on the right-handside, where you can enter a value manually.

Each row in the Test Case Data section is a test case and the given index (0, 1, 2, etc) isused in the name of the generated test case in the VectorCAST environment.

For more information see the section titled "Using the Editor" in the Test DataEditor help. The help file is located in the VectorCAST installation directory at$VECTORCAST_DIR/test_data_editor/TestDataEditor.chm. The help file isopened by double-clicking on the file in the Windows Explorer.

When done, save and close the Test Data Editor, returning to the VectorCASTenvironment.

3. Generate automated tests in VectorCAST

Once you have specified Input and Expected Values in the Test Data Editor, you canautomatically generate a test case for each row in VectorCAST by right-clicking the MAPtest case and choosing "Generate Tests." One child test case is created under the MAPtest case for each row in the Test Data Editor.

The generated tests can be executed as usual, with a pass or fail result if Expected

©Copyright 2021 Vector Informatik, GmbH Page 45

Page 46: VectorCAST version 2020 SP7 Release Notes

Value(s) were provided in the Test Data Editor.

4. Export/Import VCT MAP test case and .vct file

When exporting the MAP test case, only the MAP data is saved in the VectorCAST testscript. The generated tests are not exported, but are re-generated upon import.

In addition, and very importantly, the VCT-nnnnnn.vct file is also exported. This file mustbe adjacent to the test script during test script import.

89358: Parser does not recognize __declspec(guard(x)) added by /sdl compilationflag of visual studio

Previously, VectorCAST gave the error 'unknown attribute "guard"' for Visual Studio codecontaining __declspec(guard(x)). This problem has been resolved in VectorCAST version 2020SP2.

89475: Disallow adding directories with Cover Source ADd command on Linux

In VectorCAST version 2020 SP2, adding a source directory on Linux using the Cover Source ADdcommand now results in an error, as expected. Directories containing source files shouldinstead be added using the Cover Source RECursive_add command.

89678: Environment database locked while Analytics server is running on Windows

In previous versions of VectorCAST on Windows, an environment database could becomelocked while the Analytics server was running, preventing environment deletions or rebuilds.This problem is fixed in VectorCAST version 2020 SP2.

89863: "vcutil instrument" passes the wrong file argument to the post instrumentscript

In previous versions of VectorCAST, when the VCAST_CMD_AFTER_INSTRUMENTATION optionwas specified, vcutil instrument would incorrectly call the given command using the path tothe original unit. In VectorCAST version 2020 SP2, the command correctly passes the path tothe instrumented file.

89967: Improve the access order analysis for VectorCAST/Coupling

VectorCAST version 2020 SP2 includes several fixes for VectorCAST/Coupling environments.The fixes include:

> Previously, the access error "ANALYZE: Read follows address of" would be missing forcompound data couples being accessed by their field or member. Now they are showncorrectly.> Previously, the access error "ANALYZE: Read follows initialization" would be omittedfor compound data couples being accessed by their field or member. Now the error isshown correctly.> Previously, the access error "ANALYZE: Read follows initialization" would be omittedfor compound data couples being accessed by their field or member. Now the error isshown correctly.

90174: Custom coverage results directory & filename

VectorCAST version 2020 SP2 includes two new options to customize where coverage data issaved when running an instrumented executable. These options are for C/C++ Coverenvironments. The options are available in the Tools => Options dialog, Coverage Tab, Optionssub-tab, Input/Output.

©Copyright 2021 Vector Informatik, GmbH Page 46

Page 47: VectorCAST version 2020 SP7 Release Notes

Store coverage results in directory

This option specifies a custom directory for the coverage TESTINSS.DAT files generated by theinstrumented executable.

clicast -lc option VCAST_COVERAGE_RESULTS_DIRECTORY <path>

Coverage result filename

By default, coverage data generated by the instrumented executable is stored in a file namedTESTINSS.DAT. To avoid overwriting this file during test execution, the filename can be madeunique by appending the Process ID (PID), Epoch time, or both to the default file name.

clicast -lc option VCAST_COVERAGE_RESULT_FILE_NAME <FILE_NAME_APPEND_DEFAULT |FILE_NAME_APPEND_PID | FILE_NAME_APPEND_EPOCH | FILE_NAME_APPEND_PID_EPOCH>

90215: Coupling Coverage Report updated to HTML

In VectorCAST version 2020 SP2, the Coupling Coverage report displays in HTML format bydefault. It is still available in TEXT format, when the VCAST_CUSTOM_REPORT_FORMAT optionis set to TEXT.

90217: On Linux, clicast returns 0 exit status on enviroedg crash

For some crashes while executing the clicast environment build command, clicast returned 0 onLinux instead of an error code. This problem has been resolved in VectorCAST version 2020SP2.

90294: Clang compiler versions 6.0 through 10.0 supported

To set this compiler in VectorCAST version 2020 SP2 C/C++ unit test environments, open theOptions dialog, C/C++ tab. Select Compilers => Clang => <version> => C, C++, C++11,C++14, or C++17.

clicast -lc template CLANG_60clicast -lc template CLANG_60_CPPclicast -lc template CLANG_60_CPP11clicast -lc template CLANG_60_CPP14clicast -lc template CLANG_60_CPP17clicast -lc template CLANG_70clicast -lc template CLANG_70_CPPclicast -lc template CLANG_70_CPP11clicast -lc template CLANG_70_CPP14clicast -lc template CLANG_70_CPP17clicast -lc template CLANG_80clicast -lc template CLANG_80_CPPclicast -lc template CLANG_80_CPP11clicast -lc template CLANG_80_CPP14clicast -lc template CLANG_80_CPP17clicast -lc template CLANG_90clicast -lc template CLANG_90_CPPclicast -lc template CLANG_90_CPP11clicast -lc template CLANG_90_CPP14clicast -lc template CLANG_90_CPP17clicast -lc template CLANG_100clicast -lc template CLANG_100_CPP

©Copyright 2021 Vector Informatik, GmbH Page 47

Page 48: VectorCAST version 2020 SP7 Release Notes

clicast -lc template CLANG_100_CPP11clicast -lc template CLANG_100_CPP14clicast -lc template CLANG_100_CPP17

90316: Stub parameter user code saved as non-stub user code

In previous versions of VectorCAST, some instances of parameter user code for stubs in C/C++unit test environments would be incorrectly saved as non-stub user code when using theParameter Tree in VectorCAST's Test Case Editor. This problem is fixed in VectorCAST version2020 SP2.

90327: Harness compile error for ARM when struct has nested union and attribute(packed)

Previously, VectorCAST generated harness code that did not compile for some ARM codecontaining nested structs or unions tagged with __attribute__((packed)). This problem hasbeen resolved in VectorCAST version 2020 SP2.

90468: Manage incremental build fails if any environment variable ends with singlequote

Previously, the VectorCAST Manage incremental build command would fail unexpectedly if anyenvironment variable ended with a single quote. This error has been fixed in VectorCASTversion 2020 SP2.

90475: Improve error handling while generating reports when path is invalid

Previously, when VectorCAST could not generate a report in Unit Test or Cover environmentsdue to a missing or invalid directory or path, a python error message was displayed. InVectorCAST version 2020 SP2, an accurate and helpful error message from VectorCAST isdisplayed.

90480: Drag and drop of symbolic constants saved incorrectly in non-Englishconfigurations

In previous versions of VectorCAST, dragging and dropping items from the Symbolic Constantstable into a test case Parameter Tree in a C/C++ unit test environment resulted in the item notbeing saved properly if the user interface language was not English. This problem is fixed inVectorCAST version 2020 SP2.

90518: On Linux, clicover returns 0 exit status on crash

For some crashes while executing the clicover Cover command, clicover returned 0 on Linuxinstead of an error code. This problem has been resolved in VectorCAST version 2020 SP2.

90548: Parse error "assertion failed" when parsing some code containing'static_assert'

Previously, VectorCAST gave the error "Internal error: assertion failed" for some codecontaining static_assert calls in C/C++ unit test environments and Cover environments. Thisproblem has been resolved in VectorCAST version 2020 SP2.

90559: VectorCAST coverage tool tip shows .dat Data file instead of test name

Beginning with VectorCAST version 2019 SP5, VectorCAST incorrectly displayed the test resultfile name (.dat) in the Coverage Viewer's tooltip instead of the corresponding test case namein C/C++ unit test environments and Cover environments. This problem is resolved inVectorCAST version 2020 SP2.

©Copyright 2021 Vector Informatik, GmbH Page 48

Page 49: VectorCAST version 2020 SP7 Release Notes

90582: Delete constructor makes function not stubbed

Previously, VectorCAST/C++ failed to stub some functions returning types having a deletedcopy constructor. This problem has been resolved in VectorCAST version 2020 SP2.

90597: Harness compile error when cast is missing 'class' keyword before template-based type

Previously, VectorCAST omitted elaborated type specifiers for some types in casts within thetest harness, leading to a compile error if the type could not be recognized without thespecifier in C/C++ unit test environments. This problem has been fixed in VectorCAST version2020 SP2.

90611: MC/DC Test Case Generation Crashes VectorCAST with static_assert

Previously, VectorCAST crashed when generating MC/DC test information for some source codecontaining static_assert in C/C++ unit test environments and Cover environments. Thisproblem has been resolved in VectorCAST version 2020 SP2.

90620: Manage API compiler to testsuite association does not fire loader

Previously, the VectorCAST Manage DataAPI (VCProjectApi) did not associate compilers withtheir testsuites, causing the Compiler testsuites member to always be empty. This problem hasbeen fixed in VectorCAST version 2020 SP2.

90624: Error compiling c_cover_io.c when using CUDA andVCAST_APPEND_TO_TESTINSS

Previously, using CUDA with a VectorCAST System Testing environment displayed a compileerror "#elif with no expression" when using the define VCAST_APPEND_TO_TESTINSS. Thisproblem has been fixed in VectorCAST version 2020 SP2.

90629: Only adding a header file when creating a system testing environment in thewizard throws an unhandled exception

Previously, creating a System Testing environment and adding only a header file resulted inthe error "An unhandled exception was caught." This problem has been resolved in VectorCASTversion 2020 SP2.

90656: Harness compile error when when stub takes const reference ofstd::unique_ptr

Previously, VectorCAST generated stub code in C++ unit test environments which did notcompile for functions with const reference parameters having non-instantiated types that couldnot be copy-assigned. This issue has been resolved in VectorCAST version 2020 SP2.

90668: Parse errors using arm_neon_preinclude.h on GNU target

Previously, VectorCAST was unable to parse the version 7 GNU arm_neon.h header file. Thisproblem has been resolved in VectorCAST version 2020 SP2.

90673: Error importing C++ environment test script created with version 2019 whenit contains a compound test

VectorCAST versions 2020 and 2020 SP1 failed to import compound tests in test scriptscreated with versions prior to 2020 when the C/C++ unit test environment had been builtusing a VectorCAST version prior to 2020. This problem is fixed in VectorCAST version 2020

©Copyright 2021 Vector Informatik, GmbH Page 49

Page 50: VectorCAST version 2020 SP7 Release Notes

SP2.

90675: Automation Controller ENV_FILES_USE_VCDB=False is not working properly

Previously, when running the AutomationController.py without a vcshell database (optionEVN_FILES_USE_VCDB was False), VectorCAST incorrectly added an empty setting forVCDB_FILENAME to the project file (.vcm) anyway. This problem caused the environment script(.env) for environments to be modified to incorrectly include unit compilation arguments. Thisproblem has been fixed in VectorCAST version 2020 SP2.

90681: Probe point test compile errors not shown with Visual Studio

In previous versions of VectorCAST, Visual Studio compile errors occurring during Probe Pointtest compile did not appear in the error window. This problem is fixed in VectorCAST version2020 SP2.

90689: Partition test case created with invalid data for pointer allocation

In previous versions of VectorCAST, partition test cases that specified allocation for a pointerwould fail to reimport after being exported to a test script in C/C++ unit test environments.This problem is fixed in VectorCAST version 2020 SP2.

90691: Expose 'is_specialized' boolean field for test cases in Unit Test API

In VectorCAST version 2020 SP2, the 'is_specialized' attribute is made available in the DataAPI to determine if a test case in a migrated VectorCAST project is specialized or not. A"specialized test case" is one that is bound to a particular configuration. See the section"Configuration-Based Test Cases" in the Enterprise Testing with VectorCAST User's Guide formore information.

See the documentation located in $VECTORCAST_DIR/python/vector/apps/DataAPI/docs forinformation on using the Data API.

90718: Support associating user-supplied attributes with a test result in Coverenvironments

VectorCAST version 2020 SP2 supports adding user-supplied attributes, or metadata, to anindividual test result in a Cover environment. In addition to the familiar arguments to addnotes or requirements data, a new argument is available for the clicast commands to add andupdate a test result with metadata.

clicast -e <cover env> Cover RESult Add <result-file> [<optional-result-name>] [-md <metadatakey>:<value> [-md <metadata key>:<value>] ...]

Use the syntax -md <metadata key>:<value> to specify a key:value pair to associate with thespecified test result. More than one such pair can be added on the command line, along withnotes and requirements. If either the key or the value contains a space character, enclose thepair in quotes.

For example:

clicast -e COVER cover result add TESTINSS.DAT Location:USA

clicast -e COVER cover result add TESTINSS.DAT name1 -md "Session Number:12"

Metadata can be added or replaced in an existing test result using the clicast updatecommand:

©Copyright 2021 Vector Informatik, GmbH Page 50

Page 51: VectorCAST version 2020 SP7 Release Notes

clicast -e <env> Cover RESult Update <existing-result-name> [result-file] [-md <metadatakey>:<value> [-md <metadata key>:<value>] ...]

There is currently no way to remove metadata from a test result, and neither the key nor thevalue may contain the colon (:) character.

The metadata is stored in the result directory in a file named <result name>.vcast.xml. Thisinformation is also available in VectorCAST's Data API using the new 'metadata' method inCoverResult. A future release of VectorCAST is planned to include the metadata in the Coverenvironment's Management Report.

90722: Harness compile error when testable function has auto return type of lambdafunction

Previously, VectorCAST generated C++ unit test harness code that did not compile for testablefunctions which were also stubbed-by-function if the return type was a lambda function. Thisproblem has been resolved in VectorCAST version 2020 SP2. The return value of such functionsis no longer accessible in the Parameter Tree.

90742: Harness compile error in driver with "protected within this context"

Previously, VectorCAST generated C++ unit test harness code which did not compile for somesource code containing private or protected template argument types. This problem has beenresolved in VectorCAST version 2020 SP2.

90744: Parse error with CEVA XM4 code that uses intrinsics with vector types

Previously VectorCAST generated a parse error for intrinsic function calls taking vectorparameter types if the function prototype gave the parameter type as an integer. VectorCASTalso did not recognize the _CEVA_INTRINSIC macro definitions such as_CEVA_INTRINSIC_SWITCH_ABSEXP. These problems have been resolved in VectorCASTversion 2020 SP2.

90754: CUDA __device__ struct constructors not instrumented

Previously, VectorCAST did not instrument CUDA __device__ struct constructors in C++ unit testenvironments and Cover environments. This problem is fixed in VectorCAST version 2020 SP2.

90755: Adding source files to Cover environment optimized

Previously, when building a Cover environment from environment script (.enc), VectorCASTwas very slow if the environment was adding hundreds of thousands of source files. InVectorCAST version 2020 SP2, the command line clicast -lc Cover ENvironment SCRIPT_Run<scriptfile> [force] has been optimized for better performance.

90758: Error (char*)0, if multiple cover options are used for multiple C files in onecover project

Previously, Cover environments with multiple c files with different cover options could result inan instrumentation error. This problem is fixed in VectorCAST version 2020 SP2.

90765: SBF templates: nonnull argument references non-pointer operand

Previously, when a C++ unit test environment contained a source file with a static templatefunction with a non-null attribute, a compile error occurred in the test harness. This problemhas been fixed in VectorCAST version 2020 SP2.

90794: CUDA: Instrumentor doesn't consider source options for deciding what to

©Copyright 2021 Vector Informatik, GmbH Page 51

Page 52: VectorCAST version 2020 SP7 Release Notes

instrument

Previously, VectorCAST with CUDA did not honor Unit-specific compilation arguments wheninstrumenting files during unit test environment build. This problem has been fixed inVectorCAST version 2020 SP2.

90821: "VectorCAST for Visual Studio 2017" shortcut uses latest Visual Studioinstead

In previous versions of VectorCAST, using:

Start Menu => VectorCAST => VectorCAST for Visual Studio 2017

might incorrectly launch VectorCAST under a Visual Studio 2019 command window. Thisproblem is fixed in VectorCAST version 2020 SP2.

90842: VectorCAST/Coupling instrumentation error when dereference and address ofoperators used together

Previously, VetorCAST/Coupling environments that used dereference and address of operatorstogether could result in an instrumentation error.

For example,

1. *(&global_int) = i;2. (*(&global_int))++;3. (*&global_int)++;

This error is fixed in VectorCAST version 2020 SP2.

90867: Probe points not applied properly when creating an environment from basedirectories

Previously, when building a Cover environment from regression scripts, and the Coverenvironment had been created using Base Directories in the wizard, the probe points specifiedin the environment script (.enc) were not applied. This problem has been fixed in VectorCASTversion 2020 SP2.

90872: Update $VECTORCAST_DIR/DATA/cuda/device_coverage_macro.h to usecudaStreamCreateWithFlags instead of cudaStreamCreate

VectorCAST version 2020 SP2 includes an update for an unsupported CUDA API command.CudaStreamCreate is no longer supported. It has been replaced with cudaStreamCreateWithFlags.

90895: Compile error in test harness for source code containing__attribute((__visibility__("hidden" )))

Previously, C++ unit test environments with source code containing__attribute__((__visibility__("hidden"))) did not compile correctly. This problem has beenresolved in VectorCAST version 2020 SP2.

91000: Harness compile error when return value is std::unique_ptr reference type

Previously, VectorCAST/C++ generated test harness code that did not compile for some sourcecode where a testable function returned a reference to an std::unique_ptr. This problem hasbeen resolved in VectorCAST version 2020 SP2.

©Copyright 2021 Vector Informatik, GmbH Page 52

Page 53: VectorCAST version 2020 SP7 Release Notes

Release Notes - VectorCAST: 2020 SP1 Release

62969: No longer automatically remove incorrect user code after compile error

Previously, Parameter User Code and Test Case User Code that did not compile or link wasautomatically removed from the test harness during test execution in C/C++ unit testenvironments, which permitted other tests to continue executing.

In VectorCAST version 2020 SP1, any incorrect user code is left in the test harness, thecompile or link error is displayed, the driver executable is deleted, and an error code isreturned. Test execution of any tests following the one with the problem stops.

Test insertion, execution, and deletion are permitted when there is a compile or link error inthe environment. Viewing the Test Case Data report in the GUI is also permitted when there isa compile or link error in the environment.

71483: New option "Allow inlines for function pointers in C" to control functionpointer support for inlines

VectorCAST version 2020 SP1 implements a new Builder option in C unit test environments.The new option, "Allow inlines for function pointers in C," when True, causes inlined functionsto be testable as usual.

In situations where an inlined function does not have a standalone definition whose addresscan be taken, set this option to False to avoid a link error.

clicast -lc option VCAST_FUNC_PTR_INLINES_C TRUE | FALSEThe default value is TRUE.

72326: Harness compile error in default parameter arguments

Previously, VectorCAST generated test harness code in C/C++ unit test environments that didnot compile when the configuration option VCAST_USE_DEFAULT_ARGS was set to True and adefault argument used an implicit constructor call with a parameter that could also be used fora different constructor, which was declared with the 'explicit' keyword. This problem has beenresolved in VectorCAST version 2020 SP1.

75042: Support dumping coverage results as binary data

VectorCAST version 2020 SP1 includes a new option for Cover environments,VCAST_DUMP_BINARY_COVERAGE. This option decreases the size of the coverage datagenerated by the instrumented source code by using a binary format.

Coverage TESTINSS.DAT created using binary mode can only be imported into VectorCASTwhen binary coverage is enabled otherwise, it will return a coverage import error.

To configure binary coverage in clicast:

Option VCAST_DUMP_BINARY_COVERAGE True | False

When buffered coverage I/O and global buffers are in use, enabling this option will produce araw binary dump of the coverage to the "TESTINSS.DAT" file, eliminating the code andprocessing overhead of the ASCII data conversion. In addition, in most cases, this file will bemuch smaller in size than the ASCII equivalent.

To configure binary coverage data in VectorCAST:

©Copyright 2021 Vector Informatik, GmbH Page 53

Page 54: VectorCAST version 2020 SP7 Release Notes

> From VectorCAST Options, Coverage Tab, set Coverage I/O type to "Buffered".> Enable the option "Dump buffered coverage data on exit".> From the Instrumentation Options sub-tab, enable "Reduce memory overhead usingglobal buffers" and "Dump coverage in binary format".

80219: Environment file with read-only attribute causes rebuilds to fail

In previous versions of VectorCAST, read-only files specified by theVCAST_ENVIRONMENT_FILES option in C/C++ unit test environments would retain the read-only property after being copied, and would cause environment rebuilds to fail on Windows.This problem is fixed in VectorCAST version 2020 SP1 by making such files writable after beingcopied during build.

84489: Compiler TI CL2000: Invalid type support for__attribute__((byte_peripheral))

Previously, VectorCAST generated incorrect test harness code for fields with the CodeComposer extension __attribute__((byte_peripheral)), causing a compile error. This problemhas been resolved in VectorCAST version 2020 SP1.

85809: User-level industry mode should not change other configuration options

Previously, when a user had an Industry mode set and one or both of the options "Alwaysdisplay function coverage" and "Instrument for function call coverage" (C/C++ only) set toTrue, and then changed the Industry mode, VectorCAST would incorrectly change the value ofthe options to False.

In VectorCAST version 2020 SP1, the value of those options remains True. You may see adifference in regression script batch (.bat) or shell (.sh) files if you encountered this bug.

86882: When coverage type other than NONE is in environment script, basis path testcases fail to handle simple types

Previously, when a coverage type other than NONE was specified in the environment script fora C/C++ unit test environment and the configuration optionVCAST_DISABLE_AUTO_BASIS_PATH_GEN was set to False, VectorCAST generated basis pathtests with the message "Cannot set variable to out of range value" instead of the proper valuefor some numeric types. This problem has been resolved in VectorCAST version 2020 SP1.

87419: Stubs for constructors with fields having types with invalid defaultconstructors do not compile

Previously, VectorCAST generated stub code that did not compile for some constructors thathad fields with types having defined default constructors, which could not be called due toomitting initialization of fields of a template type. This problem has been resolved inVectorCAST version 2020 SP1.

87522: #defines after an #ifdef relying on unit compilation arguments are notdisplayed in Symbolic Constants window

Previously, macro values which depended on unit-specific compilation arguments were notavailable in the Symbolic Constants window or in test scripts in C/C++ unit test environments.This problem has been resolved in VectorCAST version 2020 SP1. To get the new behavior, youmust rebuild any affected environments.

87578: VectorCAST displays error when using demo license and not taking anyactions that use the license

©Copyright 2021 Vector Informatik, GmbH Page 54

Page 55: VectorCAST version 2020 SP7 Release Notes

Previously, VectorCAST incorrectly gave the message "License Verification FAILED" when theVectorCAST application was opened but no actions were taken that required the demo license.This problem has been resolved in VectorCAST version 2020 SP1.

87585: Multiple lines of C-style comments lead to invalid source locations whenVCAST_USE_VCPP enabled

In previous versions of VectorCAST, when the "Use VectorCAST co-preprocessor" option wasenabled, multiple lines of single-line C-style comments could cause VectorCAST to misidentifythe source location of functions that followed if the compiler's preprocessor removed thecomments. This problem is fixed in VectorCAST version 2020 SP1.

87712: VectorCAST/QA should update timestamps when removing files fromenvironment

Previously, VectorCAST/QA did not correctly recompile the instrumented application after asource file had been removed from the Cover environment or uninstrumented, because thetimestamp for that file had not been updated. This problem is fixed in VectorCAST version2020 SP1.

87785: Missing coverage or no coverage for compound statement expressions

Previously, VectorCAST omitted coverage for some statements in GNU statement expressionswhen statement, basis paths, branch, MC/DC, statement+branch, or statement+MC/DCcoverage was used. Similarly, basis path and MC/DC test reports did not take into accountsome statements in GNU statement expressions. These problems have been resolved inVectorCAST version 2020 SP1.

87920: Importing test script with macro or symbol out of range reports value asmissing

Since VectorCAST version 2019 SP2, importing a test script with a macro or symbol out ofrange resulted in an error message saying that the value was missing. In VectorCAST version2020 SP1, the error message reports the value as out of range.

87934: Clicast coupling clean deprecated

CLICAST's coupling clean command has been removed in VectorCAST version 2020 SP1. Eachcoupling command correctly removes the appropriate files so a separate command to clean isno longer necessary.

clicast -e <coupling env> COUpling CLEanThis command has been deprecated.

88106: VectorCAST crash when license heartbeat failure occurs

In previous versions, VectorCAST might crash instead of exiting cleanly if license verificationfailed 5 times in a row. This problem has been resolved in VectorCAST version 2020 SP1.

88496: Harness compile error when const return type has deleted copy constructorand only a non-const move ctor

Previously, VectorCAST generated test harness code that did not compile when a testablefunction had a const return type with a deleted copy constructor and only a non-const moveconstructor. This problem has been resolved in VectorCAST version 2020 SP1.

88618: MCDC test names no longer use TF values of short-circuited subconditions

©Copyright 2021 Vector Informatik, GmbH Page 55

Page 56: VectorCAST version 2020 SP7 Release Notes

In previous versions of VectorCAST, automatically-generated MC/DC tests would have namesthat use "T" or "F" for each sub-condition in the targeted MC/DC statement, even if some sub-conditions would not be evaluated due to short-circuiting. In VectorCAST version 2020 SP1,MC/DC test names now use "x" in the name instead of "T" or "F" for any sub-condition that willnot be evaluated.

88619: Summary of automatically generated tests now displayed in message window

In previous versions of VectorCAST, after inserting automatically generated test cases such asfor basis paths or MC/DC, VectorCAST would display a dialog box summarizing the kinds oftests generated. In VectorCAST version 2020 SP1, this summary information is now displayedin the Messages pane.

89192: Invalid harness code when standard container allocator type lacks defaultconstructor

In previous versions of VectorCAST, the test harness did not compile when standard containertypes used custom allocator types lacking default constructors. This compilation problem isfixed in VectorCAST version 2020 SP1, and such types will require user code when configuringtest cases.

89370: Macro arguments separated by blank lines or comments cause parse errorswhen VCAST_USE_VCPP enabled

In previous versions of VectorCAST, use of function-style macros with blank lines or C/C++comments between arguments could lead to parse errors if the "Use VectorCAST co-preprocessor" option was enabled. This problem is fixed in VectorCAST version 2020 SP1.

89498: vcdb removes quotes surrounding values for the nvcc -Xcudafe flag

Previously, VectorCAST's vcshell and vcdb utilities would strip quotes surrounding the valuespassed with the -Xcudafe flag for the NVIDIA CUDA Compiler (nvcc), causing the values to beinterpreted as additional compiler flags. This problem is fixed in VectorCAST version 2020 SP1.

89584: Harness compile error when type has overloaded '&' operator returning typeother than pointer to itself

Previously, VectorCAST generated test harness code that did not compile for some source codewith types having overloaded address-of operators that returned types other than a pointer tothe original type. This problem has been resolved in VectorCAST version 2020 SP1.

89587: Parse Failure: more than one conversion function

Previously, VectorCAST incorrectly gave the parse error "more than one conversion functionfrom <type-name> to a built-in type applies" for some code. This problem has been resolved inVectorCAST version 2020 SP1.

89601: VectorCAST crash when non-abstract class changed to abstract and test caseis re-imported

Previously, VectorCAST crashed on Windows if a test script specifying an abstract class wasimported after having changed the source code from a concrete class and exporting the testscript. In VectorCAST version 2020 SP1 an error reporting the abstract class is correctly giveninstead.

89635: Test script import fails when class instances are not shared and the sameclass instance appears in more than one unit

©Copyright 2021 Vector Informatik, GmbH Page 56

Page 57: VectorCAST version 2020 SP7 Release Notes

Previously, VectorCAST could not import some test scripts specifying values for class instanceswhen the configuration option VCAST_CLASS_INST_SHARING was set to false duringenvironment building and the class instance appeared in more than one unit. VectorCASTeither crashed or ignored the value. This problem has been resolved in VectorCAST version2020 SP1.

89652: Subconditions in last expression of a GNU statement expression instrumentedtwice

MC/DC instrumentation for GNU statement expressions had redundant instrumentation for thelast expression. For example, if ( !({ a && b; }) ) was previously instrumented as:

3 5 (T)( ) if ( !({ 3 5.1 ( )(F) 3 6 (T)( ) 3 6.1 (T)( ) a && 3 5.2 ( )(F 3 6.2 ( )(F) b; }) )

Starting with VectorCAST version 2020 SP1 it is instrumented as:

3 5 (T)( ) if ( ! 3 5.1 ( )(F) ({ 3 6 ( )(F) 3 6.1 (T)( ) a && 3 6.2 ( )(F) b; }) )

89726: vcutil instrument fails if source file is read only

Previously, VectorCAST would fail with an error when using vcutil on a source file that is readonly.

Build Command /path/to/vcinst FailedBuild Command Exit Status:1Error: Source directory /path/to/89726/vc_workspace is not writable.Instrumentation Failed for Source file = /path/to/89726/vc_workspace/database.cpp. Error: 1 ,Instrumentation Successful for 3 source files.Instrumentation Failed for 1 Warning: Database file does not contain command verb(s): gcc >>> All valid vcdb verbs are: as,cc1plus,collect2,g++,ld

This error is fixed in VectorCAST version 2020 SP1.

89828: Macro values in symbolic constants table incorrect for strings 128 charactersand longer

Previously, VectorCAST inserted extra quotes and spaces in string macros with values 128characters or longer, causing the incorrect value to be used when any test using the macrowas run. This problem is resolved in VectorCAST version 2020 SP1. To get the new behavior,you must rebuild any affected environments.

89892: SBF units changed to UUT if unit name is mis-cased in .env on Windows

In previous versions of VectorCAST on Windows, environments built from environment scripts(.env) which specified SBF unit names whose case did not match the actual file name wouldconvert the unit type to regular UUT. In VectorCAST version 2020 SP1, SBF unit names are

©Copyright 2021 Vector Informatik, GmbH Page 57

Page 58: VectorCAST version 2020 SP7 Release Notes

treated case-insensitively on Windows.

89895: Update warning when importing testcase with macro defined in symbolicconstants

VectorCAST incorrectly gave the warning "<value> was specified as a macro, but it is in thesymbol dictionary" when importing a test script containing macros labeled with MACRO= tag. Thisproblem has been resolved in VectorCAST version 2020 SP1.

89950: Vctools Release 1.42

VectorCAST version 2020 SP1 includes vctools version 1.42. The following improvements areincluded in this version of vctools:

> --abort_on_error works for vcutil instrument, vcutil parse, vcutil codegen, andvcutil addmetrics> vcutil instrument option "--in-place" has been renamed to "--in_place" to beconsistent with other options> On Windows, vcshell and vcdb treat directories case-insensitively

89979: Compile error when source code contains a constructor that does notinitialize needed fields

Previously, VectorCAST treated template constructors that did not initialize the fields necessaryto avoid a compile error as testable, thus causing a compile error in the test harness. Thisproblem has been resolved in VectorCAST version 2020 SP1.

90022: VectorCAST enviroedg crashes when stubbing constructors that require areference that doesn't exist

In previous versions of VectorCAST, the environment builder may have crashed whilegenerating a constructor stub if types had recursive dependencies that could not be fullydefined due to incomplete type definitions.

In VectorCAST version 2020 SP1, such a stub is generated with an undefined identifierindicating a missing initialization, resulting in a compile error. The compile error can beresolved by #including headers for the incomplete types into unit appendix user code andrebuilding the environment.

90066: New option VCAST_GNU_SYSTEM_MARKER

A new C/C++ configuration option, "Add a GNU system header marker," has been added inVectorCAST version 2020 SP1. This option controls whether VectorCAST inserts a GNU-stylesystem header line marker at the start of an instrumented file in a system-testingenvironment. Enable this option when using a GNU compiler and the compiler issues errors forunmodified code in an instrumented file that originated from a system header.

To set the value in the Tools => Options dialog, C/C++ tab, Misc sub-tab, check "Add a GNUsystem header marker."

clicast -lc option VCAST_GNU_SYSTEM_MARKER True|FalseThe default value is False.

90099: Update the Incremental Rebuild Report for VectorCAST/C++

In VectorCAST version 2020 SP1, the Incremental Rebuild Report has been updated to the newlook.

©Copyright 2021 Vector Informatik, GmbH Page 58

Page 59: VectorCAST version 2020 SP7 Release Notes

90108: Harness compile error when testable function has *const function pointerparameter

In previous versions of VectorCAST, a harness compile error could occur in C++ environmentswhen a testable function parameter type was const-qualified. This problem is fixed inVectorCAST version 2020 SP1.

90122: Preprocess incorrect when VCAST_USE_VCPP enabled and file ends with 0x1a

Previously, if a header file contained 0x1a as an end-of-file marker and VCAST_USE_VCPP wasTRUE, the 0x1a could be incorrectly retained during preprocessing, resulting in the mishandlingof content after the header. This problem is fixed in VectorCAST version 2020 SP1.

90171: Rebuild _speedups.pyd for win64 to fix runtime error on some windows 7machines

In VectorCAST version 2020 for win64, some Windows 7 systems could not launch VectorCASTapplications if the PATH environment variable included a directory which contained C runtimelibraries that conflicted with files in the VectorCAST installation. This problem is fixed inVectorCAST version 2020 SP1.

90177: Change Impact Report uses stale configuration values to determine reportformat

Previously, some Manage reports, such as the Change Impact Report, incorrectly used thereport format specified in a previously-opened configuration instead of reading from theManage configuration. This error is fixed in VectorCAST version 2020 SP1.

90202: Test harness does not compile for smart pointer of an abstract class with noctors defined

Previously, when the configuration option VCAST_DISABLE_STD_SMART_PTR_DETECTION wasset to False, VectorCAST generated test harness code that did not compile for some sourcecode containing smart pointers, such as std::shared_ptr, if the smart pointers pointed toabstract classes without defined constructors. This problem has been resolved in VectorCASTversion 2020 SP1.

90232: Class instance constructor not available for selection in parameter tree whenmember variable is initialized in class definition

Previously, classes with const or reference fields initialized in the class definition did not havecompiler-generated default constructors available in the parameter tree. This problem hasbeen resolved in VectorCAST version 2020 SP1. For the fixed behavior, you must rebuild anyaffected environments.

90237: Invalid P-object initializer code for std::chrono::duration parameter withdefault argument value

Previously, when the configuration option VCAST_USE_DEFAULT_ARGS was set to True,VectorCAST generated test harness code that did not compile for some testable functions withdefault parameter arguments making implicit constructor calls. This problem has been resolvedin VectorCAST version 2020 SP1.

90253: Branch coverage initialization failure when function contains 2 lambdas

Branch, basis paths, and MC/DC instrumentation failed for source code containing more thanone lambda in a single function. This problem has been resolved in VectorCAST version 2020

©Copyright 2021 Vector Informatik, GmbH Page 59

Page 60: VectorCAST version 2020 SP7 Release Notes

SP1.

90267: Automatic concrete class generation for constructor taking object withdeleted function causes compile error

Previously, VectorCAST generated an automatic concrete class that did not compile for someclasses with constructors with parameters that have unavailable copy constructors. Thisproblem has been resolved in VectorCAST version 2020 SP1.

90268: Environment with stub taking const reference of std::unique_ptr does notcompile

Previously, VectorCAST generated stub code that did not compile if the parameter was a constreference of std::unique_ptr. This problem has been resolved in VectorCAST version 2020 SP1.

90271: Built-in MinGW g++ linker options changed to statically link standardlibraries

In previous versions of VectorCAST, using the built-in MinGW g++ compiler would result inharness executables that utilized certain shared libraries from the VectorCAST installation. Ifanother tool had installed conflicting libraries to the Windows system, the harness might notrun.

In VectorCAST version 2020 SP1, the linker options for the built-in MinGW g++ compiler areset so that these libraries are statically linked, avoiding potential conflicts with other tools.

90287: xc8 compiler finds B0000002.c function declaration mismatch

In previous versions of VectorCAST, the B0000002.c harness file failed to compile with someMicrochip compilers because the uutOrGlobalCommand function was declared static but definedwithout the static keyword. This problem is fixed in VectorCAST version 2020 SP1.

90300: Preserve Word Wrap for Test Case Notes

The word-wrap property of the Notes Editor is remembered between different instances ofVectorCAST in VectorCAST version 2020 SP1. To toggle the word-wrap property choose the"Toggle Wordwrap" menu item from the right-click menu in the notes section inside of the TestCase or Cover Result editor.

90304: Parse error using VectorCAST co-preprocessor when including the sameheader twice with comment

Previously, VectorCAST caused a parse error when building an environment withVCAST_USE_VCPP set to True, when the source file #included the same header twice and eachinclude directive was followed by a C-style comment. This problem is fixed in VectorCASTversion 2020 SP1.

90337: Compile error when std::container support disabled for some source code

When the configuration option VCAST_DISABLE_STD_CONTAINER_DETECTION was True,previous versions of VectorCAST generated test harness code that did not compile for sourcecode containing std containers of types lacking callable copy constructors. This problem hasbeen resolved in VectorCAST version 2020 SP1.

90351: Opening PDF document from Help prevents environment rebuild

In previous versions of VectorCAST, opening a PDF document from the Help menu on Windowswould prevent environment updates and rebuilds from proceeding. This problem is fixed in

©Copyright 2021 Vector Informatik, GmbH Page 60

Page 61: VectorCAST version 2020 SP7 Release Notes

VectorCAST version 2020 SP1.

90354: Harness compile error when functions return decltype(auto)

Previously, VectorCAST generated test harness code that did not compile for testable orstubbed functions returning decltype(auto). This problem has been resolved in VectorCASTversion 2020 SP1.

90355: VectorCAST generates invalid code for function with default argument whichis a lambda with a template parameter

Previously, when the configuration option VCAST_USE_DEFAULT_ARGS was set to true,VectorCAST generated test harness code that did not compile for some source code withtestable functions having default arguments that are lambdas with template parameters. Thisproblem has been resolved in VectorCAST version 2020 SP1.

90360: MPLABX execution script execute_microchip_mdb.py hangs during testexecution

In VectorCAST version 2020, the unit test harness source structure changed such that theexecution script execute_microchip_mdb.py for MPLABX targets no longer executed properly. Thisproblem is fixed in VectorCAST version 2020 SP1.

90368: Stubbed constuctors do not compile when the class has a const member witha default ctor defined as "=default"

Previously, VectorCAST generated stub code that did not compile for constructors of classeswith const members having default constructors defined as "= default." This problem has beenresolved in VectorCAST version 2020 SP1.

90369: Error message when importing *.enc script withVCAST_COVERAGE_FOR_HEADERS is True

Previously, when creating a Cover environment using an environment script (.enc) thatcontained base directories and header files, an error message incorrectly reported that some ofthe source paths have been previously added. This problem is resolved in VectorCAST version2020 SP1.

90386: Stubbed ctor for class with std::unique_ptr having a deleter does not compile

Previously, VectorCAST generated stubs for constructors that did not compile when the classhad a field of std::unique_ptr type and the std::unique_ptr had a deleter. This problem hasbeen resolved in VectorCAST version 2020 SP1.

90402: Support for use of _Static_assert in --ghs --c++ mode

Previous versions of VectorCAST did not recognize the _Static_assert keyword when a GreenHills C++ compiler was being used. This problem has been resolved in VectorCAST version2020 SP1.

90436: Automation controller scripts can hang when many files are instrumented

Previously, the Automation Controller would deadlock when the stderr buffer of a spawnedprocess was filled. This error has been resolved in VectorCAST version 2020 SP1.

90466: Change to c_cover_io.c for CUDA API updates

VectorCAST version 2020 SP1 includes updates to CUDA support for QA environments due to

©Copyright 2021 Vector Informatik, GmbH Page 61

Page 62: VectorCAST version 2020 SP7 Release Notes

deprecations in the CUDA API.

The following changes have been made to the c_cover_io.c file:

Previous usage (deprecated):cudaGetDeviceProperties ( &properties, dev );

New usage:cudaDeviceGetAttribute (&major, cudaDevAttrComputeCapabilityMajor, dev);cudaDeviceGetAttribute (&minor, cudaDevAttrComputeCapabilityMinor, dev);

90493: VectorCAST crashes when instrumenting code with __asm statements

Previously, VectorCAST crashed when adding statement instrumentation for some source codewith __asm statements. This problem has been resolved in VectorCAST version 2020 SP1.

90527: Test script shows incorrect class name for non-pointer class instance ifsubclass exists

In previous versions of VectorCAST, generated test scripts gave the incorrect class name forsome non-pointer variables of classes that have subclasses. This problem has been resolved inVectorCAST version 2020 SP1.

90529: Line directives inaccurate when VCAST_USE_VCPP processing doesn't expandheader

The "Use VectorCAST co-preprocessor" option enables VectorCAST to perform extra processingto enhance the accuracy of line directives when a compiler's preprocessor is in some waydeficient.

In previous versions of VectorCAST, sections of the preprocessor output that came fromsystem headers or headers included multiple times were stripped of most line directivesinserted by the compiler preprocessor.

In VectorCAST version 2020 SP1, preprocessor line directives in such sections are not strippedbut are reconstructed in standard #line format. The accuracy of these line directives isdependent on the accuracy provided by the compiler preprocessor.

90565: Add option to Automation Controller to abort when an instrumentation erroroccurs

Previously, when running the Automation Controller, if a spawned process returned a non-zeroreturn code, the Automation Controller would continue. In VectorCAST version 2020 SP1, thenew option "--abort-on-error" will stop the Automation Controller if a spawned process returnsa non-zero return code. This way build and instrumentation problems can be quickly debugged.e.g.$VECTORCAST_DIR/vpython startAutomation.py --command build-db --abort-on-error

Release Notes - VectorCAST: 2020 Initial Release

7899: Remove (cl) from subprogram name

In previous versions of VectorCAST, testable functions from a class or namespace werereferenced with a leading "(cl)" prefix in the name. In unit test environments built withVectorCAST version 2020, the "(cl)" prefix is no longer used. For example, a functionpreviously displayed as "(cl)Manager::PlaceOrder" is now shown as "Manager::PlaceOrder".

©Copyright 2021 Vector Informatik, GmbH Page 62

Page 63: VectorCAST version 2020 SP7 Release Notes

This change affects the test case tree, reports, test scripts, user code tags, clicast commands,etc.

Test scripts generated from previously built environments can still be imported into newly builtenvironments. New test scripts will have this new "script feature" line:

TEST.SCRIPT_FEATURE:REMOVED_CL_PREFIX

In addition, reports no longer use the "(cl)" prefix to refer to the VectorCAST-generated globalclass instance for testable member functions. For example, instead of displaying "(cl)Manager"in a Global Data report section, the class instance would be referenced as "Manager Instance".

Note that a "(cl)" is still used in the dotted name for a generated global class instance. In suchuses the "(cl)" is not a function prefix but a class instance designator. For example a test scriptline for instantiating a class instance could look like:

TEST.VALUE:manager.<<GLOBAL>>.(cl).Manager.Manager.<<constructor>>.Manager().<<call>>:0

Clicast commands that require a subprogram name must no longer specify the "(cl)" prefix.

71645: Base Source Directory feature for VectorCAST Cover environments

VectorCAST version 2020 introduces a new feature to enhance usability when creating andusing Cover environments alone or as a System Testing environment. This enhancementmakes it easy to:

> Add source files efficiently after specifying a "base source directory"> Syncronize the Cover environment after a repository update> Make changes to the environment in the new Update wizard

New Environment WizardThe Create New Cover Environment wizard now enables you to specify a "base directory," orsource root directory, of source files to be added to the Cover environment. The path to thebase directory is saved in the environment script (.enc) which means only a single change isneeded if loading the environment script in a different directory.

In the Create New Cover Environment wizard, Step 3 "Locate Source Files," configure adirectory to serve as the Base Directory, such as the root of your source code repository. Thisdirectory path can be an environment variable, e.g. $(ENV_VARIABLE), a relative path, or anabsolute path. After specifying a Base Directory, select sub-directories and source files toinclude in the new environment. Deselecting specific source files excludes them from theenvironment. The "Show Header Files" button allows you to include header files in the list ofsource files.

Update Environment WizardAfter synchronizing source file changes in your repository from version control, you can quicklyrefresh the source files in the Cover environment using the Update Environment Wizard. Fromthe Toolbar, select Environment => Update Environment. On Step 2 "Locate Source Files," anysources detected in the selected directory are displayed. Select or un-select directories andsource files to include or exclude them from the environment. Step 3 "Summary" displays thefiles to be added and removed from the environment based on your changes.

For more information, see VectorCAST/QA User Guide, "Creating a System TestingEnvironment."

83298: Instrumenter for Coupling

©Copyright 2021 Vector Informatik, GmbH Page 63

Page 64: VectorCAST version 2020 SP7 Release Notes

VectorCAST version 2020 now features improved Coupling instrumentation. The new Couplinginstrumenter improves the speed of Coupling instrumentation and fixes several coverage errorsand limitations of the previous version.

The workflow for Coupling Analysis remains unchanged, but as a result of the newinstrumenter, Coupling is no longer supported with Statement coverage. Existing environmentsinstrumented with Statement coverage must be un-instrumented first.

All environments must be re-analyzed before applying the new Coupling instrumentation.

83360: VectorCAST Manage HTML reports have new look

In VectorCAST version 2020, HTML reports in Manage are displayed in the new report formatconsistent with other VectorCAST products.

The new look is based on a default cascading style sheet (.css) located in the VectorCASTinstallation directory ($VECTORCAST_DIR/python/vector/apps/ReportBuilder/css/default-style.css).

The user is invited to create their own style sheet to set custom colors and fonts, which isspecified on the Configuration Options, Report node,in the new option "Custom CSS".

To set the option VCAST_RPTS_CUSTOM_CSS for a Manage project via the command line, usethis syntax:

manage -p <project> --config=VCAST_RPTS_CUSTOM_CSS=<path to .css file>

The following Manage reports have been updated to the new look:

> Original Source Coverage Report> Aggregate Coverage Report> Metrics Report> Environment Coverage Report> Project File List Report> Incremental Build Report> Full Status Report, Status Report, and Failed Status Report> Change Impact Report> Test Case Summary Report (VectorCAST/QA only)

83744: Project-wide instrumentation optimization

VectorCAST version 2020 introduces a new option, VCAST_GLOBAL_BUFFER_OPTIMIZATIONS.This option reduces memory overhead for embedded targets with limited memory by using aglobal buffer instead of a buffer per unit.

> Instrumentation code is reduced by an integer per instrumentation point.> Instrumentation storage is reduced for each coverage kind via global buffers.> Buffered Coverage I/O no longer uses linked lists to coverage buffers.> ASCII buffer storage requirements are reduced.

Enabling or disabling this option requires all source code to be re-instrumented. When thisoption is enabled, instrumenting a single source file may require you to recompile not just theinstrumented source file but all the others that contain higher instrumentation IDs.

To enable this feature in clicast:clicast -lc Option VCAST_GLOBAL_BUFFER_OPTIMIZATIONS True

To enable this feature in GUI:

©Copyright 2021 Vector Informatik, GmbH Page 64

Page 65: VectorCAST version 2020 SP7 Release Notes

VectorCAST Options, Coverage Tab, Instrumentation Options Sub-tab, and click the optionlabeled "Reduce memory overhead using global buffers".

85117: Add cover root source directory functionality to coupling

VectorCAST version 2020 incorporates Cover Root Source Directory functionality for Couplingcomponent generation and Coupling Analysis.

Once Base Source Directories are configured, perform Coupling Analysis with or withoutheaders based on settings.

As a result of these changes, the VCAST_DCC_ROOT_SOURCE_DIR environment variable is nolonger supported and is ignored. Existing environments previously usingVCAST_DCC_ROOT_SOURCE_DIR for Coupling Analysis for header files must be updated to useBase Source Directories or recreated with the latest version of VectorCAST.

85539: Lint Analysis and Klocwork Analysis Reports updated to new look

In VectorCAST version 2020, Lint Analysis and Klocwork reports in HTML format are displayedin the new report format consistent with other VectorCAST products.

The new look is based on a default cascading style sheet (.css) located in the VectorCASTinstallation directory ($VECTORCAST_DIR/python/vector/apps/ReportBuilder/css/default-style.css).

The user is invited to create their own style sheet to set custom colors and fonts, which isspecified on the Configuration Options, Report node, in the option "Custom CSS".

clicast -lc option VCAST_RPTS_CUSTOM_CSS <path to .css file>

The following reports have been updated to the new look:

> Lint Summary Report (GUI only)> Lint Detailed Report (GUI and CLICAST)> Lint Custom Report (GUI only> Klocwork Summary Report (GUI only)> Klocwork Detailed Report (GUI and CLICAST)> Klocwork Custom Report (GUI only)

C/C++ Unit Test environment:

clicast -e <env> TOols LINT_Report <outputfile>clicast -e <env> TOols KLOCWORK_Report <outputfile>

Cover environment:

clicast -e <env> Cover TOols LINT_Report [<output file>]clicast -e <env> Cover TOols KLOCWORK_Report [<output file>]

Lint environment:

clicast -e <env> Lint TOols LINT_Report [<output file>]

85803: Basis Path and MC/DC Test Case Reports have new look

In VectorCAST version 2020, the Basis Path Report and MC/DC Test Case Report (C/C++ only)have been updated to use the new look in HTML format.

clicast -lc|-lada -e <env> [-u <unit>] TOols BASIs_path [<outputfile>]

©Copyright 2021 Vector Informatik, GmbH Page 65

Page 66: VectorCAST version 2020 SP7 Release Notes

clicast -lc -e <env> [-u <unit>] TOols MCdc_test [<outputfile>]

85804: Requirements Gateway reports updated to new look

In VectorCAST version 2020, Requirements Gateway reports in HTML format are displayed inthe new report format consistent with other VectorCAST products.

The new look is based on a default cascading style sheet (.css) located in the VectorCASTinstallation directory ($VECTORCAST_DIR/python/vector/apps/ReportBuilder/css/default-style.css).

The user is invited to create their own style sheet to set custom colors and fonts, which isspecified on the Configuration Options, Report node, in the option "Custom CSS".

clicast -lc|-lada option VCAST_RPTS_CUSTOM_CSS <path to .css file>

The following Requirements Gateway reports have been updated to the new look:

> RGW Testcase Report> RGW Requirement Report

clicast -e <env> -u <unit> -s <sub> -t <test> RGw Testcase Report

clicast -lc|-lada RGw Requirement REPort <Query Type> <Query Arg 1> <Query Arg 2>

86894: Support for using harness macros VCAST_USE_SETVBUF andVCAST_USE_SETLINEBUF in VectorCAST/QA

In VectorCAST version 2020, VectorCAST/QA supports use of the familiar VectorCAST/C++ testharness macros VCAST_USE_SETVBUF and VCAST_USE_SETLINEBUF. Use of these macrosmakes it possible for coverage output to be saved to the TESTINSS.DAT file, even if yourinstrumented application terminates abnormally.

clicast -lc OPTIONS_Append C_DEFINE_LISTVCAST_USE_SETVBUF VCAST_USE_SETLINEBUF

87735: Eliminate VCAST_COVERAGE_FIELD_WIDTH for C/C++ source files

Previously, the user was required to increase the value of the configuration optionVCAST_COVERAGE_FIELD_WIDTH to a larger value if the instrumented source code containedmany subprograms or conditions with many sub-conditions. Otherwise, portions of theinstrumented file appeared as blank lines in the Coverage Viewer.

In VectorCAST version 2020, the left margins of the Coverage Viewer and Aggregate CoverageReport are calculated automatically during instrumentation of C and C++ files. TheVCAST_COVERAGE_FIELD_WIDTH value is only needed for Ada source files.

Note that the user's Aggregate Coverage and Full Reports may be affected if the option"Coverage Field Width" was set larger or smaller than necessary in a C/C++ unit test or Coverenvironment. The reports may show a different margin than displayed in previous versions, asthe value of the option is ignored in VectorCAST version 2020 and later.

clicast -lada option VCAST_COVERAGE_FIELD_WIDTH <number of spaces>The default value is 8 spaces.

88561: Directory paths duplicated when generating the VCAST.QIK

In previous versions of VectorCAST, dependency parsing (quickparse) could incorrectly

©Copyright 2021 Vector Informatik, GmbH Page 66

Page 67: VectorCAST version 2020 SP7 Release Notes

duplicate search directory paths when relative paths were specified. This problem madeunderlying parser commands unnecessarily long, potentially leading to failures on Windows.This problem is fixed in VectorCAST version 2020.

88957: Right-click on manage configuration icon should have a choice to "OpenConfiguration"

VectorCAST version 2020 includes a UI improvement. The "Open Configuration" shortcut isavailable by right-clicking on any node in the VectorCAST Project tree.

89093: Metrics table in Manage reports no longer includes Basis Paths column

In VectorCAST version 2020, when generating the Aggregate Coverage Report or MetricsReport for source files in C/C++ and Ada Unit Test environments instrumented with BasisPaths coverage, note that the Metrics table in these reports no longer includes the coveredPaths. Only the covered Branches are listed.

89164: Throw specification for function pointer creates TI function that does notcompile

Previously,VectorCAST caused a compile error during environment build when using a sourcefile with a throw() specification for a function pointer. This problem has been resolved inVectorCAST version 2020.

89299: Harness compile error when testable function throws a const object

Previously, a compile error occurred when building an environment with a source file thatthrows a const object. This problem has been fixed in VectorCAST version 2020.

89323: Function Pointer calls can report false positive coverage data

Previously, certain function pointer calls could produce a false positive as covered in theCoupling Coverage Report. In VectorCAST version 2020, these unsupported references areindicated in the coupling analysis. When coverage results are added, the Coupling CoverageReport also indicates the subset of control couples that need further manual analysis.

89344: Allow Cover environments to have more than 32k units

Previous versions of VectorCAST limited the number of source files in a Cover environment to32767. VectorCAST version 2020 permits a very large number of source files, or units with unitnumbers, up to 2147483647.

89346: Performance improvements in vcdb

VectorCAST version 2020 includes improved performance when using a large vcshell.db file ina unit test environment or when creating a Cover environment after parallel instrumentationwith vcutil instrument.

89353: Pointers-to-typedefs means function pointers are not mapped

Previously, when matching function pointers to genuine functions, VectorCAST would not skiptypedefs for pointer types. This error caused genuine candidate functions to be overlooked inthe test case parameter tree and test case execution for the instrumented subprograms toterminate abnormally. VectorCAST version 2020 fixes this error. Additional genuine candidatefunctions are visible in the test case parameter tree and test case execution is successful. Toapply this fix, rebuild the environment with the latest version of VectorCAST.

89378: Update the oldest supported version to only allow 5 years back

©Copyright 2021 Vector Informatik, GmbH Page 67

Page 68: VectorCAST version 2020 SP7 Release Notes

VectorCAST version 2020 updates the earliest supported versions of VectorCAST environments.

VectorCAST/Cover or QA environments created before 6.3f are no longer supported.

VectorCAST/Unit environments created before 6.3e are no longer supported.

To fix, recreate the affected environment using the latest version of VectorCAST.

89494: References added via manual analysis are not reflected in the CouplingCoverage report until "coupling apply"

Previously, the Coupling Coverage Report did not include function references or control couplesfound via manual analysis if the report had previously been created, but did so after thecoupling apply command. In VectorCAST version 2020, the Coupling Coverage Report containsthe correct information in both cases.

89528: Probe Point Reports updated to new look

In VectorCAST version 2020, Probe Point reports in HTML format are displayed in the newreport format consistent with other VectorCAST reports.

The new look is based on a default cascading style sheet (.css) located in the VectorCASTinstallation directory ($VECTORCAST_DIR/python/vector/apps/ReportBuilder/css/default-style.css).

The user is invited to create their own style sheet to set custom colors and fonts, which isspecified on the Configuration Options, Report node, in the option "Custom CSS".

clicast -lc option VCAST_RPTS_CUSTOM_CSS <path to .css file>

The following Probe Points reports have been updated to the new look:

> Probe Point Listing (C/C++ unit test environments and Cover environments)> Probe Points Output Report (Cover environments only)

clicast -e <cover env> Cover REPort PRobe_point_output

89535: Probe Point Listing added to Test Case Data and Full Reports

In VectorCAST version 2020, the Test Case Data Report and the Full Report include a sectionfor the Probe Point Listing.

89586: "Coupling instrumentation failed for unknown reason" error when no couplesexist

Previously, VectorCAST would return a python exception, "Exception: Unable to buildinstrumentation probe points" during coupling apply if no couples were detected duringanalysis. This error is fixed in VectorCAST version 2020.

89759: Add an option to disable the "Analyze - Read following address of" accesserror

VectorCAST version 2020 includes a new option to ignore data couple access errors for a readfollowing an address of operation.

In Clicast, the option is:clicast -lc option VCAST_IGNORE_ERROR_WHEN_READ_FOLLOWS_ADDRESS_OF TRUE | FALSE

©Copyright 2021 Vector Informatik, GmbH Page 68

Page 69: VectorCAST version 2020 SP7 Release Notes

In the GUI, from the Options menu, select the Coverage Tab, Instrumentation Options sub-tab"Ignore access error when read follows address of". The default value is FALSE.

89865: Manage metrics-report source-file option incorrectly generates full Projectreport

Previously, generating a Metrics Report for a specific file created a report for all files in theenvironment. This error is fixed in VectorCAST version 2020.

©Copyright 2021 Vector Informatik, GmbH Page 69