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
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 <
Previously, when using the "Use compound test for batch execution" option, <
In VectorCAST version 6.4.5 and VectorCAST version 2018 SP2, <
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 <
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 <
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
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 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
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
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
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:
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=
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 =>
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 <
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
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
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
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
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
* 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 <
In VectorCAST version 6.4z, a new special value, <
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
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 LINK_FILE_TEMPLATE
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
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
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
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:
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
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
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:
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
clicast -e
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
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
- Tools => Coupling => Analyze This performs coupling analysis and is the equivalent to the clicast command: clicast -lc -e
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
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:
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
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
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
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
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
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
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=
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
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
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
vcdash --history-dir=
To archive the source files used in the Manage project along with the snapshot, enter:
vcdash -p
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
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
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
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
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
VectorCAST/Cover:
44527: Improve c_cover_io.c to simplify use of custom output
VectorCAST version 6.4q recognizes two new macros to aid in customizing coverage data output in c_cover_io.c. The new macros are only recognized when the macros VCAST_USE_STDOUT and VCAST_CUSTOM_STD_OUTPUT are also defined.
Define VCAST_CUSTOM_STD_OUTPUT_INCLUDE as a path to a separate file that will be #included into the VCAST_WRITE_TO_INST_FILE_COVERAGE function with c_cover_io.c. The separate file would need to contain the code that implements writing coverage data. Define VCAST_CUSTOM_STD_OUTPUT_EXTERNAL to specify the name of a function defined elsewhere to implement writing coverage data. The function must match the prototype:
void VCAST_CUSTOM_STD_OUTPUT_EXTERNAL(const char* S, int flush); 47602: help text for VCAST_INSTRUMENT_ASSIGNMENTS should not mention conditional operator
Starting with VectorCAST version 6.0a, the configuration option VCAST_INSTRUMENT_ASSIGNMENTS did not affect instrumentation of the ? operator. However, the help text for VCAST_INSTRUMENT_ASSIGNMENTS was not updated. Beginning with VectorCAST version 6.4q, the help text for VCAST_INSTRUMENT_ASSIGNMENTS is now correct.
56660: c_cover_io functions lack prototypes
Function prototypes have been added to the c_cover_io files in VectorCAST version 6.4q. This change allows successful compilation of the instrumented source files with the IAR compile option '-- require_prototypes' or with the GNU compile options '-Wmissing-declarations -Werror'. 59075: Regression script referenced Probe Point file in Cover Environment directory, but shouldn't
In previous versions of VectorCAST, the generation of a regression script for a Cover environment failed to create a proper probe point file, and so the probe points were not preserved. This problem has been fixed in VectorCAST version 6.4q.
VectorCAST/Manage:
36930: Manage executes testcases in a monitored Environment even if it failed to rebuild
In previous versions of VectorCAST, when a build-execute was initiated on a monitored environment, the environment's test cases would be executed even if the environment rebuild failed. This issue has been resolved in VectorCAST version 6.4q.
58259: Crash with VC/Manage when creating project from existing environments
In previous versions of VectorCAST, it was possible for VectorCAST/Manage to crash while factoring the configuration of an environment which has an invalid compiler tag. This issue has been resolved in VectorCAST version 6.4q.
VectorCAST/QA:
58982: 104% in klocwork plugin
In previous versions, some static analysis metrics (percent clean functions, number of clean functions) used erroneous function counts, causing percentages to be greater than 100%. These metrics have now been fixed in VectorCAST version 6.4q.
VectorCAST/RSP:
56946: DDCI for Ada RSP
VectorCAST version 6.4q implements support for the DDC-I Score DEOS run-time, both for simulated and live-board targets. Use of this Ada RSP requires the licensed feature "VectorCAST/Ada SCORE DEOS" to be available.
To use the new RSP, set the option "Target Variant" to "SCORE DEOS" in the Options dialog, Target tab. clicast -lada -x SCORE_DEOS environment build
58786: IAR parse error and harness compile error for array size using sizeof a field in the same structure
VectorCAST incorrectly gave a parse error for IAR source code containing an array size using a sizeof expression for a field in the same structure. For example,
typedef union { struct { int i ; } foo; char array [sizeof(foo)] ; } sample_union; gave an error that foo was undefined. This problem has been resolved in VectorCAST version 6.4q.
58995: Enumerated typemark in one UUT causes compile error when used in another UUT for certain targets
With certain Ada targets, the VectorCAST harness needs to build a "case" statement with all of the enumerals in an enumerated type. If a UUT references an enumerated type in another UUT, this list could have been built incorrectly, causing harness compilation errors. This problem has been resolved in VectorCAST version 6.4q.
59022: Option to control dynamic allocation for pointers on certain targets
Previously, for certain Ada targets, the environment builder made assumptions as to whether dynamic memory allocation (such as when using the 'new' operator) was allowed, based solely on the selected target variant option. This determination meant that if the user configured a particular target kernel to change how the dynamic memory allocation worked, there was no way to modify the VectorCAST harness behavior.
In VectorCAST version 6.4q, there is a new target option named "No dynamic memory allocation", which enables the user to inform VectorCAST that complete processing for access types is or is not supported, thus overriding the default behavior for that target.
clicast -lada option NO_DYNAMIC_ALLOCATION True | False The default value is set by the specified target.
Release Notes - VectorCAST: 6.4p
VectorCAST C, C++, Ada (Core)
37078: 'clicast tools regression_test' scripts should preserve symlinks
Previously, on Linux and Solaris, if the tester had regression scripts that were symbolic links and then regenerated the regression scripts from VectorCAST, the symbolic links would be broken and the originally linked files would not be updated. This has been fixed in VectorCAST version 6.4p.
51938: Test Compile for Probe Points available
With VectorCAST version 6.4p, a Test Compile feature for Probe Points is available in the Probe Point Editor for VectorCAST/C++ unit test environments and Cover environments.
Clicking the Test Compile button located in the right-hand panel of the Probe Points Editor performs a Test Compile of all active Probe Points in the unit. Deactivated Probe Points are not compiled.
The Test Compile action preprocesses the unit, inserts the Probe Points into the preprocessed file, and compiles the file. Error output from this action is displayed at the bottom of the Probe Point Editor. Clicking the button with the file icon opens the preprocessed file, enabling the user to diagnose the compile error.
55860: Test scripts created with incorrect file permissions on linux/solaris
Previously, when creating test scripts on Linux/Solaris systems, the file permissions for the script would be set to only allow the user Read/Write access (600), instead of whatever the operating system would generate as a default. This has been fixed in VectorCAST version 6.4p.
56199: Save all user-specified options to CFG file when VCAST_LEGACY_CFG_FILE_INHERITANCE is set
Recently, VectorCAST changed the behavior of Configuration files (*.CFG) to only read the local *.CFG file, not those found in the installation directory or the user's home directory. For users needing the old behavior, setting the environment variable VCAST_LEGACY_CFG_FILE_INHERITANCE reads the .CFG files from all three locations. The problem with this solution was that the environment variable would always need to be set whenever a regression script was executed.
Starting with VectorCAST version 6.4p, if the environment variable VCAST_LEGACY_CFG_FILE_INHERITANCE is set, any options inherited from the installation directory or user's home directory are saved to the local *.CFG file, creating a complete set of options from all sources in one place (the local *.CFG file). Once this is done for each environment, the environment variable no longer needs to be set when running the regression script.
58484: Crash when executing test cases while still saving Control Flow
Previously, executing test cases while the process of saving Control Flow or changing an <
In VectorCAST version 6.4p, a modal progress dialog has been added to the following processes: save control flow, clear control flow, automatic initialization and automatic finalization, to prohibit test execution while the status of the test cases is still processing.
VectorCAST/Ada:
57262: Environments from GPR files not always building correctly in Windows top- level directory
Previously, when an Ada environment was built using a .GPR file, and the .GPR file resided at the top- level of a Windows drive other than 'C', the environment could fail to build due to the inability of VectorCAST to correctly find 'separate' modules of the Unit Under Test. This has been fixed in VectorCAST version 6.4p.
57714: Consecutive labels in Ada source code causes instrumentation error
Previously, source code with consecutive Ada labels and optional comments caused VectorCAST instrumentation to fail.
<<
57994: Environment build error when Ada function has a precondition
Previously, when a function had a pre-condition (or other aspect), VectorCAST would not always parse the return type correctly, resulting in a compilation error. This problem has been fixed in VectorCAST version 6.4p.
58104: Support Unconstrained Arrays in generics
Previously, VectorCAST was not able to build Ada environments for Ada generic units containing unconstrained arrays. This problem has been fixed in VectorCAST version 6.4p.
58429: Add support for 'limited' types in Ada stub parameters
Previously, if a stub parameter (or return object) was of a 'limited' type, the user could set an Input or Expected Value in the Parameter Tree, but the value would not be set (or the comparison would fail) because the harness could not copy objects of 'limited' type (due to language restrictions).
Starting with VectorCAST version 6.4p, objects of 'limited' types are now manipulated in VectorCAST using a "memory copy" technique, allowing Input and Expected Values to behave correctly.
58580: Harness build error with source code having non-null access procedure as parameter declaration
Previously, when building an Ada environment containing parameter declarations that access a procedure or function, VectorCAST generated code that did not compile properly, causing a compile error to appear while compiling the test harness.
For example, a source file with the following parameter declarations did not build successfully:
procedure UUT_PROCEDURE ( UUT_PARAM1 : in integer; UUT_PROC_PTR : access procedure ( UUT_PARAM2 : in out integer )); In VectorCAST version 6.4p, the environment builds successfully, but these kinds of parameter declarations are not supported. It is recommended that you modify your code to use an access type as follows:
type ACCESS_PROCEDURE is access procedure ( UUT_PARAM2 : in out integer );
procedure UUT_PROCEDURE ( UUT_PARAM1 : in integer; UUT_PROC_PTR : ACCESS_PROCEDURE ); Using this source code, VectorCAST is able to successfully build an environment and the access type is supported.
58898: Enumerated subtypes in UUT can generate invalid Ada code for some targets
For certain targets, when a UUT is a child package, objects or parameters in the UUT that were defined using a subtype of an enumerated type could cause the harness to be built incorrectly, which resulted in compilation errors. This problem has been resolved in VectorCAST version 6.4p.
VectorCAST/C++:
55842: GUI not updated after parameter user code reset Previously, the "Reset" action in the Parameter Properties dialog was not properly resetting parameter user code for 'struct' and 'record' data types. The right-click "Clear" menu action was also not clearing the same parameter. This issue has been fixed in VectorCAST version 6.4p.
57235: Parse Error with Visual Studio 2015 C++ when instantiating standard containers
Previously, some Visual Studio 2015 code instantiating standard containers caused VectorCAST to give the error:
function... (declared implicitly) cannot be referenced -- it is a deleted function. This problem has been resolved in VectorCAST version 6.4p.
58039: Test harness does not compile when function-level try/catch statements are in stub-by-function units
Previously, the test harness did not compile when function-level try/catch statements were in stub-by- function units. The stub-by-function modification was inserted in the middle of the "try" keyword. This problem has been resolved in VectorCAST version 6.4p.
58117: Not able to change "<
After removing <
58197: Test script error when running script after rebuild
Previously, during environment rebuild, VectorCAST's python data API may have become corrupted until the environment was rebuilt a second time, causing an error message that starts with:
'NoneType' object has no attribute 'id' This problem has been fixed in VectorCAST version 6.4p.
58356: Allow "Suppressed Stubs" to suppress SBF instrumentation
VectorCAST version 6.4p now allows the "Suppress Stubs" functionality in the Create New Environment Wizard to suppress stub-by-function instrumentation in the test harness. Stub-by-function instrumentation is seen under the <
In the environment script (.env), use the following command to suppress Stub-by-Function instrumentation for a particular testable function in an SBF unit under test:
ENVIRO.STUB_BY_FUNCTION:
Source code containing a #define to an expression with a right brace not preceded by a left brace yet followed by a left brace not followed by another right brace caused subsequent #define statements to be missing from the symbolic constants window.
This problem has been resolved in VectorCAST version 6.4p. If you have the problem with an environment, you must rebuild the environment to get the new behavior.
VectorCAST/Cover: 51331: Disable code and data definitions for non-optimized MC/DC instrumentation if all statements use optimized
MC/DC instrumentation uses different implementation techniques depending on the VectorCAST configuration and the nature of the code being instrumented. In VectorCAST version 6.4p, the functions and data variables used for non-optimized MC/DC instrumentation in c_cover_io.c are disabled when not needed.
57279: Multiple variable declarations in single source statement incorrectly treated as multiple coverable statements
Previously, VectorCAST treated multiple variable declarations with initializations in a single source statement as multiple coverable statements. For example,
int a=0, b=0; was considered to be two coverable statements. In VectorCAST version 6.4p that will be treated as a single statement.
58382: Empty preprocessor output causes vc/cover to crash
Previously, VectorCAST crashed when instrumenting a source file if the preprocessor output was empty. This problem has been resolved in VectorCAST version 6.4p.
VectorCAST/Manage:
48144: Improved feature for adding an environment to a Manage project
Previously, the --import command required that the group be explicitly added to the testsuite on the next command line. In VectorCAST version 6.4p, this is no longer necessary. Therefore, the following command imports the environment
manage -p
If one or more nodes does not exist, a new --force option can be given, which creates any of the nodes as necessary before importing.
manage -p
VectorCAST version 6.4p provides a new window that displays the Build and Execute progress of environments in a Manage project. The Manage Status window is similar to the Execution Status window in Unit Test environments.
57199: Removing one environment in Manage can result in all Envs being removed
Previously, the Group node in a Manage project would remain selected after creating a new environment in that group. If the user's next step was to delete an environment in that group, all environments were deleted because the Group node was selected. This workflow has been improved in VectorCAST version 6.4p by leaving only the environment selected after a new environment is created from the Project Tree.
57292: Replace SCM with File Hooks Scripting
VectorCAST version 6.4p includes a new option for Manage projects. File hook processing provides an open python interface to interact with the VectorCAST project and migrated environment files that would normally be involved in source code management (SCM). This feature allows the user to perform actions, such as modifying file permissions, line endings, or other processing, before and after VectorCAST modifies them.
The following files for migrated environments are audited by the File Hooks Script: - project.vcm file - project.db file - *.mfg files - *.cfg files - *.env files - *.tst files, including specialized test case scripts
To enable the functionality, choose Project => Options, and turn on the option "Enable File Hooks scripting." or enter the following command
manage -p
To edit the python script, choose Project => Edit File Hooks Script. When saved, the python file is reloaded. In the case of a compile error, VectorCAST alerts the user of the failure in the Message Window and if the python file is still open in the editor, scrolls to the approximate location of the error.
57350: Incremental rebuild should become full rebuild when env script has changed in Manage environment directory
Previously, when performing an incremental build/execute, VectorCAST/Manage did not consider any environment script (.env) file changes as the basis for rebuilding migrated environments. In VectorCAST version 6.4p, changes to the environment script (.env) file cause an environment to be fully rebuilt.
57454: Lock is not being removed when Aborting execution of a monitored environment
In previous versions of VectorCAST, aborting the execution of a monitored environment resulted in the environment being left in a locked state. This issue has been resolved in VectorCAST version 6.4p.
57819: Clean does not work when invoked from group level
In the GUI, when the Clean menu item was selected from a Group node, the action was not performed. Also, the Migrate to Workspace menu item was not available from a Group node.
In VectorCAST version 6.4p, Clean and Migrate to Workspace can be performed from a Group node successfully.
VectorCAST/RSP:
56970: Blackfin 706 types not supported by parser __builtin_quad _Fract _Accum _Sat
In previous versions of VectorCAST, errors would occur when parsing VisualDSP code which used the built-in type __builtin_quad or fixed-point types _Fract and _Accum. This problem is fixed in VectorCAST version 6.4p. 57166: Support Borland feature allowing 'using namespace ...' declaration in class scope
Previously, VectorCAST gave an error when reading Borland source code containing "using namespace ..." declarations inside class definitions. This problem has been resolved in VectorCAST version 6.4p.
Release Notes - VectorCAST: 6.4o
VectorCAST C, C++, Ada (Core)
51837: MC/DC pairs column in Environment View vanishes after rebuild
Previously, following the rebuild of an environment with initialized MC/DC coverage, the MC/DC pairs column in the Test Case Tree remained hidden. This has been fixed in VectorCAST version 6.4o.
52110: Highlight the filterable table widget selections in the test tree in VC/C++ VC/Ada
VectorCAST version 6.4o adds a new highlighting functionality to the Test Case Tree.
Items in the Test Case Tree are highlighted with a custom yellow background when a corresponding item is selected in either the Test Data Summary table, the Coverage Summary table or the Job Monitor - Execution Status window. Note: If both the Execution Status window and the Test Data Summary are open, the selection in the Test Data Summary table has precedence.
57287: Coverage Viewer is unusable when source has many lines and MC/DC Tables are expanded
Previously, VectorCAST took a long time to display original source lines in the Coverage Viewer with over 40k lines; expanding all subprograms also took a long time when MC/DC coverage was initialized.
These problems have been corrected in VectorCAST version 6.4o. VectorCAST no longer automatically expands all MC/DC tables when expanding all subprograms in the Coverage Viewer and Coverage-By- Analysis Editor; displaying original source lines no longer decreases performance of the Coverage Viewer.
57355: When opening a new editor, scroll to the line selected in the previous editor
Starting in VectorCAST version 6.4o, when opening a new editor, it will automatically scroll to the same line in an open Coverage Viewer, Probe Point Editor, CBA Editor, or Source Code editor if the unit is the same.
To turn off the automatic scrolling behavior for any editor, right-click in the editor and select "Map Selection to Original Source View" to uncheck it.
VectorCAST/Ada:
57432: SBF units that are child packages can have compile errors with parent unit types
Previously, when building a Multi-unit Whitebox Ada environment for an SBF unit, if the SBF unit was a child unit that referenced a variant record in a parent unit, VectorCAST could build the harness files incorrectly, resulting in a compilation error. This problem has been resolved in VectorCAST version 6.4o.
57575: Support for GNAT 17
With the release of GNAT 17, some of the underlying interfaces of the compiler tools have changed, preventing VectorCAST from building environments from GPR files. This problem has been resolved in VectorCAST version 6.4o.
57649: Uppercase Boolean values changed to lowercase upon reopening testcase
Previously, the Boolean parameters TRUE and FALSE were displayed in lowercase after reopening a test case. This issue has been fixed in VectorCAST version 6.4o.
57787:Support Ada Generic Variant Record
Previously, VectorCAST was not able to build Ada environments for Ada generic units containing variant records. This problem has been fixed in VectorCAST version 6.4o.
58068: Ada environment builder blocks type handling for pragma pure
Previously, when creating a blackbox environment for a 'pure' unit, parameters could be set/inspected in the parameter tree, but the values would not appear in the execution results. This has been fixed in VectorCAST version 6.4o.
VectorCAST/Analytics:
54416: Analytics Quick Launch Button
VectorCAST version 6.4o introduces a new Start Analytics button on the main toolbar that allows VectorCAST/C++, VectorCAST/Ada and VectorCAST/QA users to easily launch a VectorCAST/Analytics dashboard for unit test or coverage environments. The VectorCAST/Analytics dashboard provides a web- based dashboard view of software code quality and testing completeness metrics, making it easy to understand the current state of quality and testing completeness for a software project. This critical actionable intelligence allows all stakeholders to make decisions about release readiness and process improvement.
To open the Analytics Dashboard, click the Start Analytics button located on the toolbar when an environment is open. Once the Start Analytics button is selected, the Analytics Monitor opens in the MDI window. The Automation Controller within VectorCAST automatically pulls the information from the open environment, adds it to a Manage project in a workarea, and launches the Analytics dashboard in the default browser using localhost:8128.
The Automation Controller Output pane, displayed at the top of the Analytics Monitor, shows the output of the Automation Controller scripts and the lower pane shows the Analytics Server Output. To stop the Analytics server, click the Stop Server button at the bottom of the Analytics Monitor window.
You can find more information about the Analytics Dashboard and the Analytics Toolbar button in the VectorCAST Quick Start Guide in the chapter entitled "Publish Project Metrics".
VectorCAST/C++:
42650: New optional "Constant branch conditions" section for reports
In VectorCAST version 6.4o, a new option, "Display constant branch conditions in reports", has been added. When enabled, this option adds a new section to the Metrics report that identifies the unit, subprogram, and line number of any branch or MC/DC expressions that have constant values, such as "if (1)".
clicast -lc option VCAST_DISPLAY_CONST_BRANCH_CONDITIONS TRUE | FALSE The default value is FALSE.
56574: Setting attribute for member of container class causes incorrect script generation When using VectorCAST's Test Case Editor to enter data for standard container class objects (maps, pairs), if the user sets an attribute for the parameter (such as numeric base or display flag), the test script generated for that test may contain invalid lines, causing test script import to fail. This problem has been resolved in VectorCAST version 6.4o.
57198: Coverage Viewer shows incomplete coverage when block coverage enabled
Previously, VectorCAST would display incomplete coverage in the Coverage Viewer when the option "Instrument blocks for statement coverage" was True.
VectorCAST version 6.4o fixes this problem. Unit test and Cover environments built with previous versions of VectorCAST will need to be re-instrumented in order to show the correct coverage in the Coverage Viewer.
57280: Crash during basis path analysis for function which uses anonymous union
In previous versions of VectorCAST, basis path analysis could crash VectorCAST if a function's return statement used an unnamed union. This problem is fixed in VectorCAST version 6.4o.
57484: Support '= 0' initialization for arrays in microchip
Microchip MPLAB compilers allow arrays to be initialized simply with '= 0'. In previous versions of VectorCAST, the parser would raise an error on such initializations. This problem is fixed in VectorCAST version 6.4o.
VectorCAST/Cover:
49297: Remove unused variable vcast_max_covered_subprograms_exceeded from c_cover_io.c
VectorCAST version 6.4o removes an unused variable 'vcast_max_covered_subprograms_exceeded' from c_cover_io.c.
57013: Clicover crash during instrumentation when original source directory is missing
Previously, when using CLIcover to perform instrumentation on a Cover project, if the original source directory is no longer available, VectorCAST would crash. This has been resolved in VectorCAST version 6.4o.
57642: Could not delete Cover env because a file VCAST_GUI_SIZES.plist remained in the env dir
Previously, a Cover environment could not be fully deleted because a file was left in the environment directory. This has been fixed in VectorCAST version 6.4o.
58030: Infrequent crash instrumenting for Probe Point in Cover env
When instrumenting a unit in a Cover environment for Probe Point coverage, VectorCAST version 6.4n could sometimes crash the GUI. This problem has been fixed in VectorCAST version 6.4o.
VectorCAST/Manage:
53373: Not all compiler settings overwritten when duplicating a compiler node and setting to a new compiler
Previously the compiler options for a configuration would not be cleared when setting a new compiler template. This issue has been resolved in VectorCAST version 6.4o. 56719: Manage workflow drag and drop for monitored environment
VectorCAST version 6.4o has improved drag-and-drop functionality for moving monitored environments within manage. Monitored environments can only exist in one context so they are moved from one location to another. Migrated environments will create a new clone in the new location. If a selected node contains both monitored and migrated environments, all the environments in that node are moved to the new location.
57123: Allow user to retry renaming environment working directory when creating new environment
Previously, when creating a new environment in Manage, and the temporary location for creating it could not be renamed due to a process still running in that temporary directory, a vague error message prompt (such as "Error renaming file 1366962433 to 340505613") was displayed and the Create New Environment transaction was cancelled.
VectorCAST/QA:
55618: Need a formal way to handle backward compatiblity when we add new stuff to system_test.py
The QA examples, LuaExample and ManagerExample, have been updated in VectorCAST version 6.4o. The examples are created by running the createExample script that corresponds to the operating system (Linux or Windows).
Linux: To create the Lua example, run the createLuaExample.sh script located in Examples\SystemTesting\LuaExample\Linux. To create the Manager example, run the createManagerExample.sh script located in Examples\SystemTesting\ManagerExample\Linux. Windows: To create the Lua example, run the createLuaExample.bat located in Examples\SystemTesting\LuaExample\Windows. To create the Manager example, run the createManagerExample.bat located in Examples\SystemTesting\ManagerExample\Windows. VectorCAST/RSP:
57552: Parser for Diab fails to disambiguate scope qualifier that matches enum typedef
In previous versions, VectorCAST's parser in Diab mode would fail to disambiguate an identifier used as a scope qualifier when the identifier was also used as an enum typedef name. This problem is fixed in VectorCAST version 6.4o.
57794: Subtypes of enumerals not handled correctly in some Ada target harnesses
On certain Ada targets, 'image and 'value are not supported, so processing to set/print enumerated types use "if" and "case" statements with the fully qualified enumeral name. In previous versions of VectorCAST, for a package that used a subtype of an enumerated type in a second package, and the parent type of the enumerated type was in a third package, the test harness code would be generated with the incorrect location of the enumeral. This has been fixed in VectorCAST version 6.4o.
Release Notes - VectorCAST: 6.4n VectorCAST C, C++, Ada (Core)
53197: New column in Coverage Summary table shows the number of tests that hit that subprogram
VectorCAST version 6.4n introduces a new column in the Code Coverage Summary table for Unit Test and Cover environments. For Unit Test environments, the "Test Cases Count" column displays the number of unique test cases that have hit a particular subprogram during execution. Compound tests are counted as one test regardless of the number of slots in the compound.
Note: When I/O type is set to "Animation" (e.g. when using "Basis Path" coverage), the test count indicates the number of times a function is entered. This total can also include multiple slot iterations of a compound test.
For Cover environments, the "Results Count" column displays the total number of coverage results that touch each subprogram.
In VectorCAST/Manage, a new "Environments Count" column has been added to the Code Coverage Summary table. The column displays the number of environments contributing coverage to a subprogram.
56904: Searching for string in Coverage Viewer crashes VectorCAST when it has over 8k lines
Previously, VectorCAST crashed while searching for a string in the Coverage Viewer with a source file having over eight thousand lines.
This problem has been corrected in VectorCAST version 6.4n. VectorCAST no longer searches for text in the MC/DC tables unless the table has already been expanded in the Coverage Viewer.
VectorCAST/Ada:
56997: VectorCAST does not handle limited type return object; leads to harness compile error
Previously, VectorCAST generated invalid code for limited records, resulting in a compile error during environment build. For example, use of a limited record type like this:
type File_Name is limited record Internal_Name : Integer := 0; end record; produced a compile error such as:
"uut_interface_adacast.adb:133:49: prefix of dereference must be an access type" VectorCAST version 6.4n allows limited record types to be declared. Because limited types cannot be copied, no processing is performed by VectorCAST. Instead, this message appears in generated test harness code:
-- Cannot Invoke - Limited Record 57605: Support Ada Generic Constant Pointer
Previously, VectorCAST was not able to build Ada environments for Ada generic units containing constant pointers. This problem has been fixed in VectorCAST version 6.4n.
VectorCAST/C++:
45670: x86-64 va_list fields not recognized by VectorCAST Previously, VectorCAST gave the parse error "expression must have pointer-to-struct-or-union type" when the x86-64 va_list field reg_save_area appeared in source code. In VectorCAST version 6.4n, x86-64 code is now recognized when --x86_64 is added to the parser flags. To edit the parser flags, go to the Tools => Options dialog, C/C++ tab, Language sub-tab.
49120: VectorCAST now recognizes more GNU built-in functions
In VectorCAST version 6.4n, the default preprocess preinclude file for GNU 4.9 has been updated to include more definitions for GNU built-in functions.
50205: VectorCAST unable to parse GNU 5.0 x86intrin.h standard header
Previously, VectorCAST gave the error "expression must have arithmetic or pointer type" when attempting to parse the GNU 5.0 standard header file x86intrin.h. This problem has been resolved in VectorCAST version 6.4n.
51104: C11 keyword _Atomic now recognized
Previously, VectorCAST gave errors upon encountering the C11 keyword _Atomic. This problem has now been resolved in VectorCAST version 6.4n.
52486: VectorCAST preprocessor fails on single preprocessor token
In previous versions of VectorCAST, if a source file contained a line consisting only of "#" and the "Use VectorCAST Preprocessor" option was enabled, VectorCAST could crash. This problem is fixed in VectorCAST version 6.4n.
57298: Test Script Translator does not update array types
Previously, VectorCAST's Test Script Maintenance Utility was not properly updating test cases when array types were modified. This error has been fixed in VectorCAST version 6.4n.
VectorCAST/Cover:
55354: Instrumented files appending cover I/O now touched when vcast_c_options.h changes
Previously, it was difficult to tell when units appending cover I/O needed to be recompiled due to changes in the cover options file vcast_c_options.h. In VectorCAST version 6.4n, instrumented files that append cover I/O are touched when vcast_c_options.h is changed.
55582: Incorrect handling of cover results with a "." in the name
Previously, VectorCAST/Cover did not properly handle dot characters (".") in result names, which could lead to duplicate results, especially when used with VectorCAST/Manage system tests. This has been corrected in VectorCAST version 6.4n.
VectorCAST/Manage:
34418: Specialized Test Cases
To test source code that contains conditional directives (for example, #if or #ifdef), the VectorCAST environment is directed to compile the source file with different configurations in order for the line group within the directives to get put into the VectorCAST environment's translation unit. As you know, a single environment for a source file can be created in VectorCAST/Manage and tested using the different configurations required to compile in the different line groups.
Because the translation unit will vary based on the compiler's configuration, the test cases may need to be customized, or specialized, to a single configuration. Beginning in VectorCAST version 6.4n, it is now possible to specify that a test case be run under a specific configuration by assigning the status "Specialized test case."
To assign specialized status to a test case in a Migrated environment in a Manage project, open the environment from within Manage, then right-click on the test case in the Test Case Tree and select "Specialized" from the context menu. This test case is then visible only in the environment in that particular configuration.
Once a test case is changed to "Specialized" and the environment is closed, the Diff dialog appears, showing that the Specialized test has been removed from the "common" test script and put into a new test script file. If you normally commit the .tst files to your Source Code Management, you should commit this new Specialized test script as well.
55901: Improvements to Change Impact Report
VectorCAST version 6.4n provides access to both the estimated Change Impact Report for unit test and Cover environments and the Build/Execute Dry Run report for Cover environments in the same dialog. To generate the report, select a node in the Project Tree that contains the environments you want to report on. Choose Project => Change Impact Report... menu item.
Choose the type of report from the two analysis radio buttons: -- Estimate impact based on source file changes (faster)
This method can be used for Unit Test environments, Cover, and System Test environments. Also supports displaying the impact from changes in an alternative root source directory on tests in the Project.
All tests that touch a file are considered affected by any change to that source file. This may differ from the actual action taken by incremental build/execute.
The title of report is "Change Impact Report (File-based Estimate)." When generated in the GUI, the report is saved automatically in the
manage -p
This method can be used only for System Test environments that have a system test implementation defined in the system_tests.py file. Only those tests that touch a changed function are considered affected. This method is slower due to preprocessing, but produces output matching the actual actions taken by incremental build/execute.
The title of report is "Change Impact Report." When generated in the GUI, the report is saved automatically in the
manage -p
Previously, when a Manage project was created using the File => New => Manage => Empty Project menu item, the new project was not added to the File => Recent Environments menu. The problem has been corrected in VectorCAST version 6.4n.
VectorCAST/QA: 55824: Display message when build/executing and no cbt license is available
Licensing affects the behavior of the build/execute commands in VectorCAST/QA. In previous versions of VectorCAST, there was no indication of the type of build/execute performed. This has been fixed in VectorCAST version 6.n. The type of build/execute will now be written out to the message window.
VectorCAST/RSP:
42627: Parser fails to recognise __bigendian and __littleendian keywords for GHS ARM Integrity and PPC
Previously, VectorCAST incorrectly gave errors for Green Hills ARM and PPC source code containing the keywords __bigendian, __bytereversed, and __littleendian. This problem has been resolved in VectorCAST version 6.4n.
42697: Parser failing on unrecognized Code Composer ARM built-in functions
VectorCAST now recognizes the following Code Composer ARM built-in functions: _call_swi, _disable_FIQ, _disable_interrupts,_disable_IRQ, _enable_FIQ, _enable_interrupts, _enable_IRQ, _get_CPSR, _restore_interrupts, _set_CPSR, _set_CPSR_flg, _set_interrupt_priority, __curpc, and __run_address_check. If you have existing environments and want to use this functionality, go to the Tools => Options dialog, C/C++ tab, Misc sub-tab and set the "Preprocess preinclude file" to $(VECTORCAST_DIR)\DATA\code_composer\arm\preinclude.h.
Also, go to the Language tab and add --code_composer_version=arm to the Parser flags. These values are set by default in VectorCAST version 6.4n when the Code Composer ARM compiler is selected.
44135: Parser needs to accept _VA_LIST as argument to va_start/va_end when using --stdarg_builtin in IAR Arm v7 mode
When the --stdarg_builtin parser flag was used with IAR ARM version 7, VectorCAST incorrectly reported an error on source code where a va_list type was passed as a parameter to va_start or va_end. This problem has been resolved in VectorCAST version 6.4n.
44178: Tasking C166 VX __packed__ keyword should be supported
Previously, VectorCAST gave errors when reading Tasking C166 VX code containing the __packed__ keyword. This problem has been resolved in VectorCAST version 6.4n.
44874: The --stdarg_builtin parser option results in incorrect stubs for va_list types when using the IAR ARM compiler
For IAR ARM version 7 and newer, use of the --stdarg_builtin parser flag caused VectorCAST to print stubs for va_list types as __builtin_va_list. Those stubs did not compile. This problem has been resolved in VectorCAST version 6.4n.
45254: Better handling of Tasking Tricore keywords __at, __far, and __interrupt
The Tasking Tricode __at keyword with a value having more than one set of parentheses is now accepted in VectorCAST version 6.4n. Assignments of regular pointers to pointers to __far values are now accepted. The __interrupt keyword is now recognized. 45899: ARM intrinsic __promise should be recognized by VectorCAST, also __qadd, __qsub etc
VectorCAST version 6.4n now recognizes ARM intrinsics: __breakpoint __ldrt __schedule_barrier __cdp __memory_changed __semihost __clrex __nop __sev __clz __pld __sqrt __current_pc __pldw __sqrtf __current_sp __pli __ssat __disable_fiq __promise __strex __disable_irq __qadd __strexd __enable_fiq __qdbl __strt __enable_irq __qsub __swp __fabs __rbit __usat __fabsf __rev __wfe __force_stores __return_address __wfi __ldrex __ror __yield __ldrexd and the ARM builtin GNU functions. If you have existing ARM environments and need to use those intrinsics, go to the Tools => Options dialog, C/C++ tab, Misc sub-tab, and set the "Preprocess preinclude file" to $(VECTORCAST_DIR)\DATA\arm\preinclude.h. 50817: Parser should accept Code Composer built-in GNU functions
VectorCAST gave an error when parsing Code Composer source code containing GNU builtin functions such as __builtin_fabs. This problem has been resolved in VectorCAST version 6.4n. 54255: New Ada Target options for added flexibility
Previously, Ada target limitations that were built into the test harness (such as support for exceptions or delay statements) were triggered solely by the selected target. To support scenarios where 'pragma restrictions' are used, VectorCAST version 6.4n has two new Target options to control these harness build conditions. Located in the Options dialog, Target tab, the new options are:
- "Target does not support exception handlers" When this option is set to True, the Ada test harness is built without exception-handling capabilities.
clicast -lada options VCAST_NO_EXCEPTION_HANDLERS TRUE | FALSE The default value is False.
- "Target does not allow 'delay' statement" When this option is set to True, the Ada test harness is built with no 'delay' statements, which are typically used to make test execution for units with 'tasks' run more smoothly.
clicast -lada options NO_DELAY_STATEMENTS TRUE | FALSE The default value is False.
56978: Exception raised in range checking code for certain Ada targets
On many targets, the 'image functionality is not supported, so the VectorCAST's test harness does its own numeric-to-string conversion. On some of these targets, numeric values greater than integer'last would cause constraint errors in this processing. This issue has been resolved in VectorCAST version 6.4n.
VectorCAST/Analytics:
56958: Add CBA support to Analytics
In VectorCAST version 6.4n, the Analytics dashboard now includes Coverage-by-Analysis (CBA) coverage data as well as coverage data from test execution.
VectorCAST/Probe:
46640: Probe only instrumentation mode for VectorCAST/Cover
VectorCAST version 6.4n introduces a new feature to product VectorCAST/Probe. In Cover environments, licensed users can apply Probe Point only instrumentation, which provides a way to insert probe points with no coverage selected.
More information is available in the VectorCAST/Cover User's Guide.
56437: Probe insertion using line number VectorCAST version 6.4n introduces a new feature to product VectorCAST/Probe. In Cover environments, licensed users can define probe points in a probe point script file using a line number identifier instead of a matching line.
More information is available in the VectorCAST/Cover User's Guide.
Release Notes - VectorCAST: 6.4m
VectorCAST C, C++, Ada (Core)
23295: Support for VectorCAST/Lint GUI, and stand-alone project building
VectorCAST version 6.4m includes a new feature, VectorCAST/Lint. This provides a familiar environment and GUI for performing analysis and viewing static analysis results from within VectorCAST.
The following new clicast commands are available for creating and working with a VectorCAST/Lint Environment:
Lint ENvironment Create
Starting in VectorCAST version 6.4m, the Coverage view, Probe Point and CBA editors now display original source lines. The displays can be automatically synchronized by scrolling to the same position selected in the corresponding source editor. To change this behavior, use the right-click menu item "Map Selection to Original Source View".
56269: Saving control flow loses the test case selection in the tree
Previously, when Control Flow was saved after test execution in a Unit Test environment, the selection in the Test Case Tree was inadvertently removed. This problem has been fixed in VectorCAST version 6.4m.
56270: Enable Shift+F3 to search backwards in a text editor
After searching for text in the Text Editor, pressing the F3 key finds the next occurrence of the search term. In VectorCAST version 6.4m, pressing Shift+F3 finds the previous occurrence of the search term.
After searching for text in the Coverage Viewer, pressing the F3 key finds the next line that contains the search term. Pressing Shift+F3 finds the previous line that contains the search term.
56281: "Open Source" should not scroll horizontally to the right Previously, when in the Text Editor using Open Source from the Test Case Tree or otherwise searching for a very long line of text, VectorCAST scrolled horizontally to show the end of that line, making it difficult to see the beginning of the line. This has been fixed in VectorCAST version 6.4m.
56283: Coverage Viewer Shift-JIS display error
Previously, the Coverage Viewer was not able to display Japanese characters correctly, even in Shift-JIS mode. This problem has been fixed in VectorCAST version 6.4m.
56930: Add scrollbar to Test Case Delete confirm dialog
Previously, when the user deleted a test case that was a component of many compound test cases, the confirmation dialog that appeared was not easy to use because it was so large and had no scrollbar. This problem has been fixed in VectorCAST version 6.4m.
VectorCAST/Ada:
47260: VectorCAST/Ada does not recognize Ada WIDE_WIDE_STRING type
VectorCAST version 6.4m now supports the Ada 2005 types Standard.Wide_Wide_Character and Standard.Wide_Wide_String.
The default value of the Builder option "Ada Language Specification" for GNAT compilers has been changed to ADA_05. When the option is set to ADA_05, the environment builder conditionally adds support for the new types.
If you use GNAT and your project conforms to Ada 95, it is recommended you set the Ada Language Specification to ADA_95 to avoid compiler warnings during environment build.
clicast -lada option VCAST_ADA_LANGUAGE_SPECIFICATION ADA_83 | ADA_95 | ADA_05 | ADA_12. The default value is ADA_05 for GNAT compilers. For all other compilers the default has not changed.
55071: Document possible unconstrained array index issues during environment build
When VectorCAST builds the harness, it creates objects for parameters of unconstrained array types. These objects can grow large if the array index encompasses a large range, which can generate harness failures. In VectorCAST version 6.4m, a new report "Unconstrained Array Log" is available from the Environment View menu, which contains information about the objects created and how to resolve issues related to them.
55333: Harness compile error when UUT ancestor source not found
Previously, when the source file for a parent of the Unit Under Test could not be found, VectorCAST would incorrectly build the harness code for a Multiunit Whitebox environment, resulting in a compile error. This has been fixed in VectorCAST version 6.4m.
55956: Using the same type name in multiple ancestors can cause harness compilation errors
Previously, when a package had multiple ancestors, and that package contained an object/parameter that used a type name that was used in more than one ancestor, VectorCAST would treat the parameter as if it were the type defined in the ancestor closest to the base, instead of the type closest to the actual usage, causing compilation errors. This has been resolved in VectorCAST version 6.4m.
56262: CBT for Ada does not handle nested packages and 'separate' subunits
Previously, when performing an Incremental Rebuild on an Ada environment, changes to a subprogram in a 'separate', or changes to a testable subprogram in a nested package, would not be detected, erroneously determining that no tests needed to be rerun. This issue has been resolved in VectorCAST version 6.4m.
56581: Incorrect harness code when record in generic package has constrained array fields
When creating a record whose fields use an unconstrained array type, Ada requires those fields to constrain the array (e.g. "FIELD : ARRAY_T(1..10);"). In VectorCAST, if one of these record types appears in a generic package, then use of the instantiated version of the record type can cause the harness to be generated incorrectly, resulting in compile errors. This has been resolved in VectorCAST version 6.4m.
VectorCAST/C++:
13011: New configuration option VCAST_STRIP_SYS_HEADER_PATH
When generating harness source files from preprocessor output, VectorCAST sometimes collapses header files by replacing the header content in the preprocessor output with a #include directive specifying the header path:
#include "/usr/include/c++/4.6/string" Some compilers treat this type of #include differently than:
#include "string" If a system header is collapsed but the compiler fails to treat it as a system header because of the full path being used, a new CLICAST-only option is available in VectorCAST version 6.4m: VCAST_STRIP_SYS_HEADER_PATH
clicast -lc option VCAST_STRIP_SYS_HEADER_PATH
In previous versions of VectorCAST, undefined dependencies that were detected but not able to be stubbed were listed in a report called the Undefined Entities Log.
In VectorCAST version 6.4m, this report is named the Unstubbed Entities Log. This report provides a reason why each listed entity was not stubbed. The wording for some of these reasons has been updated to be more helpful.
In the GUI, access this report via Environment => View => Unstubbed Entities Log.
In clicast, access this report via: clicast -lc -e
In previous versions of VectorCAST, the test case names are limited to 80 characters in length for C and C++. With VectorCAST version 6.4m, there is no limit for the length of test case names for C and C++. For ADA, the test case names are still limited to 80 characters in length.
56136: Template-based function with scoped template parameter mishandled in test case tree In previous versions of VectorCAST, testable template-based functions where a template parameter requires scope qualification would be mishandled in the Test Case Tree, causing problems creating and importing test cases. This problem is fixed in VectorCAST version 6.4m.
56393: Failure to import test script for overloaded template-based functions
In previous versions of VectorCAST, test cases for overloaded template-based functions might fail to import from a test script. This problem is fixed in VectorCAST version 6.4m.
56429: Incremental rebuild incorrectly claims new dependency added
In previous versions of VectorCAST, incremental rebuilds could fail because VectorCAST incorrectly considered implicitly-defined virtual destructors to be new dependencies, as well as certain static class members. This problem is fixed in VectorCAST version 6.4m.
56667: Crash while copying large text from Test Settings dialog
Previously, the Test Settings dialog (on the Options dialog, C/C++ Preprocessor/Compiler tab) did not honor the option that limits the number of characters loaded into the Text Editor. As a result, preprocessing very large source files in the Test Settings dialog could cause VectorCAST to crash.
This problem has been resolved in VectorCAST version 6.4m. The Test Settings dialog's stdout and stderr tabs honor the GUI option "Maximum number of characters."
56718: Parser crash when template dependent expression used as a nontype template argument
In previous versions of VectorCAST, the parser could crash when a template dependent expression was used as a non-type template argument. This problem is fixed in VectorCAST version 6.4m.
VectorCAST/Cover:
54347: Allow the user to choose output option for coverage data
A new Coverage configuration option, "Execution results go to stdout (C/C++ only)" has been added in VectorCAST version 6.4m. It is located in the Options dialog, Coverage tab, Options sub-tab, Misc sub- sub-tab.
When the option is set to true, the content that would otherwise go to the TESTINSS.DAT file is sent to Standard Output after executing the instrumented application. This output can then be redirected to a results filename, such as MY_RESULT.DAT. The option takes effect after instrumentation and is available for Cover environments with C/C++ source files only.
clicast -lc option VCAST_USE_STDOUT TRUE | FALSE The default value is False.
55186: Per-unit cover environment option to insert c_cover_io.c into instrumented file
Previously, VectorCAST would #include the c_cover_io.c/cpp file after instrumenting it, but this sometimes resulted in compile errors if the original file #included any of the system headers used in c_cover_io.c.
VectorCAST version 6.4m allows the user to instruct VectorCAST to append the c_cover_io.c/cpp file to one instrumented source file per Cover environment, rather than having VectorCAST #include it.
The new command instructs VectorCAST to append the c_cover_io.c/cpp file to a specific unit. This feature is available for use on C/C++ source files in a Cover environment only, and takes effect after instrumentation.
clicast -e
VectorCAST/Manage:
41631: Crash occurs after deleting GROUP while ENV is open and replacing it
In VectorCAST version 6.4m, when a user attempts to modify a Manage project in any way (such as adding an environment or migrating to workspace) while an environment is open, the user is prompted to close the environment before proceeding with the request.
55917: Crash when opening environment that uses symlinks
Previously, VectorCAST could crash when performing actions on an environment opened from within Manage, if the environment was imported under certain conditions on a Linux filesystem using symlinks.
This problem has been fixed in VectorCAST version 6.4m.
56322: Incremental rebuild fails due to purported global scope change
Previously, VectorCAST would consider changes made at the very end of a function to be global in scope and require a full rebuild. In VectorCAST version 6.4m, such changes are now correctly considered to be made inside the function and thus may allow the environment to be rebuilt incrementally.
56903: New project module python API example
VectorCAST version 6.4m introduces a new example python script, $VECTORCAST_DIR/python/examples/print_results.py that illustrates how the project module can be used to print the execution status of the test cases contained within the project.
VectorCAST/Analytics:
55249: VectorCAST/Analytics Crash
Previously, VectorCAST would crash while starting the Analytics server when the Windows mounted network drive name contained a unicode character. This problem has been fixed in VectorCAST version 6.4m.
Release Notes - VectorCAST: 6.4L
VectorCAST C, C++, Ada (Core)
49751: Ability to toggle between different coverage modes in the Coverage Viewer
VectorCAST version 6.4L introduces a new feature in the Coverage Viewer. Each unit's tab in the Coverage Viewer displays a new icon with a menu. The menu choices provide users with the ability to view coverage data for:
- All results, disregarding the state of their checkboxes - Checked Results (default) - the Current Result
When the user places a checkmark or removes a checkmark from a result, the mode is immediately switched to Checked Results. When in Current Result mode, the coverage data is displayed for the test result that has the current selection in the Test Case Tree or Test Results pane, whether it is checkmarked or not. Note that MC/DC Pairs data is not displayed in Current Result mode.
52778: VectorCAST/C 6.4f Crash with certain values and attributes in TST file
Previously, a memory leak could crash VectorCAST when loading a large test script or test. This has been fixed in VectorCAST version 6.4L.
52889: Improve messages and reporting for large MC/DC expressions
Due to the complexity of MC/DC instrumentation and analysis, large conditional expressions can cause memory issues during instrumentation. To alleviate these issues, VectorCAST has two options to control behavior ("Maximum subconditions for MC/DC table pre-calculations" and "Maximum subconditions for MC/DC table row display").
Starting with VectorCAST version 6.4L, the Equivalence Matrix reports will contain more detailed information when these options impact the instrumentation / report.
54847: Memory leak leads to failure importing large test script
In previous versions of VectorCAST, memory leaks would occur during test script import, potentially leading to memory exhaustion and a tool crash. This problem is fixed in VectorCAST version 6.4L.
55875: Background color in CBA Editor does not allow light-colored text to be seen
Some users desire the Coverage Viewers to display a dark background for covered lines, uncovered lines, uncoverable lines, and Covered-By-Analysis (CBA) lines, and different light colors for the text. Previously, when the user set up the colors in this way, the light-green background color of the CBA Editor prevented the CBA text from being visible in the CBA Editor.
In VectorCAST version 6.4L, the background color of the CBA Editor is now white, enabling users to set the text color and background color of rows to any desired color. Changing the settings on the Options dialog, Coverage tab, Coverage Viewer tab, affects the Coverage Viewer, CBA Editor, and Probe Point Editor, as these are all related to the Coverage Viewer. To make the Coverage Viewers fully customizable, the background colors of selected text, found text, and the expanded MC/DC Table can also be changed.
The colors are all set back to their defaults when the button "Default Fonts" is clicked in the tab. Note that the three new color selections are also reset by choosing View => Default Layout.
56268: Enable shift tab in the test case editor
Previously, when entering values in the Parameter Tree, the Tab key moved the focus to the next field, but there was no way to go to the previous field using the keyboard. In VectorCAST version 6.4L, pressing Shift+Tab moves the focus to the previous field.
VectorCAST/Ada:
42052: Do not release host license when performing rebuild on Ada target environment
Previously, when performing an Environment Rebuild on an Ada target environment, VectorCAST would release both the Ada license and the RSP license during the process. In some situations, this could result in no Ada license being available when trying to open the new environment.
Starting with VectorCAST version 6.4L, the host license is not released when the environment is rebuilt. The target license is still released and re-acquired during the process.
51439: Add support for default exception for Ada 2012 contract failure VectorCAST version 6.4L now allows users to specify Ada 2012 as the Ada Language Specification. This option is accessed in the Tools => Options dialog, Builder tab. clicast -lada option VCAST_ADA_LANGUAGE_SPECIFICATION ADA_85 | ADA_95 | ADA_05 | ADA_12
The default value is: ADA_95 When set to ADA_12, VectorCAST conditionally generates support code for pre- and post-condition exceptions. In the Parameter Tree, VectorCAST adds the "SYSTEM.ASSERTIONS.ASSERT_FAILURE" selection to the "Expected values" menu for <
Previously, Ada conditions with boolean operands were not properly instrumented for MC/DC, resulting in a compilation error. The condition had the following form:
(A or B) = C; With VectorCAST version 6.4L, these types of conditions are now properly instrumented.
55072: Pointer as in/out parameter in stub can get incorrect values
Previously, when a UUT called a stub multiple times, and that stub had an "in out" pointer parameter where the test supplied multiple values, the stub would use the wrong values as output for the parameter, causing incorrect test behavior. This has been fixed in VectorCAST version 6.4L
55146: Environment build failure when instantiation as UUT contains generic subprogram
Previously, when a UUT was an instantiation of a generic package, and that generic package contained a generic subprogram defined in the package spec, VectorCAST would incorrectly build harness code to call the generic subprogram, resulting in compilation errors. This has been resolved in VectorCAST version 6.4L.
55189: VectorCAST does fully process standalone subprogram with both spec and body
When a standalone subprogram is used as the UUT or as a non-stubbed dependent, and the subprogram is defined with both a spec and body, VectorCAST previously did not parse the body, which could impact the environment building if the body included additional dependencies. This has been fixed in VectorCAST version 6.4L.
55543: 'pure' stub references VCAST_STD which is not included
Previously, when a unit with 'pragma pure' was stubbed, if that unit had a function whose return object used a type defined in a different unit, then the stub was built referencing a VectorCAST harness package that was not "with"ed by the stub, causing a compile error. This has been resolved in VectorCAST version 6.4L.
55606: Coverage for a Qualified Expression
Previously, qualified subexpressions were not properly instrumented for MC/DC coverage. An example of a qualified subexpression is:
B := BOOL'((NOT F) OR ELSE (F AND THEN F)); These problems are fixed in VectorCAST version 6.4L.
55793: Range data not always available for a private child with 'pragma ELABORATE_BODY'
When a private child uses 'pragma ELABORATE_BODY', VectorCAST's test harness cannot support both stubbing of that unit AND multiunit whitebox processing on that unit. Therefore, previously, VectorCAST would prevent multiunit whitebox processing on that unit regardless of whether it was stubbed or not, preventing range data from being gathered.
In VectorCAST version 6.4L, if the private child that uses 'pragma ELABORATE_BODY' is not stubbed, then multiunit whitebox support is enabled, allowing range data to be generated.
VectorCAST/C++:
51945: Parser should accept non-terminated initializer in Borland C++ mode
The Borland C++ compiler allows char arrays to be initialized to a character string that only fits if no null- terminator is used. In previous versions of VectorCAST, such initializations would trigger a parse error in VectorCAST if using Borland C++. This problem is fixed in VectorCAST version 6.4L.
53507: Parser miscalculates size of packed union
GNU compilers allow use of __attribute__((__packed__)) to signify that members of a struct or union need not be aligned, which can reduce the space required for a single instance of the struct or union. In previous versions of VectorCAST, such packed unions could cause a parse error if the sizeof operator was applied to the union type at compile time, such as for an array dimension. This problem is fixed in VectorCAST version 6.4L.
54587: Do not treat numeric value for C/C++ enum as error during test script import
VectorCAST supports using numeric values for enum types in test cases. The test case editor allows numeric values for enum variables even if the numeric value does not match any enum literal for that type.
However, in previous versions of VectorCAST such out-of-range numeric values would be logged as errors during test script import. This could lead to premature termination of regression script processing. VectorCAST version 6.4L no longer treats out-of-range numeric values for enums as an error during test script import.
55070: Environment builder crash when GNU C __inline__ functions also have a subsequent declaration without __inline__
Starting with VectorCAST version 6.4i, VectorCAST crashed when attempting to build environments for GNU C code containing extern __inline__ functions with subsequent declarations without __inline__. This problem has been resolved in VectorCAST version 6.4L.
55226: Parser should not require a statement following #pragma switch
In previous versions of VectorCAST, the Tasking compiler's '#pragma switch ...' directive would fail to parse in VectorCAST if it was not followed by any statement or declaration. The problem is fixed in VectorCAST version 6.4L.
55270: CBA coverage lost during Environment Rebuild when unit under test changes
In previous versions of VectorCAST, unit test environments would lose their CBA results for any unit that had any source change. In VectorCAST version 6.4L, CBA results are now preserved except for functions whose changes produce different instrumentation and coverage.
55451: EDG preprocessor incorrectly handles asm comment
Some preprocessors allow use of # characters within a macro definition's replacement token list (separate from the standard use as the stringification operator.) This can facilitate use of macros that expand to assembly code which uses # as a comment-start character.
In previous versions of VectorCAST, such non-stringification uses of # would be missing from preprocessor output if the option "Use new generation preprocessor" was enabled. This problem is fixed in VectorCAST version 6.4L.
55552: Harness compile error when different members of template-based class are testable in different units
In previous versions of VectorCAST, if a template-based class had non-static member functions testable across multiple units, the class instance declaration would be missing from some units, leading to a compile error. This problem is fixed in VectorCAST version 6.4L.
55763: Basis path tests should set parameter values for while (0) when VCAST_BASIS_PATHS_FOR_CONSTANT_BRANCHES is false
Basis path tests for functions containing while(0) omitted the intialization of parameter values in some cases when the configuration option VCAST_BASIS_PATHS_FOR_CONSTANT_BRANCHES was set to false. This problem has been resolved in VectorCAST version 6.4L.
55810: Parser should support Codewarrior HC12 mode with --16_bit_target
In previous versions of VectorCAST, the parser calculated struct sizes incorrectly when using Code Warrior HC12 and the --16_bit_target parser flag. This problem is fixed in VectorCAST version 6.4L.
55854: Basis path tests sometimes set unsigned types to negative values
In some cases, basis path tests attempted to set variables with unsigned types to negative values. This problem has been resolved in VectorCAST version 6.4L.
56010: Parser fails to handle __asm block in ARM C mode
In previous versions of VectorCAST, the parser would issue an error when parsing ARM C code that used __asm blocks. This problem is fixed in VectorCAST version 6.4L.
VectorCAST/Cover:
42115: Re-Run of a System Test Causes Notes and Requirements to be lost
In previous versions of VectorCAST/Cover, when a result file was removed from a Cover project, its notes and requirements would be removed along with it. If the result was re-added, the user would have to reenter the notes and requirements sections. This issue has been fixed in VectorCAST version 6.4L.
VectorCAST/Manage:
53857: Rebuilding migrated environments in Manage lost CBA and Imported results
Previously, CBA and Imported results would be lost after rebuilding a migrated environment in Manage. VectorCAST version 6.4L now retains those results.
Note that migrating a monitored environment that has CBA or Imported results still results in the loss of those results. 55504: Line numbers are not displayed properly in Editor
Previously, when viewing a large source code file in the Text Editor within Manage, some of the line numbers would be displayed as overlapped with other numbers, making them unreadable. This problem has been fixed in VectorCAST version 6.4L.
55800: Aggregate level results don't get refreshed when environment is removed from group level
Previously, when an environment was removed from the group or project, the coverage results in the project tree were not refreshed correctly. This problem has been fixed in VectorCAST version 6.4L.
VectorCAST/QA:
55838: New Test Summary Report lists system tests and their status
In VectorCAST version 6.4L, a Test Case Summary Report has been added to the System Testing context menu.
manage -p
45589: Additional parser entries for selected NEC and Renesas CS+
In VectorCAST version 6.4L, registers for Renesas CubeSuite+ v850 chips uPD70F3371_L3 and uPD70F3379 are now handled by VectorCAST.
To enable recognition of the registers, set the configuration option C_EDG_FLAGS to -w --c --nec -- registers_in_preinclude. Also set the VCAST_PREPROCESS_PREINCLUDE configuration option: For uPD70F3371_L3, it should be $(VECTORCAST_DIR)\DATA\renesas \v850\3371_L3\registers.h. For uPD70F3379, it should be $(VECTORCAST_DIR)\DATA\renesas\v850 \3379\registers.h. 55074: Harness failures input values for a parameter create a long string
For certain targets, when an input parameter is a list of values that contains more than 256 characters total, the harness will crash trying to process the input line. This has been resolved in VectorCAST version 6.4L.
VectorCAST/Analytics:
44839: Support aggregation of multiple Manage projects in Analytics dashboard
VectorCAST version 6.4L supports an aggregate display of data from multiple VectorCAST/Manage projects. All source files from the projects are displayed in the Dashboard, and data is merged, except coverage data.
vcdash --project
Release Notes - VectorCAST: 6.4k
VectorCAST C, C++, Ada (Core)
52937: Coverage scroll bar missing
VectorCAST version 6.4k adds the horizontal scroll bar to the Coverage Viewer that is missing in previous versions of VectorCAST.
53879: Unused Expected Results even when results are correct in execution report
In certain environments, when a parameter has more than 10 sub-elements and the expected results reference many of the elements, VectorCAST can internally treat multiple elements as if they were the same element. This causes missing expected results to not be validated, even when they appear in the execution report. This has been fixed in VectorCAST version 6.4k.
54343: Crash using MCDC coverage viewer when "Simplified Condition Coverage" enabled
Previously, enabling simplified condition coverage and then using the coverage viewer to view MC/DC coverage results could cause VectorCAST to crash. When simplified condition coverage is enabled, the arrow to expand MC/DC pairs in the coverage viewer is disabled. This is fixed in VectorCAST version 6.4k
54721: Test Script Maintenance Utility Improvements
In VectorCAST version 6.4k, improvements have been made to the test script translation processing which improve the performance for environments that contain many large structure, class, or record types.
New status messages and a revolving cursor symbol have been added to the terminal window while the translation algorithm is running, giving users an indication of progress.
55216: Indicate which coverage type is instrumented in the Coverage => Initialize menu
VectorCAST version 6.4k indicates the current coverage type of the environment by a checkmark in the Coverage => Initialize menu. The feature is not available in Cover environments.
55584: CBA generates invalid lines for statements when coverage type is statement+mcdc
VectorCAST was incorrectly saving cba results when Statment+MC/DC coverage was initialized. The issue was caused by an uncoverable line immediately following the subcondition. This problem has been fixed in VectorCAST version 6.4k.
VectorCAST/Ada:
51442: Ada 2012: Code coverage for "quantified expressions"
Support for Ada 2012 quantified expressions has been added providing MC/DC coverage. An example of a quantified expression is:
Expression_Value := (for all I in Test_Array'Range => Succession_Check (I, True, True)); As part of this change, processing of semicolons within nested programming constructs has been improved. As a result, some instrumentation failures involving nesting have been fixed. These problems are fixed in VectorCAST version 6.4k.
53642: Branch coverage instrumentation uses inaccessible operator implicitly
Previously, variables of a type derived from boolean were improperly instrumented for MCDC and did not compile.
Example: type T_BIT is new boolean; if ONE and TWO then In VectorCAST version 6.4k, the condition is now properly instrumented.
However, overloaded functions are not supported unless you use the option: VCAST_DISABLE_BOOLEAN_CAST Example: FUNCTION Overloaded RETURN INTEGER IS SEPARATE; FUNCTION Overloaded RETURN BOOLEAN IS (IDENT_BOOL (FALSE)); IF Overloaded THEN 54275: Statement coverage generating invalid coverage instrumenation with Buffered I/O mode
Previously, when using Buffered Coverage I/O and Statement coverage, VectorCAST generated invalid block initialization code in some situations.
An example of the invalid code is:
VCAST_TYPES_1.VCAST_BITS_1_1(-1) := VCAST_COVER_IO.true; Also, in some cases an unaligned comment was not terminated by an End of Line. For example:
-- An End Of Line was missing after an unaligned comment -- IF process( a ) then These problems are fixed in VectorCAST version 6.4k.
54302: c_cover_io.c references non-existent VC_strcat
In previous versions of VectorCAST, the c_cover_io.c file used for coverage instrumented applications contained calls to non-existent functions, causing a compile error in some configurations. This problem is fixed in VectorCAST version 6.4k.
55031: Generic instance inside nested package body can cause compilation errors
Previously, when an object in the body of a nested package references a type defined in an instantiation inside the nested package, VectorCAST assumed the typemark was visible outside the nested package, which could cause environment compile or link failure. This has been fixed in VectorCAST version 6.4k.
55101: Constraint error when unconstrained 'in out' string in stub does not match size from caller
Previously, when a stub had an in/out parameter that was a string, VectorCAST would not enforce length constraints on the input value, causing possible constraint errors if the input string was the wrong size. Starting with VectorCAST version 6.4k, the harness will truncate or blank-fill the input string based on the size of the parameter. 55196: Parameter objects of unconstrained type from instantiation do not get constrained in harness
Previously, when a generic package contained an unconstrained array type, and in another package a subtype was created whose parent was the unconstrained array type from an instance of the generic, when that subtype was used as a parameter type, VectorCAST would fail to constrain the parameter object, resulting in harness compilation errors. This has been resolved in VectorCAST version 6.4k.
55242: SBF processing on unit using 'overriding' keyword causes compilation errors
When building a Stub-by-function environment, VectorCAST inserts harness code into the UUT(s) immediately preceding each subprogram. Previously, if the subprogram identifier was preceded by the "overriding" qualifier, the insertion would be incorrect, causing compilation errors. This has been resolved in VectorCAST version 6.4k.
VectorCAST/C++:
25781: Harness objects should be pointer-based if struct has a destructor
Previously, the VectorCAST test harness contained compile errors for source code having structs with explicit destructors but no declared constructors. This problem has been resolved in VectorCAST version 6.4k.
44480: VectorCAST should report link error when harness is not generated (but exit status is 0)
In previous versions of VectorCAST, the link of the harness would not be detected as failed if the exit status was 0, even if no harness file was produced. In VectorCAST version 6.4k, failure to produce a harness file is shown as a link error.
49821: New parser flag to support 16-bit targets
In previous versions of VectorCAST, some source files could fail to parse successfully if the code depended on the specific size of types for a 16-bit target. In VectorCAST version 6.4k, these targets can be supported by adding --16_bit_target to the Parser Flags option. 51041: Incremental rebuild fails when using environment variable and relative path
In previous versions of VectorCAST, attempting to perform an incremental rebuild would fail if any source directory was specified using an environment variable and any UUT was from a search directory specified using a relative path. This problem is fixed in VectorCAST version 6.4k.
51666: Support Visual Studio 2015
VectorCAST version 6.4k adds support for Visual Studio 2015.
To use Microsoft Visual Studio 2015, from the Windows Start menu, select All Programs => VectorCAST => VectorCAST for Visual Studio. Then select VectorCAST for Visual Studio 2015.
Visual Studio 2015 (C) clicast -lc template VISUAL_CPP_2015 Visual Studio 2015 (C++) clicast -lc template VISUAL_CPP_CPP_2015 51853: VC fails to build an environment that could be built with version 6.2n when source file name is long VectorCAST versions after 6.2n were unable to build some environments with long source file names that could previously be built with 6.2n. This problem has been resolved in VectorCAST version 6.4k
53624: clicast tools auto_test_generation command does not generate script if specified subprogram starts with (cl)
Previously, the Clicast TOols AUTO_Test_generation command did not correctly generate tests when specified with a subprogram name starting with (cl). This problem has been fixed in VectorCAST version 6.4k.
53694: New harness options to use stdlib functions for reading floating point input values
Previously, precision would be lost for floating point numbers with more than 17 digits of precision. VectorCAST version 6.4k provides two new defined variables, VCAST_USE_STRTOD and VCAST_USE_STRTOLD, which provide support to use stdlib functions 'strtod' (string to double) and 'strtold' (string to long double), respectively.
When one of these options is used, VectorCAST uses the appropriate stdlib function for converting string to floating point number.
From GUI: Options dialog => C/C++ tab => Preprocessor / Compiler subtab => Defined Variables
From clicast: clicast -lc option C_DEFINE_LIST VCAST_USE_STRTOD clicast -lc option C_DEFINE_LIST VCAST_USE_STRTOLD 54080: GNU constructor attribute priority not accepted when parsing on Windows and Solaris
GNU compilers support a function attribute extension called constructor which allows an optional priority parameter. In previous versions of VectorCAST, specifying a priority for this constructor attribute would cause a parse error on Windows and Solaris. This problem is fixed in VectorCAST version 6.4k.
54435: "Compilation aborted" error when parsing some GNU braced initializers in templates using VectorCAST 6.4i
VectorCAST version 6.4i incorrectly gave a "Compilation aborted" error when parsing some GNU braced initializers in templates. This problem has been fixed in VectorCAST version 6.4k.
54757: "Instrument for function coverage" not working
The "Function coverage" percentage bar was missing from the Coverage Viewer when the "Instrument for function coverage" option was set. This problem has been fixed in VectorCAST version 6.4k.
54854: If "Provide code coverage in header files" is false, C++ envs should not do basis path processing for non-instantiated templates
In VectorCAST version 6.4k, VectorCAST no longer does basis path analysis for non-instantiated template functions in header files of unit test environments when "Provide code coverage in header files" is set to false. Previously, the analysis was done but never used.
54858: Harness compilation failure when pointers point to types with GNU attribute __vector_size
Previously, the test harness did not compile when source code contained pointers to types with the GNU __attribute__vector_size__. This problem has been resolved in VectorCAST version 6.4k. 54875: Test script import errors when unit name has multiple '.' characters
Previously, test script import gave errors when the unit name contained more than one '.' character. This problem has been resolved in VectorCAST version 6.4k.
54930: Basis paths should not be generated for nontestable inlines in headers when "Provide code coverage in header files" is false
Previously, basis path processing was done for nontestable inlines in header files, but the information was never used. In VectorCAST version 6.4k, the processing is now skipped.
55203: GNU __attribute__ vector_size types incorrectly labeled as __ev64 in mouseover
Types with GNU __attribute__ vector_size were incorrectly labeled as __ev64 in the mouse-over for test creation. They are now called vector types. This has been fixed in VectorCAST version 6.4k.
VectorCAST/Cover:
52602: c_cover_io.c references non-existent VC_strcat
In previous versions of VectorCAST, the c_cover_io.c file used for coverage instrumented applications contained calls to non-existent functions, causing a compile error in some configurations. This problem is fixed in VectorCAST version 6.4k.
52762: Error generating basis paths when source code contains a template function with a syntax error that is not instantiated
Previously, Basis Path generation failed when source code contained a template function with a syntax error that was not instantiated. This problem has been resolved in VectorCAST version 6.4k.
54835: If "Provide code coverage in header files" is false, cover projects should not do basis path processing on headers
Previously, basis path analysis was done on header files in cover projects even when "Provide code coverage in header files" was set to false. This problem has been resolved in VectorCAST version 6.4k.
VectorCAST/Manage:
51671: Improve dialog error message if environment build fails within manage
Previously, when the user attempted to create an environment from a .env script and it failed to build, the error message generated would not give a clear indication of the problem. The error message has been improved and now indicates that the environment is not imported because it cannot be opened. This is fixed in VectorCAST version 6.4k.
52111: Allow access to the setup_teardown script from the Manage GUI
VectorCAST version 6.4k now allows users to open the customizable setup_teardown.py script from the GUI and modify the script in a text editor. The script is located in the
To open the setup_teardown.py script in a text editor, select Project => Edit Setup/Teardown from the Menu Bar.
To use the Setup/Teardown feature:
1. Create a class that implements the "setup" and "teardown" methods of the Target class. 2. Add the Target subclass along with the Manage Project's Compiler Node Name as an entry to the compiler_name_to_target_mapping dictionary. 3. Save changes.
When the file is saved, VectorCAST automatically reloads the Manage Project.
54409: .env script abstraction inadvertently modifies user code
In previous versions of VectorCAST, it was possible for VectorCAST/Manage to corrupt the env script during import and when applying diffs back to the project. This has been fixed in VectorCAST version 6.4k.
54639: Dry run build/exec does not consider tests that have not run yet
In the Build/Execute Dry Run Report introduced in VectorCAST version 6.4j, tests that have not run were not included in the report. This has been corrected in VectorCAST version 6.4k so they appear as they would in the full Build/Execute Report.
55499: Remove flicker in project view when environment transaction occurs
Previously, the project tree in VectorCAST/Manage would flicker after certain environment actions were taken (i.e., building or executing). This issue has been resolved in VectorCAST version 6.4k.
VectorCAST/QA
50967: Update the welcome page Cover example to work with System Testing
In VectorCAST version 6.4k, the VectorCAST/Cover Example has been replaced with a VectorCAST/QA Example. The new VectorCAST/QA Example imports a VectorCAST/Cover environment into a VectorCAST/Manage project so the environment can be built and executed.
53058: Disable System Test CBT if no license is available
In VectorCAST version 6.4k, VectorCAST/Cover environments can be built and executed within VectorCAST/Manage without a Changed-Based Testing license. When a Changed-Based Testing license is unavailable, VectorCAST/Manage will always do a full build and execute on the VectorCAST/Cover environment.
VectorCAST/Probe
35116: VectorCAST/C++ now supports Probe Points
VectorCAST version 6.4k introduces a new product, VectorCAST/Probe. In C/C++ unit test environments or Cover environments, licensed users can add a "Probe Point," which provides a way to insert blocks of code before or after any executable statement in the source code. Probes can be inserted during unit, API, or system testing and are created and maintained on a per-unit basis. The probes are maintained as the source code changes, unless the coverage type changes or the source code changes such that the probe point no longer references the same coverable line. In that case, the probe point is dropped and the user is notified in the Message window.
Probe Points are commonly inserted in the following testing scenarios: - Injecting spurious values to allow testing of error handling code - Patching faulty code to test a fix prior to committing the change - Accessing local variables, and intermediate computations to aid in debugging
More information is available in the VectorCAST/C++ User's Guide or the VectorCAST/Cover User's Guide. Release Notes - VectorCAST: 6.4j
VectorCAST C, C++, Ada (Core)
38091: Remove hierarchical dependencies of CFG files
Previously, when opening an environment, VectorCAST would read the options file from 3 different locations (the installation directory, the user's home directory, and the directory containing the environment), where each read would override any values previously found.
This hierarchical method has caused confusion among users, who may have inadvertently created options files in one of these locations.
Beginning with VectorCAST version 6.4j, opening an environment will only read options from the file stored in the same directory as the environment folder.
To revert to the previous (hierarchical) method, the user should set the VCAST_LEGACY_CFG_FILE_INHERITANCE environment variable to True. As an extension of this feature, the 'READ' button on the Options Dialog will now bring up a file browser to allow the user to specify any text file containing options.
53305: Non linear scalability problems with test cases
VectorCAST version 6.4j improves performance when adding and removing automatic initialization and finalization tests in projects with a large number of tests.
53975: Text Editor reload issue
Previously, a problem with the VectorCAST GUI could cause line numbers in the source code viewer to display incorrectly, making them unreadable. This problem has been fixed in VectorCAST version 6.4j.
54505: Implement an environment variable to disable the Test Script Maintenance utility
VectorCAST version 6.4j introduces a new environment variable, VCAST_DISABLE_TEST_MAINTENANCE, to disable the test script maintenance utility.
Set the value of the variable to 1 to disable the utility.
'VCAST_DISABLE_TEST_MAINTENANCE=1' VectorCAST/Ada:
52002: Allow an "others" capability when verifying exceptions
Previously, when an exception was defined in a package body, if that exception was propagated out of the UUT during a test, that test would fail (by default), because there was no way to check for that exception.
Starting with VectorCAST version 6.4j, the user can specify "UNKNOWN EXCEPTION" as an expected exception. If an exception is raised that is not in the list of known exceptions, it will match this condition, allowing the test to be marked as Passed.
54288: Invalid range data when UUT has nested subprograms and unconstrained array parameters
Previously, when a UUT had both subprograms in nested packages and parameters of unconstrained arrays, the harness could use the incorrect subprogram identifier for the unconstrained array parameter, causing either range data to fail to be generated, or for the unconstrained array parameter indices to be validated against incorrect ranges. This has been resolved in VectorCAST version 6.4j.
VectorCAST/C++:
49019: Potential harness buffer overflow in B0000007.c
In previous versions of VectorCAST, the C and C++ unit test harness contained an invalid comparison that could lead to a 1 byte buffer overflow with some target configurations. This problem has been fixed in VectorCAST version 6.4j.
49945: Enable verbose mode on Solaris
Verbose mode in the Jobs window is not available on Solaris. This has been fixed in VectorCAST version 6.4j.
53129: New option to invoke external command after preprocessing
VectorCAST version 6.4j introduces a new configuration option "Post-preprocess command". The option is available from the Options dialog => C/C++ tab => Misc subtab.
The Post-preprocess command option is available for C and C++ environments, and allows an external command to be specified and executed after a source file has been preprocessed.
VectorCAST passes 3 arguments to this command: - the original file path, - the preprocessor output file path, and - the path to an output file that does not yet exist.
If the external command creates the new output file, it is used in place of the original preprocessor output, such as for parsing. It also becomes the basis for any instrumentation, such as for code coverage.
This option is used to specify a custom external script which tranforms non-standard code constructs into code suitable for the VectorCAST parser.
When possible, modify original source files directly rather than using this option.
clicast -lc option VCAST_POST_PREPROCESS_COMMAND
Previously, for GNU C++ code, VectorCAST failed to instantiate class templates before checking for the completeness of the type underlying an array with unknown bounds. This caused parser errors for code that compiled. For example:
template
This would result in a spurious error about "X
54067:Initializing branch or mcdc coverage hangs vcast when using C99
Previously, VectorCAST would hang during instrumentation of branch or MC/DC coverage for some C source files, in environments using the "--c99" parser flag. This problem has been fixed in VectorCAST version 6.4j.
54388: MC/DC tests sometimes have more than one test for the same value
MC/DC tests sometimes created multiple tests with the same name for the same pair, row, condition, and subprogram. The test script import log would indicate that tests were being replaced. This problem has been resolved in VectorCAST version 6.4j.
VectorCAST/Cover:
54302: Branch condition using weak symbol should not be considered constant
Previously, weak symbols for variables were treated as constants in Branch, Basis Path, and MC/DC coverage. Beginning in VectorCAST version 6.4j, they now have both the true and false conditions available.
54507: Crash when instrumenting C++11 lambda functions for branch, MC/DC, or basis path coverage
Previously, VectorCAST crashed when instrumenting C++11 lambda functions for branch, MC/DC, or basis path coverage. This problem has been resolved in VectorCAST version 6.4j.
VectorCAST/Manage:
49198: Auto open the build/execute log when the build/execute status is non zero
Beginning in VectorCAST version 6.4j, python errors and warnings are logged to the build.log when the system test environment is built, and to the execute.log when the system test environment is executed.
52107: Incremental build/execute on Cover environments now removes results at the function level
In VectorCAST version 6.4j, Cover environments with scripted system tests in Manage now process results affected by source changes at the function level rather than at the unit level.
For example, if a single function in a unit has source changes, only results that have coverage data for that function are considered affected. The incremental build and execute reports have been updated to reflect the new behavior.
In addition, a new "Build/Execute Dry Run Report" has been added which reports the actions a build/execute on a set of cover environments would take. To access this new report, choose Project => Build/Execute Dry Run.
manage -p
In previous versions of VectorCAST, a problem would occur in VectorCAST/Manage where the working directory would change when an interactive execute failed. This has been fixed in VectorCAST version 6.4j.
Release Notes - VectorCAST: 6.4i
VectorCAST C, C++, Ada (Core)
17061: Test Script Maintenance Utility
VectorCAST version 6.4i includes an automatic test script maintenance utility, which keeps test scripts up-to-date across source code changes.
When using VectorCAST/C++ or VectorCAST/Ada, the maintenance utility is invoked automatically on environment rebuild or update. In VectorCAST/Manage, the utility is invoked when rebuilding an existing environment.
The maintenance utility works by comparing the parse data from the existing environment and the re- built environment to generate conversions for any data items that do not match, and then applying those conversions to the test script. An example would be the change of a parameter name from 'Table' to 'table'. However, even very complicated changes can be converted by the maintenance utility.
In cases where the maintenance utility cannot determine an exact conversion for an unmatched data item, a console is displayed and help is solicited form the user, by displaying the multiple possible matches for an unmatched data item. In this case, the choices are ordered by most likely match using a numeric ranking of 100 to 0. When rebuilding an environment in clicast the first (mostly likely) choice is selected automatically.
When using the GUI, a differences listing between the original test script and the translated test script is displayed after each rebuild showing the changes made to the test script. This report can be recalled at any time by using the Test => Scripting => Test Script Maintenance Difference Listing menu item.
For reference, after each environment rebuild, the following files exist in the environment directory:
- convertScript-original.tst: The untranslated version of the test script - convertScript-translated.tst: The translated version of the test script - convertScript-differences.html: The Test Script Maintenance Difference Listing - convertScript-log.txt: Output from the utility 52233: Option to only load "complete" basis path tests
When VectorCAST generates automatic test cases (such as Basis Path tests), it labels the test as 'partial' if it cannot specify all of the data for the test, and 'template' if it cannot specify any of the data for the test.
In VectorCAST version 6.4i, the user can set a new Execute option, "Ignore incomplete auto-generated tests," to tell VectorCAST to discard those partial or template tests when importing the generated test script.
clicast -lc|-lada option VCAST_IGNORE_INCOMPLETE_TESTS True | False The default value is False.
VectorCAST/Ada:
51440: Ada 2012: Code Coverage for "if expressions"
Starting with VectorCAST version 6.4i, VectorCAST now completely instruments the Ada 2012 construct if expressions, case expressions, and extended return statements.
Examples:
-- if expression A := ( if B > C then 123 else 456 ); -- Case expression if (case Value (A) is when 0 | 1 | 2 => True, when 3 => False, when others => True) then -- Extended return return A : integer do A := N + 4; end return; 53699: Instrumentation failure when expression has operations following a parenthesized expression
Previously, with MCDC coverage, "and then" or "or else" expressions were not instrumented. For example, in
R := ( (A) or else (B) or else (C) ) and then Z;
"and then Z" was not being instrumented. With VectorCAST version 6.4i, all clauses are instrumented.
53701: Array indices for unconstrained arrays not always calculated correctly
Previously, when a UUT that was a child package contained a nested package with the same name as a top-level package, then VectorCAST could incorrectly build the harness, resulting in either compilation errors, or incorrect array indices in the nested package. This has been fixed in VectorCAST version 6.4i.
VectorCAST/C++:
36270: "Internal error: assertion failed" when building unit test environments for some functions with C++11 decltype return values
VectorCAST failed to build unit test environments for source code containing some functions with C++11 decltype return values. This problem has been resolved in VectorCAST version 6.4i.
48286: Crash generating MC/DC tests when constructor parameter has a logical operator
MC/DC test generation crashed VectorCAST in some cases when source code contained a constructor parameter with a logical or comparison operator. This problem has been resolved in VectorCAST version 6.4i.
49023: Parse error when GNU VLAs are defined with initializers
Previously, VectorCAST incorrectly gave a parse error for source code containing GNU variable length arrays defined with initializers. This problem has been resolved in VectorCAST version 6.4i.
49150: Instrumented expression report displays expressions out of order
The instrumented expression report created by the clicast command "report functions" listed some expressions that appeared later in the source file prior to ones appearing earlier. This problem has been resolved in VectorCAST version 6.4i.
49329: Expressions in switch statement conditions should be instrumented for MC/DC coverage
Previously, logical and comparison operators in switch statements, such as:
switch (a || b) did not receive MC/DC instrumentation. This problem has been resolved in VectorCAST version 6.4i.
49841: Lines in Test Case Generation Notes of basis path scripts sometimes repeated
Duplicate lines appeared in the Test Case Generation Notes section of some basis path scripts. This problem has been resolved in VectorCAST version 6.4i.
50631: Add support for C++11 and C++14 in GNU Native compilers In VectorCAST version 6.4i, the GNU native compiler now has C++11 and C++14 options available from the drop down menu. clicast -lc template GNU_CPP11_43 clicast -lc template GNU_CPP11_44 clicast -lc template GNU_CPP11_45 clicast -lc template GNU_CPP11_46 clicast -lc template GNU_CPP11_47 clicast -lc template GNU_CPP11_48 clicast -lc template GNU_CPP11_49 clicast -lc template GNU_CPP11_50 clicast -lc template GNU_CPP14_49 clicast -lc template GNU_CPP14_50 51519: Non-testable static functions still allow associated tests but shouldn't
In previous versions of VectorCAST, a test case for a non-testable static function could be improperly imported from a test script if SBF was enabled for non-testable functions. In VectorCAST version 6.4i, an error message is issued for test cases imported for non-testable static functions.
51626: Conditional operator in aggregate initializations missing from cyclomatic complexity and basis path tests
Conditional operators in aggregate initializations were incorrectly omitted from the cyclomatic complexity and basis path tests. This problem has been resolved in VectorCAST version 6.4i.
51680: Parser fails to accept qualified enum in actual parameter
In previous versions of VectorCAST, the parser failed to accept nonstandard code allowed by g++ whereby a qualified name disambiguated a parameter expression in a function call from what would otherwise be a nested declarator in a function declaration. This problem is fixed in VectorCAST version 6.4i.
51737: VectorCAST parser considers template instantiation accepted by g++ to be ambiguous
VectorCAST incorrectly gave the "more than one partial specialization matches the template argument list" error for some source code that was not ambiguous. This problem has been resolved in VectorCAST version 6.4i.
51762: Parse error with g++ const expression template parameter
Previously, VectorCAST gave the error "expression must have a constant value" for some GNU code using template parameters. This problem has been resolved in VectorCAST version 6.4i.
52169: Parse error when template member definition uses "enum" keyword
Previously, VectorCAST incorrectly gave a parse error for source code where a template member definition used the enum keyword. This problem has been resolved in VectorCAST version 6.4i.
53081: GNU 5.1 compiler settings now available
GNU 5.1 is now available as a compiler option in VectorCAST version 6.4i. clicast -lc template GNU_C_51 clicast -lc template GNU_CPP_51 54055: Reports now display fully scoped function name for certain expressions In VectorCAST version 6.4i, aggregate coverage reports for MC/DC coverage, basis path reports, and MC/DC test reports will now give a fully scoped function name in some cases where the scope was previously omitted.
54056: Order of data may be different for test case data reports, execution reports, and basis path scripts
In VectorCAST version 6.4i, data may be displayed in a different order from previous versions of VectorCAST in test case data reports, execution reports, and basis path scripts.
VectorCAST/Cover:
47242: Coverage missing on for loop initialize statements
Previously, the initializer statement of for-loops was not considered for MC/DC coverage. In VectorCAST version 6.4i, it is now treated like other statements.
47243: Coverage missing on for loop increment expressions
Previously, for-loop increment expressions were not instrumented for MC/DC coverage. For example,
for (; 1; (a || b)) was instrument for MC/DC coverage as:
1 1 ( ) for (; 1; (a || b))
In VectorCAST version 6.4i, the a || b is now instrumented:
1 1 ( ) for (; 1; ( 1 2 ( )( ) 1 2.1 ( )( ) a || 1 2.2 ( )( ) b)) 47245: Coverage missing on ternary operator in expression statement
Previously, logical operators in the second and third operands of the ternary operator did not receive MC/DC coverage. Those operators are now considered MC/DC conditions. For example,
a ? !b : !c;
formerly treated only "a" as a condition in MC/DC coverage. In VectorCAST version 6.4i, "!b" and "!c" are now also conditions.
47246: Coverage missing for logical and comparison operators inside other operators inside ternary operators
MC/DC coverage was missing for logical and comparison operators inside other operators also inside ternary operators. For example,
if ( - ( a || b ) ?- ( a || b ) :- ( a || b ) ) was incorrectly instrumented for MC/DC coverage as:
1 1 ( )( ) if ( 1 1.1 ( )( ) 1 2 ( )( ) 1 2.1 ( )( ) - ( a || b ) ?- ( a || b ) :- ( a || b ) ) which had conditions for only the if-condition and the ternary operator. In VectorCAST version 6.4i, it is now correctly instrumented as:
1 1 ( )( ) if ( 1 1.1 ( )( ) 1 2 ( )( ) 1 2.1 ( )( ) - ( 1 3 ( )( ) 1 3.1 ( )( ) a || 1 3.2 ( )( ) b ) ?- ( 1 4 ( )( ) 1 4.1 ( )( ) a || 1 4.2 ( )( ) b ) :- ( 1 5 ( )( ) 1 5.1 ( )( ) a || 1 5.2 ( )( ) b ) ) 47475: Coverage missing on logical operators surrounding conditional operator if in non-logical operator
In some cases, branch and MC/DC instrumentation was missing on logical and comparison operations which surround conditional operators but are also inside other operators. For example, if the configuration option VCAST_INSTRUMENT_ASSIGNMENTS is set to true, c = !(a ? 1 : 0) & 0; MC/DC instrumentation occurred for the conditional operator but was missing for the not operator:
c = !( 1 1 ( )( ) 1 1.1 ( )( ) a ? 1 : 0) & 0; In VectorCAST version 6.4i, the MC/DC instrumentation now occurs for both operators:
c = 1 1 ( )( ) !( 1 1.1 ( )( ) 1 2 ( )( ) 1 2.1 ( )( ) a ? 1 : 0) & 0; 47504: Logical expressions in GNU statement expressions inside function parameters should receive branch coverage
Previously, when using the option "Instrument logical operations in function calls", logical and comparison expression GNU statement expressions in function parameters did not receive branch coverage. For example, branch coverage on: foo(({ a && b; })); yielded no branches.
In VectorCAST version 6.4i, it now has a branch for a && b:
foo(({ 1 1 ( )( ) a && b; })); 47661: Branch coverage missing for logical operators as second or third operands of the conditional operator in assignment statements Previously, even with the configuration option VCAST_INSTRUMENT_ASSIGNMENTS set to true, branch coverage was missing for logical operators as second or third operands of the conditional operator in assignment statements. In VectorCAST version 6.4i, those operators are now considered branches.
47839: Improved MC/DC coverage on declaration statements
Previously, C++ code with variable declarations in branch conditions treated the declaration as a single MC/DC subcondition.
In VectorCAST version 6.4i, if-statements, while-statements, switch-statements, and for-statements without increment expressions have the initialization source examined for logical and comparison operators. For example, if ( int i = a || b ) was previously instrumented as:
1 1 ( )( ) if ( 1 1.1 ( )( ) int i = a || b ) It is now instrumented as:
1 1 ( )( ) if 1 1.1 ( )( ) (int i = 1 2 ( )( ) 1 2.1 ( )( ) a || 1 2.2 ( )( ) b) where "a || b" is an additional MC/DC condition. 49090: Invalid instrumentation inserted in aggregate initialization
Instrumentation of logical operators in aggregate initializations of structs previously did not compile. This problem has been resolved in VectorCAST version 6.4i.
49318: MC/DC coverage missing on statements consisting of expressions without an assignment operator
Previously, statements consisting of expressions without an assignment or compound assignment operator were not considered for MC/DC coverage, but now they are. For example, a&&b; was not a condition before with MC/DC coverage.
In VectorCAST version 6.4i, it is now instrumented as a condition with subconditions a and b:
1 1 ( ) ( ) 1 1.1 ( ) ( ) a && 1 1.2 ( ) ( ) b; 51734: Uninstrumented expressions report incorrectly includes expressions following assignment ops if preceded by VCAST_DONT_DO_MCDC
Previously, when the VCAST_DISPLAY_UNINST_EXPR configuration option is set to true, logical and comparison operators in implicit casts following assignment operators or in return statements in statements preceded by VCAST_DONT_DO_MCDC comments were incorrectly reported as uninstrumented despite having branch instrumentation. This problem has been resolved in VectorCAST version 6.4i. 51935: Conditional operator with constant value as first operand should be treated as a branch
Previously, a constant value as the first operand of the conditional operator, such as (1) ? 1 : 0;, caused VectorCAST to ignore the conditional operator. Now the constant value receives the same instrumentation as other constant values in branch conditions. This has been fixed in VectorCAST version 6.4i.
52171: Basis Path and Instrumentation failure when range-based for loop contains break or continue
Previously, VectorCAST would generate an error during instrumentation or basis path generation of source code containing C++11 range-based for statements with break or continue statements inside the loop statement. This problem has been resolved in VectorCAST version 6.4i.
53532: Crash in VectorCAST 6.4 building a VC/Cover project
Previously, VectorCAST crashed on Windows when a Cover environment was built using read-only source files. In VectorCAST version 6.4i, VectorCAST/Cover now successfully removes read-only flags, but will no longer change ACL permissions of source files.
VectorCAST/Manage:
53125: Using manage -p [missing_vcm] --release-locks gives inaccurate error message
Previously, an inaccurate error message was being displayed when a release-locks command or import- results command was performed on a project with a missing VCM file. Now, Manage displays the correct error message, "[missing_vcm] does not exist", and is consistent with the other missing VCM file error messages. This has been fixed in VectorCAST version 6.4i.
53914: Displayed date for license expiry message is incomplete
Previously, when the Manage license was about to expire, VectorCAST/Manage displayed a message with an unreadable, cryptic expiration date on some systems. This problem has been fixed in VectorCAST version 6.4i.
VectorCAST/RSP:
41195: Renesas C instrumentation of variable initializer fails to compile
When the configuration option "Instrument variable declarations in C" (VCAST_COVERAGE_FOR_DECLARATIONS) was set to True, coverage instrumentation of some initialized variable declarations did not compile when using the Renesas compiler. This problem has been resolved in VectorCAST version 6.4i with the implementation of a new Coverage option.
If you have existing Renesas environments with this problem, go to Tools => Options, Coverage tab, Instrumentation Options sub-tab, and set "Avoid using comma operator in declarations" to True.
clicast -lc option VCAST_AVOID_COMMA_OPERATOR TRUE | FALSE The default value is FALSE.
Release Notes - VectorCAST: 6.4h
VectorCAST C, C++, Ada (Core)
51941: VectorCAST runs out of memory when running certain categories of test cases Previously, when executing many test cases with large sections of notes, internal VectorCAST processing caused a memory leak. In certain situations, this problem could cause VectorCAST to crash during test execution when the system ran out of memory. This problem has been resolved in VectorCAST version 6.4h.
52236: Selection related issues with the coverage viewer
Previously, a problem with missing text would sometimes occur when performing a copy/paste action from the coverage viewer. This has been fixed in VectorCAST version 6.4h.
52351: CBA editor incorrectly adds additional MC/DC coverage
In previous versions of VectorCAST, when editing MC/DC or Level-A instrumented code in the CBA editor, the CBA editor would in some cases incorrectly add additional lines of MC/DC coverage that were not selected when the changes were saved. This problem has been fixed in VectorCAST version 6.4h.
52417: Setting industry mode overwrites CCAST_.CFG when opening environment
Previously, starting VectorCAST, switching the Industry mode, opening an existing environment and rebuilding could overwrite the contents of the existing CCAST_.CFG file. This problem has been fixed in VectorCAST version 6.4h.
53270: Crash right clicking on CSV Editor
VectorCAST version 6.4h resolves a GUI crash that can occur when using a CSV map for test cases and the user right-clicks within the CSV editor.
53297: GUI Crash when clearing Template Instance
VectorCAST version 6.4h fixes a crash that can occur when trying to clear an instance of a template in the test case editor.
VectorCAST/Ada:
52676: Instrumenting Ada code with labels has compilation errors
In certain circumstances, Ada code using labels ("<< Label >>") was improperly instrumented and resulted in compilation errors containing: missing ">>". This has been fixed in VectorCAST version 6.4h. 52719: Large number of types and nested packages causes incorrect matching of objects to types
Previously, when a unit defined more than 100 referenced types and also contained nested packages with more referenced types, the parameter tree could show the incorrect typemarks for certain objects. This has been resolved in VectorCAST version 6.4h.
53455: Array indices for unconstrained arrays not always calculated correctly
Previously, VectorCAST could fail to determine the appropriate array size and index range for unconstrained array parameters in a unit that also contained overloaded subprograms. This issue has been resolved in VectorCAST version 6.4h.
53559: Local subtype of unconstrained variant record causes compile errors with Multiunit Whitebox
Previously, if a UUT contained a subtype of a variant record from another unit, VectorCAST could incorrectly build the test harness if neither the subtype nor the variant record specified a default value for the discriminant, causing a compile error. This has been resolved in VectorCAST version 6.4h. VectorCAST/C++:
50588: Long type names incorrectly truncated when detecting classes of interest
In previous versions of VectorCAST, extremely long class names could be split across multiple lines when calculating classes of interest from the environment wizard. Selecting such class names as classes of interest would result in no corresponding testable functions for those classes. This problem is fixed in VectorCAST version 6.4h.
51591: Crash generating basis path analysis for ?: in array index
In previous versions of VectorCAST, performing basis path analysis could crash VectorCAST if the source code being analyzed contained an array declaration where the size expression utilized the ?: operator. This problem has been fixed in VectorCAST version 6.4h.
51668: Parameter user code compile error takes ages to render
Previously, when test compiling Parameter or Testcase User Code and the output was very large, the display of the compile output took too long. This problem has been fixed in VectorCAST version 6.4h.
51770: Support byte order mark when preprocessing UTF-8 source files
In previous versions of VectorCAST, source files containing a UTF-8 byte order mark (BOM) could cause preprocessing to fail when using the "Use VectorCAST preprocessor" option or the "Use new generation preprocessor" option. This problem is fixed in VectorCAST version 6.4h.
52412: C++11 initializer list expression as function parameter crashes parser
In previous versions of VectorCAST, the parser could crash or issue an internal error when C++11 initializer list expressions were used as function parameter values. This problem is fixed in VectorCAST version 6.4h.
52576: Right-click menu in Test Case Tree is slow when invalid license server given before valid one
In some cases, users right-clicking on the Test Case Tree in the unit test tool for environments built with traditional unit testing experienced a delay before the pop-up menu appeared, especially if the LM_LICENSE_FILE environment variable specified a non-working server before a working server. This problem has been resolved in VectorCAST version 6.4h.
VectorCAST/Manage:
40558: Cannot build a new environment in Manage from a custom configuration
Previously, VectorCAST/Manage could not properly import configuration created by the RSP Configurator. The problem has been fixed in VectorCAST version 6.4h.
49629: Hebrew date incorrectly encoded in Manage html report
Previously, the Manage Summary Report was not properly displaying dates when the language was set to Hebrew. The Manage Summary Report now always displays the dates in English. This is fixed in VectorCAST version 6.4h.
52374: Expand all children is slow on a large Manage project
VectorCAST version 6.4h improves the performance of the "Expand All Children" context menu when working with a large Manage project.
52601: Enable coverage and disable coverage should maintain file time stamps Previously, disabling/enabling instrumented in-place source files in VectorCAST/Manage would change the file timestamps, triggering unnecessary recompiles. This has been fixed in VectorCAST version 6.4h.
53379: manage --help and --version commands allowed in --ci mode
In VectorCAST version 6.4h, the following manage commands are enabled in continous integration (--ci) mode: --help --version 53707: Compiler tag set at compiler level saved to environment config when applying diffs
Previously, when options were saved back to the environment configuration, VectorCAST/Manage would also save back the inherited configuration options. This problem has been fixed in VectorCAST version 6.4h.
Release Notes - VectorCAST: 6.4g
VectorCAST C, C++, Ada (Core)
49247: Allow filtering of the file tree
VectorCAST version 6.4g now extends Search and Filter functionality to the Source Files pane in VectorCAST/Cover and to the Files tab in VectorCAST/Manage.
Activate the feature by clicking in the location and using the Ctrl+f shortcut to open a Find banner at the bottom of the window. Enter the text you are looking for and press Enter to execute the search. To choose text you have typed before, click the drop down arrow and select text from the list. Use the Up/Down arrows to navigate through the results.
The search can be limited to filenames or coverage type by using the Find drop down menu. Use the Match Case option to further refine the results. Use the Filter option to only show items matching the search criteria.
This feature helps the user to easily find source files of interest or to reduce large data-sets of source files to a more manageable size.
49506: 'clicast help tools industry_mode' command now available
The clicast command to set the Industry Mode has been added to clicast help in VectorCAST version 6.4g.
clicast TOols INDUSTRY_mode
Note: This command sets the Industry mode globally for all environments on the local system. This setting is saved to the .vcast-qt file in the user's home directory.
51165: Test script can lose attributes when subprograms have more than 9 parameters
Previously, when loading a test script with parameter attributes (numeric base, tolerance, etc), the algorithm used to store the value in sorted order would return an incorrectly sorted list in certain situations, preventing VectorCAST from finding those attributes. This has been resolved in VectorCAST version 6.4g. 51643: Improve the message window to use less space
In VectorCAST version 6.4g, the Message window can now operate in a collapsed, single line mode. When the Message window is "collapsed" to show only a single line, it takes less space vertically. Only the most recent message is displayed.
To expand the Message window to see all of the text in the Message window, click the small button located on the right side of the single line message. This action can be done almost at any time, and is specifically permitted between execution of multiple tests.
52133: View Coverage jumps to wrong function
Previously, when using the view coverage function of VectorCAST/Cover, the incorrect function would be displayed in the Coverage Viewer. This problem has been fixed in VectorCAST version 6.4g.
52205: Incorrect master.db permissions causes environment build error
A permissions problem could cause a VectorCAST C or Ada environment build to fail with the following error: "** ERROR: Could not commit data to database:" This has been resolved in VectorCAST version 6.4g.
52424: Quick test user code crashes during test compile
Previously, when using the quick Insert User Code option in the Test Case Editor, if a user inserts user code, selects the Test Compile button and then clicks outside the cell during the user code test compilation, a crash could occur. This has been resolved in VectorCAST version 6.4g.
VectorCAST/Ada:
51162: ACATS tests for MC/DC instrumentation
Previously, when quoted character constants are used in conditions MC/DC instrumentation can result in compilation errors.
For example, if not (L_Start_Space and then String_To_Conv (Index) = ' ') and then (Index <= Positive (T_Text_String′Last)) then In VectorCAST version 6.4g, character constants are now parsed correctly.
51536: Environment build issue when child unit overrides parent unit name
Previously, VectorCAST could generate harness code that would not compile when a Unit Under Test was a child unit, and an ancestor unit created an object with the same name as the top-level unit. This would cause errors due to the correct object being hidden. This has been resolved in VectorCAST version 6.4g.
51888: Coverage failure with Ada labels immediately following or preceding a keyword
Previously, when a 'goto' label ("<
52285: Objects in private section of nested package of UUT are not visible in parameter tree
Previously, if a nested package in a Unit Under Test defined a global object in its 'private' section, that object could not be set/viewed as part of a test case. This has been resolved in VectorCAST version 6.4g.
52437: Compile error in Ada code instrumented for MC/DC
Previously, MC/DC instrumentation could fail on an "if" statement if the conditional expression contained character literals, parenthesis, and attributes (e.g. 'length) within the same expression. This has been resolved in VectorCAST version 6.4g.
VectorCAST/C++:
40931: Coverage listing file should have better indentation as well as a maximum indentation
The coverage listing file previously used the original indentation amount for some statement lines, which could result in extremely large amounts of indentation if the original source code did not contain line breaks.
In VectorCAST version 6.4g, the indentation amount is calculated for those lines, and the maximum indentation is capped at 30 columns.
45664: Object name incorrectly stored in UNITDATA.VCD with embedded line breaks
In previous versions of VectorCAST, static class members of classes with extremely long qualified names could be incorrectly stored in environment files with embedded line breaks. This would prevent the environment from opening. This problem has been fixed in VectorCAST version 6.4g.
48893: 'd' and 'D' literal suffixes should be accepted for the GNU compiler
Previously, VectorCAST gave an error message upon encountering the GNU literal suffixes 'd' and 'D'. For example, 0.4d was not recognized as a valid value. This problem has been resolved in VectorCAST version 6.4g.
51730: Harness should allow more than 64k input data in stdout mode
When using the "I/O uses stdout only" harness option, VectorCAST compiles test input data directly into the harness. In previous versions of VectorCAST, the amount of this data was limited to 64k because of the use of an unsigned short to index into the data.
In VectorCAST version 6.4g, the index type can now be specified via the macro VCAST_STDIN_DATA_SIZE_T. To use an int for this type, add the following entry to the VectorCAST option "Defined variables":
VCAST_STDIN_DATA_SIZE_T=int 51766: Files from source directory paths using symbolic links show with symbolic path
Previously, when source directory paths using symbolic links were specified, VectorCAST would resolve the symbolic links before using the directory path to find source or header files. This caused file paths to be shown in reports, the Coverage Viewer, and the Manage Files tab using the non-symbolic directory path.
In VectorCAST version 6.4g, paths with symbolic links are used as specified so that file locations appear in VectorCAST using the same symbolic path.
For example, if "/project" is a symbolic link to "/mount/network/project", and "/project/src" is specified as a search directory, then VectorCAST reports and the VectorCAST/Manage files tab now show symbolic paths like "/project/src/unit.c". Note that if compilers or preprocessors themselves resolve the symbolic link paths before displaying paths, then the non-symbolic path might still be shown in VectorCAST.
52180: Insert MCDC test cases menu item is disabled when using evaluation license
In previous versions of VectorCAST, a problem occurred where users with evaluation licenses saw the Insert MC/DC Test Cases menu item disabled. This problem has been resolved in VectorCAST version 6.4g.
52223: Crash when C++11 scoped enum is forward declared
Previous versions of VectorCAST would crash in the environment builder if only a forward declaration of a C++11 scoped enum was visible and the enum was used in certain ways. This has been fixed in VectorCAST version 6.4g.
VectorCAST/Cover:
31148: Instrumented lines become too long for certain compilers
Certain Ada compilers have a limit on the length of a source line. When VectorCAST instruments the file, the added code can extend the line beyond this limit.
In VectorCAST version 6.4g, a new environment variable "VCAST_MAX_INSTRUMENTATION_LINE_LENGTH" has been added to set the maximum length of a generated source line. When the value of the environment variable is set to 80 or less, lines in the instrumented source code are wrapped at a convenient location around 80 characters. If the value is greater than 80, lines are wrapped at that number of characters.
47869: VCAST_MAX_CAPTURED_ASCII_DATA miscalculated when MC/DC expressions are very large
When using the coverage option "Save data in ASCII format in memory", a char array is defined in the c_cover_io.c file to hold coverage result data. If the size is not specified using the "Maximum size for ASCII buffer" option, then VectorCAST will calculate a default size based on the actual instrumented code.
In previous versions of VectorCAST, using MC/DC instrumentation on an expression with many subconditions could cause VectorCAST to calculate an unreasonably large size, or produce a negative size, resulting in a compile error. VectorCAST version 6.4g fixes this problem by using a formula that produces a smaller size for large numbers of subconditions.
51351: Coverage initialization failure
Previously, VectorCAST did not instrument Ada source files with protected type statements properly. An instrumentation error occurred. This problem has been fixed in VectorCAST version 6.4g.
52251: Ada instrumentation can fail when label immediately precedes reserved keyword
Previously, when the instrumenter would encounter a label (<
VectorCAST/Manage:
46904: VCM project name is partially displayed
Previously, a Manage project having the character "." in the name was listed incorrectly on the Welcome Page's "Recent Projects and Environment" list. The latter half of the name was missing. This problem has been fixed in VectorCAST version 6.4g.
49807: Manage is very slow
In previous versions of VectorCAST/Manage, actions such as clicking and opening context menus may have been slow on certain VectorCAST/Manage projects. This problem is fixed in VectorCAST version 6.4g.
50377: VectorCAST/QA Support for Execute => Interactive
In VectorCAST version 6.4g, a licensed user is able to pick and choose exactly which tests to execute in a System Test environment.
With a Manage project open, right-click a System Test environment (i.e. a Cover environment), and choose Execute.
A sub-menu appears, with options: - Full, which executes all not-run automated and manual tests - Interactive, which opens a dialog from which to select the tests to execute.
In the dialog, choose to run All, just Automated, or just Manual tests, and then choose the category of test status to run: - not-run (or missing) - failed - passed
The combination of Test Type and Test Status allows the user to run all or any subset of tests for the environment.
To list the names of the system tests: manage -p
To specify a sub-set of all tests, use one or more of the optional flags with the --execute-system-tests command: ---automated ---manual ---not-run ---failed ---passed
The --execute-system-tests command is different from the "global" --build-execute or --execute command, which causes only the not-run, automated tests to run.
51151: Need better warning msg when .tst file is write-protected
Previously, when a user attempts to edit a .tst file that does not have write permission, the error message generated would not give a strong indication of the problem. The error message has been improved in VectorCAST version 6.4g, and now indicates that VectorCAST has failed to create the test script.
51653: Manage remove environment does not work for multi select In VectorCAST version 6.4g, the user is now able to remove more than one environment at a time. To do this, multi-select several environments, right-click, and choose Remove from Group or Remove from Project.
52498: FLEXlm error getting Change Impact Report with Evaluation license
In VectorCAST version 6.4f, Manage users with an Evaluation license may have seen a FLEXlm error when selecting Project menu => Change Impact Report. This problem has been fixed in VectorCAST version 6.4g.
VectorCAST/RSP:
49299: VCTR-790 : Parser Error: too many initializer values
Previously, VectorCAST incorrectly gave the error "too many initializer values" for some initializations of structs. This problem has been resolved in VectorCAST version 6.4g.
Release Notes - VectorCAST: 6.4f
VectorCAST C, C++, Ada (Core)
32457: Updated Coverage Viewer
VectorCAST version 6.4f introduces an enhanced Coverage Viewer showing an annotated version of the source file, colorized to indicate the coverage level achieved. Users will find the new Coverage Viewer functionality compatible with that of the CBA Editor.
For Statement and for Branch coverage, the Coverage Viewer indicates when a line is covered by Test Execution results only, CBA results only, or both Test Execution and CBA results.
New column headers: Subp, Cond, (T) and (F) appear at the top of the Coverage Viewer and indicate the Subprogram Number, Condition Number, and True or False branch outcome.
The MC/DC Equivalence Matrix is displayed inline in the Coverage Viewer and accessed by clicking the small red arrow on the left. When the user clicks a row in the MC/DC table, above the table, the conditions covering it are displayed in bold.
The right-click context menu now includes the following menu items: * Code Coverage Summary * Metrics Report * Basis Paths Report * MC/DC Report
The Metrics, Basis Paths and MC/DC Tests tabs have been removed: * To access information formerly provided on the Metrics tab, use the Code Coverage Summary or the Metrics Report. * To access the information formerly provided on the Basis Paths tab, use the Basis Paths Report. * To access information formerly provided on the MC/DC Tests tab, use the MC/DC Report.
The Coverage Viewer now supports copying source code text to the clipboard.
For full details on the updated Coverage Viewer, please refer to the "Coverage Viewer" section of the VectorCAST/C++, VectorCAST/Ada and VectorCAST/Cover User's Guides, available on our website at www.vectorcast.com.
47323: Cygwin/X crash when searching through compiler templates in wizard VectorCAST version 6.4f fixes a problem that could cause the VectorCAST GUI to close unexpectedly when using Cygwin/X X11 server with VectorCAST running on Linux or Solaris.
49644: Crash in Function Call Coverage
VectorCAST version 6.4f resolves a crash that can occur when using Function Call Coverage with Statement + Branch coverage type.
50318: Don't allow "Show in Report" for types that lack harness support
When a data type is not supported by the test harness, the Parameter Tree shows the parameters of that type as "user", meaning they can be set only by user code.
In VectorCAST version 6.4f, for parameters with not-supported types, the Parameter Tree no longer allows the user to change the Show/Hide in Report attribute.
51470: Change text editor to insert spaces for tabs
When editing a python script file using the VectorCAST version 6.4f text editor, the TAB key will insert spaces instead of a tab character.
To convert all tabs to spaces, use the right-click menu and select "Replace all tab characters with space characters".
VectorCAST/Ada:
46216: Ada 2012 environment building support
VectorCAST version 6.4f adds support for VectorCAST/Ada unit testing of all new Ada 2012 features.
49432: Environment build failure on Windows with very large number of "separate" procedures and UUT children
In a whitebox environment, where the Unit Under Test has a large number of 'separate' procedures and child packages, VectorCAST fails to close a file handle when searching for the 'separate' procedures. If the total number of files for separates and child units exceeds 400 files, VectorCAST can crash when building the environment. This has been resolved in VectorCAST version 6.4f.
49559: Null procedure
VectorCAST version 6.4f now supports the Ada 2005 null procedure declaration. See section 6.7 of the Ada 2005 Language Reference Manual.
49581: Access types defined as "not null"
Previously, the Ada 2005 type qualifier "not null" would cause environment build errors. This has been fixed in VectorCAST version 6.4f.
51359: Multiple instantiations referring with same-named typemark can cause build errors
If multiple generic packages use the same name for a typemark, and then a Unit Under Test creates instances of each of these generic packages, the environment builder can generate incorrect harness code when these typemarks are referenced at different scope levels in the generic package. This has been resolved in VectorCAST version 6.4f.
51529: Exception after return from SBF call handled incorrectly
Previously, when a UUT generated an exception after an SBF call, or an SBF call raised an exception, the execution report would be incorrect, and no expected value could be set for the exception. This has been resolved in VectorCAST version 6.4f.
VectorCAST/C++:
43944: Internal parser error with certain aggregate initializations in g++ mode
VectorCAST incorrectly gave the error "internal error: assertion failed at: "exprutil.c", line 2822" when attempting to parse certain functional notation casts to a type with a destructor appearing in a template. This problem has been resolved in VectorCAST version 6.4f.
44256: Compile error when library stub appears in multiple C UUTs
In previous versions of VectorCAST, if a library stub was present in multiple C UUTs, the declaration of the library stub would be incorrectly formed with an 'extern "C"' linkage specification that is not legal in C, leading to a harness compile error. This problem has been fixed in VectorCAST version 6.4f.
44260: Able to do an interactive build without a write lock
Previously, in a Manage project with read-only permissions, the write lock was not applied, allowing the user to open protected environments and perform interactive builds.
In VectorCAST version 6.4f, the write lock is applied and when attempting to open a write-protected environment an error message informs the user that the write lock cannot be obtained.
47924: Ignore preprocessing errors when detecting macro names
The VectorCAST/C++ unit test environment builder performs a separate preprocessing step to detect macro names visible in each UUT. Since an internal preprocessor is used for this step, a compiler's implicit include directories are not used, and some header files might not be found. In previous versions of VectorCAST, such missing headers would be ignored up to 10 occurrences.
In VectorCAST version 6.4f, such errors are always ignored during this step, so that VectorCAST can continue searching for macro names defined in the UUT and headers included by the UUT.
Note that while the macro names are found in this way, in order to ensure accuracy the values of those macros are determined via a subsequent step utilizing the compiler's preprocessor when available.
50076: GNU 5.0 compiler settings now available
The GNU compiler version 5.0 can now be selected in VectorCAST version 6.4f.
51405: Environment builder aborts when unused template member function has a noexcept specification
In previous versions of VectorCAST, environments could fail to build when uninstantiated template functions used C++11 noexcept specifiers. This problem has been fixed in VectorCAST version 6.4f.
VectorCAST/Cover:
45065: Coverage instrumentation inserted incorrectly for C variable declaration initialized to aggregate containing strings
Previously, C source code containing variable declarations initialized to aggregates containing string received coverage instrumentation that did not compile. This problem has been resolved in VectorCAST version 6.4f.
45152: gcc-specific array range initialization syntax triggers crash in coverage initialization Previously, coverage instrumentation crashed on C source code containing GNU array range initialization if the configuration option VCAST_COVERAGE_FOR_DECLARATIONS was set to true.
For example, char array [10] = {[0 ...9] = 0}; could not be instrumented successfully. This problem has been resolved in VectorCAST version 6.4f.
46363: Coverage instrumenation of C source containing char buf[] = {"string"} initializer syntax does not compile with Visual Studio
Previously, C source code containing statements in the form: char buf[] = {"string"}; received coverage instrumentation that did not compile with the Visual Studio compiler when the configuration option VCAST_COVERAGE_FOR_DECLARATIONS was set to true. This problem has been resolved in VectorCAST version 6.4f.
48843: Crash during branch, basis path, MC/DC instrumentation of GNU-statement expressions containing if-statements
Previously, branch, basis path, and MC/DC coverage instrumentation of GNU statement-expressions containing if-statements could cause VectorCAST to crash. For example, a statement like this:
({ if(x) { } ; x; }); might not work. This problem has been resolved in VectorCAST version 6.4f.
VectorCAST/Manage:
44200: Drag and drop .env file onto Group node to import an environment
VectorCAST Manage version 6.4f now supports drag and drop functionality to import an environment into the project by dragging an environment script and dropping it into a Group.
The file paths in the .env script must be specified using absolute file path.
49902: Fail to build environment after rename project in GUI
Previously, migrated environments would fail to build after renaming the project in the project tree using the Manage GUI. This has been fixed in VectorCAST version 6.4f.
50359: Allow the addition of a Unit Test or Cover environment directly into the manage tree
VectorCAST Manage version 6.4f now allows the addition of a Unit Test or Cover environment directly into the Manage Project Tree either via a Project or Group node level's right-click context menu item, "Add Existing Environment", or via drag and drop functionality.
To add a Unit Test or Cover Environment using the context menu, right-click on either a Project or Group node and select "Add Existing Environment" from the context menu. From the file browser dialog, select either a .vce (Unit Test environment) or .vcp (Cover environment) file to create a monitored environment within Manage.
When adding an environment at the Project node level, VectorCAST will either identify an existing location or create a new location for the environment based on the environment's configuration. Use the Group node level to add an environment to a specific group in the project.
The user can also use drag and drop functionality to add an environment to a Project or Group node. * Drag and drop of an .env file onto a Group or Project node creates a Migrated environment within Manage. * Drag and drop of a .vce file onto a Group or Project node creates a Monitored environment within Manage. * Drag and drop of a .vcp file onto a Group or Project node creates a Cover environment within Manage.
51421: In the Manage configuration editor, support right click expand all/collapse all choices
Manage configuration view has two new items, "Expand All" and "Collapse All", added to its right-click menu. The actions allow the user to easily expand and collapse all configuration items in the view. This has been added in VectorCAST version 6.4f.
VectorCAST/QA:
48547: Change Impact Report
VectorCAST version 6.4f introduces a new report for users with a VectorCAST/QA license.
The Change Impact Report lists files changed per environment and the corresponding tests that are affected by those source code changes. It is most often used with Cover environments, but also works with Unit Test environments, provided they have coverage.
In order to function correctly, the Manage Root Source Directory must be set. (Project => Options)
To generate the report, select a node of interest in the Manage Project tree and choose Project => Change Impact Report.
A dialog opens, where you can set the Root Source Directory if not already set.
Optionally, you can specify another source tree in order to see how changes in that tree affect tests in the current Manage project. To do this, put a checkmark in the box next to "Compare to alternate directory," and then specify the same Root Source Directory in that tree.
To generate the report, click "Generate."
manage -p
VectorCAST/QA is a licensed feature which adds a Python-based dialog to VectorCAST version 6.4f allowing users to easily implement manual tests via a pop-up dialog. This new dialog is accessed by using a new test case class called: ManualTestCase.
The parameters for the ManualTestCase class are: ManualTestCase ('
For example, to add a manual test to the built-in Python configuration script, system_tests.py, extend the masterListOfTestCases with this item: ManualTestCase ('MyManualTest',' ', 'testIt.exe') VectorCAST/RSP:
50086: vxworks fixes
VectorCAST version 6.4f contains several fixes and improvements to the vxworks compiler templates and a new Wind River compiler template for AdaCore compiler and ccpentium.
clicast -lc template X86_GNU_VX_C
Release Notes - VectorCAST: 6.4e
VectorCAST C, C++, Ada (Core)
45849: Capture events only for the first and last slot of a compound
In VectorCAST version 6.4e, a new reporting capability is provided to assist with large compound test cases. The user can now prevent the harness from generating execution report data for selected slots in the case (coverage data will still be gathered).
From the GUI, the user clicks in the far-right column (displaying the printer icon). The default value is to show data for the slot (indicated by a printer icon with a green checkmark); toggling it to a printer icon with a red X will prevent the harness from reporting on executing data.
From a test script, the user adds "PRINT=FALSE" to the end of the TEST.SLOT line to prevent the reporting of data.
If the slot data contains expected results (either for the particular test case, or, in the case of a nested compound, within the execution of the slot), then the compound test will fail to run and will notify the user of the reason.
48986: VectorCAST integration with Klocwork, localization issue
VectorCAST version 6.4e includes updated translations for Japanese.
50260: Instrumenter broken with animation I/O + function call + statement+branch/statement+mcdc
Previously, using animation I/O with function call and coverage type statement+branch or statement+MC/DC would generate an instrumentation error and the environment would fail to build. This has been resolved in VectorCAST version 6.4e.
50677: Crash accessing environment wizard in high contrast mode
Previously, using a Windows high contrast window color theme with VectorCAST could cause a crash when using the environment wizard. This has been fixed in VectorCAST version 6.4e.
VectorCAST/C++, Cover:
50135: VectorCAST MC/DC Modification
Previously, MC/DC instrumentation could be suppressed for a single line by adding the comment /*VCAST_DONT_DO_MCDC*/ before the line. The feature suppresses MC/DC instrumentation, but the expression still has branch coverage.
In VectorCAST version 6.4e, the user can direct VectorCAST to suppress MC/DC instrumentation on multiple lines of code by placing a pair of comments around the code in the source file where suppression is desired. The comments are:
/*VCAST_DONT_DO_MCDC_START*/ ...one or more lines for which MC/DC instrumentation should be suppressed /*VCAST_DONT_DO_MCDC_END*/ For example,
/*VCAST_DONT_DO_MCDC_START*/ if (a && b) { } /*VCAST_DONT_DO_MCDC_END*/
directs VectorCAST to avoid applying MC/DC instrumentation on a && b when MC/DC or Statement+MC/DC coverage is used. MC/DC tests will also omit test generation for a && b. As with the other suppression comments, there is no space character allowed between the comment markers and the comment text.
VectorCAST/Ada:
31150: Instrumentation compile error if package redefines TRUE/FALSE
If the tokens TRUE and/or FALSE were defined in an instrumented package, the VectorCAST instrumentation would fail to compile if the new values were not boolean. This has been resolved in VectorCAST version 6.4e.
46258: Manage aggregate report differs from individual environment report
VectorCAST version 6.4e fixes an issue where an Aggregate Coverage Report generated from a monitored ADA environment within a Manage project shows different coverage for a 'for' loop than that of the underlying unit testing project.
49936: Environment Rebuild with GPR file and code coverage fails with testcase user code
When performing a Rebuild/Update environment on an environment using a GPR file for the parent library and with code coverage enabled, if any test case had user code, the application would crash after the environment built. This has been fixed in VectorCAST version 6.4e.
50448: Correctly build task bodies for stubbed units
Previously, when building a stub for a task, VectorCAST would create a 'select' loop containing each entry point in the task. This could cause slowness in execution, because the harness would not terminate cleanly, and use a timeout functionality to kill the harness when the task did not terminate.
In VectorCAST version 6.4e, the environment builder now adds an "or terminate;" branch to the select loop, allowing the task to exit cleanly when the main harness tries to exit.
VectorCAST/C++:
43332: Function pointer support incorrectly references undefined function
In previous versions of VectorCAST, function pointer TIs might be generated incorrectly for undefined functions when a defined function of the same name was present, resulting in a compile error. This problem has been fixed in VectorCAST version 6.4e.
43673: Harness compile error in function pointer TI when functions use __attribute__((__stdcall__))
In previous versions of VectorCAST, function pointer TIs were generated for functions with mismatched calling conventions, resulting in a compile error. This problem has been fixed in VectorCAST version 6.4e.
44528: Function pointer support should not use assembly functions
In previous versions of VectorCAST, function pointer TIs were generated for assembly functions, which resulted in a compile error for some compilers. This problem has been fixed in VectorCAST version 6.4e.
47189: Parse fails to accept g++ code that defines template specialization in separate namespace
VectorCAST version 6.4e resolves a parser error that can occur when the user defines a non-standard template specialization in a separate namespace.
47960: Parser fails on arrays larger than 4 GB
In VectorCAST version 6.2n and later, a parser error would occur for declarations of arrays where the array size exceeded 4 GB, even when --64_bit_target was specified in the parser flags. This problem has been fixed in VectorCAST version 6.4e.
48295 : Input value disappears from last cell of parameter tree
Previously, when entering a value in the last parameter data cell in the Test Case Editor and then using the Tab or Down key to move away from the cell, the value would disappear from the cell. This problem has been resolved in VectorCAST version 6.4e.
VectorCAST/Cover:
50201: Coverage incorrect on non-assignment statements preceded by VCAST_DONT_DO_MCDC comment
When the configuration option VCAST_USE_OPTIMIZED_MCDC_INSTRUMENTATION is set to TRUE, the Aggregate Coverage report did not include coverage for non-assignment statements following a VCAST_DONT_DO_MCDC comment. The same problem also occurred for conditions suppressed by the environment variable VCAST_SUPPRESS_MCDC_DATA_FILE. For example, if code contained:
/*VCAST_DONT_DO_MCDC*/ if (a || b) c = !a; and a test was run where a and b were set to 1, the coverage reports showed incorrect coverage for the expression:
/*VCAST_DONT_DO_MCDC*/ 1 1 ( )( ) if (a || b) 1 2 ( )(F) c = ! 1 2.1 (T)( ) a; In VectorCAST version 6.4e, the Aggregate Coverage report correctly shows coverage for the expression:
/*VCAST_DONT_DO_MCDC*/ 1 1 (T)( ) if (a || b) 1 2 ( )(F) c = ! 1 2.1 (T)( ) a; 50388: VCAST_SUPPRESS_MCDC_DATA_FILE unable to suppress operators of some expressions
In previous versions of VectorCAST, when using the environment variable VCAST_SUPPRESS_MCDC_DATA_FILE to specify a file with MC/DC suppressions, some operators were not actually suppressed.
For example, when using this code: void if_statement_four_subconditions(bool a, bool b, bool c, bool d){ if ((a || b) && (b || c)) ; } and instrumenting for MC/DC coverage with "1:1.3" in the file given by VCAST_SUPPRESS_MCDC_DATA_FILE, VectorCAST should show the third operator as not having MC/DC coverage. Instead, all operators were in effect, as shown here:
1 1 ( )( ) if (( 1 1.1 ( )( ) a || 1 1.2 ( )( ) b) && ( 1 1.3 ( )( ) b || 1 1.4 ( )( ) c)) In VectorCAST version 6.4e, the correct suppression is applied:
1 1 ( )( ) if (( 1 1.1 ( )( ) a || 1 1.2 ( )( ) b) && ( 1 1.3 ( )( ) b || c)) 50395: Assignment statements following DONT_DO_MCDC comments should get branch coverage
Previously, VectorCAST omitted branch coverage on assignment statements if they were immediately preceded by VCAST_DONT_DO_MCDC comments. This problem has been fixed in VectorCAST version 6.4e. 50397: Last operator before a newline in VCAST_SUPPRESS_MCDC_DATA_FILE should get suppressed
If multiple operators were specified in the file of the environment variable VCAST_SUPPRESS_MCDC_DATA_FILE, the last operator before a newline did not receive suppression. This problem has been fixed in VectorCAST version 6.4e.
50398: VCAST_SUPPRESS_MCDC_DATA_FILE should suppress conditions that follow the first condition of a statement
Previously, a condition given in the file specified by the VCAST_SUPPRESS_MCDC_DATA_FILE environment variable only received MC/DC suppression if it was the first condition in a statement. For example, void two(int a, int b); void one(int a){ two(!a, !a); } with a suppression specification of "1:2" did not receive MC/DC suppression:
two( 1 1 ( )( ) ! 1 1.1 ( )( ) a, 1 2 ( )( ) ! 1 2.1 ( )( ) a); In VectorCAST version 6.4e, it does:
two( 1 1 ( )( ) ! 1 1.1 ( )( ) a, 1 2 ( )( ) !a); VectorCAST/Manage:
31242: MDI Summary Page for /Manage Report
VectorCAST version 6.4e adds a new feature, the Manage Data Summary, to provide a dynamic, easy-to- read view of environment execution results and metrics in the VectorCAST Manage Test environment.
The Manage Data Summary is accessed from the toolbar (Data Summary Report => Manage Summary). It is also accessible from the Help Menu by selecting Project => Manage Summary.
Filtering and sorting is available to locate data of interest. Sort by clicking on any column heading. Access the filter by typing into the top row of any column.
A "Totals" row is shown at the top of the table to provide totals for each data column.
The "Track Current Selection" option provides a dynamic view showing only the environment data based on the current selection in the Project Tree. To enable the option, from the toolbar, select Data Summary Report => Options => Track Current Selection. Disabling the option tracks all items in the project.
45534: VectorCAST/QA
VectorCAST/QA, a new automation tool for system testing, is introduced in VectorCAST version 6.4e. VectorCAST/QA combines the existing VectorCAST features of code coverage and change-based testing with new system testing functionality to provide a complete platform for system test automation.
The system testing functionality is controlled by a lightweight python binding that can be customized by the user for the specific toolchain being used to run system tests. VectorCAST/QA is configured with some basic information including: how to build the application under test, where to run the tests, and the list of test names. VectorCAST/QA then builds the application under test and invokes it for each test case.
To utilize VectorCAST/QA, first build a Manage project containing a Cover environment. 1. In the Project Tree, right-click on the Cover environment and select System Testing => Edit Script from the context menu. 2. The system_test.py script opens in the Script Editor. Edit the file to enter the list of source files, the location of VectorCAST Coverage project, the location to run make, the list of test cases and the location where tests are run. Save changes. 3. Build the Coverage environment. VectorCAST uses the system_test.py script to build the instrumented executable. 4. Execute the Coverage environment. VectorCAST uses the system_test.py script to execute the list of tests.
As each test runs, VectorCAST/QA monitors the coverage data produced and automatically adds that data back into the VectorCAST/Cover project, allowing users to have a single point of control for all system test activities. Manual steps are no longer required to produce the instrumented application or capture the coverage data for each test.
Additionally, as the source code changes, VectorCAST/QA keeps the instrumented application up-to-date by re-instrumenting the changed files and re-running those tests which are affected by those changes. 46644: Code Coverage on Original Source File
VectorCAST/Manage now supports a report and a source viewer that aggregates coverage data from multiple code configurations into a single report, even when the coverage data comes from conditionally- compiled code.
It is common to deploy the same code base into multiple run-time configurations by using C/C++ macros. Specifically, macros can be used to conditionally compile source code using #ifdef statements to control the configuration. VectorCAST users commonly handle this situation by using VectorCAST/Manage to create N versions of the environment under test, one for each combination of macro values. This results in N code coverage reports, making it difficult to understand which configurations have been tested and which have not been tested.
To provide better support for this use case, VectorCAST version 6.4e introduces a new report, the Original Source Coverage Report, and a source code viewer which annotates the original source file before the macros have been expanded by the pre-processor.
To access aggregated coverage data, open one of the following: * the traditional coverage viewer for any of the "tic files" * right-click on the base file-name and choose View => Original Source Code * right-click on the base file-name and choose View => Original Source Coverage Report
Lines of code in the original source file are annotated as follows to indicate coverage: *Lines that are instrumented with Statement coverage are indicated as covered using the familiar "*" character. *Lines that are instrumented with Branch coverage are indicated as covered using the familiar (T)(F) notation. * For lines that have more than one environment offering different coverage for it, a new notation is used: * "[full]" means that all tic files below that base file name have that line covered * "[part]" means that one or more tic files have that line covered, but not all * "[none]" means that none of the tic files have that line covered
Original Source Code Editor
To open the original source file in a text editor, in the Files tab, right-click on the base file-name and choose View => Original Source Code. A green coverage icon is displayed in the tab. Click the icon to display a coverage annotations column in the left of the editor. The coverage annotations column indicates which lines in the original source file have been covered either fully or partially, as well as those lines which have not been covered at all.
Original Source Coverage Report
To access the Original Source Coverage Report, open the VectorCAST/Manage project, and switch to the "Files" tab. Right-click on the base file-name and choose View => Original Source Coverage Report. If a file exists in multiple configurations, there will be file-name.c'1, '2, '3 entries ("tic files") for each unique configuration.
The Original Source Coverage Report displays Statement, Branch and Level B coverage data for a selected source file. Lines of code that are Covered By Analysis are displayed in the Report as regular execution results.
The Original Source Coverage Report does not support MC/DC or Statement+MC/DC coverage types. If the coverage results contain MC/DC coverage data, the user is alerted and the report shows no coverage data.
You can generate an HTML version of this same report by using the right-click menu: View => Original Source Coverage Report. From the Manage command line, the --source argument is required.
manage -p
When an "empty" manage project is created from the GUI and the working directory contains a CFG (CCAST_.CFG, ADACAST_.CFG) file, the compiler field is auto-filled with the compiler tag set in the configuration file. This has been updated in VectorCAST version 6.4e.
VectorCAST/RGW:
49632: VectorCAST/RGW not able to parse csv file with Unicode Byte Order Mark at beginning of file
The csv parser was unable to read Unicode files with a BOM (Byte Order Mark) at the beginning of the file. This error has been fixed in VectorCAST version 6.4e.
Release Notes - VectorCAST: 6.4d
VectorCAST C, C++, Ada (Core)
45199: VectorCAST/Ada now supports code coverage mapping to the original source file
Because of the pretty-print reformatting that the VectorCAST coverage instrumenter does, the code coverage listing cannot be mapped directly to the original source file.
The xml_aggregate report allows the user to generate a report that contains this mapping, as well as a covered/not covered indicator for the original source file lines. In previous versions of VectorCAST, the report did not work correctly for Ada environments. In VectorCAST 6.4d, the xml_aggregate report is supported in C, C++, and Ada Unit Test and Cover environments.
To generate the report, use the clicast command: clicast -e <:env> [-u <:unit>] Reports Custom Xml_aggregate [<:outputfile>] or for a Cover environment: clicast -e <:cover-env> [-u <:unit>] Cover REPort Xml_aggregate [<:outputfile>] This branch also supports the option "Maximum subconditions for mc/dc table pre-calulcation" within Ada environments.
46890: Text editor's 10MB limit is now configurable
Previously, VectorCAST's text editor limited the amount of data read from a file to 10MB, and the limit was not configurable. Any remaining text was cut off.
In VectorCAST version 6.4d, a new option, "Maximum number of characters" is available on the GUI tab. The default value is 10,000,000 characters. This option sets the maximum number of characters read from the file and displayed in the text editor. This setting affects viewing text files and reports in TEXT format.
Setting the option to zero allows VectorCAST to read the entire file, no matter how large.
The value of this option is saved in the .vcast-qt.ini file in the user's $HOME directory (Unix) or %USERPROFILE% directory (Windows). 49596: Text Edit Improvements
VectorCAST version 6.4d has the following text editor improvements: * Improved syntax highlighting of single and double quoted strings with escaping quotes for C/C++ and python files. * Added Ctrl+E shortcut to VectorCAST source editor to toggle between read and write mode. * VectorCAST now automatically focuses the view so the user can start typing after the editor becomes writable without having to manually focus or select the text again by using tab key or a mouse click.
VectorCAST/Ada:
41542: Control Flow tab in Test Case Editor does not correctly handle overloaded Ada subprograms
Previously, if a unit had overloaded subprograms, and the user wanted to use the Control Flow panel in the Test Case window to specify / examine the test control flow, the panel would behave incorrectly, showing invalid subprograms when they were actually valid, and setting the control flow incorrectly causing test failures. This has been resolved in VectorCAST version 6.4d.
47196: Compile error when generic formal parameter is 'interface' type
Previously, when a generic formal parameter was declared as an access type, and a function within the generic returned that type, when VectorCAST built a stub for that unit, it would build the return object incorrectly, causing a compile error. This has been fixed in VectorCAST version 6.4d.
47491: Compile errors when building Ada SBF environment with tasks
When building an environment using SBF, VectorCAST inserts global objects for subprogram parameters immediately prior to the definition of the subprogram. Previously, for task "accept" statements, these objects are not inserted, although the harness depends on them, causing compile errors when building the environment. This issue has been fixed in VectorCAST version 6.4d.
47910: Test Compile for Configure Stubs User Code does not work correctly for SBF stubs
Previously, when adding Configure Stubs user code for a stubbed function in an SBF unit, the Test Compile status would either always show failure (for an environment using a GNAT project file) or always show success, regardless of the user code. This has been fixed in VectorCAST version 6.4d.
48268: Harness does not set discriminant values in subtypes / derived types of variant records with Multiunit Whitebox
Previously, when a parameter type was a subtype of or derived from a variant record, building an Ada environment with Multiunit Whitebox set would cause the procedures that control these types to enforce a discriminant value, rather than allowing the user to specify it. This has been resolved in VectorCAST version 6.4d.
48541: Compile error looking for 'VCAST_STD' in SBF environment with nested packages
When building a Stub-By-Function environment for a child package, VectorCAST inserts a 'renames' to allow the harness code to reference package STANDARD without worrying about the source code overloading the name STANDARD. When the UUT has nested packages, sometimes the 'renames' can appear after the nested package harness code, causing compilation errors. This has been fixed in VectorCAST version 6.4d.
48670: Private types derived from SYSTEM.ADDRESS cause compilation errors with Multiunit Whitebox Previously, when building a Multiunit Whitebox environment for code that included a private type derived from SYSTEM.ADDRESS, the environment builder would fail to create a procedure to handle the type, causing harness compilation errors. This has been fixed in VectorCAST version 6.4d.
48682: Pointer to constrained subtype of unconstrained array does not behave correctly with Multiunit Whitebox
Previously, when building a multiunit whitebox environment, a parameter/object that was a pointer to a constrained subtype of an unconstrained array would get treated the same as a pointer to an unconstrained array, which requires user code. This has been fixed in VectorCAST version 6.4d.
VectorCAST/C++:
21053: Parse error when using offsetof() macro with armcc
The ARM compiler (armcc) has a built-in operator __INTADDR__ used by the offsetof() macro. In previous versions of VectorCAST, a parse error would occur if the argument to this operator was not a constant offset within the type used with offsetof(). This problem is fixed in VectorCAST version 6.4d.
38161: Add a "filter" line to the symbolic constants window
VectorCAST version 6.4d includes an improved Symbolic Constants Summary table that allows the user to filter and sort constants and macros defined within the C/C++ environment.
41596: Stubs treat non-pointer struct instance as pointer when concrete class generation enabled
In previous versions of VectorCAST, stubs treated a non-pointer struct instance as pointer when concrete class generation was enabled, resulting in a compile error. This problem has been fixed in VectorCAST version 6.4d.
46580: Do not generate concrete subclass for abstract class with private destructor
In previous versions of VectorCAST, the environment builder automatically created a concrete subclass of an abstract class that contained a private destructor, resulting in a compile error. This problem has been fixed in VectorCAST version 6.4d.
48049: xml_aggregate coverage report should indicate the real filename for header coverage and for #included c files
In previous versions of VectorCAST, the XML Coverage Report did not indicate the real filename for header coverage and #included c files. This problem has been fixed in VectorCAST version 6.4d.
48535: Garbled characters when utilizing Klocwork within VectorCAST IDE
Previously, unicode characters were garbled in the Klocwork issues list when the Klocwork region was set to Japanese. Also, Japanese language HTML Klocwork files were not being rendered when the VectorCAST region was set to Japanese. Both of these errors have been fixed in VectorCAST version 6.4d.
48539: Parse error due to Visual C++ non-standard use of '.' in place of '::'
Visual C++ allows '.' to be used as a scope separator in some circumstances. In previous versions of VectorCAST, some usages of '.' as a scope separator could trigger a parse error. This problem is fixed in VectorCAST version 6.4d.
48679: Harness compile error when function call coverage enabled with buffered coverage IO Previously, a compilation error could occur when building an environment when the option "Instrument for function call coverage" is enabled and buffered I/O is in use. This problem has been fixed in VectorCAST version 6.4d.
VectorCAST/Cover:
47797: Wrong line numbers in xml coverage report for vcpp/remove comments operation
In previous versions of VectorCAST, line numbers in the XML Aggregate Coverage report might be incorrect when the option VCAST_USE_VCPP is set to True. This problem has been fixed in VectorCAST version 6.4d.
VectorCAST/Manage:
41933: Support Create New Environment -> From Script
The right-click context menu for a Group node has been changed in VectorCAST version 6.4d. A new right-click menu item has been added to VectorCAST/Manage which allows you to create an environment from an existing environment script (.env).
The 'Create New Environment' menu item now has two sub-menu items: - 'Interactive', which launches Create New Environment wizard, and - 'From Script' which allows you to navigate to an environment script (.env).
In both 'Interactive' and 'From Script', the environment is built using the configuration from the nodes above the Group node as well as any settings you configure in the Create New Environment wizard or the .env script itself.
46070: Manage Summary Report no longer changed to lowercase
In Manage reporting in previous versions of VectorCAST, environment names were displayed in lowercase and 'ENV_' prefixes were removed. Now, in VectorCAST version 6.4d, environment names are displayed as is and not converted.
47290: '--build --incremental' and '--execute --incremental' no longer supported; use '--build-execute --incremental'
In VectorCAST version 6.4d, the Manage command line no longer supports the '--incremental' argument for the commands '--build' and '--execute'.
The command '--build-execute --incremental' is the recommended command to use. This command performs a full, incremental, or no build, as necessary, and then performs a batch execute or incremental execute, as necessary.
If you have scripts that use '--build --incremental' or '--execute --incremental', an error message is displayed and the operation is not performed.
VectorCAST/RSP:
41996: Support Diab vector types __ev64_opaque__ __ev64_s32__ __ev64_s64__ __ev64_s16__
Diab compiler vector types __ev64_opaque__, __ev64_s32__, __ev64_s64__, and __ev64_s16__ are recognized by VectorCAST version 6.4d
44986: VisualDSP++ Blackfin no longer requires __NO_BUILTIN to be defined Previously, removing the __NO_BUILTIN define from the configuration options for VisualDSP++ Blackfin environments caused a parse error. This problem has been resolved in VectorCAST version 6.4d.
If you have existing configuration options and wish to use builtin functions, set the VCAST_PREPROCESS_PREINCLUDE configuration option to $(VECTORCAST_DIR)\DATA\visualdsp\blackfin\preinclude.h.
Release Notes - VectorCAST: 6.4c
VectorCAST C, C++, Ada (Core)
35407: Add new command to coverage menu to deactivate coverage
In VectorCAST version 6.4c, the user can now completely remove coverage instrumentation from unit test environments through the GUI using the Uninstrument menu item.
To clear all coverage data, from the Menu Bar, select Coverage => Uninstrument. All coverage data is removed and the environment is no longer instrumented. Execution results are not removed.
The clicast command TOols Cover None removes coverage from all UUTs and non-stubbed units with custom coverage in a unit test environment.
clicast -e
VectorCAST version 6.4c adds a new row, "Totals", in the Code Coverage Summary table, to provide totals for each data column.
44666: Summary table for Test Status
VectorCAST version 6.4c adds a new feature, the Test Data Summary, to provide a dynamic, easy-to-read view of test case results and metrics in the VectorCAST Unit Test environment.
The Test Data Summary is accessed from the toolbar (Data Summary Report => Test Data Summary). It is also accessible from the Help Menu by selecting Test => Test Data Summary.
Filtering and sorting is available to locate data of interest. Sort by clicking on any column heading. Access the filter by typing into the top row of any column.
A "Totals" row is shown at the top of the table to provide totals for each data column.
The "Track Current Selection" option provides a dynamic view showing only the test data based on the current selection in the Test Case Tree. To enable the option, from the toolbar, select Data Summary Report => Options => Track Current Selection. Disabling the option tracks all items in the environment.
Note that compound-only tests are automatically excluded from the Test Data Summary. Results for compound tests are shown.
44888: Don't display the entire compile or link errors report in the message window
Previously, when compile or link errors occurred during the environment creation process, the errors were piped to the VectorCAST Message window. In cases where there were hundreds or thousands of lines of output, the message window update process became slow. Since the messages are captured to a file and available from the menu Environment => View => Compile Errors or => Link Errors, VectorCAST version 6.4c has changed the behavior to display only the first 20 lines of output to the Message window. This change also affects what is sent to standard output from clicast.
To view the Compile Errors or Link Errors use the following clicast commands:
clicast -e
clicast -e
A problem with the Jobs Window in verbose mode could cause the build process to hang while building C examples on some Linux and Solaris 64-bit systems. This has been resolved in VectorCAST version 6.4c.
VectorCAST/C++, Cover:
47028: Support Lint and Klocwork analysis from the command line
VectorCAST version 6.4c provides command line support for performing Lint and Klocwork analyses and creating their reports. Analysis uses the current Lint or Klocwork options that are set in the VectorCAST GUI's Lint Options or Klocwork Options window, which are saved to the project.lint or project.klocwork file in the %USERPROFILE% directory (Windows) or the user's $HOME directory (Unix).
For unit test C/C++ environments: clicast -e
clicast -e
clicast -e
41663: Custom Coverage information now included in Ada environment scripts
VectorCAST version 6.4c supports the specification of coverage on non-stubbed dependent units in Ada test environments. Therefore, custom coverage on these units can be applied during environment build and retained during environment rebuild.
To specify that a dependent unit be non-stubbed and have custom coverage applied, use the following line in the .env script:
ENVIRO.CUSTOM_COVERAGE:
clicast -lada environment build
Note: Custom coverage on non-stubbed dependent units cannot be specified in the Ada Environment wizard at this time. If such an environment script is loaded into the Wizard, the units are made non- stubbed, and you will need to apply the Custom Coverage as usual.
41662: CBT For Ada Environments - Changes to UUT Bodies Detected
In VectorCAST version 6.4c, phase 3 of Change-based Testing for Ada whitebox environments is implemented. Changes to UUT bodies are now detected, in either SBF mode or UUT mode.
The user makes a modification to a subprogram body in a UUT, recompiles the sources, and then initiates Environment => Incremental Rebuild. VectorCAST determines which subprograms within the UUT bodies have changed, updates the associated portions of the test harness, and recompiles and then re- instruments those portions. Affected test cases have their execution and coverage data removed.
The Incremental Rebuild Report indicates which units were modified, which subprograms were affected by the change, and which testcases were affected.
46908: Compile error when generic package uses pointer to variant record in parent unit
When dealing with variant records with no default parameters, VectorCAST creates two procedures: one to handle the variant record as-is, and one to handle a pointer to the type, so the user can modify the object when doing whitebox processing.
Previously, when the variant record is in the parent unit of a generic package, and that generic package is instantiated as the UUT, when VectorCAST built the type proc spec and body, VectorCAST used different criteria to determine if both procedures were needed, resulting in a failure to build one of the bodies, resulting in a compilation error. This has been fixed in VectorCAST version 6.4c.
47063: UUT reference of private type in nested package causes harness compile errors
Previously, when VectorCAST found a reference to a private type in a package nested in the Unit Under Test, it would create an incorrect call to a procedure to handle t he typemark, causing compile errors. This has been fixed in VectorCAST version 6.4c
VectorCAST/C++:
44312: Use typedef for unnamed enums where possible in C
In previous versions of VectorCAST, a C unit test environment would use int in place of const typedefs of unnamed enums. This would produce undefined harness behavior and unexpected test results if the enum type was sized differently than an int type, as is possible with some compilers. In VectorCAST version 6.4c, the generated harness will use the typedef without const if possible.
46581: SBF instrumentation incorrectly added to friend functions defined within templates
In previous versions of VectorCAST, friend functions defined within a class template would be incorrectly instrumented for SBF functionality, resulting in a harness compile error. This problem is fixed in VectorCAST version 6.4c by not adding SBF functionality to such functions.
47679: Backslashes in unit-specific options added via clicast are not quoted properly on Windows
In previous versions of VectorCAST, backslashes in unit-specific options were not always quoted properly on Windows, potentially causing preprocess or compile errors. This problem is fixed in VectorCAST version 6.4c.
47691: Crash opening Klocwork options
In previous versions of VectorCAST, opening the Klocwork options dialog in a floating window would cause a crash. This has been fixed in VectorCAST version 6.4c.
VectorCAST/Cover:
48059: Cover database crash when activating coverage animation
VectorCAST version 6.4c fixes a race condition that sometimes resulted in an assertion error crash when activating coverage animation.
VectorCAST/Manage:
47005: VectorCAST/Manage support for a command file
In VectorCAST version 6.4c, VectorCAST/Manage is capable of running a script with many manage commands. The Manage project must exist before running the script.
Usage: manage -p