<<

Release Notes - VectorCAST: 6.4.6

VectorCAST/C,C++, Ada (Core)

81243: Crash while closing windows

Previously, VectorCAST experienced a crash when the user closed a window that resulted in a process that closed other windows that were already pending to be closed. This problem has been fixed in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

VectorCAST/Ada:

73561: DEOS Ada compiler not always linking instrumented harness correctly

Previously, when an Ada environment built with the DDCI/Score compiler was instrumented, and user code was added, the user code would not always get linked into the instrumented harness executable. This has been fixed in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

79227: Handle Ada compilers that elaborate function parameters out of order

Previously, when instrumenting for MC/DC coverage, if a function call contained multiple parameters with boolean expressions, some compilers may have evaluated the subconditions out of order, resulting in incorrect coverage data. This problem has been fixed in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

VectorCAST/Analytics:

71516: Viewing original source in Analytics could give better error message when using MC/DC

VectorCAST version 6.4.6 and VectorCAST version 2018 SP3 provide a better message when the user tries to view the Original Source Coverage report on a source file instrumented with MC/DC, which is not supported in Analytics. Additionally, the message remains visible until the user closes it.

74227: Cannot save Analytics configuration in Windows 10 for Edge and IE

Previously, clicking the "Save Configuration (.vdash)" button did not work in certain browsers on Windows 10. This problem has been fixed in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

76125: Repeated vcdash save history commands hang with '--include-source'

Previously, VectorCAST would hang when executing an Analytics command involving '--include-source' similar to the following, twice:

%VECTORCAST_DIR%\vcdash -p MyProject.vcm --history-dir=history --save-history --include- source This problem has been fixed in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

VectorCAST/C++:

72742: Test Tree missing subprograms when a template function has the same name and parameter profile as another non template function

Previously, the test case tree omitted subprograms when a template function had the same name and parameter profile as another non template function in the same unit. This problem has been resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3. To get the new behavior, you must rebuild any affected environments.

74496: P-object for templated union or struct with no default constructor is not generated correctly

Previously, VectorCAST did not generate test harness code properly for some testable functions with struct or union parameters having template constructors which are not instantiated, causing a compile error. This problem has been resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

74613: Function call coverage incorrectly affects statement coverage

Previously, turning on function call coverage caused the line showing whether an empty constructor which calls a base class constructor is covered to be omitted from the aggregate coverage report when using statement+MC/DC or statement+branch coverage. For example, the listing file would display:

Class::Class() { 1 0 ( ) Class::Class } with function call coverage on, but then display:

Class::Class() { 1 0 ( ) Class::Class 1 1 } with function call coverage off.

The number of covered statements in the metrics section was correct in both cases. This problem has been resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3. To get the new behavior, you must reinstrument any affected files.

75309: VectorCAST unnecessarily requires typeof operator for stubbing globals when volatile qualifier used in typedef'd structs+unions

When the configuration option VCAST_TYPEOF_OPERATOR was set to false, VectorCAST omitted stubs for typedefed volatile structs and unions. This problem has been resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3. To get the new behavior, you must rebuild any affected environments.

76069: Crash building unit test environment for some classes with fields of std containers of themselves if std code is testable text goes hereVectorCAST crashed while building unit test environments for some classes with fields of std containers of themselves if std container code is in a testable directory. This problem has been resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

76481: Command 'clicast tools execute' can lead to link error when recompiling C++ environment

Previously, running the clicast command "TOols EXEcute_commands" with a command file that includes commands with the language flag omitted or set to c instead of cplusplus for a C++ environment could cause subsequent environment recompilations to fail with a link error. The link error mentioned undefined references to VCAST_Get_CSU_Data and VCAST_Add_CSU_Data. This problem has been resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

If you have existing environments where the recompile fails, rebuild the environment to avoid the problem.

77006: Recursive constructor call in expanded driver when a parameter name is not provided in a stubbed ctor VectorCAST now uses the automatically generated parameter name for unnamed parameters in constructor member initialization of stubs. This prevents some instances of infinite recursion when the stub is called during test execution. This problem is resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

VectorCAST/Cover:

76166: Unable to generate the coupling coverage report if result files were split up during test execution

Previously, when using the function VCAST_DUMP_COVERAGE_DATA(), VCAST_CLEAR_COVERAGE_DATA(), and Coupling in a Cover environment, VectorCAST did not properly dump and clear coupling data. The problem caused an error when trying to generate the Coupling Coverage report. These problems have been fixed in VectorCAST version 6.4.6 and VectorCAST version 2018 SP2.

76783: Coupling analysis leads to memory error

Previously, under certain conditions, coupling analysis for large environments could lead to a crash. In VectorCAST version 6.4.6 and VectorCAST version 2018 SP3, memory consumption and performance has been improved for all coupling actions. To get the fixed behavior, perform coupling analysis and coupling apply again.

77047: Function calls with branches in logical operators are instrumented for MC/DC incorrectly

When the configuration option VCAST_USE_OPTIMIZED_MCDC_INSTRUMENTATION was set to true, MC/DC instrumentation was incorrect for source code containing function calls inside logical operators if the function calls had parameters with additional branch conditions. The incorrect instrumentation resulted in invalid lines being reported when coverage results were added to a project, and the resulting coverage reports were incorrect. This problem has been resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

78553: Coupling Report Generation fails with Virtual Functions

Previously, the coupling coverage report could not be generated when mangled c++ data couples were present. Mangled data couples can be introduced by having a data couple defined within a namespace. In VectorCAST version 6.4.6 and VectorCAST version 2018 SP3, the coupling coverage report can now be generated when mangled c++ data couples are present.

78604: Unit Test coupling data not produced with Coverage I/O set to Buffered

Previously, when using Unit Test to generate coupling data, if the environment used Buffered I/O, no coverage data would be reported. This problem has been fixed in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

78922: Coupling analysis fails when the needed file contains data couple references lacking the statement attributes

Previously, when performing coupling analysis, a crash would occur if a data couple reference was encountered that is not considered a statement. One such example would be data couples referenced within the member initialization list of a constructor. In VectorCAST version 6.4.6 and VectorCAST version 2018 SP3, when these references are encountered they will be logged in the computeCouples.stdout.txt file and skipped. The skipped references will appear in the file in the following format:

Skipped invalid reference: file: dcc_source_file.cpp line: 9 column: 22 79082: Add asterisk to covered control couples in the coverage report

Previously, only covered data couples within the coupling coverage report were prefixed with the covered indicator, an asterisk (*). In VectorCAST version 6.4.6 and VectorCAST version 2018 SP3, covered parameter data couples and control couples are also prefixed using the covered indicator (*).

80349: Combine coverage from tests when determining whether or not a couple is covered

Previously, when determining if a couple was fully covered, VectorCAST did not correctly combine results from separate test cases. Accessing a data couple in only one component for a test and then accessing it in another component for a different test was not reported as a covered couple. This problem is resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

79875: Improve handling of function pointers

VectorCAST version 6.4.6 and VectorCAST version 2018 SP3 include improved analysis for function pointers.

Menu item name updated from "Load Manual Analysis..." to "Load Function Ptr Analysis..." Previously, analysis would only tell the user if the target function was called. Now, analysis reports on coverage for function pointer calls. Previously, a duplicate control couple was listed if a function pointer was found (e.g. control_couple_1 and FPTR-control_couple_1). Now, only the control couple is listed. Manual analysis file contains formatting changes, so it must be regenerated for function pointer analysis.

Previously, when determining if a couple was fully covered, VectorCAST did not correctly combine results from separate test cases. Accessing a data couple in only one component for a test and then accessing it in another component for a different test was not reported as a covered couple. This problem is resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

80368: Do not analyze components in separate pairs

VectorCAST version 6.4.6 and VectorCAST version 2018 SP3 improves the performance and results of coupling analysis. Separate pairwise analysis files are no longer generated.

80531: Improvements to the coupling coverage report

VectorCAST version 6.4.6 and VectorCAST version 2018 SP3 include improved reporting for Coupling Analysis.

The new report is broken up into sections for better clarity. Each sub-section provides additional detail about the couples information arranged from a different perspective.

The report sections are as follows:

1. Data Couples Summary 1.1 Data Couples Detail by Component 1.2 Data Couples Detail by Reference 1.3 Data Couples Access Errors 2. Control Couples Summary 2.1 Control Couples Detail by Component 2.2 Control Couples Detail by Reference 3. Function Pointer Analysis 4. Coupling Coverage Detail by Test case 4.1 Data Couples Coverage 4.2 Parameter Data Couples Coverage 4.3 Control Couples Coverage

clicast -e COUpling REport COVerage [] 80803: DCC instrumentation compile error on for statement

Previously, instrumentation was inserted in the wrong location for probe points of the initialization statement in for-loops, causing a compile error. This problem has been resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

80957: If multiple accesses of the same compound data couple occur on the same line, some can be lost

VectorCAST version 6.4.6 and VectorCAST version 2018 SP3 have improved analysis for compound globals, reference expression, and how the compound data type is accessed.

81107: Analyze should not include functions that are not defined in components

VectorCAST version 6.4.6 and VectorCAST version 2018 SP3 include updated coupling analysis. A control couple is not established if a function is used in more than two components but never defined in a component.

81125: Coupling apply fails to remove probes when source is modified and subsequent analysis done

Previously, after making additional source code changes to a UUT, the existing instrumentation and coupling data was not cleared correctly, causing errors with subsequent coupling analysis. This problem is fixed in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

81569: Job window is sometimes missing stdout and stderr for DCC actions

Previously, while performing Coupling-related actions, some errors were not properly displayed in the message window. In VectorCAST version 6.4.6 and VectorCAST version 2018 SP3 a dialog is shown, the stdout and stderr are viewable in the job status window, and the log file which includes the stack trace is shown.

VectorCAST/RGW:

43686: doors_gateway.py needs to specify dxl script using full path

In previous versions of VectorCAST, interactions with DOORS would specify a DXL script using just the DXL file name, assuming it was in the current directory. Newer versions of DOORS look for this file in a different location than the current directory. In VectorCAST version 6.4.6 and VectorCAST version 2018 SP3, the DXL file is specified using a full path when invoking DOORS.

VectorCAST/RSP:

74756: CCS C6000 intrinsics not fully supported in C parser

VectorCAST incorrectly gave errors for some C (but not C++) code containing the intrinsic functions _amem2, _amem4, _amem8, _mem2, _mem4, and _mem8. This problem has been resolved in VectorCAST version 6.4.6 and VectorCAST version 2018 SP3.

Release Notes - VectorCAST: 6.4.5 VectorCAST/C,C++, Ada (Core)

68069: $(ENV_VARIABLE) is not expanded in unit options

In previous versions of VectorCAST, environment variables were not expanded when referenced in unit- specific options using $(ENV_VAR_NAME) syntax. This problem is fixed in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2.

73313: Execute <> testcases first when using "Compound for Batch Execution" option

Previously, when using the "Use compound test for batch execution" option, <> testcases were executed last among all test cases. In this situation, any <> testcase intended to validate global data initialization and/or elaboration processing would almost always fail.

In VectorCAST version 6.4.5 and VectorCAST version 2018 SP2, <> testcases are moved to the beginning of the list of testcases executed when the option VCAST_USE_COMPOUND_FOR_BATCH is True.

Best Practices

The Target option "Use compound test for batch execution" creates an implicit "master" compound test of all executable testcases (excluding compound-only tests) in the environment. When this implicit compound test is executed, there is only one download to the target required, instead of one for every test case, saving time during execution.

When executing a <> test, whether implicit (as occurs when using the "Use compound test for batch execution" option) or explicit, global data is persistent from one slot to another. Therefore, the following best practices are offered when using this option:

Design tests to pass regardless of the setting of the "Use compound test for batch execution" option. To do this, ensure that any test that relies on global data as an input explicitly sets the necessary global data values. Any <> testcase that depends on execution order (Automatic Initialization/Finalization tests, or as part of a compound testcase) should be set as compound-only, so that they do not get executed independently.

74056: Parameter or Testcase User Code compile error doesn't clear correctly when using AutoInit Test Cases

Previously, when using an Automatic Initialization or Automatic Finalization test case in combination with a test case with a compilation error in the Testcase or Parameter User Code, the user code's compilation error in the test harness was not correctly cleared after it was detected during test execution. The faulty code that remained in the test harness affected other test cases that were subsequently executed. This problem has been fixed in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2.

75908: Intermittent crash when right-clicking and saving test case simultaneously

Previously, a crash could occur in a Unit Test environment with coverage instrumented and tests executed, when the user right-clicked on a test case at the same time the test case was in the process of being saved. This problem has been fixed in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2.

VectorCAST/Ada:

73559: SBF unit specified in VCAST_NEVER_STUB_LIST causes build error

Previously, if a unit was added to the VCAST_NEVER_STUB_LIST environment variable (to prevent the units on this list from being stubbed even when the user set Stub All), and then the unit was selected as a Unit Under Test with Stub-By-Function specified, the Ada environment's test harness would fail to compile/link. This problem has been resolved in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2.

73560: Multiple units in a separate file causes multiple inclusions in harness

Previously, when a source file contained a package body and separates for the package body, when VectorCAST found the source files for parsing / instrumenting it could have included the same source file multiple times, causing a compile / link error. This problem has been resolved in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2.

74434: Rename of a renamed child package can cause typemark to be treated as "user"

Previously, if a typemark used a 'rename' as a qualifier, and that 'rename' referenced another 'rename', then VectorCAST would not always be able to resolve the multiple references and therefore display the typemark as "user". This has been fixed in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2. 75358: Update VectorCAST installation to always contain all Ada I/O files

Previously, the VectorCAST installation contained only the set of I/O files used in Ada environment building that were specific to the current platform. Starting with VectorCAST version 6.4.5 and VectorCAST version 2018 SP2, all Ada I/O files are delivered on all platforms.

VectorCAST/C++:

61634: Support Control and Data Coupling in C/C++ Unit Test Environments

VectorCAST version 6.4.5 and VectorCAST version 2018 SP2 implement support for gathering data coupling and control coupling information from a C/C++ Unit Test environment, using the coupling analysis stored in a System Testing environment.

In the System Testing Environment

Because Coupling analysis is done at the application level during integration testing, the first step is to create a System Testing environment and perform the automated data and control coupling analysis. To do this, the source files for the application are added to the environment, and their components specified. Then coupling analysis is performed and applied as usual.

In the Unit Test Environment

In a C/C++ Unit Test environment with units under test (UUTs) from at least two components in the Cover environment, the user can import Coupling data from the Cover environment using the menu item Tools => Coupling => Import..., and then navigating to the Cover environment.

clicast -e COUpling IMport <.vcp file> The Unit Test environment must either have no coverage set or Statement coverage; if not, the coverage type is automatically changed to be compatible with Coupling. Once the Coupling data is imported, VectorCAST performs an Incremental Rebuild to apply it to the Unit Test environment.

The user then executes test cases to achieve testing of the environment's portion of the application.

The environment script (.env) specifies the System Testing environment that is the source of the Coupling data:

ENVIRO.COUPLING_IMPORT_ENVIRONMENT: In addition, the Environment Overview Report indicates the path to the System Testing Environment that provides the coupling analysis.

In the System Testing Environment

At this point, the user imports coverage data into the System Testing environment from the Unit Test environment in the usual way. With the Cover environment open, use the menu item Coverage => Import Results from Environment and navigate to the Unit Test environment that was just used. clicast -e cover IMPORT_Results <.vce file> Once the execution results have been imported from the Unit Test environment into the System Testing environment, the user can view the Coupling Coverage Report, which combines the Coupling coverage achieved in the Unit Test environment with any Coupling coverage achieved in the System Testing environment.

63931: Handle Visual Studio conversion from Shift JIS source files to UTF-8 preprocessor output

VectorCAST uses the output of preprocessing as the basis of instrumented files. Under some Japanese Windows system configurations, Visual Studio produces UTF-8-encoded output when preprocessing, but is not able to compile a file that is UTF-8-encoded. In VectorCAST version 6.4.5 and VectorCAST version 2018 SP2, a post-preprocessing script is provided to convert Visual Studio’s UTF-8 preprocessor output to the Shift-JIS encoding that is required for instrumentation and compilation.

The translation unit conversion occurs during the build of a Unit Test environment, or during instrumentation in a Cover environment.

To use this conversion script in an environment, set the "Post-preprocess command" option on the Options dialog, C/C++ tab, Misc sub-tab to invoke the script with vpython, or set the option using clicast: clicast -lc option VCAST_POST_PREPROCESS_COMMAND $(VECTORCAST_DIR)/vpython $(VECTORCAST_DIR)/util/preprocess/post_preprocess_utf8_to_sjis.py 72173: Source directory paths with spaces not quoted on Linux

Previously, VectorCAST was not able to build an environment on Linux when a Search directory contained a space. This problem has been fixed in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2.

75727: VectorCAST generates concrete class constructor with default argument to a private type

Previously, when the configuration option VCAST_AUTO_CONCRETE_CLASS_GENERATION was set to true, VectorCAST generated some concrete class constructors with default arguments with a cast that included a private type, causing a compile error. This problem has been resolved in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2.

75906: VectorCAST generates object initialization code for objects with a deleted copy constructor

Previously, VectorCAST generated test harness code that did not compile for some const uninitialized variables with types having a C++11 deleted constructor. This problem has been resolved in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2.

76121: Support nested functions in gcc

VectorCAST version 6.4.5 and VectorCAST version 2018 SP2 support building unit test and cover environments for source code containing GNU C nested function definitions (functions defined inside other function definitions). 76543: Enabling coverage on uninstrumented environment leads to error messages during test execution

Running the clicast command tools cover enable on a unit test environment which has never been instrumented for code coverage led to subsequent test execution displaying the error message:

Test Execution Could not Start Pre-test setup failed, or Executable File: UUT_INST does not exist This problem has been resolved in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2.

VectorCAST/Cover:

72529: Expression using __builtin_constant_p incorrectly treated as having only one outcome

Previously, coverage instrumentation of conditions containing the GNU builtin __builtin_constant_p were incorrectly treated as constants having one possible value, which resulted in incorrect coverage result lines being reported. This problem has been resolved in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2.

VectorCAST/Manage:

75079: Manage does not prompt for configuration changes if environment has compile error

Previously, when trying to diagnose a compile or link error in a migrated unit test environment in Manage, changes to the compile command or link command were not detected, and thus not shown in the Diff dialog upon closing the environment. As a result, the configuration changes did not carry over to the migrated environment.

This problem has been fixed in VectorCAST version 6.4.5 and VectorCAST version 2018 SP2.

Release Notes - VectorCAST: 6.4.4

VectorCAST/C,C++, Ada (Core)

59416: Improve handling of null strings for test cases

Previously, entering a list of string values containing an empty (null) string would cause the harness to behave in unpredictable ways. This has been fixed in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

To enter an empty string in the Parameter Tree or test script, enter "" for a string parameter.

Note: An empty string can be used in lists, but not as the last item in the list.

67188: Improve clicast error when the -e /E parameter is being used incorrectly and a path is provided as an argument

Previously, if a directory path was used instead of the environment name, the clicast command would fail. Now an error is returned with additional information clarifying the correct use of the parameter. This is updated in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

Command syntax is: clicast -l -e -x -u -s -t Where is the environment name in the current working directory. The path to the environment should not be used.

VectorCAST/Ada:

71343: Derived enumerated types may cause harness compilation errors on some targets

On certain targets, type handling for enumerals requires a fully-qualified enumeral name. Previously, when dealing with enumerated types derived from enumerated types in other packages, the fully-qualified name was constructed incorrectly, causing harness compilation errors. This has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

71506: Environment build error when UUT is instantiation of one of many nested generic packages

Previously, when a UUT is an instantiation of one of the nested generic packages declared within a generic instantiation, VectorCAST could lose track of which nested package is being tested, resulting in duplicate symbol errors during compile/link. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

71992: Ada SBF errors with pragmas and task bodies inside subprograms

Previously, if a subprogram declared a task inside the subprogram body, the harness could be built incorrectly if the user chose to build a Stub-By-Function environment, causing compilation errors. This has been fixed in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

72921: Constrained subtype of unconstrained array can cause array indexing errors

Previously, when an array type was a constrained subtype of an unconstrained array, such as:

subtype Array_Subtype is Types_Pkg.Unconstrained_Array_T ( 0 .. 31 ); VectorCAST would not always correctly determine the actual index type of the array, causing the tool to display the 1..N in the array index dialog, where N is the size of the array.

Starting with VectorCAST version 6.4.4 and VectorCAST version 2018 SP2, VectorCAST correctly determines the array index type and uses actual indices for array elements.

To fix this issue with existing environments, rebuild the environment.

VectorCAST/Analytics:

69674: Improved color coding in analytics report

In VectorCAST version 6.4.4 and VectorCAST version 2018 SP2, Analytics treemaps now show a unique color for the topmost number in the specified color range.

For example, if a treemap displays statement coverage, 99% and 100% will now be different colors. In previous versions of Analytics, the color range was divided into 11 colors evenly, so that 91%-100% were all the same color.

VectorCAST/C++:

43850: User code import error for class instance where template parameter is another template instantiation Importing test scripts which set user code for class instances where a template parameter is another template instantiation incorrectly gave the error "Unknown parameter/object name (cl)". This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

58126: Compile error in generated concrete class when parent abstract class has a template argument with an inaccessible type

Previously, when the configuration option VCAST_AUTO_CONCRETE_CLASS_GENERATION was set to true, VectorCAST created automatic concrete classes for abstract classes with template arguments having inaccessible types. Those concrete classes did not compile. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2. VectorCAST will no longer create automatic concrete classes for abstract classes with template arguments having inaccessible types.

66490: Parse error with __if_exists(this) using Microsoft parse flags

Previously, VectorCAST incorrectly displayed errors for Visual Studio source code containing "__if_exists(this)". This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

66710: VCAST_FUNCTION_POINTER_SUPPORT FALSE does not work when there are multiple layers of indirection

In previous versions of VectorCAST, disabling the "Enable function pointer type support" option did not prevent the harness from containing type support routines for pointers to function pointers. This problem is fixed in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

66874: CLICAST exit status should be non-zero when test execution fails with "Use compound for batch" enabled

When the option "Use compound for batch execute" was set to True, previous versions of VectorCAST incorrectly returned a zero exit status after executing batch when one or more tests failed. This problem is fixed in VectorCAST version 6.4.4 and VectorCAST version SP2.

67471: Attributes on stub return lost on test script import

An error was incorrectly given for attributes, such as "Show in Report" or octal format, on the return value of stubbed functions when test scripts were imported, causing the attribute to be lost. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version SP2.

68047: No longer add preliminary -I for original source directory when preprocessing

In previous versions, VectorCAST would always specify a unit's directory as the first include directory when preprocessing and compiling. This made it difficult to match the order of include directories used when compiling outside VectorCAST.

In VectorCAST version 6.4.4 and VectorCAST version 2018 SP1, the unit directory is no longer automatically added as the first include directory. Preprocess and compile command include directories are usually determined based on the source directory list and the unit options.

68645: Link errors caused by undefined functions are missing from stderr window

Previously, VectorCAST did not display the link error that occurred after Incremental Rebuild when an undefined function was added to the source file. This problem is fixed in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

69287: Concrete classes inherited from an abstract class that is also inherited has members missing in the Parameter Tree Previously, VectorCAST did not permit setting of fields of automatically generated concrete classes that were inherited from the parents of the abstract class. In VectorCAST version 6.4.4 and VectorCAST version 2018 SP2, those fields are now accessible. To get the new behavior, you must rebuild any affected environments.

70654: Basis path tests reference globals not available in parameter tree

Basis path tests referenced globals defined in library or type handled directories, causing an error during test script import. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

70914: Incremental rebuild fails for classes with virtual destructors which are not instantiated and not defined

Previously, VectorCAST incorrectly reported added dependencies during incremental rebuild for some source code containing undefined template functions. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP1.

71013: Some needed virtual functions in UUT units get stubbed only if there is another unit

Previously, when an environment contained a single unit with UUT mode instead of SBF mode, some virtual functions which were not defined were not stubbed. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP1.

Also, in some environments with a single unit and undefined virtual destructors, VectorCAST incorrectly reported added dependencies during an incremental rebuild. This problem has been resolved, but you must do a full rebuild of any affected environments before the incremental rebuild will work.

71102: Incremental Rebuild should ignore dependencies that match suppressed stubs

Previously, environments built with suppressed stubs could not be incrementally rebuilt because VectorCAST incorrectly reported added dependencies for the suppressed stubs. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP1.

71295: Template parsing error in intel mode for VectorCAST version 6.4i and later versions

VectorCAST version 6.4i and later versions gave the error "internal error: assertion failed" for some template classes when the --intel parser flag was specified without the --no_ms_extensions flag. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP1.

71485: Crash during instrumentation or environment build for some typeof expressions

VectorCAST crashed during coverage instrumentation and C++ environment building for some source code containing the typeof operator. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

71594: Include original file via full path in generated harness file

In previous versions of VectorCAST, unit test harness source files sometimes relied on the use of a -I include directory in order for original unit source files to be found from the VectorCAST-generated unit wrapper source file, even if VCAST_DONT_USE_SEARCH_LIST_INCLUDES was enabled. This caused a problem in very rare circumstances where a -I for the search directory caused the compiler to find header files that were not intended to be used. In VectorCAST version 6.4.4 and VectorCAST version 2018 SP2, original source files are #included using a full path to avoid this problem. 71960 : VectorCAST crashes on basis-path test case generation for some conditions in non-compilable code of functions not instantiated

Previously, VectorCAST crashed during basis path generation on some "if", "while", and "for" statements in non-compilable code of functions that are not instantiated. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

72489: ASCIIRES.DAT limited to 2000 bytes per line when using stdout mode

Previously, when executing a test with VCAST_NO_STDIN: TRUE or VCAST_STDIO: TRUE, very long lines in the harness output would be truncated at around 2000 bytes. This would most likely manifest as truncated string values in execution reports. This has been fixed in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

72938: Redirect stderror for execution report is missing

Previously, in a unit test environment with standard error and standard error redirect enabled, the output of standard error was missing from the execution report. This error has been fixed in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

73328: Parse error with Visual Studio in-class template specialization

In previous versions of VectorCAST, an incorrect parse error could occur with in-class specializations of constructor templates in Visual Studio modes. This problem is fixed in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

74113: Invalid symbolic operand name parse error with asm goto

Previously, VectorCAST displayed the error "invalid symbolic operand name" when parsing some source code containing asm goto statements. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2

VectorCAST/Cover:

69283: Using function call coverage changes statement numbering for funcs calling base ctors for statement+branch and statement+mcdc

Previously, statement numbering in Statement+Branch and Statement+MC/DC instrumentation for functions with base constructor calls started at 1 when the configuration option VCAST_ENABLE_FUNCTION_CALL_COVERAGE was set to true.

When VCAST_ENABLE_FUNCTION_CALL_COVERAGE was set to false, the numbering started at 0. The difference prevented coverage exported from an environment from being imported correctly to an environment with the configuration option set differently. In VectorCAST version 6.4.4 and VectorCAST version 2018 SP2, the statement numbering begins at 0 regardless of the configuration option's value.

69404: Invalid coverage instrumentation when scalar initializer uses {0} and block coverage enabled

Statement instrumentation of C code containing non-aggregate initializations in braces, such as:

int i = {1}; did not compile if the configuration option VCAST_COVER_STATEMENTS_BY_BLOCK was set to true and the statement was prior to the last statement of the block. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

69939: Search directories specified in a Unit Test environment affect the preprocess command of a new Cover environment Previously, when building a Unit Test environment and then building a Cover environment immediately afterwards, VectorCAST incorrectly used the search directories from the unit test environment when preprocessing files in the Cover environment. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

72458: Global variables initialized in one component and read in another are incorrectly treated as access errors

Previously, when performing coupling analysis, an initialization expression of a global in a component would not be sufficient to establish a data couple. Reads following an initialization were flagged as access errors.

In VectorCAST version 6.4.4 and VectorCAST version 2018 SP2, a new option is available that changes the default coupling analysis behavior and provides an override.

Located on the Options dialog, Coverage tab, the option is called "Treat initialization of data couple as a write."

When the option is False:

Global initialization expressions do not contribute towards establishing a couple Global initialization expressions do not contribute towards coverage A read following an initialization causes the initialization expression to be marked as needing analysis

When the option is True:

Global initialization expressions contribute towards establishing a couple Global initialization expressions contribute towards coverage A read following an initialization does not cause the initialization expression to be marked as needing analysis clicast -lc Option VCAST_TREAT_DC_INITIALIZATIONS_AS_WRITE True | False The default value is False.

73413: Invalid code inserted when instrumenting some C code containing initialized pointer variable declarations

Previously, VectorCAST inserted extra code that did not compile for some C source code containing pointer variable declarations initialized to zero without a cast when instrumenting for Coupling or Probe Point coverage type. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

73578: Operator "sizeof" should not be treated as a read

Previously, data couples referenced using the sizeof operator were treated as a read. For example: int g_data_expr_sizeof; i = (int)sizeof(g_data_expr_sizeof); Now, this operator is ignored. This has been fixed in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

73463: Data couples referenced using compound operators are incorrectly shown as a write

Previously, data couples referenced using compound operators such as ++ and += were treated as a write. For example: int global_data;

i = global_data++; // Previously a write; now considered a read global_data += 1; // Previously a write; now considered a read In VectorCAST version 6.4.4 and VectorCAST version 2018 SP2, these operators are treated as a read, as they are the first action on the global.

73809: Data couples referenced as the first of two arguments using the comma operator are not treated as references

Previously, with data couples referenced using the comma operator, the first reference would be ignored. This error has been fixed in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

73957: unit.cpp.needed.xml is missing file path

Previously, coupling information could not be determined properly for some source files where the address of a function was taken. Attempting to do coupling analysis for such files would result in the error message "Coupling analysis failed for unknown reason". This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2. To get the new behavior, you must reinstrument cover environments.

VectorCAST/Probe:

73808: Probe points added via clicast command do not appear in the probe point editor

Previously, some probe points added using clicast command would not appear in the probe point editor. This has been fixed in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

VectorCAST/RSP:

70376: Parse error instantiating function templates that work in GHS compiler

VectorCAST incorrectly gave the error:

"more than one instance of overloaded function matches the argument list" when instantiating some function templates for the ARM, Green Hills, IAR, Tasking, and VisualDSP compilers. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

71057: Environment build fails with parser flag --arm and __packed in source

Previously, VectorCAST aborted environment build for some source code containing the __packed keyword when the --arm parser flag was used. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

71063: Parser incorrectly disallows __asm function declaration in arm mode

VectorCAST incorrectly gave the error '"asm" must be used with a function definition' for __asm function declarations when the ARM compiler was selected. This problem has been resolved in VectorCAST version 6.4.4 and VectorCAST version 2018 SP2.

Release Notes - VectorCAST: 6.4.3

VectorCAST/C,C++, Ada (Core) 66858: Very slow instrumentation and then crash with large number of units

Previously, VectorCAST could become unresponsive when instrumenting certain very large projects with many units. This is fixed in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1.

67642: VectorCAST crash with CBA data from a unit not in the environment

Previously, VectorCAST encountered a crash when building an environment that had Coverage By Analysis (CBA) results on a unit that was no longer part of the environment. The error message was:

raised DATA.UNIT_DYN_TABLE_LIST.INDEX_RANGE_ERROR : avl_list.adb:610 instantiated at data.ads:227 This problem has been fixed in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1.

VectorCAST/Ada:

69274: Allow unit-specific control of environment user code insertion for Ada

Previously, when inserting Environment User Code into a whitebox environment, the environment user code would be inserted into the package body of the first Unit Under Test, giving access to package body data for that unit. However, if the user needed access to package body data in another UUT, it would not be available to the Environment User Code.

Starting with VectorCAST version 6.4.3 and VectorCAST version 2018 SP1, a new Builder option has been implemented to allow environment user code to be placed in any UUT. The option is titled "Environment user code in designated UUT".

clicast -lada option VCAST_UNIT_SPECIFIC_USER_CODE_INSERTION True|False The default value is False.

When this option is off (False), VectorCAST inserts the Environment User Code using the old methodology (first UUT). When the option is on (True) and the environment is whitebox, environment user code is parsed / stored as follows:

Any code at the beginning of the section is written to the USER_CODE_ADACAST package When the token "--VCAST_UNIT: " is found in the Environment User Code, code after that line is written to the appropriate unit body user code section. - If is not found, code is written to the last valid package

Example of Environment User Code (with line numbers):

1 ENVIRO.USER_CODE_ONE_SHOT_INIT: 2 USER_GLOBALS_VCAST.INT1 := 1234; 3 --VCAST_UNIT: UUT1 4 UUT1_SPEC := 100; 5 UUT1_BODY := 1000; 6 --VCAST_UNIT: UUT2 7 UUT2_SPEC := 200; 8 UUT2_BODY := 2000; 9 ENVIRO.END_USER_CODE_ONE_SHOT_INIT: Line 2 is inserted into the "Harness Initialization" subprogram in the common user code package. Lines 4 and 5 are inserted into the "Harness Initialization" subprogram in the first UUT. Lines 7 and 8 are inserted into the "Harness Initialization" subprogram in the second UUT.

71421: Improve text of basis path note for "Unable to validate" messages In VectorCAST version 6.4.3 and VectorCAST version 2018 SP1, basis path notes starting with:

Unable to validate the loop condition Unable to validate literal-to-literal comparison Unable to validate literal-to-expression comparison Unable to validate expression-to-expression comparison

have been changed to read "Unable to control..." for clarity.

VectorCAST/Analytics:

67628: Analytics can only get coverage data from default workspace

Previously, the Analytics dashboard did not correctly show coverage data if the Manage project used a workspace other than the default location in the build directory. The workspace is changed by using '-- workspace=' on a Manage command line or by selecting Project => Set Workspace. This problem has been fixed in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1.

VectorCAST/C++:

50923: Structs with virtual functions should be treated as classes

Structs with virtual functions and an implicit constructor were incorrectly allocated using malloc in the test harness, causing some tests to crash. This problem has been resolved in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1. To get the new behavior, you must rebuild any affected environments.

50934: Plain struct not handled correctly if subclass has only implicit constructor

Some structs with subclasses that had only implicit constructors did not have their implicit constructor and/or fields available during test constructor. This problem has been resolved in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1. To get the new behavior, you must rebuild any affected environments.

59331: Clang compiler now supported

The Clang compiler is now available in the C/C++ Compilers list. To set this compiler in VectorCAST, open the Options dialog, C/C++ tab. Select Compilers => Clang => => C or C++.

VectorCAST version 2018 SP1 and VectorCAST version 6.4.3 support Clang versions 2.9 to 5.0, including C++11, C++14, and C++17.

clicast -lc template CLANG_29 clicast -lc template CLANG_29_CPP clicast -lc template CLANG_29_CPP11 clicast -lc template CLANG_30 clicast -lc template CLANG_30_CPP clicast -lc template CLANG_30_CPP11 clicast -lc template CLANG_31 clicast -lc template CLANG_31_CPP clicast -lc template CLANG_31_CPP11 clicast -lc template CLANG_32 clicast -lc template CLANG_32_CPP clicast -lc template CLANG_32_CPP11 clicast -lc template CLANG_33 clicast -lc template CLANG_33_CPP clicast -lc template CLANG_33_CPP11 clicast -lc template CLANG_34 clicast -lc template CLANG_34_CPP clicast -lc template CLANG_34_CPP11 clicast -lc template CLANG_34_CPP14 clicast -lc template CLANG_35 clicast -lc template CLANG_35_CPP clicast -lc template CLANG_35_CPP11 clicast -lc template CLANG_35_CPP14 clicast -lc template CLANG_36 clicast -lc template CLANG_36_CPP clicast -lc template CLANG_36_CPP11 clicast -lc template CLANG_36_CPP14 clicast -lc template CLANG_37 clicast -lc template CLANG_37_CPP clicast -lc template CLANG_37_CPP11 clicast -lc template CLANG_37_CPP14 clicast -lc template CLANG_38 clicast -lc template CLANG_38_CPP clicast -lc template CLANG_38_CPP11 clicast -lc template CLANG_38_CPP14 clicast -lc template CLANG_39 clicast -lc template CLANG_39_CPP clicast -lc template CLANG_39_CPP11 clicast -lc template CLANG_39_CPP14 clicast -lc template CLANG_40 clicast -lc template CLANG_40_CPP clicast -lc template CLANG_40_CPP11 clicast -lc template CLANG_40_CPP14 clicast -lc template CLANG_40_CPP17 clicast -lc template CLANG_50 clicast -lc template CLANG_50_CPP clicast -lc template CLANG_50_CPP11 clicast -lc template CLANG_50_CPP14 clicast -lc template CLANG_50_CPP17 62408: Non-POD structs should not be allocated with malloc in the harness

Structs with fields that have constructors are now allocated with new in the harness. They will be treated as classes in the GUI, meaning you must set the class type by the <> menu. This is fixed in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1.

C++ environments built with VectorCAST version 6.4.3 and later or VectorCAST version 2018 SP1 and later will export test scripts with the new feature:

TEST.SCRIPT_FEATURE:STRUCT_FIELD_CTOR_ADDS_POINTER.

The feature tells VectorCAST that structs with fields that have constructors have the class-like allocations in the test script. If the feature is not present in the test script, then VectorCAST will attempt to allocate structs with fields that have constructors when the test script is imported into environments built with VectorCAST 6.4.3 and later or VectorCAST 2018 SP1 and later.

69592: Struct pointer member of a parameter within the function under test cannot be allocated in the parameter tree

Previously, the user was unable to allocate a struct pointer member for a parameter in the test case Parameter Tree. This problem has been fixed in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1.

70281: Crash occurs when generating some test case data reports VectorCAST version 6.4.3 and VectorCAST version 2018 SP1 fixes a crash that could occur when generating some test case data reports.

71215: Improve text of basis path note for expression-to-expression comparison

In VectorCAST version 6.4.3 and VectorCAST version 2018 SP1, the basis path test script note starting with "Unable to validate expression-to-expression comparison" has been changed to read "Unable to control expression-to-expression comparison" for clarity.

VectorCAST/Cover:

68584: When instrumentation is disabled for cover env from QA, users can still perform actions on cover env from cover tool

Previously, after a Cover environment had coverage disabled for instrumented in-place source files, the user was still allowed to perform clicast commands on it and open it in the VectorCAST GUI, which allowed for undefined behavior.

Now, if a Cover environment has coverage disabled and the user attempts to perform a clicast command on it or open it in the VectorCAST GUI, this action is denied and an error message is displayed. This is fixed in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1.

70157: Update coupling report to be a summary, including PDC information

VectorCAST version 6.4.3 and VectorCAST version 2018 SP1 include an updated Coupling Analysis Report. The report now displays Coupling information organized by coupling type rather than by component.

The report is divided into three sections. The first section displays information regarding Data Couples, including Parameter Data Couples. The second section displays Control Couples information. The third section displays information about control couples referenced by function pointer and any un-analyzed calls that remain that require user analysis.

Fully covered couples are noted with an asterisk prepended to the couple's name in the Coupling Coverage report.

clicast -e COUpling REport COUples [] Tools => Coupling => View Coupling Analysis

70440: Treat function pointer parameters as Parameter Data Couples

In VectorCAST version 6.4.3 and VectorCAST version 2018 SP1, Coupling analysis has been improved.

Parameter Data Couples are displayed in the Coupling Coverage Report Non-void function returns are displayed as Parameter Data Couples Function pointer parameters are displayed as Parameter Data Couples

VectorCAST/Manage:

57203: Default environment options that are explicitly set were ignored when migrating and saving envs

Previously, when a monitored environment was built with a default value for an Environment Option (such as COVERAGE_TYPE), the option would not be imported during migration if the same option was set with a custom value at a higher node in the Manage Project Tree. Now, VectorCAST correctly uses a default value for an option that has been explicitly set prior to migrating an environment. This is fixed in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1. 67266: Link error building environment in Manage leads to dialogue box with inactive OK

Previously, when a link error occurred during interactive build of a C/C++ environment within Manage, the user could not dismiss the link error dialog by clicking the OK button. This problem has been fixed in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1.

VectorCAST/Probe:

70883: Probe Point ID values not unique when Probe Point Apply use is delayed

Previously, VectorCAST did not correctly save the Probe Point IDs to the .pp file (Cover environment) or .env file (unit test environment) when several unsaved Probe Points in different units were applied in bulk using "Apply All Probe Points". In this situation the IDs were not unique. This problem has been fixed in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1.

VectorCAST/RSP:

69426: Add Bit access operator for parser in Renesas mode

VectorCAST gave the error 'expected a ";"' when encountering Renesas bit access operators such as .1. This problem has been resolved in VectorCAST version 6.4.3 and VectorCAST version 2018 SP1.

Release Notes - VectorCAST: 6.4.2

VectorCAST/C,C++, Ada (Core)

61870: Exception not detected as an Expected Value with "Fail if no expected values" or "Fail empty testcases" set to True

When using either of the Execution options "Fail empty testcases" or "Fail if no expected values" set to True, VectorCAST is incorrectly marking tests with Exceptions as an Expected Value as failed, when they should be marked as passing. This is fixed in VectorCAST version 6.4.2.

The clicast options are:

- VCAST_EMPTY_TESTCASE_FAIL - VCAST_TESTCASE_FAIL_ON_NO_EXPECTED 69552: VectorCAST's main window does not remember size and location

In previous versions of VectorCAST, when the user restarted VectorCAST, the main window did not remember its size and location that were last set by the user. This problem has been corrected in VectorCAST version 6.4.2.

70375: Upgrade FlexNet Publisher for Solaris 8 and Solaris 10

VectorCAST version 6.4.2 now includes FlexNet Publisher version 11.13.1.3 for both client and server code. This upgrade resolves a crash that occurred which resulted in an error message similar to:

libcommoncpp.so: symbol lc_get_version: referenced symbol not found. VectorCAST version 6.4.2 requires the use of FlexNet Publisher's version 11.13.1.3 or higher of the FLEXlm server binaries. As a result, customers are required to upgrade their license server machines to run the new version of the FLEXlm binaries in order to use VectorCAST. For users who serve their license from a Solaris 8 machine, version 11.13.1.3 of the FNP binaries are are located in the VectorCAST distribution in the FLEXlm directory.

See the Interactive Tutorials User Guide for instructions on how to install the new FLEXlm binaries, available for download from the VectorCAST website: https://www.vectorcast.com/downloads/user- guides

VectorCAST/Analytics:

70234: Analytics does not work when mapped drives are used

In VectorCAST version 6.4.2, Analytics no longer attempts to canonicalize mapped drives on Windows with their actual locations. If multiple copies of the same file appear, the user can fix this issue by specifying the file the same way in all environments.

70372: Analytics does not show coverage data

Previously, clicking the cover button in the Analytics file view did not show any coverage. This error has been fixed in VectorCAST version 6.4.2.

VectorCAST/C++:

69637: Parser internal error when entities use GNU attribute abi_tag

In previous versions of VectorCAST a parse error could occur when a function was declared using GNU attribute abi_tag. This problem is fixed in VectorCAST version 6.4.2. 69978: Environment builder crash for some source code containing more than one typedefed function pointer with VectorCAST version 6.4.1

VectorCAST version 6.4.1 crashed when building an environment for source code containing more than one typedefed function pointer. This problem has been resolved in VectorCAST version 6.4.2.

70955: Probe points dropped with branch coverage

Previously, probe points were dropped when using branch coverage in version 6.4.1. This problem has been fixed in VectorCAST version 6.4.2.

VectorCAST/Cover:

51264: Cover crashes or hangs on exit if debug logging was enabled in versions 6.3c and later

Clicast commands for cover projects sometimes crashed or hung on exit if debug logging to a file was enabled in VectorCAST versions 6.3c and later. This problem has been resolved in VectorCAST version 6.4.2.

69531: Compile error if Append_Cover_IO is set when using Coupling coverage

Previously, C++ files instrumented for Coupling did not compile if the append_cover_io command was used for them. This problem has been resolved in VectorCAST version 6.4.2.

70193: Imported cba cover results in .cvr file present in Aggregate Report as execution results instead of annotations

Previously, when CBA results were imported from a .cvr file, the aggregate report did not display the coverage correctly as a CBA result. This error has been fixed in VectorCAST version 6.4.2. VectorCAST/Manage:

69669: Allow user defined test case names for specialized tests

VectorCAST version 6.4.2 now allows the user to specify a custom name for the specialized test .tst file. The file name for the specialized test .tst file is specified in the manage specialized test diff dialog. Previously, a unique file name was automatically generated and could not be modified.

70621: Environments built from within Manage should not be added to recent environment list

In VectorCAST version 6.4y and later, opening a unit test environment within Manage and rebuilding or updating it would cause the environment .vce to be added to the recent environment list. This problem has been fixed in VectorCAST version 6.4.2.

VectorCAST/RGW:

69890: Requirements Gateway is storing Date Time Stamps as local, not UTC

Previously, Requirements Gateway (RGW) stored date information in the database specific to one time zone. In VectorCAST version 6.4.2, date information is now stored in Coordinated Universal Time (UTC) format, which allows for RGW databases to be portable between time zones.

The affected RGW utilities are:

python $VECTORCAST_DIR/python/vector/apps/RGWUtility/rgw_clean.py --at_date and

python $VECTORCAST_DIR/python/vector/apps/RGWUtility/rgw_report.py --from_date

python $VECTORCAST_DIR/python/vector/apps/RGWUtility/rgw_report.py --to_date

python $VECTORCAST_DIR/python/vector/apps/RGWUtility/rgw_report.py --at_date

where is specified in the format 'YYYY-MM-DD hh:mm:ss', in the Coordinated Universal Time (UTC) standard.

Release Notes - VectorCAST: 6.4.1

VectorCAST/C,C++, Ada (Core)

69552: VectorCAST's main window does not remember size and location

In previous versions of VectorCAST, when the user restarted VectorCAST, the main window did not remember its size and location that were last set by the user. This problem has been corrected in VectorCAST version 6.4.1.

VectorCAST/Ada:

68534: Test scripts for arrays of arrays can be generated incorrectly

Previously, when a global object was defined as an array of arrays, if the element array was a constrained version of an unconstrained array type (for example, "OBJECT : array(index_one_t) of array_type(index_two_t);"), then VectorCAST could incorrectly determine the possible values for 'index_two_t'. Test case creation would be unaffected, but test scripts created from those test cases may be generated incorrectly, causing script read errors. This problem has been fixed in VectorCAST version 6.4.1.

68538: "use" clause of a package rename can prevent tool from finding typemarks

Previously, if a 'use' clause was found in the package body, and the the referenced package was a package rename, that could cause VectorCAST to fail to correctly identify typemarks in any renamed package. These parameters would appear as "Type not in environment" in the execution report. This has been resolved in VectorCAST version 6.4.1.

68835: 'File version command' does not show generics instantiated by UUT

Previously, when the UUT was an instantiation, the "File Version Command" report option would only be applied to the UUT itself unless coverage was enabled, in which case the generic was also displayed.

In VectorCAST version 6.4.1, the UUT and anything it instantiates are correctly listed in the File Version Command section of the Test Case Management and Full reports.

69182: Access types for boolean/enumerated types do not compare correctly

Previously, when comparing objects that were pointers to enumerated types (including boolean), VectorCAST would always flag the comparison as a failure. This has been fixed in VectorCAST version 6.4.1.

VectorCAST/C++:

32021: Parser does not handle "__vector" and "__bool" GNU Altivec keywords

VectorCAST version 6.4.1 recognizes the GNU Altivec keywords __vector and __bool when the parser flag --altivec is used. 63232: When selecting "Only show events with expected values", the slot information is discarded entirely

When the configuration option VCAST_SHOW_ONLY_EVENTS_WITH_EXPECTED_VALUES is set to true, reports did not display slot, iteration, or range iteration information. This problem has been resolved in VectorCAST version 6.4.1.

65449: Probe points inserted after multi-line statements sometimes go to wrong location

Previously, inserting a Probe Point after a multi-line statement sometimes caused a compile error in the test harness because VectorCAST inserted the probe point incorrectly. This problem has been resolved in VectorCAST version 6.4.1.

68460: Incremental Rebuild reports added dependency when static member defined in later unit

Environments where a static member was declared in one unit and defined in a later unit could not be incrementally rebuilt since VectorCAST incorrectly reported an added dependency. This problem has been resolved in VectorCAST version 6.4.1. To get the new behavior you must rebuild any affected environments.

68562: Harness compile error when "Ignore type qualifiers" enabled and member is a const bitfield

Previously, VectorCAST generated a test harness that did not compile when the configuration option VCAST_TI_IGNORE_QUALIFIERS was set to true and the source code had a const bitfield. This problem has been fixed in VectorCAST version 6.4.1. 68563: Default member initializer for stubbed constructor fails to compile

Previously, VectorCAST used a cast to types containing uninstantiated template parameter types when creating stubs for some constructors. That caused a compile error so VectorCAST now avoids using those casts. This has been fixed in VectorCAST version 6.4.1.

68905: Available values for function ptr types not including some functions when func params differ in use of typedefs

Previously, VectorCAST did not permit the selection of function values for function pointer types if the function parameters differed in the use of aliases from typedef declarations. For example, if your code contained

typedef void *VOID_PTR; void (*global_ptr)(VOID_PTR); void no_typedef(void *param){} void using_same_typedef(VOID_PTR param){}

then VectorCAST would permit you to set global_ptr to using_same_typedef but not no_typedef. Now both functions are available. This is fixed in VectorCAST version 6.4.1.

VectorCAST/Cover:

64867: Improvements to Control and Data Coupling

VectorCAST version 6.4.1 offers several improvements to the Control and Data Coupling feature, available in a VectorCAST/Cover environment.

* The CLICAST command to generate the components no longer takes an argument specifying the base directory from which to search for directories to be used as components. Instead, components are defined by the directories in which the Cover environment's source files reside.

clicast -e coupling components Control Couples

* While a Control Couple is considered covered if a function defined in one component is called from another component during test execution, there may be other calls to the same function that have not been covered.

To provide additional information to the user regarding the extent of Control Couple coverage they have achieved, the Coupling Coverage Report now lists any uncovered calls to that function, including the calling source file and line number.

Data Couples

* A data couple exists if a global data object is read/written in one component and read/written in another component. In previous versions of VectorCAST, a data couple was identified in the case where a component was merely defined in one component and read/written in another component.

* A data couple is no longer considered covered if defined and used within the same component.

* To provide additional information to the user regarding the extent of Data Couple coverage they have achieved, the Coupling Coverage Report now lists data couple references that have not been covered, including the source file and the line number of the reference.

* A new section has been added to the coverage report to report on parameter data couples. If a Control Couple passes parameters, and that control couple is uncovered, the uncovered parameters are listed in the Coupling Coverage Report as uncovered Parameter Data Couples. 65682: Block coverage and function call coverage options together cause GUI to differ from report in version 6.4t and later versions

Version 6.4t and later versions of VectorCAST displayed lines containing function calls and prior to the last statement of a block as uncovered in the GUI when the aggregate coverage and metrics reports correctly showed them as covered. This problem has been resolved in VectorCAST version 6.4.1. To get the new behavior, you must instrument for code coverage again in any existing environments.

66255: Error exporting CBA to .cvr files for C++

Previously, VectorCAST did not export Coverage By Analysis results (CBA) to a coverage script (.cvr) correctly for C++, which caused the coverage to be rejected when later imported. This problem has been fixed in VectorCAST version 6.4.1.

69279: couplingData.c moved to Cover environment directory

In VectorCAST version 6.4.1, the couplingData.c file is now written to the Cover environment directory, alongside the c_cover_io.c file. Previously, this file was located in the "coupling" sub-directory of the Cover environment directory.

Users should be aware of this file's new location when compiling the instrumented source files after performing Control and Data Coupling analysis.

VectorCAST/QA:

65776: New Coupling example in Examples\SystemTesting

VectorCAST version 6.4.1 includes a new example demonstrating the Coupling feature. The example creates a Cover environment named Coupling_Coverage, instruments for Statement, performs Coupling Analysis and Apply, and then generates the Coupling Coverage Report.

The example adds the Cover environment to a Manage project under the SystemTesting node, so that it can be built and executed as a System Testing environment.

To create the example on Linux, run the createExample.sh script located in $VECTORCAST_DIR/Examples/SystemTesting/CouplingExample/Linux.

To create the example on Windows, run the createExample.bat script located in %VECTORCAST_DIR%\Examples\SystemTesting\CouplingExample\Windows. 69423: QA demo with environment info containing non-ascii character causes vc python error

In previous versions of VectorCAST/QA, subprocesses would fail to be invoked when the user's process environment contained non-ascii characters. This issue has been resolved in VectorCAST version 6.4.1.

VectorCAST/RSP:

50897: Support Renesas keyword __evenaccess

VectorCAST version 6.4.1 can now handle source code containing the Renesas RX keyword __evenaccess. To enable support, go to Tools => Options dialog, C/C++ tab, Language tab, and edit the Parser flags to add --renesas --renesas_version=rx. 55720: Microchip MPLAB X8 RSP fixes

The default main.c for Microchip MPLAB X8 environments contained the line #include "usart.h" which prevented compilation of the file. The line has been removed in VectorCAST version 6.4.1. In addition, the default values for the configuration options VCAST_MAX_HEAP_SIZE and VCAST_MAX_STRING_LENGTH have been increased to 30 for Microchip MPLAB X8.

67479: Parse error for anonymous nested class, struct, or union when designated initialization omits the nested brace using GHS flags

Previously, VectorCAST gave an error for source code containing anonymous nested classes, structs, or unions if an initialization involving designators omitted the nested braces and the --ghs parser flag was used. For example,

typedef union { struct { unsigned value; unsigned char address; }; unsigned array[2]; } struct_t;

void func(unsigned data, unsigned addr) { struct_t local_struct = {.value=data, .address=addr}; } caused VectorCAST to give the error, "a designator for an anonymous union member can only appear within braces corresponding to that anonymous union". This problem has been resolved in VectorCAST version 6.4.1.

69136: __declspec(section "name") not reproduced properly when generating stubs for Code Warrior MPC

Previously, test harnesses for Code Warrior MPC source code containing __declspec(section "name") omitted the "name" when generating stubs, causing a compile error in some cases. This problem has been resolved in VectorCAST version 6.4.1.

Release Notes - VectorCAST: 6.4z

VectorCAST/C++:

63238: New <> special value for Expected Values in C/C++ environments

In VectorCAST version 6.4z, a new special value, <>, is now available for Expected Values in the Parameter Tree when editing a Test Case. When the test is executed, any non-zero value is considered a match.

VectorCAST/Cover:

68586: Do not allow clicast to run on a Cover environment while it is open in the VectorCAST GUI

Previously, the user was allowed to perform clicast commands on a cover environment that was open in the VectorCAST GUI, which allowed for undefined behavior. In VectorCAST version 6.4z, if the user attempts to perform a clicast command on an opened cover environment, this action is denied and displays an error message.

VectorCAST/Manage:

66197: Manage reports the .cvr has changed after "Clean" and "Build" from the project tree on a selected environment

Previously, after performing a "Clean" on a migrated environment with imported or CBA results in Manage and then performing a build, the environment would be considered as having a changed coverage script (.cvr) file. In VectorCAST version 6.4z, this problem has been corrected so that the environment is considered up to date in this scenario.

Release Notes - VectorCAST: 6.4y

VectorCAST/C,C++, Ada (Core)

55152: Recent Environments list should be updated at beginning of Environment Open, not after opened successfully

Previously, if an environment failed to open correctly, it was not added to the File => Recent Environments list, making it difficult for the user to find the environment again. VectorCAST version 6.4y now adds an environment to the Recent Environments list immediately when starting to open it.

58614: New clicast option to control deallocation of data allocated in harness

VectorCAST version 6.4y contains a new clicast option, VCAST_FREE_HARNESS_DATA. Some target- based systems do not automatically free memory when a process exits. For such systems, memory that is allocated by the test harness must be explicitly freed in order for the memory to be available for subsequent processes. Enabling this option causes the harness to keep track of data allocated for parameter tree support so that it can be freed before the harness exits. Note that even with this option enabled, the harness will not track memory allocated by functions under test or user code. If necessary, such memory must be deallocated separately via user code.

clicast -lc Option VCAST_FREE_HARNESS_DATA True | False The default value for this option is False.

63813: Show/Hide attribute is not saved on all tests if multiple tests are being saved

Previously, when multiple testcases were open for editing in the GUI at the same time, if a parameter attribute (Display in report, Floating point tolerance, numeric base) was modified in the testcases, only the last testcase opened would retain this information. This problem has been fixed in VectorCAST version 6.4y.

66904: Scroll Test Case Tree to show newly duplicated test case

Previously, after duplicating a test case, VectorCAST did not ensure that the newly created test case is visible in the Test Case Tree. This problem has been fixed in VectorCAST version 6.4y.

VectorCAST/Ada:

66537: Return type of access to a limited type causes compile error

When a Unit Under Test function defined with a return expression as "access type_mark", the VectorCAST test harness is built with an object of 'type_mark', and the object is assigned to the dereferenced value of the function call. Previously, when 'type_mark' was a limited type, this assignment statement was illegal, causing a compilation error. This error has been fixed in VectorCAST version 6.4y.

66794: Allow code coverage on standard Ada units

Previously, due to difficulties in compiling standard Ada library packages, VectorCAST would prevent turning on code coverage on standard Ada packages. In VectorCAST version 6.4y, this limitation has been removed.

66955: Overloaded standard typemarks cause harness build errors

Previously, when the unit under test re-used standard Ada typemarks (such as "integer" or "string"), VectorCAST could generate incorrect harness code, causing compile errors. With VectorCAST version 6.4y, VectorCAST now uses its own version of standard Ada types, resolving this issue.

67125: Missing / incomplete execution reports when stubs are called before UUT

Previously, when stubs were called before the UUT in an Ada unit test environment, the Execution report (HTML) was missing and the TEXT version of the report was missing the last event. This problem has been fixed in VectorCAST version 6.4y.

67254: Unconstrained array UUT parameters not constrained in SBF with Multiunit Whitebox

When calling a UUT subprogram that takes an unconstrained array as a parameter, VectorCAST is supposed to use the 'first and 'last values as supplied by the test case data to pass a slice of the parameter object. Previously, if the environment was built with both Stub-by-Function and Multiunit whitebox, the entire array was always being passed. This has been fixed in VectorCAST version 6.4y.

67339: Parser fails to handle aspects in package / subprogram definitions

Previously, when using Ada 2012, if a package or subprogram definition or declaration contained an aspect declaration (e.g "function BAR with inline is .."), the parser would fail to handle the "with inline", resulting in environment build failures and/or instrumentation failures. This problem has been fixed in VectorCAST version 6.4y.

67411: Modify Ada array range processing to not use local variables

Previously, arrays that have a very large number of elements could cause the range processing to crash (preventing any range data from being generated). This has been fixed in VectorCAST version 6.4y.

VectorCAST/Analytics:

65840: Coverage missing in analytics when file paths use subst drive

Previously, the Analytics display was missing coverage for source files that used a Windows mapped drives (with subst). In VectorCAST version 6.4y, the full path to the source file is displayed instead of the mapped drive letter, and the coverage for the file is correctly displayed.

VectorCAST/C++:

59602: Range of 0xFFFF0001..0xFFFF00FF/1 unnecessarily requires compiler to support long long

In previous versions of VectorCAST, if long long support was not enabled, test case executions would fail to use the correct value when a range iteration was specified that used an unsigned integer value greater than could be stored in a signed int. This problem is fixed in VectorCAST version 6.4y.

60162: Allow stubbed constructors to use parameter tree input when VCAST_ALWAYS_DO_STUB_PROCESSING_IN_TI is enabled

During test execution, stubbed functions might get called during the instantiation of inputs as specified in the test case parameter tree. The VCAST_ALWAYS_DO_STUB_PROCESSING_IN_TI option controls whether stubs called at that time will generate report events and process input and expected values from the parameter tree. In previous versions of VectorCAST, this option was ignored if a constructor itself was stubbed, preventing the stub processing even if VCAST_ALWAYS_DO_STUB_ PROCESSING_IN_TI was TRUE. This problem is fixed in VectorCAST version 6.4y.

60750: C++ test harness compile error for some standard containers of non- copyable class, struct, or union types as parameters

Previously, when the option "Do not detect ANSI C++ standard containers" was not selected, VectorCAST generated test harness code that did not compile for source files containing functions with parameters of standard containers of class, struct, or union types that do not have a copy-assignment operator available due to having a const or reference non-static field. This problem has been resolved in VectorCAST version 6.4y.

62593: Use stdcall, fastcall, and cdecl attributes when stubbing functions on x86_64

In previous versions of VectorCAST, stubs for functions declared using attributes __stdcall__, __cdecl__, or __fastcall__ could fail to compile when targeting x86_64 platforms. This problem is fixed in VectorCAST version 6.4y.

63229: Support for additional testable functions for use when not testing member and non-member inline functions

In VectorCAST version 6.4y, the ENVIRO.ADDITIONAL_TESTABLE_FUNCTION command may now be used in environment scripts to specify additional testable functions. The format is:

ENVIRO.ADDITIONAL_TESTABLE_FUNCTION:

This command is useful in the situation where the configuration options VCAST_TEST_ALL_INLINES and/or VCAST_TEST_ALL_NON_MEMBER_INLINES are set to false. Setting VCAST_TEST_ALL_INLINES to false prevents testing of inline member functions in header files. Setting VCAST_TEST_ALL_NON_MEMBER_INLINES to false prevents testing of non-member inline functions in header files.

The ENVIRO.ADDITIONAL_TESTABLE_FUNCTION command takes precedence over the ENVIRO.SUPPRESS_TESTABLE_FUNCTION command. If ENVIRO.ADDITIONAL_TESTABLE_FUNCTION is specified for a function, then it is testable even if ENVIRO.SUPPRESS_TESTABLE_FUNCTION is also specified for that function.

64152: Assignment to dereference of address-of operator incorrectly classified as a read operation when gathering coupling info

Previously, VectorCAST incorrectly classified an assignment to a dereference of an address-of operator as a read when gathering coupling information. For example, *(&global_one) = 1; was treated as a read of global_one, when in fact, global_one is being written. This problem has been resolved in VectorCAST version 6.4y.

65154: Redeclare library function when defining library stub for variadic functions

In previous versions of VectorCAST, library stubs for variadic functions did not reprint the original function declaration. In VectorCAST version 6.4y, the real function prototype is printed before the stub definition to make it easier for user code to call the real library function.

65440: std::__1::string not detected as std::string Newer versions of CLang define std::string as std::__1::string when C++11 is in use. Previous versions of VectorCAST would fail to detect this as a string type. This problem is fixed in VectorCAST version 6.4y.

65504: Internal error building environment for source code containing functions with decltype template arguments

Previously, VectorCAST gave an "Internal error: assertion failed" message and aborted environment building for some source code with functions having decltype template arguments. This problem has been resolved in VectorCAST version 6.4y.

65517: Test script maintainer does not maintain usercode tags when a C++ function switches from being not overloaded to overloaded

Previously, when a C++ function switched from being not overloaded to overloaded, and the environment was rebuilt, the test script maintainer was unable to convert the user code tags to use the new function name. The user code did not compile with the old tags. This problem has been resolved in VectorCAST version 6.4y.

65989: Invalid Harness Command in the Test History" error when executing some basis path tests for functions of abstract classes

When member functions of abstract classes without concrete subclasses used member variables, the basis path tests used the name of the abstract class instead of the automatically generated concrete class, causing an "Invalid Harness Command in the Test History" error to appear in the Execution Report.

This problem has been resolved in VectorCAST version 6.4y. If you have an affected environment, you will need to remove the incorrect tests, do basis path analysis, and insert basis path tests again.

66094: Test script export/import problems when struct pointer parameter containing a field that is also a struct used in multiple units

VectorCAST 6.3a and later versions were not able to import test scripts created by 6.2 or earlier version when multiple units used the same struct with a field of another struct not otherwise used in the unit (unless the environment variable VCAST_TI_NO_COMMON_TYPE_SUPPORT was set to a non-zero value). Setting those values in the parameter tree and exporting the script also did not work.

These problems have been resolved in VectorCAST version 6.4y. If you have an affected environment, you must rebuild it to get the new behavior.

66109: Basis path test sometimes uses incorrect constructor name when constructor contains typedefed parameter type

In some cases, basis path test scripts used the name of a non-existent default constructor when the only available constructor has a typedefed parameter type. That behavior causes the "Invalid constructor name" error to appear when basis path tests were inserted.

This problem has been resolved in VectorCAST version 6.4y. If you have an affected environment, you will need to do basis path analysis again.

66361: Visual Studio issues 'permission denied' error when test compiling probe points

Previously, when test compiling Probe Points in an environment built with a Visual Studio compiler, the temporary file used to compile probe points did not have appropriate user access control for Visual Studio, resulting in a "Fatal Error: Permission Denied" message. This problem has been fixed in VectorCAST version 6.4y.

66548: File scope probe point may be inserted incorrectly Previous versions of VectorCAST might insert file scope probe points incorrectly, depending on the source code and preprocessor being used, causing the test harness to have a fail to compile or to behave incorrectly. This problem has been fixed in VectorCAST version 6.4y.

67000: Incorrect error message with import CBA and branch coverage

Previous versions of VectorCAST might incorrectly generate an error message during import of Coverage by Analysis results (CBA) if the result being imported was on a line with a branch decision. The CBA result was imported, but the error message should not have been displayed in the Coverage Import Log. This problem has been fixed in VectorCAST version 6.4y.

67387: Test script import fails when range input is for a global with ID > 800

In previous versions of VectorCAST, an error would occur importing a test script whenever a range input was specified for a global variable whose internal ID was greater than 800. This problem is fixed in VectorCAST version 6.4y.

67406: Problems during test execution when "Show constructors called during test object-init" and "I/O uses stdout only" are selected

VectorCAST versions 6.2g and later sometimes failed to set input test values when "Show constructors called during test-object init" and "Execute using stdout only" were selected and when the environment stubbed a constructor that was called during test object initialization. The problem also occurred with "Show constructors called during test-object init" and "I/O uses stdin/stdout". This problem has been resolved in VectorCAST version 6.4y. To get the new behavior, you must rebuild any affected environments.

67621: Interface file for VCAST_SPLIT_UC_FILES generated incorrectly when there is an array of pointers for version 6.4x and later

VectorCAST versions 6.4 and later had a problem when the configuration option VCAST_SPLIT_UC_FILES was true where the _vcast_interface.c file in the test harness incorrectly omitted the portion of the declarator starting with * for global variables that are arrays of pointers. The omission could cause compile errors in the the test harness. This problem has been resolved in VectorCAST version 6.4y.

67626: Update help text for VCAST_COVERAGE_FOR_DECLARATIONS configuration option

The clicast command help option VCAST_COVERAGE_FOR_DECLARATIONS previously listed incorrect possible values. This has been fixed in VectorCAST version 6.4y.

67627: Multiple definitions of concrete class functions when VCAST_SPLIT_UC_FILES enabled when using version 6.4x or later

VectorCAST versions 6.4x and later incorrectly created multiple definitions of automatically generated concrete class functions when the configuration option VCAST_SPLIT_UC_FILES was set to true, leading to a link error in the test harness. This problem has been resolved in VectorCAST version 6.4y.

VectorCAST/C++ and VectorCAST/Ada:

63233: Format of numeric values in slot prior to last slot of compound test not honored in Execution Report

Execution reports for compound tests sometimes used a format, in slots prior to the last one, for displaying numeric values that was different from the one originally used to enter the value in the Parameter Tree or test script. For example, a value entered in hexadecimal format could get displayed in decimal format instead. This problem has been resolved in VectorCAST version 6.4y. VectorCAST/C++ and VectorCAST/Cover:

57966: Support for per-project Lint options location stored in shareable config file

Previously, when specifying options for performing Lint or Klocwork Analysis, the location where the options were stored was specific to the user, allowing only one set of options for any analysis through VectorCAST.

In VectorCAST version 6.4y, the options have been moved to the Options Dialog / CCAST_.CFG file. This allows users to have different options for different Unit/C++, Cover and Lint environments. This also makes the options available in regression scripts.

When VectorCAST is first started in a particular environment, the original 'project.lint' file (if it exists) is read, and those options (if they do not match the defaults) are then stored in the CCAST_.CFG file. The 'project.lint' file will not be read whenever the CCAST_.CFG file in the working directory contains Lint options.

The following Lint and Klocwork options are now configurable from clicast:

clicast -lc Option KLOCWORK_COMMAND_LINE_OPTIONS clicast -lc Option KLOCWORK_EXECUTABLE_PATH clicast -lc Option KLOCWORK_LICENSE_HOST clicast -lc Option KLOCWORK_LICENSE_PORT clicast -lc Option KLOCWORK_PROJECT_URL clicast -lc Option KLOCWORK_SERVER_HOST clicast -lc Option KLOCWORK_SERVER_PORT clicast -lc Option KLOCWORK_SEVERITY

clicast -lc Option LINK_FILE_TEMPLATE clicast -lc Option LINT_ADDITIONAL_DIRECTORIES [,...] clicast -lc Option LINT_COMMAND_LINE_OPTIONS clicast -lc Option LINT_COMPILER_OPTIONS_FILE clicast -lc Option LINT_CONTINUE_AFTER_ERROR True | False clicast -lc Option LINT_EXECUTABLE_PATH clicast -lc Option LINT_MISRA clicast -lc Option LINT_NUMBER_OF_PASSES clicast -lc Option LINT_OPTION_FILES

60760: INVALID_COVERAGE_LINES.log file is cleared when vcp file is loaded, but shouldn't

Previously, the INVALID_COVERAGE_LINES.log file was deleted from the Cover environment directory when the environment was closed, which was not helpful to the user when the environment was re-opened. Instead, this file is retained for user reference until new test results are added. This problem has been fixed in VectorCAST version 6.4y.

64679: Regression Scripts in Cover environment should include the CBA and Imported Results

Previously, when creating regression scripts, VectorCAST/Cover did not include in the .cvr script any Coverage By Analysis (CBA) results or Imported Results that were present in the Cover environment. This problem has been resolved in VectorCAST version 6.4y.

64910: Test Compile Probe Point when a unit is Appending Cover IO gives error

Previous versions of VectorCAST would report a failure when attempting to test compile a probe point in a Cover environment with append_cover_io enabled on a unit. This problem has been fixed in VectorCAST version 6.4y.

66726: New clicast command to add Cover result files recursively

Previously, the user could only add a single result at a time to a Cover environment from the command line. In VectorCAST version 6.4y, the user may add results recursively by specifying one or more directories in the following clicast command. The added results are named the same as the .DAT files found in the specified directory(ies) and their sub-directories.

clicast -e Cover RESult RECursive_add [...] 66916: Instrumentation fails to compile when function call coverage enabled for source with many default parameter arg function calls

Previously, function call coverage did not compile using the Visual Studio compiler for source code with many function calls using default parameter arguments that contained additional function calls. Also, coverage of any call with default arguments incorrectly caused all other locations of the default argument to appear covered. These problems have been resolved in VectorCAST version 6.4y.

VectorCAST/Manage:

50686: Manage does not save config data for "create env" process immediately

Previously, edits to a configuration of a newly created environment would not take effect until after the environment was created. This problem has been fixed in VectorCAST version 6.4y.

56485: Manage compiler settings from the compiler node not getting copied to the test suite node

In previous versions of VectorCAST, when pasting a level's configuration in the Project Tree, the copied search directories and environment variables overwrote those set in the destination configuration.

In VectorCAST version 6.4y, the copied search directories and environment variables are appended to the destination configuration.

64932: Certain Manage options should display File not Directory chooser

Previously, the following options: - Custom script header text file (VCAST_DEFAULT_SCRIPT_HEADER) - Notes section template (VCAST_NOTES_SECTION_TEMPLATE) - Run script after instrumentation (VCAST_CMD_AFTER_INSTRUMENTATION), and - VCDB database file (VCDB_FILENAME) displayed a directory chooser dialog instead of a file chooser dialog when the user tried to set them in the Manage configuration editor, which prevented the user from setting them. This issue has been fixed in VectorCAST version 6.4y.

66166: Cancelling out of changes in Manage doesn't always cancel

Previously, canceling an environment close request was not always honored. This issue has been fixed in VectorCAST version 6.4y.

66300: In Manage, right-click on System Testing node => Enable/Disable Coverage gives error when instrumented not in-place

In previous versions of VectorCAST, disabled coverage on a System Testing environment that was not instrumented in-place could not be re-enabled. This issue has been fixed in VectorCAST version 6.4y.

66806: Need full path tooltip for system_tests.py in Editor

Previously, after opening the system_tests.py script within Manage, the text editor did not show the full path as part of the tab's tooltip. This problem has been fixed in VectorCAST version 6.4y.

VectorCAST/Probe:

61893: Probe inserted in invalid location on 'else if' statement

Previous versions of VectorCAST might insert a probe point incorrectly when added to an "else if" statement, causing the test harness (unit test environment) or instrumented application (Cover environment) to fail to compile or to behave using unintended logic.

This problem has been fixed in VectorCAST/Cover and VectorCAST/C++ version 6.4y for both C and C++ source code.

IMPORTANT: It is not recommended to use the uninstrumented test harness while using Probe Points on "else if" branch points.

Using Probe Points in a Unit Test environment on source code that does not have curly brackets at branch points can result in differences in the behavior between the instrumented and uninstrumented test harnesses. The uninstrumented test harness is accessed by choosing Coverage => Disable or 'clicast -e TOols COVer Disable'. 62254: Probe inserted at wrong location after ternary expression

Previous versions of VectorCAST might insert probe points incorrectly after ternary expressions, causing a compile error. This problem has been fixed in VectorCAST version 6.4y.

62363: New menu item to Apply All Probe Points and enhancements to Test Compile

VectorCAST version 6.4y includes several usability improvements to Probe Points.

In the Probe Point icon's drop down menu, select the new menu item "Apply All Probe Points" to save and apply the Probe Points in all units that have been modified. A confirmation dialog is shown for each modified unit, asking whether to save or not. Any changes that are not confirmed are discarded. Once confirmed, an Incremental Rebuild is performed (Unit Test environment) or the affected units are re- instrumented (Cover environment).

As in previous releases of VectorCAST, when Test Compiling Probe Points and an error occurs, the Preprocessed Probe Point file opens in a separate window. In VectorCAST version 6.4y, each unit has its own window for the Preprocessed Probe Point file, and the text is scrolled to the first probe point. When the user selects another Probe Point in the Editor, this file scrolls to highlight the text of the selected Probe Point, enabling the user to find the one with the error more easily.

VectorCAST/RSP:

47731: Parser support for keywords for the Renesas RL78 compiler ca78k0r

Previously, keywords __far and __near were not part of the Renesas RL78 compiler mode. These have been added to the set of supported keywords in VectorCAST version 6.4y.

47932: Parser fails to recognize __cdecl and __int64 for GHS native win32 Previously, the parser arguments __cdecl and __int64 in GHS win32 mode were not supported. This problem has been fixed in VectorCAST version 6.4y.

48027: Parser should allow mismatched prototypes in --c --diab mode

Previously, prototype and function definition mismatches in the source file were not supported in --diab mode. This problem is resolved in VectorCAST version 6.4y.

50898: Renesas RX compiler needs explicit typedef for _Bool in c99 mode

Previously, a typedef of _Bool in --c99 mode when using a Renesas RX compiler was rejected by the EDG parser, causing the error "invalid combination of type specifiers". This problem has been fixed in VectorCAST version 6.4y.

54094: Keil Arm parser does not allow static (or volatile) keyword for __asm function

Previously, an __asm function with static keyword would fail to parse in keil mode. Also, asm declarations were not allowed. These problems have been resolved in VectorCAST version 6.4y.

61635: vxworksExecutionScript.py should support custom boot host

In previous versions of VectorCAST, test executions for VxWorks targets using vxworksExecutionScript.py did not allow overriding the target host name. The vxworksExecutionScript.py in VectorCAST version 6.4y now recognizes a --host=TARGET_HOST_NAME flag for specifying the target host name. The default target host name is "host". 64240: Improved support for NVIDIA GPU __attribute__((global)) functions

Previously, VectorCAST gave an error for source code containing Nvidia execution configurations (i.e. the code within the <<< and >>> tokens). VectorCAST version 6.4y is able to handle code with execution configurations.

Also, in previous versions of VectorCAST, the test harness for source code containing __attribute__((global)) functions did not compile since the harness omitted the execution configuration when calling the functions. In VectorCAST version 6.4y, __attribute__((global)) functions are not testable in order to avoid that problem.

65711: Error message 'More than one instance of overloaded function "__builtin_memcpy" has "C" linkage' for VisualDSP Blackfin builtins

Previous versions of VectorCAST incorrectly gave the error:

more than one instance of overloaded function "__builtin_memcpy" has "C" linkage when parsing the VisualDSP Blackfin builtins.h file. This problem has been resolved in VectorCAST version 6.4y.

67719: List of subclasses empty when overridden pure virtual function prototype has different parameter type qualifier

Previously, VectorCAST did not recognize virtual functions as overriding when their parameter type qualifiers differed from the overridden function for the Renesas and Borland compilers. This behavior led to some classes incorrectly being classified as abstract so they were unavailable for use in tests. For example, source code like this would lead to VectorCAST treating "Derived" as an abstract class:

class Abstract { public: virtual int foo(const int i, const int* const ptr) = 0; };

class Derived: public Abstract { public: virtual int foo(int i, const int* ptr) { return 67719; } }; This problem has been resolved in VectorCAST version 6.4y. To get the new behavior, you must rebuild any affected environments.

Release Notes - VectorCAST: 6.4x

VectorCAST/C,C++, Ada (Core)

64712: Debug log empty unless viewed via "View Debug Log" button in Troubleshooting dialog

Previously, when executing tests in the VectorCAST GUI using the Debug logging feature (accessed from Help => Troubleshooting => Diagnostics), the debug.log.gui file would be empty if the user viewed it without going back to the Debug dialog and clicking the "View Debug Log" button.

In VectorCAST version 6.4x, the log can be viewed from a shell, via File => Open, or via the Troubleshooting dialog, and it contains the correct information.

VectorCAST/Ada:

63037: Renaming Ada environment made from 'gpr' file causes compile errors

Previously, when working with a VectorCAST/Ada environment that was built with a GNAT .gpr file, selecting VectorCAST's File => Rename Environment menu item would cause failures when later compiling the harness (for user code or instrumentation). This problem has been fixed in VectorCAST version 6.4x.

64608: Stub-by-function for Ada does not work in subprograms that are 'separate'

Previously, if a subprogram within a Unit Under Test was declared as 'separate' and the environment was built using Stub-By-Function, the 'separate' subprograms would appear as stub-able, but only the real subprogram was ever called. This problem has been fixed in VectorCAST version 6.4x.

64699: Coverage report not showing correct unit information for generic instances

Previously, when viewing a report containing coverage (Test Case Management, Aggregate Coverage, Metrics report), and a test case was selected in a UUT that is a generic instantiation, the report would not show any coverage (because the coverage is associated with the generic package, not the instantiation). This problem has been fixed in VectorCAST version 6.4x.

66096: Compiler complains about "ambiguous expression" when adding user code

Previously, if the source under test did a "use ;" for a package that defined a subtype of boolean, then the compiler could generate an error for VectorCAST's test harness code that was included when Parameter User Code was added for a testcase. This problem has been resolved in VectorCAST version 6.4x.

66187: Very long lines possible in Ada harness for enumerated types Previously, when the fully qualified typemark for an enumerated type is very long, VectorCAST generated harness code with the typemark appearing on the same line, causing a source line with greater than 200 characters. For some compilers, this line length causes a compilation error. This problem has been fixed in VectorCAST version 6.4x.

VectorCAST/Analytics:

54513: Error message for errors on server startup

Previously, the the Analytics server (vcdash) did not provide output when exiting due to Port or IP address conflicts. This problem has been fixed in VectorCAST version 6.4x.

64281: Ctrl+C no longer kills the Analytics server (vcdash) on Windows

Previously, in some cases, when run from the Windows command prompt, the Analytics server (vcdash) would not shut down when sent CTRL+C.

This problem has been fixed in VectorCAST version 6.4x, though it may take a few seconds for the server to shut down. On Windows, you can force the server to shut down immediately with CTRL+BREAK, but this method may leave some temporary files on your filesystem.

VectorCAST/C++:

61991: Update to character parameter data entry (GUI and scripting)

Previously, setting String Display mode to Pointer and its Character Display mode to Character was incorrectly initializing its base type, resulting in character values being lost after the test case was saved or imported from test script. This problem has been resolved in VectorCAST version 6.4x.

Users can expect the following behavior when entering values for a character parameter in the Parameter Tree:

- If the entry is an alphabetic or special character, the parameter is switched to Character mode and the entry is displayed as a character.

- If the entry is a hex or octal number, the parameter is switched to numeric mode and the appropriate base, and the entry is displayed in that base.

- If the entry is a negative number, the parameter is switched to numeric mode and displayed as decimal.

- If the entries for Input and Expected values are entered using different methods (mode and base), the parameter is switched to the second method used, causing both Input and Expected values to be displayed in the same mode.

62063: Incremental rebuild treats undeclared functions as new dependencies

In previous versions of VectorCAST, calls to undeclared functions would always be treated as new dependencies when evaluating whether incremental rebuilds were possible. This problem is fixed in VectorCAST version 6.4x by ignoring undeclared functions when performing incremental rebuilds.

63226: Allow additional stubs in library test mode

Beginning in VectorCAST version 6.4x, the ENVIRO.ADDITIONAL_STUB environment script command may now be used to specify functions which should be stubbed in library interface testing mode. The format is:

ENVIRO.ADDITIONAL_STUB: 63274: Support Visual Studio 2017 VectorCAST version 6.4x adds support for Visual Studio 2017.

To use Microsoft Visual Studio 2017, from the Windows Start menu, select All Programs => VectorCAST => VectorCAST for Visual Studio => VectorCAST for Visual Studio 2017. clicast -lc template VISUAL_CPP_2017 clicast -lc template VISUAL_CPP_CPP_2017 64105: Link error because array stub is a redeclaration not a definition when type is a typedefed unconstrained array

Previously, VectorCAST re-declared undefined externs which were typedefed unconstrained arrays instead of defining them. For example, typedef unsigned char TYPEDEFED_UNC_ARRAY[]; extern TYPEDEFED_UNC_ARRAY foo; would result in an environment that did not link. This problem has been resolved in VectorCAST version 6.4x.

To get the new behavior, you must rebuild any affected environments.

64112: Using environment variable in testable, type-handled, or library include directory causes extra error message in parse error

Previously, use of an environment variable when specifying a testable, type-handled, or library include directory could result in a message stating that the environment variable was not found (despite the environment variable being set) during environment build on the Linux and Solaris platforms if the source code did not parse for other reasons. This problem has been resolved in VectorCAST version 6.4x.

64467: Instrumented files appending cover I/O not touched when vcast_c_options.h changes from GUI starting with version 6.4s

VectorCAST versions 6.4s and later did not update the modification time of instrumented files appending cover I/O when other files were instrumented from the GUI, even if the files were inside the environment directory. This problem has been resolved in VectorCAST version 6.4x.

64516: Concrete class stub incorrectly uses forward declared struct or union in subsequent units

Previously, when the configuration option VCAST_AUTO_CONCRETE_CLASS_GENERATION was set to true, the environment that was generated for source code with an abstract struct definition in one unit and a forward declaration of that struct in a subsequent unit where a stub for a function taking a reference to the struct was needed did not compile.

This problem has been resolved in VectorCAST version 6.4x. To get the new behavior, you must rebuild any affected environments.

64539: Incorrect generation of object file testing interface file when global array has a name in parentheses

In previous versions of VectorCAST, when using Object File Testing mode, the environment did not compile if a source file contained a global array variable with the array name in parentheses, such as: int (array_name)[2]; This problem has been resolved in VectorCAST version 6.4x.

65149: Configure stubs user code not automatically compiled into instrumented harness when coverage enabled with version 6.4s and later

VectorCAST versions 6.4s and later did not automatically compile configure stubs user code into the instrumented harness. This problem has been resolved in VectorCAST version 6.4x.

65391: Parse error when designated initializer used for parameter of reference type

Previously, VectorCAST incorrectly gave the error "no instance of overloaded function matches the argument list" when source code contained a designated initializer for a parameter of reference type. For example:

struct S { int i, j; }; void f(S&&) {} int main() { f({.i = 1, .j = 2}); // Previously an error. Now okay. } This problem has been resolved in VectorCAST version 6.4x.

65481: Coverage instrumentation inserted in invalid location if preceded by basis path analysis

Previously, when doing basis path analysis and then instrumenting a C source file with the configuration option VCAST_COVERAGE_FOR_DECLARATIONS set to true, VectorCAST would sometimes insert a right parenthesis in an invalid location if the first variable initialization in a function contained an enumeral. This problem has been resolved in VectorCAST version 6.4x.

65540: Test harness should use ::delete when calling testable destructors

Previously, the test harness might not compile when building an environment for source code containing a class that defined an overloaded delete operator.

This problem has been resolved in VectorCAST version 6.4x by using ::delete to avoid use of the overloaded delete.

VectorCAST/C++ and VectorCAST/Cover:

66044: CBA adds coverage to unchecked lines when saving changes if block- coverage is enabled

Previously, when using the option "Instrument blocks for statement coverage" with Statement+MC/DC coverage, after adding some Coverage By Analysis in the Editor, the Editor would incorrectly mark additional lines with CBA checkmarks upon saving. This problem has been fixed in VectorCAST version 6.4x.

VectorCAST/Cover:

62514: Invalid Branch instrumentation inserted for expression of overloaded operator &&

Previously, VectorCAST generated instrumentation code that did not compile when C++ source code contained any of the following functions (if those functions returned class values):

operator && operator || operator ! operator == operator != operator > operator >= operator < operator <= The problem occurred because VectorCAST treated the functions the same as comparison operators.

In VectorCAST version 6.4x, VectorCAST treats the functions as if they were the same as comparison operators if the functions return bool or integer values, and if the new configuration option VCAST_COVER_OVERLOADED_LOGICAL_OPERATORS is set to True. The option is set using clicast only.

When the option is False, VectorCAST does not treat the functions as comparison operators, and therefore does not consider calls to those functions to be branches.

clicast -lc option VCAST_COVER_OVERLOADED_LOGICAL_OPERATORS True | False The default value is True.

64148: Error seen when compiling coupling-instrumented source file in certain case

Previously, coupling instrumentation of C source files placed executable statements before variable declarations, causing compile errors for some compilers. This problem has been resolved in VectorCAST version 6.4x. You must re-create the Cover environment to get the new behavior.

64297: Coverage instrumentation added to enum definition

Previously, VectorCAST added Branch instrumentation inside enum definitions containing the "?" operator if the enum value was used later in a branch statement. The instrumentation inside the enum definition did not compile. Also, Basis Path and MC/DC Test reports showed incorrect branches inside the enum definition. These problems have been resolved in VectorCAST version 6.4x.

65889: Branch coverage incorrectly handles nested switch statements in 6.4r and later when CASE_FALLTHROUGH_BRANCH_COVERAGE is false

When CASE_FALLTHROUGH_BRANCH_COVERAGE is set to False and Branch coverage is initialized, case statements in a switch statement following a nested switch statement reached without fallthrough were not recorded as covered if the nested switch was entered. This problem has been resolved in VectorCAST version 6.4x.

VectorCAST/Manage:

64633: Default options that are explicitly set were ignored when migrating

Previously, when a monitored environment was built with a default value for a configuration option (such as C_COMPILER_CMD), the option would not be imported during migration if the same option was set with a custom value at a higher node in the Manage Project Tree. VectorCAST version 6.4x correctly uses a default value for an option that has been explicitly set prior to migrating an environment.

64759: CBA is not retained on Incremental Rebuild for Unit Monitored envs

Previously, a monitored Unit test environment would lose CBA coverage after an Incremental Rebuild. This problem has been fixed in VectorCAST version 6.4x.

VectorCAST/RSP:

34658: RSP for Green Hills MIPS INTEGRITY 178B for Ada VectorCAST/Ada version 6.4x now supports the Green Hills MIPS Integrity 178B target. To use this licensed RSP, select File => New => Ada Target Environment => MIPS Green Hills Integrity.

clicast -lada -x MIPS_GH_INTEGRITY env build 63495: mwccs12lisa requires support for binary constants

Previously, when using codewarrior versions hc12 and hcs08, and code containing binary constants, it would cause a parse failure and generate an error. This is resolved in VectorCAST version 6.4x.

63943: Static memory with Ada configurable I/O does not work correctly with MC/DC coverage

Previously, when using the Ada configurable I/O method of target execution with static memory management and MC/DC coverage, the harness could crash with a memory violation when a subcondition was hit multiple times. This issue has been fixed in VectorCAST version 6.4x.

64631: Intex failure should halt test execution

Previously, VectorCAST would not always detect when a Green Hills intex command failed. This could cause VectorCAST to execute the wrong test harness. This problem is fixed in VectorCAST version 6.4x.

64882: EDG parser reports "error: struct or union is too large" with keil compiler

Previously, VectorCAST incorrectly reported "error: struct or union is too large" for some large array fields when the Keil compiler was selected. This problem has been resolved in VectorCAST version 6.4x.

Release Notes - VectorCAST: 6.4w

VectorCAST/C,C++, Ada (Core)

63992: Open html help locks current directory preventing rebuild

Previously, when the user tried to rebuild an environment while an HTML or PDF user guide was open, an error occurred saying that VectorCAST could not backup the directory. This problem has been fixed in VectorCAST version 6.4w.

64204: Compound test cases always fail when "Fail if no expected values" option is set

Previously, when the option "Fail if no expected values" was True, a Compound testcase would fail when the user initiated test execution (without actually executing) because a Compound testcase has no expected values itself, only its slots do.

In VectorCAST version 6.4w, executing a Compound testcase honors the option correctly by failing after execution if no Expected values are present in any slot.

65019: Ignore invalid tu position in coverage database

Beginning in VectorCAST version 6.4u, an issue in the coverage database caused environment re_build to hang. This issue has been fixed in VectorCAST version 6.4w.

VectorCAST/Ada:

63548: Harness build error when nested instantiation textually matches child packagename When a nested generic instantiation inside a child package uses a package name that contains part of an ancestor parent name, VectorCAST can incorrectly assume types are visible when they are not, causing harness compilation errors. This has been resolved in VectorCAST version 6.4w.

64110: Typemark defined solely in the private section of a parent unit can cause harness compilation errors

Previously, when a tagged type was defined solely in the private section of a unit, and a child of that unit referenced a typemark that included a type derived from the tagged type, when building a multiunit whitebox environment VectorCAST would incorrectly try to call a procedure in the parent unit from the child unit that was not visible. This has been resolved in VectorCAST version 6.4w.

64635: Preprocess GNAT files not working correctly when object directory is different than source directory

Previously, when building an Ada environment with GNAT, and the option 'Preprocess GNAT source files' flag is set, if the GPR file specified an Object directory that was different than the Source files location, the preprocess would fail and VectorCAST would use the un-preprocessed file. This problem has been fixed in VectorCAST version 6.4w.

clicast -lada VCAST_PREPROCESS_ADA_FILES True | False The default value is False.

VectorCAST/Analytics:

64416: Analytics file viewer, long file paths are truncated at the start of path

Previously, long file paths would not display properly in the Analytics file viewer. In VectorCAST version 6.4w, if the file path is too long to display the complete path, it is truncated at the start of the path with ellipsis.

VectorCAST/C++:

56040: std::list and std::string not detected when using g++ 5+ C++11

Some versions of g++ first define std::list and std::string as std::__cxx11::list and std::__cxx11::string respectively when C++11 is in use. Previous versions of VectorCAST would fail to detect these as the standard list and string types. This problem is fixed in VectorCAST version 6.4w.

57005: New option VCAST_TEST_UNIT_USER_CODE to control whether user code functions are testable

"Consider unit user code functions testable" is a new option available in VectorCAST version 6.4w to control whether functions defined in unit appendix and unit prefix user code show as testable in the test case tree. Note that regardless of the value of this option, such functions do not get instrumented for coverage or SBF stubbing.

clicast -lc option VCAST_TEST_UNIT_USER_CODE TRUE|FALSE 62931: Function under test taking a non-copyable parameter within a std container is not suppressed

Previously, the test harness for functions with parameters that are std containers of non-copyable types did not compile. This problem has been resolved in VectorCAST version 6.4w. To get the new behavior, you must rebuild any affected environments.

63204: Test Execution issues using % char (\045) as input to std::string Previously, VectorCAST crashed when a string was input with \045 as the last character. This problem is fixed in VectorCAST version 6.4w.

63225: Additional Stubs take precedence over Suppressed stubs

The VectorCAST environment wizard allows specifying Additional Stubs and Suppressed Stubs. In previous versions of VectorCAST, if a function matched an entry in both lists, the suppression would take precedence. In VectorCAST version 6.4w, the addition takes precedence.

63788: TI shared across units even though field is a type where the set of subclasses differs across units

Previously, when the environment variable VCAST_TI_NO_COMMON_TYPE_SUPPORT was not set, VectorCAST used a type handling function from one unit in other units, despite the subclasses for the types differing. The call to the incorrect function could result in the wrong subclass being selected during test execution.

This problem has been resolved in VectorCAST version 6.4w. To get the new behavior, you must rebuild any affected environments.

63839: Probe point can't be applied to overloaded function

Previously, VectorCAST allowed probe points to be specified within overloaded functions, but would not actually insert the probe point code into the overloaded function code. This problem has been fixed in VectorCAST version 6.4w.

64029: structs without member functions do not show inherited functions in test tree

Previously, inherited member functions of structs without their own member functions were not testable. This problem has been resolved in VectorCAST version 6.4w. To get the new behavior, you must rebuild any affected environments.

64224: Functions with std::unique_ptr arguments not testable

Functions with std::unique_ptr arguments were not testable. This problem has been resolved in VectorCAST version 6.4w. To get the new behavior, you must rebuild any affected environments.

VectorCAST/C++ and VectorCAST/Cover:

62362: Clicast interface to Probe Points database via serial numbers (IDs)

VectorCAST version 6.4w supports the ability to identify individual probe points by a serial number or ID. This functionality is implemented via three new CLICAST commands to enable, disable, or remove a specific probe point.

Upon creation of a probe point in the GUI or via CLICAST, the probe point is assigned a serial number or ID. The first probe point is assigned the number 1 by default, unless the probe point was added via CLICAST using the text:

PROBE_ID: positioned after the definition of the probe point in the .env script or probe point file. If two probe points are given the same ID, the second one encountered is given the next available ID number that is unique.

When a probe point is deleted or dropped due to changes in the source code, its ID is deleted also, and can be re-used for another probe point.

The IDs are displayed in the Probe Point Listing report (GUI) and in the XML report (CLICAST). To add a probe point: clicast -e TOols PRobe_point ADD_file clicast -e Cover PROBE_point ADD_file New commands to enable, disable, or remove a specific probe point: clicast -e TOols PRobe_point DISable_id clicast -e TOols PRobe_point ENAble_id clicast -e TOols PRobe_point REMOVE_Id

clicast -e Cover PROBE_point DISable_id clicast -e Cover PROBE_point ENAble_id clicast -e Cover PROBE_point REMOVE_Id When one of the above commands is run to enable, disable, or remove a probe point via ID, it is merely scheduled to have that action occur. The action takes place when the Apply command is run.

If the environment is opened in the GUI before Apply has been performed, it is recommended that Apply be immediately performed by clicking the "Not Applied" button in the Probe Point Editor.

clicast -e TOols PRobe_point APPly clicast -e Cover PROBE_point APPly VectorCAST/Cover:

51609: VectorCAST component editor

VectorCAST version 6.4w includes a new component editor. The component editor provides an easy to use GUI interface and allows the user to create and configure the components for coupling analysis.

The following new commands are now available from the Cover Project Tools Menu:

- Tools => Coupling => Components => Generate This generates a default set of components based on the source directory structure. Each directory creates a new component. This is equivalent to the clicast command: clicast -lc -e COUpling COMponents - Tools => Coupling => Components => Edit This opens the component editor GUI and allows the user to modify the component configuration and move files between components, create new components, and remove existing components.

- Tools => Coupling => Analyze This performs coupling analysis and is the equivalent to the clicast command: clicast -lc -e COUpling ANalyze - Tools => Coupling => Apply This adds the function calls necessary to gather control coupling data during execution and is equivalent to the clicast command: clicast -lc -e COUpling APply - Tools => Coupling => Generate Coverage Report Generates the Coupling Coverage Report and is equivalent to the clicast command: clicast -lc -e COUpling REport COUples 62839: Improve Support for Control Coupling via Function Pointers

VectorCAST version 6.4w adds support for handling function pointers involved in Data and Control Coupling. In previous versions, the Coupling Coverage Report indicated that calls via function pointers had been detected and needed analysis. VectorCAST provides a mechanism for the user to do manual analysis of each call via function pointer, the outcome of which then indicates to VectorCAST which functions their application might call on that line of source code. VectorCAST then “reads” that information before doing the Coupling Apply (instrumentation).

Two new CLICAST commands are supplied to perform the manual analysis.

1. Run clicast -e COUpling ANalyze [] 2. If a function pointer is detected and displayed in the output, run clicast -e COUpling MAnual_analysis GEnerate_report 3. The output in lists each call via function pointer, the unit name, the line and column where it is called, and the word "analyze". It is up to the user to change the word "analyze" to either "ignore" or "active". - Enter "ignore" if the call via function pointer does not actually call any function involved in a data or control couple. An example of a function pointer call that can be ignored is a call to a function that wraps a call to a standard library function created specifically for your target. - Enter "active" if the call via function pointer is involved in a data or control couple. Each line with "active" also requires that the field "fp-targets" have a space-separated list of function names in your code that this line could possibly call. 4. Once this information is provided in and saved, call this CLICAST command to instruct VectorCAST on how you want the function pointers handled: clicast -e COUpling MAnual_analysis UPdate Continue on as usual, running the Coupling Apply command.

VectorCAST/Manage:

52067: Manage is not aware of Industry Mode when selecting Code Coverage

Previously, when VectorCAST/Manage was set to an industry mode other than default, the coverage type configured displayed the description associated with "default industry mode".

In VectorCAST version 6.4w, the coverage type corresponds to the industry mode configured. If a coverage type does not exist for a particular industry mode, the description from default industry mode will be used.

63596: Manage/QA build/execute preserves CBA

Previously, when performing a build/execute on a Manage/QA environment that contained CBA results, the CBA information would be lost. This has been fixed in VectorCAST version 6.4w.

VectorCAST/RSP:

62705: Parser should allow indexing into char literals in --tasking mode

Tasking compilers allow indexing into multi-byte char literals, as in:

return 'abcdefgh'[index]; Previous versions of VectorCAST issued an error when parsing this code in tasking mode. This problem has been fixed in VectorCAST version 6.4w.

Release Notes - VectorCAST: 6.4v

VectorCAST/C,C++, Ada (Core) 49474: Allow monitored VC/Cover environments to be created from VC/Manage

VectorCAST version 6.4v now includes the shortcut to create a new, monitored, Cover environment within your VectorCAST/Manage project. By default, the environment is stored in vcast_qa sub-folder within the work space directory, but can be modified by the user by setting the "Storage Location" in the environment wizard.

55148: Support for Saving Coverage Reports to any filename and extension

Previously, the user wanting to save all coverage reports via the Save Coverage Reports dialog was restricted to selecting only the location in which the reports would be saved. Each report was saved with a hard-coded name in the format:

__report.html or .txt The dialog did not allow the user to specify a filename and file extension for the reports.

In addition to the existing functionality, in VectorCAST version 6.4v the user can choose to save a single report to any location, filename, and file extension. The report must be in TEXT format to enable this selection.

As before, the user sets the checkboxes to specify which sections to include in the combined report. The data for all selected units are combined into a single report

To access the Save Coverage Reports dialog in a Cover environment: 1. Select the unit(s) you want to include in the report. 2. Choose Environment => View => Save Coverage Reports...

In a Unit Test environment: 1. Select the unit(s) you want to include in the report. 2. Choose Test => Save Coverage Reports...

59181: Update Japanese and Chinese translations

VectorCAST version 6.4v includes updated translations for Japanese and Chinese languages.

60689: Crash using F5 while renaming a test case

Previously, VectorCAST permitted test execution to be started using F5 even when a test was in rename mode. This situation caused the execution to continue indefinitely, appearing as though the GUI crashed. This problem has been resolved in VectorCAST version 6.4v.

60929: VectorCAST should set LM_APP_DISABLE_CACHE_READ if VECTOR_LICENSE_FILE or LM_LICENSE_FILE is set

In VectorCAST version 6.4v, if the VectorCAST license is defined by the environment value VECTOR_LICENSE_FILE or LM_LICENSE_FILE, VectorCAST will ignore the value defined in the registry. To use the registry value, unset the environment variable(s).

62628: Add support for maintaining test script when functions move from one UUT to another

Previously, when a subprogram was moved from one UUT to another, the Test Script Maintenance utility would not be able to identify that the testcases were still applicable to the environment, just in a different unit. As a result, the testcases were removed from the environment on test script re-import.

In VectorCAST version 6.4v, the Test Script Maintenance utility correctly assigns the testcases for the moved subprogram to the other unit. 63113: User action before re-build is finished

VectorCAST version 6.4v contains fixes for GUI crashes that can occur when using the environment wizard or when rebuilding environment.

63146: Test Case Maintenance Utility takes 30-40 minutes

Previously, when rebuilding an environment, the Test Script Maintenance Utility took a long time when the size of the environment artifacts exceeded a certain size. In VectorCAST version 6.4v, the behavior of the Test Script Maintenance Utility has been altered to support this use-case more efficiently.

63355: When using VectorCAST in Japanese, dialog boxes and Manage configuration tooltips have garbage characters

Previously, when using the VectorCAST GUI with the Japanese language selected, the Help About dialog and the Instrumentation progress dialog contained unprintable or "garbage" characters. In addition, in Manage, some tooltips in the Configuration window also contained garbage characters. These problems have been resolved in VectorCAST version 6.4v.

63517: Improve diff processing for Test Script Maintenance Utility

Previously, when rebuilding an environment, the Test Script Maintenance Utility took a long time when the testcases in the environment contained a very large set of values. This problem has been mitigated in VectorCAST version 6.4v.

63537: Partition tests generated without range data fail to execute

Previously, when the clicast command "test partition" was run with no range data available, VectorCAST would indicate the tests were created, but the internal data structures were not populated correctly. This caused a crash when those tests were executed. Starting with VectorCAST version 6.4v, trying to generate partition test cases without range data will result in an error message.

64023: Debug mode enabled in Licensing code

VectorCAST version 6.4v supports tracking calls to VectorCAST's licensing functionality (FLEXlm) when in debug mode, specifically with vresult_trace enabled.

64215: Allow Coverage-By-Analysis results to be editable after import

Previously, VectorCAST would not allow users to edit Coverage-By-Analysis (CBA) results via the CBA editor in the GUI that were imported from a coverage script (.cvr).

VectorCAST version 6.4v allows all CBA results to be edited regardless of how they were created. This includes CBA results that were imported via .cvr, .cba, and after rebuilding an environment.

VectorCAST/Ada:

63361: Support for preprocessing Ada files when using GNAT GPR build process

Previously, when VectorCAST encountered preprocessor directives in a source file, it would treat that line as a comment and ignore it. This could cause instrumentation issues because comments are stripped out of the instrumented file, which could cause incorrect behavior and/or coverage numbers.

In VectorCAST version 6.4v, there is a new Builder option "Preprocess GNAT source files" that enables preprocessing of the Unit Under Test (and any non-stubbed unit instrumented for code coverage) when the preprocessor is configured in the GNAT Project file (.gpr) specified when building the environment.

clicast -lada VCAST_PREPROCESS_ADA_FILES True | False The default value is False. VectorCAST/Analytics:

62935: Data API delete speed

Projects with very large numbers of iterations, range iterations, or tests may have experienced slow removal of test results. The issue causing this is now fixed in VectorCAST version 6.4v. Some data must be migrated into a new format for the fix, so if you are opening one of these projects for the first time after the update, you may experience a long delay. If you do not want to wait, you can skip this migration process by rebuilding your environment.

63307: Vcdash shows instrumented file

VectorCAST version 6.4v fixes an issue that caused Analytics to display instrumented source files instead of original source files when using --history-dir and instrument-in-place.

VectorCAST/C++:

55668: Parser thinks more than one overloaded function matches argument list when using boost/signals2.hpp

Previously, when parsing source code with a #include of boost/signals2.hpp, VectorCAST incorrectly gave the error:

"more than one instance of overloaded function "boost::variant::initializer::initialize [with T0_=boost::weak_ptr, TN=, boost::signals2::detail::foreign_void_weak_ptr>]" matches the argument list" This problem has been resolved in VectorCAST version 6.4v.

59443: Char values rejected from .tst import after range collection failure

In previous versions of VectorCAST, if an error occurred during range data collection, a test script import error would occur for test cases that specified character values. This problem is fixed in VectorCAST version 6.4v.

60551: Harness uses incorrect sprintf format string for double

In previous versions of VectorCAST, the harness used a non-standard sprintf format string when printing values of type double. In VectorCAST version 6.4v, the standard "%g" format string is used.

61826: SBF code generates locally undefined Init Object, causing link error

Previously, environments where a stub-by-function unit contained a testable function with a parameter that is an array of classes without default constructors did not link. This problem has been resolved in VectorCAST version 6.4v. To get the new behavior, you must rebuild any affected older environments.

62141: Compile error caused during Incremental Rebuild for an SBF unit with main

Previously, incrementally rebuilding an environment with a stub-by-function unit containing the main function caused a compile error. This problem has been resolved in VectorCAST version 6.4v.

62714: Deactivated probe point missing from editor

In previous versions of VectorCAST, deactivating all probe points after trying to apply a probe point with an error might cause the deactivated probe points to be missing in the probe point editor and/or report. This problem has been fixed in VectorCAST version 6.4v. 62963: Instrumented ternary operator where the second operand is omitted results in an incorrect value being returned

Previously, branch or basis path instrumentation of a conditional operator with an omitted second operand caused 1 to be returned when the first operand evaluated to true. That behavior was incorrect when the first operand was a value other than 1. This problem has been resolved in VectorCAST version 6.4v.

63039: C/C++ Tutorial files now support Targets with no Standard Input

In VectorCAST version 6.4v, the Tutorial files in the VectorCAST installation directory have been changed to allow users on Targets without Standard Input (stdin) to use them more easily.

By default, the manager_driver.c (.cpp) source file requires stdin in its use of scanf(). However, when an environment is built with one of the following macros defined, the source file no longer requires stdin. - If ORDER is defined while a UNIT TEST environment is built or instrumented or while a COVER environment is instrumented, then it is as if "P" (for Place_Order) has been entered as input. - If CHECK is defined, then it is as if "G" (for Get_Check_Total) has been entered as input.

In addition, a script named buildIt is provided in the same directory. The script contains two ways to compile the sources. By default, it compiles the sources assuming stdin is available. By uncommenting the other command and commenting out the original command, the user can build the sources while defining ORDER.

Note, to use the buildIt script with a COVER environment, the best practice is to append the c_cover_io.c file to one of the units, such as manager_driver.c (.cpp). To do this in the VectorCAST GUI, right-click manager_driver.c (.cpp) and choose "Append Cover IO". In CLICAST, enter either:

clicast -e -u manager_driver.c cover append_cover_io True or clicast -e -u manager_driver.cpp cover append_cover_io True 63200: Execution report generation now uses less RAM

Previously, generation of execution reports failed for some large compound tests since VectorCAST ran out of memory. In VectorCAST version 6.4v, generation of text reports now uses less RAM.

63299: Pure virtual function overridden twice in generated concrete subclass

Previously, when an abstract class contained a pure virtual function with the same name and parameters but a different return type as a pure virtual function in a base class, VectorCAST incorrectly generated definitions for both of those functions, causing a compile error. This problem has been resolved in VectorCAST version 6.4v.

64382: Stubbed constructor member initialization list should utilize pointers and references to abstract types

VectorCAST version 6.4v is able to use the "this" pointer and parameters more often in the member initialization list of stubbed constructors. This usage should avoid situations where infinite recursion occurs due to the stub calling itself or other constructors. To get the new behavior, you must rebuild any affected environments.

VectorCAST/Cover:

62629: Incorrect instrumentation when local variable assigned constant bool expression

Previously, when instrumenting Statement+Branch coverage, the function's entry point coverage was missing when the first variable in the function was assigned the value of a constant expression containing a logical or comparison operator. Consequently, this statement with the constant was also missing coverage. For example, with source code like this: int func ( void ) { int local_variable = (0 != 0); return local_variable; } the entry point to the function func did not receive coverage after test execution, and the line "int local_variable = (0 != 0);" was not instrumented. This problem has been fixed in VectorCAST version 6.4v.

62711: Call coverage result lines rejected when adding result file

Previously when re-instrumenting with Function Call coverage enabled, VectorCAST would not correctly update the Function Call coverage stored in the database, which could result in invalid lines when adding result files. This problem has been corrected in VectorCAST version 6.4v so that the Function Call coverage is always updated when necessary.

63535: Crash instrumenting MC/DC or determining basis paths for certain source with Visual Studio C++ 2015 (6.4f and later)

VectorCAST versions 6.4f and later crashed when initializing MC/DC coverage or determining basis paths for some Microsoft Visual Studio C++ 2015 code. This problem has been resolved in VectorCAST version 6.4v.

62742: Include Coverage-by-Analysis (CBA) data in Function Coverage

Previously, VectorCAST would only consider run-time coverage (that is, coverage from test execution) and not Coverage-by-Analysis (CBA) as contributing toward function coverage. Function coverage is displayed as an additional column in the Metrics report and the Function Call Coverage report.

In VectorCAST version 6.4v, this behavior has been changed so that both test execution coverage and CBA coverage contribute toward function coverage.

Metrics Report

The Function Coverage column in the Metrics report displays "100%" if the function has been entered by either execution or CBA coverage. The two rows below that indicate how many statements are coverage by execution, and how many by Analysis.

Function Call Coverage Report

The Function Call Coverage report includes columns for both Function Coverage (the function has been entered) and Function Calls (the call has been executed). In VectorCAST, CBA data only affects function coverage, not function call coverage.

When only CBA results are responsible for the function coverage, the character "A" (for "Analysis") is displayed in the Function Coverage column. When execution results or a combination of execution and CBA results contribute to the coverage, the usual "Y" (for "Yes") is displayed in the column.

63536: Preprocess or parse errors while instrumenting in a cover environment should be saved to unitname.ERR file

Previously, preprocess or parse errors that occurred during instrumentation were written to the file VCAST.ERR, which was then overwritten when another unit had an error. This problem is resolved in VectorCAST version 6.4v, where errors for each unit are saved to an individual .ERR file. If instrumentation is successful, no .ERR file is created. 64175: CLICAST should report error file name during instrumentation when error is less than 6 lines long

Previously, CLICAST did not report the name of the error file where a preprocess or parse error is logged if the error was less than six lines long. In VectorCAST version 6.4v, the name of the file is now given.

VectorCAST/Manage:

62097: Test script conversion failure triggers error 'Dependency Added, Full Rebuild Required'

In previous versions of VectorCAST/Manage, the build and execution of an environment would be aborted after a tst script conversion failure. This has been resolved in VectorCAST version 6.4v.

62956: Output from the system_tests.py should go to the execute or build log

Previously, when python scripts were invoked by VectorCAST, stdout and stderr were directed to the debug stream. From CLICAST, output was directed to stdout and from the GUI, output was directed to the Message Window.

In VectorCAST version 6.4v, python output is directed to the output handle at the time of invocation. For example, python output goes to the build.log when invoked during a build, or goes to the execute.log when invoked during execution.

VectorCAST/Probe:

61564: If I omit the trailing colon on a command, we get a STORAGE_ERROR to the console

Previously, VectorCAST would fail to parse probe points added to the environment using a Probe Point file (.pp) containing a command without a trailing colon, causing the CLICAST command to hang or add invalid Probe Points. This problem has been fixed in VectorCAST version 6.4v.

63220: Adding probes using a .pp file may hang the parser

Previously, VectorCAST would fail to parse probe points added to the environment using a Probe Point file (.pp) containing a blank line, causing the CLICAST command to add the Probe Point to hang. This problem has been fixed in VectorCAST version 6.4v.

VectorCAST/RGW:

58313: Intland Codebeamer RGW integration

VectorCAST version 6.4v includes RGW support for Inland Codebeamer. Inland Codebeamer is a collaborative web-based requirements and ALM solution.

The VectorCAST/RGW integration allows the user to import Requirements from the Codebeamer server, then export test results back to the Codebeamer server.

VectorCAST/RSP:

62383: Support 'Direct Array Indexing' on all Ada targets

Previously, on certain limited Ada targets, VectorCAST was unable to determine the proper indices for arrays, and therefore only supported positional notation (1..N) instead of the actual array index. In VectorCAST version 6.4v, a new Builder option named "Alternate direct array indexing" has been added to address this deficiency. When this option is True, VectorCAST builds the harness using a different mechanism which allows VectorCAST to get the appropriate index for almost every array, regardless of target limitations.

clicast -lada option VCAST_TARGET_DIRECT_ARRAY_INDEXING True | False The default value is False.

Release Notes - VectorCAST: 6.4u

VectorCAST C,C++, Ada (Core)

60161: Failed to execute external editor command

In the Options dialog, the user can specify a path to an External Editor to be used when opening text files. If the path contains spaces, the user encloses the path in quotes. Previous versions of VectorCAST incorrectly marked such a path in quotes as being in an error state, with a red outline, and would not start the External Editor. This problem has been resolved in VectorCAST version 6.4u.

61940: Saving Code Coverage Summary does not honor VCAST_RPTS_DELIMITER option

Previously, when saving the Code Coverage Summary report from the GUI as a .CSV file, the column separator was a "," which could cause parsing errors if the subprogram name also contains "," (for overloaded subprograms). Additionally, the option "Delimiter" on the Reports tab, Format sub-tab, Text sub-sub-tab was not being honored when saving the Code Coverage Summary.

In VectorCAST version 6.4u, VectorCAST honors the VCAST_RPTS_DELIMITER option as a column separator when saving the Code Coverage Summary.

62646: Crash when saving testcase while selected in Execute Status details

Previously, a crash occurred while saving a test case with results and coverage after that test case was selected in the Execution Status window. This problem has been fixed in VectorCAST version 6.4u.

62877: Easy way to copy info from About VectorCAST dialog to clipboard

In VectorCAST version 6.4u, in the About VectorCAST dialog, text can be selected with the mouse and copied to the clipboard using the right-click menu or the Ctrl+C shortcut.

62886: Button to move units in Create Environment wizard is disabled

Previously, in VectorCAST version 6.4t, the controls to add and remove units in the Create Environment wizard's "Choose UUTs & Stubs" step were disabled inappropriately. This issue has been fixed in VectorCAST version 6.4u.

VectorCAST/Ada:

47400: Pragma Unreferenced causes compile error in SBF

Previously, if a subprogram in a Unit Under Test used 'pragma unreferenced', building a Stub-By- Function environment for that unit would generate a compile error due to the parameter being referenced as part of the stub processing. This has been fixed in VectorCAST version 6.4u.

62355: Global anonymous array objects defined after a nested package cause harness build error Previously, if a Unit Under Test contained a global anonymous array, such as:

OBJECT : array ( 1 .. N ) of TYPE_T; that was defined after a nested package body, VectorCAST's harness code inserted into the nested package body would incorrectly refer to the global object, causing compilation errors. This problem has been resolved in VectorCAST version 6.4u.

62631: Typemark containing private types from nested package causes harness compilation error

Previously, when a Unit Under Test contained a typemark that referred to a private type within a nested package (e.g. an array whose element was a private type), VectorCAST's harness code inserted into the top-level package would incorrectly refer to a non-visible procedure within the nested package, causing compilation errors. This problem has been resolved in VectorCAST version 6.4u.

62694: Compilation error when UUT is instance of nested generic package

Previously, when a Unit Under Test was an instantiation of a nested package, and that nested package defined its own types, VectorCAST could incorrectly build the test harness, resulting in error messages indicating a typemark was not visible. This problem has been fixed in VectorCAST version 6.4u.

VectorCAST/C++:

39195: Improved preservation of CBA data across source code changes

Previously, when rebuilding an environment with Coverage By Analysis data (CBA), VectorCAST would retain the CBA in unpredictable and sometimes incorrect ways. For example, if a source code line with CBA was modified and the environment rebuilt, the line would still (erroneously) be covered by CBA. Similarly, if a new line of code was inserted in a function above the CBA-covered line and the environment rebuilt, a different line would be (erroneously) covered by CBA.

In VectorCAST version 6.4u, CBA is preserved across source code changes in a predictable manner. During environment rebuild, VectorCAST exports the CBA data to a .cvr script with 2 lines of context before and/or after the line with CBA.

If any of these lines have changed in the source code, the CBA is discarded and noted in the Coverage Import/Export Log.

A current limitation of this feature in VectorCAST version 6.4u is that the Import Log is not displayed in the GUI or in CLICAST when CBA data is removed after environment rebuild.

- This log can be accessed in the GUI using the Coverage => View Import Log menu item.

- To see the Import Log after rebuilding the environment in CLICAST, look at the file IMPORT.LOG in the environment directory.

43013: Allow increment/decrement on enums in Borland mode

Previously, using increment/decrement on enums with Borland mode in a Unit test environment would cause a parser error. This problem has been resolved in VectorCAST version 6.4u.

43721: Variables named f in test harness renamed to vcast_f

Previously, the test harness used some variables named f. In VectorCAST version 6.4u, those variables have been renamed to vcast_f so that users who need to #define f for their source code may do so.

52004: Stub generated for function which cannot copy its return type Previously, stubs were incorrectly generated for functions where the return type had a private or protected copy constructor, causing a compile error. This problem has been resolved in VectorCAST version 6.4u.

57368: Function which returns private type treated as uncallable/untestable

Functions returning private or protected types were previously not testable. In VectorCAST version 6.4u, new environments allow testing of those functions, though the returned value cannot be captured.

60627: Array of anonymous struct incorrectly stubbed

Previously, stubs for arrays and pointers to anonymous classes, structs, and unions had incorrect syntax, causing compile errors.

In VectorCAST version 6.4u, anonymous classes, structs, and unions are now stubbed correctly if C++11 is available, or if the new Build option VCAST_TYPEOF_OPERATOR is set to True. clicast -lc option VCAST_TYPEOF_OPERATOR True | False The default value is determined by the compiler template.

This option indicates whether the compiler accepts the __typeof__ operator.

61648: Coverage instrumenter should not treat unique symbols as being defined at unique addresses

Previously, branch conditions that compared weak symbol pointers could incorrectly be treated as constant. This problem is resolved in VectorCAST version 6.4u, where the branch instrumentation allows both the True and the False outcomes, compared to only one outcome previously.

61895: Cannot insert probe on do/while statement [statement coverage]

In VectorCAST version 6.4u, probe points are allowed before the while statement in do/while loop.

62177: Handle __prog__ pointers for Microchip

Previously, VectorCAST created invalid test harness code for some Microchip source code containing __prog__ pointers, causing a compile error. This problem has been resolved in VectorCAST version 6.4u.

62743: Incorrect float values printed in Execution Report when using VCAST_NO_SPRINTF define

In recent versions of VectorCAST, floating point values would be incorrectly printed by the unit test harness when using the defined variable VCAST_NO_SPRINTF. This problem is fixed in VectorCAST version 6.4u. Existing environments should be updated or rebuilt to use the fix.

63008: Stubbed constructor member initialization list should better utilize pointer and reference parameters

When VectorCAST stubs a constructor that requires a member initialization list, it tries to use constructor parameters for initializing the members or base classes. If a member or base class initialization requires an initializer of a type not available among constructor parameters, a new instance of that type is created.

VectorCAST version 6.4u now attempts to use parameters that are references or pointers to the required type when generating the initialization list. This change reduces the number of new instances created in the harness.

63300: Instrumentation error in Control and Data Coupling

Previously, instrumentation insertion points were being miscalculated when gcc was being used due to gcc adding DOS line endings. This resulted in VectorCAST incorrectly placing Control and Data Coupling instrumentation inside existing comments. VectorCAST version 6.4u now accounts for extra DOS line endings to fix the problem.

VectorCAST/Cover:

61053: Support for auto-insert of c_cover_io.c via right-click menu

Previous versions of VectorCAST support a CLICAST command to specify that a unit in a Cover environment should have the c_cover_io.c file appended during instrumentation. Doing so eliminates the need to add the /c_cover_io.c file on the command line when compiling the instrumented sources.

In VectorCAST version 6.4u, the user is able to do this in the GUI as well. To specify that a C/C++ unit should have the c_cover_io.c file appended, right-click the unit and choose "Append Cover IO". The unit is immediately re-instrumented.

Typically, only one unit per Cover environment is selected in order to avoid redefinition errors during compilation, and it is usually the one with the main() function.

clicast -e -u cover append_cover_io True | False 62374: Support IO configuration of auto-include of c_cover_io.c

VectorCAST/Cover supports the automatic inclusion of the VectorCAST coverage library file (c_cover_io.c or .cpp) into one or more Cover environment source files using the clicast command:

clicast -e -u cover append_cover_io True In VectorCAST version 6.4u, users have ability to configure the auto-included coverage library using the standard VectorCAST configuration macros. Any configuration macros beginning with "VCAST_" that you define in the "Defined variables" section of the Options dialog, C/C++ tab, are applied to the coverage library during the next instrumentation of the source files in the Cover environment.

For example, to configure the coverage library (c_cover_io.c) for standard output, just add "VCAST_USE_STDOUT" to the "Defined variable" options. In clicast, you would use:

clicast -lc option C_DEFINE_LIST VCAST_USE_STDOUT Then re-instrument the files that have been tagged as "append_cover_io" files, and recompile and re- execute your application.

62636: Crash when choosing Environment menu when option "Instrument for function call coverage" is True

Previously, a crash occurred when opening the Environment menu after a Cover environment was closed, and the option "Instrument for Function Call coverage" was True. This issue has been fixed in VectorCAST version 6.4u.

VectorCAST/Manage:

39195: Improved preservation of CBA data across source code changes

Previously, when C/C++ unit test environments were rebuilt after source code changes, Covered By Analysis data (CBA) was unpredictably discarded, or worse, re-applied on a different line.

In VectorCAST version 6.4u, CBA is preserved across source code changes in a predictable manner. During environment Full build/execute, VectorCAST exports the CBA data to a .cvr script with 2 lines of context before and/or after the line with CBA. If any of these lines have changed in the source code, the CBA is discarded and noted in the Coverage Import/Export Log. Limitations: - the CBA is not retained on Incremental Rebuild for Monitored environments - the CBA is not retained on build/execute for System Test environments - Coverage Import/Export Log is not displayed after environment rebuild. To access this log: - Open the environment from within Manage and choose Coverage => View Import Log - Open the file IMPORT.LOG in the environment directory

41049: Test case changes lost in VC/Manage

Previously, when an environment was updated in one particular context and then another context of the same environment was subsequently opened and then closed, the changes made in the first environment would be lost.

Now in VectorCAST version 6.4u, the user is notified that the environment is now out of date because of the previous change and must be updated, rebuilt, or re-executed before it can be opened.

61233: Create, import environment, and migrate in single invocation

VectorCAST version 6.4u adds additional functionality to the manage CLI "--import" command. The -- import command can be passed the --migrate option from the command line. This will import and migrate an environment to the given group within the given testsuite.

45850: Manage support for continually re-importing Migrated environments

VectorCAST version 6.4u includes improved functionality for working with migrated environments. For users who maintain regression scripts or the original environments over source code changes, VectorCAST makes it easy to continually re-import these updated regression scripts or built environments, thus updating the Manage project with the most current version of the environments.

A new Manage command, "--re-import", allows the user to re-import existing migrated environments from their initial location from which they were originally imported. The command always uses the same mode of import (.env | ENV directory | regression scripts). After re-import, CBT can be used to re-run only the tests needing execution based on the changes detected.

Note: - Monitored environments are skipped - Cover environments are skipped

62151: Manage build.log shows incorrect sequence of commands and output

On Windows, when an incremental build/execute was performed and if the incremental rebuild failed, and a full rebuild followed, Manage was writing to the same build.log for both commands. In VectorCAST version 6.4u, a separate build.log is produced for each command.

VectorCAST/QA:

58404: Lua Example on Windows Build/Execute failure

Previously, the Lua Example located in Examples/SystemTesting/LuaExample had failing test cases when created, built, and executed without making any user changes. In VectorCAST version 6.4u, all test cases pass when executed.

VectorCAST/RGW

62575: RGW Cache file location The Requirements Gateway (RGW) cache file is used to speed up operations that involve multiple updates to the RGW Repository, such as a single test run on an environment with hundreds of test cases. The updates are written to the cache file first, and then once the operation is complete, the cache was committed to another location.

In previous versions of VectorCAST, the cache file was written to the Repository directory. VectorCAST version 6.4u changes the location for the cache file to the environment directory to better support multiple users of the same RGW Repository in future VectorCAST releases.

VectorCAST/RSP:

57500: Elements of volatile array in memory region not supported by harness

Elements of a volatile array in a memory region, such as the Keil huge region, were not supported in the test harness starting with VectorCAST version 6.3h. Setting an expected value for those elements would result in the text "Not Supported: Cannot_Process" appearing in the Execution report. This problem has been resolved in VectorCAST version 6.4u.

62716: Default VCAST_NO_SETJMP value should be true for the Microchip MPLAB C30 compiler

Previously, the default value for the VCAST_NO_SETJMP configuration option was False for the Microchip MPLAB C30 compiler. The False value caused the link error "undefined reference to 'setjmp'" when the source code contained unions. In VectorCAST version 6.4u, the default value is set to True.

62863: Lauterbach TERMGATE integration problems with Hightec tricore-gcc compiler

In VectorCAST version 6.4u, the VectorCAST test harness has been updated to correctly support the combination of TERMGATE and the Tricore compiler, where the fpos_t type does not convert automatically to int/long.

Release Notes - VectorCAST: 6.4t

VectorCAST C,C++, Ada (Core)

59000: Improved Test Compile functionality for Parameter and Testcase User Code

VectorCAST version 6.4t includes improved test compile functionality. In the Parameter User Code and Testcase User code windows, if there a compile error, a new button is displayed. This button opens an editor window containing the temporary preprocessed file that is used to test compile the user code, scrolled to the text in the user code. Using this output may help to debug any user code compile errors.

59421: Support for File Scope Probe Points

VectorCAST/C++ and VectorCAST/Cover version 6.4t now support adding a Probe Point at file scope. To add a File Scope Probe Point, first instrument the unit or environment for coverage. Open the Probe Point Editor for the unit. Above the familiar editor for the function scope Probe Points, you see the new File Scope Probe Point. Here you can enter any code that is valid at the file scope, such as new function definitions or global variables. Only one File Scope Probe Point can be entered per unit.

Click one of the Test Compile buttons to test compile all active Probe Points (File Scope and regular function scope).

When you save and apply the Probe Points for the unit, the File Scope Probe Point is inserted in the instrumented source file just after the last #include line. File Scope Probe Points are written to the regression scripts along with the regular function scope Probe Points.

60127: Crash importing some test scripts specifying attributes

Previously, in certain situations, a test script with test cases that contain TEST.ATTRIBUTE lines for elements within an array or structure could cause a testcase database corruption causing VectorCAST to crash during the test script import. This problem has been resolved in VectorCAST version 6.4t.

61859: Specialized automatic initialization/finalization tests don't execute properly

Previously, using auto-initialization/finalization with a specialized test case caused an error dialog during test execution. "VectorCAST was unable to perform the action: CLICAST - RUN_TEST_CASE - TYPES.COMPOUND_DATA_LIST.ACCESSS_RANGE_ERROR". This error has been fixed in VectorCAST version 6.4t.

61914: Tests ignored due to "Ignore incomplete auto-generated test cases" still counted in reports

Previously, when generating automatic test cases, if the VCAST_IGNORE_INCOMPLETE_TESTS options was on, and partial/template cases were generated, then even though the script import process would properly ignore the appropriate testcases, the Testcase Management Report would still count them as part of the summary status. This problem has been fixed in VectorCAST version 6.4t.

61964: Jobs window shows elapsed time for Monitored processes

Currently, VectorCAST's Jobs window displays the elapsed time for processes called directly by VectorCAST. Previously, VectorCAST could not display the elapsed time for monitored processes. Monitored processes are those that are called by a process that VectorCAST called. An example of a monitored job is when an option is set to call a python or shell script to perform processing.

VectorCAST version 6.4t displays the elapsed time of monitored jobs with a duration greater then one second in the Jobs window.

VectorCAST/Ada:

60812: Unable to instrument unit that instantiates from an instantiation

Previously, when the UUT was an instantiation of a generic defined in another instantiation, VectorCAST was unable to find the body of the UUT, causing errors during Basis Path calculation and coverage instrumentation. This has been resolved in VectorCAST version 6.4t.

60822: 'pragma inline' in subprogram body gives compile error with SBF

Previously, the VectorCAST Ada environment builder would have a compile error when building an SBF environment if a subprogram body in a Unit Under Test contained a pragma INLINE. This problem has been fixed in VectorCAST version 6.4t.

61026: Incorrect handling of INTERFACES.INTEGER_64 type

When building range data for standard Ada packages in a Multi-unit Whitebox environment, integer- based numbers do not get range values (by design). Previously, VectorCAST would use the range of 'integer' for test script data verification, which would cause numbers outside of the 'integer' range to be flagged as an error during test script import. In VectorCAST version 6.4t, these numbers are no longer validated at all, allowing the user to enter whatever values are necessary.

61108: Harness build errors with whitebox of nested packages Previously, when building an environment for a UUT with one or more nested packages, the environment builder could fail to correctly implement the type handling procedures used for types within the nested packages. This has been resolved in VectorCAST version 6.4t.

62005: Typemark appearing after nested package body causes compile errors

When VectorCAST builds type-handling procedures for a nested package in the UUT, it will build the procedure for all visible types. Previously, that would include all types defined in the enclosing package. When a typemark is defined after a nested package body, this processing would cause compilation errors because the typemark was not defined before the procedure. This issue has been resolved in VectorCAST version 6.4t.

VectorCAST/Analytics:

60423: Support for Importing Custom Analytics Dashboards

VectorCAST version 6.4t implements support for saving a Dashboard, modifying it or creating your own, and then importing your custom Dashboard.

With a Dashboard open, choose the "Save" icon in the upper right to export the current Dashboard to a JSON file. By default, it is named local_dashboard.vdash. You can then edit this Dashboard file to suit your needs. It is recommended you run it through a JSON validator.

When ready to import your custom Dashboard, select the "File Open" icon to import the local_dashboard.vdash file. It is then listed in the dropdown selector as "Local Dashboard Settings."

Once you have a Dashboard you like, you can then set it up to be used by everyone connected to the Analytics server by installing it on the machine with the Analytics server. You can install more than one custom Dashboard.

To do this, copy the local_dashboard.vdash file to the Analytics configuration directory and start the Analytics server with the configuration directory:

vcdash --project= --config= If you do not currently use a configuration directory, create one using:

vcdash --create-config=vcdash_config 62395: Instrumenting Cover environment in-place prevents Analytics from displaying files

Previously, the Analytics Dashboard was not correctly displaying files in Cover environments that were instrumented in-place. To view the source file in the Analytics Dashboard, click the small "file icon" next to the filename in the Project Tree.

This problem is fixed in VectorCAST version 6.4t.

VectorCAST/C++:

46821: Parser should accept unnamed parameters for Borland C code

Previously, building a C unit test environment that contained unnamed parameters for Borland C code would generate a parser error. This problem has been fixed in VectorCAST version 6.4t.

57345: Invalid stub code generated when return type uses decltype parameter references

Previously, VectorCAST generated stub code that did not compile when the return type of a stub used a decltype referring to parameters of the function. This problem has been resolved in VectorCAST version 6.4t.

58160: New gcc/g++ templates for newer versions

Default options for gcc/g++ versions 5.2, 5.3, 5.4, 6.0, 6.1, 6.2, and 6.3 are now available in VectorCAST version 6.4t.

The following templates have been added to clicast:

GNU_C_52 GNU_C_53 GNU_C_54 GNU_C_60 GNU_C_61 GNU_C_62 GNU_C_63

GNU_CPP_52 GNU_CPP_53 GNU_CPP_54 GNU_CPP_60 GNU_CPP_61 GNU_CPP_62 GNU_CPP_63

GNU_CPP11_52 GNU_CPP11_53 GNU_CPP11_54 GNU_CPP11_60 GNU_CPP11_61 GNU_CPP11_62 GNU_CPP11_63

GNU_CPP14_52 GNU_CPP14_53 GNU_CPP14_54 GNU_CPP14_60 GNU_CPP14_61 GNU_CPP14_62 GNU_CPP14_63

60498: Probe Points now available for all statements when using Block Statement Coverage

Previously, when "Instrument blocks for statement coverage" was selected, probe points could not be added for statements prior to the last statement of the block. This problem has been resolved in VectorCAST version 6.4t. To get the new behavior, you must reinstrument for code coverage.

61505: Parser using Code Composer flags requires declaration or statement after #pragma DATA_ALIGN

In previous versions of VectorCAST, a parse error could occur if #pragma DATA_ALIGN was used in a Code Composer C source file and the #pragma was not immediately followed by a declaration or statement. This problem is fixed in VectorCAST version 6.4t.

61897: Post-preprocess command result not always used In previous versions of VectorCAST, output from a post-preprocessing command might not be used when VectorCAST verified a UUT is parseable in the environment wizard or in the Test Settings dialog (accessed from the Options dialog, C/C++ tab, Test Settings button). This problem has been fixed in VectorCAST version 6.4t.

VectorCAST/Cover:

40767: Control and Data Coupling Verification

VectorCAST version 6.4t includes a new implementation of Control and Data Coupling for C/C++ source files in Cover environments for licensed customers. The former implementation in Manage has been removed.

This new implementation supports coupling requirements of both DO-178B and DO-178C projects using a combination of static analysis to identify the couples in a code base and run-time verification of the couples during application execution.

The intent of the coupling analysis is to prove that the control and data flow between architectural components in the implementation match what was intended by the design, and to prove that these flows have been tested. DO-178B requires applicants to identify couples in the design, and to verify that those couples, and only those couples, exist in the implementation. DO-178C additionally requires applicants to verify that the couples have been exercised during functional requirement testing. DO-178C requires proof that a data object is set before it is used, and that every call of a Control Couple has been executed and that the next statement executed after the call, is the first statement of the called function. VectorCAST's Component Report, Couples Report, and Coupling Coverage Report provide this proof.

The feature requires that the sources in the Cover environment be instrumented for coverage. If the sources are not instrumented, the Coupling analysis instruments them for coupling-only coverage. The following coverage types allow coupling:

- Statement - Coupling-only (new)

The feature requires that all sources listed in the components.xml file (see below) be present in the Cover environment. Therefore, if the user's base directory contains more sources than are planned to be in the Cover environment, the user should edit the components.xml file to only include the sources in the Cover environment.

The following is a quick summary of the CLICAST coupling commands:

1. Create Cover environment, add sources. This example uses the name "COVER" for the Cover environment. 2. (optional) clicast -e COVER cover inst STATEMENT | COUPLING 3. clicast -e COVER coupling components 4. Edit COVER/coupling/components.xml if needed 5. clicast -e COVER coupling analyze [] 6. clicast -e COVER coupling apply 7. compile COVER/c_cover_io.c (or .cpp) COVER/coupling/couplingData.c -ICOVER -I 8. Execute the instrumented application 9. clicast -e COVER cover result add TESTINSS.DAT 10. clicast -e COVER coupling report coverage More information is provided in the VectorCAST/Cover User's Guide.

60844: 'vcast_unit_list_values' now defined as const in vcast_c_options.h

When using buffered coverage I/O with VectorCAST/Cover, a global variable vcast_unit_list_values is defined in the c_cover_io.c(pp) file. In VectorCAST version 6.4t, this variable is declared const. In addition, when compiling this file, if a macro named VCAST_UNIT_LIST_VALUES_ATTR is defined, it will be used as part of the variable definition. This allows users to specify declaration attributes such as might be used to specify that a variable be placed in ROM.

61022: Instrumenter very slow when TU has many comments

Instrumentation of files with many C style comments is now faster in VectorCAST version 6.4t.

61066: VCAST_APPEND_TO_TESTINSS option is not honored when creating cover environment from CLI

Previously, there was no mechanism to set the "Append to Testinss" option for a Cover environment from the command line. In VectorCAST version 6.4t, the capability is correctly controlled by the CLICAST command:

clicast -lc Option VCAST_APPEND_TO_TESTINSS True | False and of course when set in the Options dialog, Coverage tab, Cover Environment sub-tab.

A change in value for this option takes effect upon reinstrumentation.

61083: Instrumented file does not compile when "cover append_cover_io" command is used with VCAST_COVERAGE_COLLAPSE_ALL true

Instrumented files did not compile when the clicast cover append_cover_io command was used with a true value and the configuration option VCAST_COVERAGE_COLLAPSE all was set to true. This problem has been resolved in VectorCAST version 6.4t.

61946: Instrumentation speed improvements

Coverage instrumentation of some files, especially those using macros, is now faster in VectorCAST version 6.4t.

62024: "Compiler supports long long" option now available on Target tab

In VectorCAST version 6.4t, the configuration option "Compiler supports long long" has been moved from the Builder tab to the Target tab.

VectorCAST/Lint:

62053: Lint only environment requires cover license for regression scripts

Previously, Lint environment regression scripts would sometimes contain 'clicast cover' commands, which would fail if there were no VectorCAST/Cover license available. In VectorCAST version 6.4t, only 'clicast lint' commands appear in the regression script.

62180: Lint options file environment variable expansion broken from CLI

Previously, if the Lint options file used environment variables for paths, the Lint Analysis would only work correctly when called from the VectorCAST GUI. In VectorCAST version 6.4t, environment variables are correctly handled from VectorCAST 'clicast' as well.

VectorCAST/Manage:

33376: Problem in python API reporting of control flow results in Manage

Previously, the Python API provided for an environment in Manage would consider an environment having control flow results but no test case expected results as having no results at all. This problem has been fixed in VectorCAST version 6.4t such that the API considers this situation as having results.

53072: Original Source Report incorrect when using Block Statement Coverage

The original source report incorrectly labelled some covered lines as uncovered when using the "Instrument blocks for statement coverage" option. Some covered lines were also reported as covered for multiple environments when they were only covered in a single one. These problems have been resolved in VectorCAST version 6.4t.

To get the new behavior in an older Manage project, you must delete the build/vcast_data/cover.db file from the project directory before reinstrumenting environments for code coverage.

60566: Testcases failing after rebuild in Manage

Previously, when a build action was performed on an environment that had execution results, the testcases would be reported as failures because they did not execute as part of the build (only) action.

In VectorCAST version 6.4t, the testcase results are removed entirely and reported correctly as NOT EXECUTED.

62208: Manage project wizard crash caused by Refresh action

Starting in VectorCAST version 6.4t, the menu options "Refresh" and "Reporting" are not available for environments in the Manage project update wizard.

VectorCAST/QA:

61054: Compile errors after reinstrumenting Linux QA Demo in versions 6.4o and later

VectorCAST versions 6.4o and later had compile errors upon reinstrumenting the QA demo on Linux. This problem has been resolved in VectorCAST version 6.4t.

VectorCAST/RGW:

58927: Support for cleaning out historical RGW data from database

VectorCAST version 6.4t implements new python scripts to enable the user to manage the size of the Requirements Repository by selectively cleaning out historical Requirements and Test Run data from the database.

rgw_report.py and rgw_clean.py, located in the $VECTORCAST_DIR/python/vector/apps/RGWutility directory, reports on the current historical data in the Requirements database, and clear out all data except the most recent requirements data and test execution data in the database, respectively.

Release Notes - VectorCAST: 6.4s

VectorCAST C,C++, Ada (Core)

183: Unused Expected Values capability for User Code

VectorCAST version 6.4s implements a new Execute option called "Detect unused expected user code."

Enable this option to detect test-specific expected user code that has not been executed during a test. Such code is most likely to be associated with a stub that has not been called. When True and some testcase or parameter user code has not been executed, the test fails, and the Execution Report displays the unused values, the unit, and whether that unit is stubbed or not-stubbed. Disable this option if you have added parameter user code to a stub that you expect to never get called. (You might add code to an uncalled stub if you want the test to show a failure if the stub ever gets called.) clicast -lc|-lada options VCAST_DETECT_UNUSED_EXPECTED_UC TRUE | FALSE The default value is False.

50748: New Execute option to fail test cases with no Expected Values

VectorCAST version 6.4s implements a new Execution option to identify test cases that have no Expected Values. Located on the Options dialog => Execute tab, the option is called "Fail if no expected values."

When set to True, a test is prohibited from executing if it does not contain at least 1 Expected Value, Expected Parameter User Code, or Test Case User Code. It is marked as Failed in the Test Case Tree, and appears as "Abnormal Termination - No expected values" in the Testcase Management Report. clicast -lc | -lada option VCAST_TESTCASE_FAIL_ON_NO_EXPECTED True | False The default value is False.

51686: Informational messages (I) still displayed in Test Script Log with "Only show errors in script logs" set to True

Previously, setting the configuration option VCAST_SCRIPT_LOG_SHOW_ONLY_ERRORS to true left informational messages, the ones prefaced by (I), in the test script log. In VectorCAST version 6.4s, the informational messages are removed from the test script log if VCAST_SCRIPT_LOG_SHOW_ONLY_ERRORS is true.

57031: HTML tag in TXT report when "Generate execution reports in all formats" not checked

Previously, VectorCAST added spurious HTML tags to the Execution report in TEXT format when tests were executed while the format was set to HTML, but then changed to TEXT prior to generating the report. The opposite was also true.

These problems have been fixed in VectorCAST version 6.4s. The generated Execution or Full report notifies the user that the tests should be executed before re-generating the report in the desired format.

Note that setting the option "Generate execution reports in all formats" prior to executing tests eliminates this problem.

57523: Generic Analysis Tool

VectorCAST version 6.4s supports a user-configurable static analysis tool, implemented as a Custom Tool. The concept of this new feature is to allow users to run any program that performs file-based source code analysis and view the results of that analysis within VectorCAST's Generic Analysis Viewer.

To access the new Custom Tool, choose Static Analysis => Edit Analysis Tools, which brings up a dialog similar to the Custom Tools dialog. To configure a new analysis tool, simply configure the command to be used to perform the analysis, and then ensure that the analysis output is an XML file, formatted in the way that the VectorCAST Generic Analysis Viewer expects.

To help you understand how to configure a new Custom Tool, VectorCAST includes a built-in example for use with C/C++ source files. In the Edit Analysis Tools dialog, there is an item called Example Analysis. This item is pre-configured to use VectorCAST/Lint to perform analysis and display the messages using the Generic Analysis Viewer. It uses a python script to invoke VectorCAST/Lint on the source files, and then massages the output into the expected format for the Generic Analysis Viewer. This python file can be used as a template for adding your own analysis tools to VectorCAST.

You can use this example as-is by simply checking the box to add the command to the toolbar or menu. Then you can right-click on a C/C++ source file in the open Unit Test or Cover environment and choose Analyze Source => Example Analysis. In the same way, you can recall the analysis results at any time, using the right-click => View Analysis => Example analysis menu item.

59430: Compound Testcase Editor Improvements

VectorCAST version 6.4s has made improvements in the Compound Test Case Editor. Several areas have been changed to make the tool easier to use. These improvements include: - a way to determine which slots are specialized tests - interlocks to prevent a user from dropping or pasting a Specialized test into a non-specialized compound test and to prevent a user from inadvertently corrupting the test cases - improved drag and drop with multi-selection and - the ability to now search to find text within a slot

60666: "create regression scripts" overwrites .tst symlink with empty file

Previously, if a set of regression scripts were actually Linux "links", certain types of links would not be maintained if the regression scripts were re-created over the old files. This problem has been fixed in VectorCAST version 6.4s.

VectorCAST/Ada:

59839: Invalid coverage lines on Ada statements

The Ada instrumenter in VectorCAST version 6.4s has been improved to instrument "accept", "begin", and "loop" statements in a more consistent manner. If you have source code with any of these constructs, you may see an increase in coverage totals.

60110: Incorrect instrumentation on single line subprogram

Previously, when a conditional statement contained a function call with a parameter as part of a logical comparison, VectorCAST would not always instrument the logical comparison. For example,

return F1 ( A ) * F2 ( F3 ( B ) < 0 );

would not show instrumentation for the "F3(B) < 0". This problem has been fixed in VectorCAST version 6.4s.

60825: Stub Object containing constant pointers in private are causes compilation errors

Previously, when a global object had been declared using a type mark with an 'access constant' qualifier, VectorCAST would incorrectly build the call to the procedure that could modify the object, resulting in compilation/link errors. This has been fixed in VectorCAST version 6.4s.

VectorCAST/C++:

43621:Startup files list not cleared when changing compiler configurations

Previously, when switching from one compiler template to another in the GUI, the list of startup files retained all entries from the first template. In VectorCAST version 6.4s, only user-created entries are retained.

46927: Switching compiler configurations does not always reset certain options

Switching compiler configurations did not reset the following configuration options:

C_DEBUG_HELP_FILE C_EXEC_HELP_FILE PRECOMPILE_CMD PRECOMPILE_EXT VCAST_ALT_WB_METHOD VCAST_ASSIGN_WITHOUT_COPY_CTOR VCAST_AUTO_CLEAR_TEST_USER_CODE VCAST_DUMP_BUFFER VCAST_FILE_PREFIX VCAST_FORCE_ELAB_TYPE_SPEC VCAST_GH_INTEX_CMD VCAST_GH_INT_FILE VCAST_NO_FFLUSH VCAST_PREPROCESS_PREINCLUDE VCAST_REMOVE_PREPROCESSOR_COMMENTS VCAST_USE_STATIC_MEMORY

This problem has been resolved in VectorCAST version 6.4s.

51385: Support GNU type __float128

Previously, VectorCAST did not recognize the GNU types __float128 and __float80. This problem has been resolved in VectorCAST version 6.4s.

57677: Adding configure stubs user code or object initialization user code triggers reinitialization of code coverage

Previously, coverage instrumentation was re-initialized when configure stubs user code or object initialization user code was changed. In VectorCAST version 6.4s, the instrumented harness is still linked, but coverage instrumentation is not re-initialized.

59113: Copy VectorCAST tries to create an array initializer with 2 billion elements

In previous versions of VectorCAST, the C++ environment builder would attempt to stub arrays with uninstantiated template-dependent size, leading to a crash. This problem is fixed in VectorCAST version 6.4s.

59303: Error "excessive recursion at instantiation of function" incorrectly given in some cases

VectorCAST incorrectly gave the error "excessive recursion at instantiation of function" in some cases where there are many instantiations. This problem has been resolved in VectorCAST version 6.4s.

59793: "Choose a subclass" menu doesn't show all eligible subclasses

VectorCAST version 6.4p has a problem where some subclasses were not detected, making them unavailable when setting a pointer of the parent class. This problem has been resolved in VectorCAST version 6.s.

If you have an environment built with 6.4p or later with the problem, you must rebuild the environment to get the fixed behavior.

60282: VCAST_DISABLE_STD_CONTAINER_DETECTION should default to FALSE for all compiler templates

VectorCAST version 6.4s sets the default value for VCAST_DISABLE_STD_CONTAINER_DETECTION to False for all C/C++ compiler templates. As a result, regression scripts no longer need to include the option unless it is set to True in the environment.

60536: Probe point context matching is incomplete Previously, when applying probe points, VectorCAST would not always handle the context provided properly. In some situations the context-after would be ignored, which would result in an incorrect insertion point for the probe point. This problem has been fixed in VectorCAST version 6.4s.

61152: MC/DC test report does not show branch for ? operator with constant 1st operand in constructor call of a decl not using new

The MC/DC test report did not show a branch for the conditional operator when it had a constant first operand and was located in the constructor call of a declaration not using the new operator. This omission did not affect MC/DC test scripts, but it did mean that subsequent conditions received identification numbers that did not match those in the MC/DC coverage report. The problem has been resolved in VectorCAST version 6.4s.

VectorCAST/Cover:

51447: VCAST_CLEAR_COVERAGE_DATA_ID() does not clear vcast_optimized_mcdc_array_* buffers

In previous versions of VectorCAST, using VCAST_CLEAR_COVERAGE_DATA_ID() in the c_cover_io.c did not clear buffers related to optimized MC/DC instrumentation. This problem is fixed in VectorCAST version 6.4s.

58455: Crash when instrumenting re-throw statement with function call coverage enabled

Previously, VectorCAST crashed when instrumenting for Statement coverage with function call coverage enabled if the source code contained a throw statement without an expression. This problem has been resolved in VectorCAST version 6.4s.

60151: Import of cover script from Ada unit test environment fails if unit only has 'separate' subprograms

Previously, if a Coverage script (.cvr) was generated by a VectorCAST/Ada environment and a Unit Under Test in that environment only had 'separate' subprograms, the Coverage script would not import into a Cover environment correctly, causing missing coverage data. This problem has been fixed in VectorCAST version 6.4s.

60904: Invalid instrumentation for ternary expression within union initialization

Branch coverage instrumentation did not compile for some C source files containing a ternary expression in a struct or union initialization when the configuration option VCAST_COVERAGE_FOR_DECLARATIONS was set to true and VCAST_AVOID_COMMA_OPERATOR was set to false. Basis paths analysis and MC/DC tests also omitted the ternary expression. These problems have been resolved in VectorCAST version 6.4s.

VectorCAST/Manage:

48791: Import .env file to Manage project to add Monitored environment

In Manage, the user can right-click a Group node in a Manage project and choose Add Existing Environment. Previously, the only choice in this dialog was a built Unit Test environment (.vce) or Cover environment (.vcp). With VectorCAST version 6.4s, the user can now select a single environment script (*.env). The environments added using "Add Existing Environment" are Monitored.

manage -p --import <.env file> Other ways to use the --import argument: manage -p --import manage -p --import <.vce or .vcp file> manage -p --import <.env file> <.tst file> <.csh or .bat file> Optional arguments can be given as well: [--level=///] [-g ] [--force] VectorCAST/QA:

45800: System Testing with a partially instrumented application (coverage by component)

VectorCAST version 6.4s provides support for component coverage. Component coverage is used when an entire instrumented image is too large to fit on a target. When component coverage is active, the instrumentation of the application is divided and performed for one component at a time, and the full set of tests is run for each component. Using component coverage reduces the amount of memory required to run tests since only a portion of the application is instrumented at any time. Component coverage is disabled by default.

See VectorCAST/Manage User guide for additional details.

61408: Add support for selecting and deselecting all tests in Interactive Execute for System Testing environment

In VectorCAST version 6.4s, when performing an interactive execute, the user can right-click in the Select System Test Cases dialog and choose:

- Select All - Deselect All

Release Notes - VectorCAST: 6.4r

VectorCAST C,C++, Ada (Core)

46909: CSV map "Row containing column headings" not restored

When building a CSV map from the GUI, there is an option to specify the number of rows to skip at the beginning of the CSV file being read (different than the value specifying the header row).

Previously, if this value was greater than the value for the header row, only the rows up to and including the header row would be skipped. This has been fixed in VectorCAST version 6.4r, with the addition of the test script line CSV_SKIPPED_ROWS. 60221: vcastqt.exe will not start on Windows XP

VectorCAST version 6.4o did not start on Windows XP. This problem has been solved in VectorCAST version 6.4r.

VectorCAST/Ada:

59504: Compile error when stub has object in private section of nested package

Previously, when the specification of a stubbed unit contained a nested package, and that nested package contained an object in the private section, VectorCAST would build harness code to try to access the object, even though it is not visible to the harness code. This resulted in a compiler error about the entity not being visible. This problem has been fixed in VectorCAST version 6.4r.

60616: Lowercase tag "--vcast_do_mcdc" causes problem when instrumenting Ada sources for MC/DC

VectorCAST searches for special comment tags when instrumenting source code to control instrumentation inside a file. One of these tags, "--vcast_do_mcdc", tells VectorCAST to perform MC/DC instrumentation on the statement(s) that follow the tag.

Previously, if the tag was created using anything other than all lower case, the instrumenter for Ada sources would only partially implement the processing, causing instrumentation errors. This problem has been fixed in VectorCAST version 6.4r.

60824: 'pragma elaborate_body' with argument causes harness compilation error

Previously, if a UUT specified the "Elaborate_Body" pragma using a parameter (e.g. "pragma Elaborate_Body (UUT);", then VectorCAST would fail to correctly determine the end of the pragma source line and incorrectly generate the harness code for whitebox processing, causing a compilation error. This problem has been resolved in VectorCAST version 6.4r.

VectorCAST/Analytics:

60630: Workflow improvements for Analytics server and history

VectorCAST version 6.4r implements improvements to the workflow when working with historic trends in Analytics. The history keeps track of metrics values over time.

Typically, a new snapshot is saved at the end of every build/test cycle. To save a history snaphot, enter:

vcdash -p --history-dir= --save-history When you have an existing history directory, invoke the Analytics Dashboard to view data trends:

vcdash --history-dir= In VectorCAST version 6.4r, clicking the "reload" button in the Dashboard loads the newest snapshot. In addition, the Dashboard reloads data when: - a new history snapshot is saved - a history snapshot is removed - a history snapshot is edited

To archive the source files used in the Manage project along with the snapshot, enter:

vcdash -p --history-dir= --save-history --source-archive A good practice is to save the source-archive whenever you save a history snapshot.

VectorCAST/C++:

52226: Parse error triggered by inline namespace and noexcept specifiers

Previously, VectorCAST gave a parse error for redeclarations of a function template with a dependent exception specification containing an unqualified call to an unknown function if a candidate for that function was introduced in an unnamed namespace following the initial declaration. For example:

namespace N { template void f(T p) noexcept(noexcept(f(p))); namespace { void f(); } template void f(T p) noexcept(noexcept(f(p))); // Previously triggered a spurious redeclaration error. Now okay. } This problem has been resolved in VectorCAST version 6.4r.

57660: Harness incorrectly reuses class instance pointers across units even when class has static linkage

In previous versions of VectorCAST, the harness would incorrectly reuse a single class pointer for different classes when the classes had static linkage in different units. This problem is fixed in VectorCAST version 6.4r.

59068: Instrumentation error with probe point in declarative region in C

Previously, when the user inserted a Probe Point after a source code line in the C declarative region (such as 'int c = 0;'), VectorCAST would insert the Probe Point in the incorrect location in the instrumented source file. This problem has been fixed in VectorCAST version 6.4r.

59105: Missing break in case produces disputable branch coverage

A new Coverage option, "Consider case fallthrough for branch coverage," has been added in VectorCAST version 6.4r. Setting this option to True causes a case statement reached by fallthrough to be treated as a covered branch.

Previous versions of VectorCAST behaved as if the option were set to True. In VectorCAST version 6.4r and later, the default value of the option is False. Therefore, coverage reports may differ in this release of VectorCAST.

For example, consider the following source code: switch(foo){ case FIRST: i++; case SECOND: j++; } Branch Coverage: If the option is true, as in previous versions of VectorCAST, then when foo is FIRST, both case FIRST and case SECOND are covered branches.

If the option is false, then only case FIRST is a covered branch.

Basis Paths: With the example above, if foo is FIRST, previous versions of VectorCAST would show zero covered basis paths. With the option set to False, basis path coverage now recognizes paths that include the fallthrough, so VectorCAST shows one covered path.

Command Line Syntax: clicast -lc option CASE_FALLTHROUGH_BRANCH_COVERAGE True | False The default value is False.

59465: Parse error "alias template ... may not be used in the type-id of the alias- declaration" incorrectly given in some cases

The point of declaration of an alias template was changed by C++ standard core issue 1044 to be following the type-id in the alias (i.e., at the point of the semicolon in the declaration). That syntax is now accepted by VectorCAST version 6.4r. Previously, VectorCAST failed to parse the source file, giving the error "alias template ... may not be used in the type-id of the alias-declaration." class A {}; namespace N { template class B {}; template using A = B; // previously gave error } 59910: Unit test harness files in C environments should avoid using C++ style comments

Unit test harness files for C environments used some C++ style comments, which caused problems for compilers which did not accept them. For example, the B0000007.c file contained the line

if (vcLen == 0) // EOF Those comments have been converted to C style comments in VectorCAST version 6.4r.

59922: Calls from in-line function defined in header to assembly functions are shown as control couples

A new Coverage option, "Asm functions behave as inlines," has been added in VectorCAST version 6.4r for use with Control and Data Coupling.

When the option is True, VectorCAST tells the compiler to treat asm functions like inline functions so it can skip over them when adding defined functions to the coupling information. The option is True for DIAB and Green Hills compilers and otherwise False.

clicast -lc option ASM_FUNCS_BEHAVE_AS_INLINES TRUE | FALSE The default value is FALSE except for DIAB and Green Hills compilers.

60287: Probe Point-only instrumentation has problems with declarative regions in C

Previously, when using Probe Point-only instrumentation, using source code with declarative statements, such as shown below:

int ccc = 33; { int dd = 44; ccc += dd; } VectorCAST displayed incorrect subprogram and expression numbers in the Coverage Viewer. This problem has been fixed in VectorCAST version 6.4r.

60291: Allow probe point before declarative region in C

VectorCAST version 6.4r now allows the user to insert a Probe Point before a source code line that defines and assigns a variable (such as 'int c = 0;'). VectorCAST/Cover:

60016: Save TU file in cover environment if parse error

Previously, the translation unit for a source file was deleted if a parse error occurred. In VectorCAST version 6.4r, the translation unit is now preserved in the cover environment. The name of the file is .tu..preproc. 60428: Coverage viewer shows some covered lines as blank Previously, VectorCAST was incorrectly using "Coverage Field Width" option, which caused covered branch lines to be displayed as blank in the Coverage Viewer when the Coverage Field Width was set higher than the default value. This issue has been fixed in VectorCAST version 6.4r.

60805: Coverage instrumentation inserted outside function for C file with a designated initializer list where a string literal is first

Previously, Cover environments for C files containing a designated initializer list where a string literal is the first initializer and the configuration option VCAST_COVERAGE_FOR_DECLARATIONS true, did not compile due to some coverage instrumentation being placed outside of the function being instrumented. This problem has been resolved in VectorCAST version 6.4r.

VectorCAST/Manage:

53765: Manage support for CBA and Imported Coverage in Migrated environments

Previously, VectorCAST/Manage did not retain Imported or CBA coverage data when rebuilding migrated environments. In VectorCAST version 6.4r, both Imported Coverage and Coverage by Analysis data are exported to a coverage script (.cvr) and reimported after the environment is done building.

With this improvement to VectorCAST, you will see the following changes:

- In the Diff dialog that appears when closing a Migrated environment in Manage, two new tabs are displayed. One is for CBA results and the other is for Imported coverage results. It is recommended that these coverage scripts (.cvr files) be kept under source code management.

- If a Monitored environment that originally contained CBA or Imported coverage is migrated, the coverage data is now retained upon building, and therefore appears in the Project Tree and the various Coverage reports.

59773: "Cannot open the environment" error in Manage

Previously, when a build error occurred during Incremental Rebuild, Manage was incorrectly showing that the environment could still be opened but then prohibited it from opening.

In VectorCAST version 6.4r, an environment is openable in Manage if it is openable outside of Manage, that is, in VectorCAST/C++ or VectorCAST/Ada.

VectorCAST/RGW:

57467: [MDS Technology] Popup error from integration with PTC integrity

Previously, the PTC Integrity Integration was not correctly importing Requirements containing non-ASCII codepoint UTF-8 (e.g. Hangul, Hanzi, Hiragana, etc.). Such characters were being incorrectly imported as '?'. This problem has been fixed in VectorCAST version 6.4r.

58870: Requirements Gateway in SQLite mode, by default

VectorCAST version 6.4r fully implements the Requirements repository in SQLite mode. This means that when creating a new repository in CLICAST or in the GUI Requirements Gateway dialog, the new SQLite mode is used. See the VectorCAST/C++ or VectorCAST/Ada User's Guides for more information, in sections "Using VectorCAST/Requirements Gateway" and "Appendix H: RGW - Command Line Reference."

If a Legacy repository exists and the user does not migrate to the new SQLite mode, it remains in Legacy mode.

To migrate a Legacy repository to the new SQLite mode, follow these steps: 1. Open any environment that uses the Requirements repository and export any pending testcase pass/fail data back to the 3rd-party Requirements tool.

2. Exit the GUI.

3. Initialize the new repository: "clicast -lc|-lada RGw Initialize" 4. For each environment that uses the repository, the associations between testcases and requirements must also be migrated. To do this, choose one method:

a. Execute all tests (in each environment) b. Run "clicast -e RGw Testcase Migrate_links" (on each environment) c. If the environments are in a Manage project, use: "manage -p [--level=] --clicast-args RGw Testcase Migrate_Links" VectorCAST/RSP:

60512: Global defined '@ address' should not be declared 'extern' in VectorCAST- generated object interface file

Previously, the VectorCAST test harness for IAR code containing variables defined '@ address', declared those variables extern when Object File testing was selected. The added extern keyword caused link errors. This problem has been resolved in VectorCAST version 6.4r.

Release Notes - VectorCAST: 6.4q

VectorCAST C,C++, Ada (Core)

55844: Incorrect status in the Execution Status window after harness crashes

Previously, the Execution Status window would show the status of a test's execution based in part on the harness' execution status and in part on the test's pass/fail status. When the Execution Status window indicated a test passed but the Test Case Tree showed it failed or terminated abnormally, the discrepancy could be confusing. With VectorCAST version 6.4q, the two sources of information have been synced so the status is the same in both places.

57595:Test case derived from MIN/MID/MAX generates error message when range data not calculated

Previously, if a test script had test cases derived from the MIN/MID/MAX test case, and the script was imported into an environment where Range Checking is set to None, the command-line would crash when executing one of those test cases, or the GUI would display a non-helpful error message.

Starting with VectorCAST version 6.4q, test script import now identifies this situation as a failure condition, thus preventing a command-line crash or GUI error message on execution.

VectorCAST/C++ and VectorCAST/Cover:

52911: Allow "sprintf" for probes

Previous versions of VectorCAST provides Probe Point users with a replacement function for printf named "vcast_probe_print." This function, when included in a Probe Point that was reached during test execution, would print out the string argument to the stdout (for Unit Test environments) or to the TESTINSS.DAT file (for Cover environments).

However, this function did not provide users with a way to output the values of integer variables, unsigned int variables, or floating point variables.

VectorCAST version 6.4q provides functions enabling users to print variables of all of these data types to stdout (or TESTINSS.DAT): - string: use vcast_probe_print - int: use vcast_probe_print_int - unsigned int: use vcast_probe_unsigned - float: use vcast_probe_float To get the new Probe Point functions: - VectorCAST/Cover users must create a new Cover environment - VectorCAST/C++ users must rebuild existing unit test environments or create a new one.

VectorCAST/Ada:

58224: Improve parameter tree indications of objects that cannot be set/inspected

In certain situations, the VectorCAST parameter tree would allow the user to set Input or Expected Values for certain parameters or objects that the harness could not actually modify/inspect (for example, a pointer to an unconstrained array), causing the following error message to appear when generating the Execution Report:

*Not Supported: Cannot_Process* In VectorCAST version 6.4q, these parameters now show their type as 'user' in the Parameter Tree, and the tooltip for the typemark indicates the reason that User Code is required to set/inspect the parameter.

59165: Some subtypes of enumerated type gets incorrect range for certain targets

Because of the limitations of certain targets, in some cases the VectorCAST harness uses "case" statements and "for" loops to set/print enumerated types. Previously, in these situations, if an enumerated subtype did not start with the first enumeral in the base type, then the enumerals displayed in the Parameter Tree and Execution Report were incorrect. This problem has been fixed in VectorCAST version 6.4q.

VectorCAST/C++:

42498: Constructor call not imported from test script when constructor name contains '[' character

Attempting to import test scripts where a constructor name in a constructor call contained the '[' character resulted in VectorCAST giving the "Value Line Error - Command Ignored" error message. The data on the line was lost during test script import. This problem has been resolved in VectorCAST version 6.4q.

56867: Probe Apply seems to instrument all files

In previous versions of VectorCAST, adding, removing, or modifying probe points would trigger the instrumentation of all files when applying. Only the ones modified need to be reinstrumented. This problem has been fixed in VectorCAST version 6.4q.

57159: New option "Parse function templates"

A new C/C++ option, "Parse function templates", is available in VectorCAST version 6.4q to control parsing of function templates. VectorCAST parses templates in a generic way in order to instrument templates for code coverage. This generic processing is more likely to trigger parse problems because the information provided by specific instantiations is not available, and because compilers sometimes allow errors if a template is not instantiated. The new option, located in the Options dialog, C/C++ tab, Language sub-tab, controls whether VectorCAST parses function templates in this generic way, which is useful when a template parse problem is encountered and the source code cannot be changed. Disabling the option can allow the parsing to succeed in such cases, but will prevent code coverage instrumentation of function templates.

clicast -lc option VCAST_PARSE_FUNCTION_TEMPLATES TRUE | FALSE The default value is True.

57477: ASCII output buffer coverage option does not compile in 64m and later versions for unit test

Environments built with VectorCAST versions 6.4m or later did not compile if the configuration option VCAST_USE_BUFFERED_ASCII_DATA was set to TRUE and coverage was initialized. This problem has been resolved in VectorCAST version 6.4q.

58182: Include unit prefix/appendix user code in macro detection

VectorCAST detects macros so that they can be used when specifying input or expected values in the test case parameter tree without using user code. In previous versions of VectorCAST, this detection did not include macros that came from unit prefix or unit appendix user code, or files #included from those. This problem is fixed in VectorCAST version 6.4q.

58781: VCAST_DUMP_COVERAGE_AT_EXIT should be ignored in unit test environments

VCAST_REGISTER_DUMP_AT_EXIT() calls to each instrumented function in a Unit Test environment when Buffered coverage was used and the configuration option VCAST_DUMP_COVERAGE_AT_EXIT was set to true. Those function calls were not necessary for unit test environments.

In VectorCAST version 6.4q, the VCAST_DUMP_COVERAGE_AT_EXIT configuration option has no effect on Unit Test environments. The configuration option is still used for cover environments.

59370: Parse error using template template parameter as template template argument

VectorCAST incorrectly gave a parse error when some source code contained a variadic "template template" parameter of one template that was passed as a template template argument to another template. For example,

template class> struct A; template